Пример использования ФМ, который позволяет считывать подробные тексты из класса сообщений (транзакция SE91):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
DATA: lt_lines TYPE STANDARD TABLE OF tline. CALL FUNCTION 'DOCU_GET' EXPORTING id = 'NA' object = 'ZTEST001' typ = '' langu = sy-langu TABLES line = lt_lines EXCEPTIONS no_docu_on_screen = 1 no_docu_self_def = 2 no_docu_temp = 3 ret_code = 4 OTHERS = 5. BREAK-POINT. |
Результат:
Альтернативный способ, с возможностью передачи параметров:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
DATA: go_t100_message TYPE REF TO CL_T100_MESSAGE, gt_parameters TYPE NAME2VALUE_TABLE, gv_text TYPE string. FIELD-SYMBOLS: <fs_parameter> TYPE NAME2VALUE. APPEND INITIAL LINE TO gt_parameters ASSIGNING <fs_parameter>. <fs_parameter>-name = '1'. <fs_parameter>-value = 'Значение'. CREATE OBJECT go_t100_message EXPORTING the_msg_class = 'ZTEST' the_msg_number = '001'. go_t100_message->set_substitution_table( gt_parameters ). gv_text = go_t100_message->get_longtext( ). |
Параметры, в подробном тексте, указываются следующим образом (а параметры передаваемые через оператор MESSAGE: &V1& — &V4&):
Спасибо за материал! Но, хочу внести поправку
Работает не для всех классов. Например из класса EU получить описанным способом сообщение — не получится( для версии ниже 7.40)