Делал так:
*&--------------------------------------------------------------------
*& Form sy_subrc
*&--------------------------------------------------------------------
*& Информационное сообщение об ошибке с расшифровкой Exception
*& получает имя функцион.модуля и sy-subrc
*& используется после вызова CALL FUNCTION 'xxxxx'
*& прымер:
** IF sy-subrc NE 0.
** PERFORM sy_subrc USING 'WS_DOWNLOAD' sy-subrc.
** EXIT.
** ENDIF.
*&--------------------------------------------------------------------
FORM sy_subrc USING p_funcname p_rc.
*****************************************
DATA: u_text1(50),u_text2(80).
DATA except_name LIKE fupararef-parameter.
SELECT SINGLE parameter FROM fupararef
INTO except_name
WHERE funcname = p_funcname
AND paramtype = 'X'
AND pposition = p_rc.
IF sy-subrc = 0.
* Краткие тексты к Exception
SELECT SINGLE stext FROM funct INTO u_text2
WHERE ( spras EQ 'RU' OR spras EQ 'EN' )
AND funcname EQ p_funcname
AND parameter EQ except_name
AND kind EQ 'X'.
CONCATENATE '@1D@ Ошибка' p_funcname '->' except_name INTO u_text1
separated by space.
CONCATENATE '(' u_text2 ')' INTO u_text2
separated by space.
condense u_text2.
MESSAGE i398(00) WITH u_text1 u_text2.
ELSE.
MESSAGE i398(00) WITH
'@1D@ Неизвестная ошибка в модуле' p_funcname '!!!'.
ENDIF.
ENDFORM.
Удачи!
