Если есть необходимость запустить WDP приложение внутри SAP GUI, можно написать обертку над транзакцией WDYID, авторизация происходит через SSO.
Рубрика: Сетевые технологии
Средства построения Web интерфейсов и взаимодействия через сеть.
Получение URL для Web Dynpro приложения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
DATA: gt_param TYPE tihttpnvp, gs_param TYPE ihttpnvp, gv_url TYPE STRING, gv_url_c TYPE char255. "Заполнение параметров URL gs_param-NAME = 'param1'. gs_param-VALUE = 'value1'. APPEND gs_param TO gt_param. gs_param-NAME = 'param2'. gs_param-VALUE = 'value2'. APPEND gs_param TO gt_param. "Получаем URL с необходимыми параметрами cl_wd_utilities=>construct_wd_url( EXPORTING application_name = 'ИмяПриложения' in_parameters = gt_param IMPORTING out_absolute_url = gv_url ). gv_url_c = gv_url. "Вызов браузера с полученным URL CALL FUNCTION 'CALL_BROWSER' EXPORTING url = gv_url_c. |
Работа с MIME репозитарием
Работа с MIME репозитарием через ABAP возможна используя класс: cl_mime_repository_api. Пример его использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
REPORT ZMIME_API. DATA: go_mime_api TYPE REF TO if_mr_api, gv_x_str TYPE XSTRING, gv_str TYPE STRING. " Создает экземпляр класса для работы с репозитарием go_mime_api = cl_mime_repository_api=>get_api( ). gv_str = 'Hello World!'. " Преобразуем в XSTRING CALL FUNCTION 'HR_KR_STRING_TO_XSTRING' EXPORTING unicode_string = gv_str IMPORTING XSTRING_STREAM = gv_x_str EXCEPTIONS INVALID_CODEPAGE = 1 INVALID_STRING = 2 OTHERS = 3. " Запищем в репозитарий. go_mime_api->put( EXPORTING i_url = '/SAP/BC/BSP/SAP/.../TEST.TXT' i_content = gv_x_str EXCEPTIONS parameter_missing = 1 error_occured = 2 cancelled = 3 permission_failure = 4 data_inconsistency = 5 new_loio_already_exists = 6 is_folder = 7 OTHERS = 8 ). IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CLEAR: gv_x_str, gv_str. " Прочитаем содержимое из репозитария go_mime_api->get( EXPORTING i_url = '/SAP/BC/BSP/SAP/.../TEST.TXT' IMPORTING e_content = gv_x_str EXCEPTIONS parameter_missing = 1 error_occured = 2 not_found = 3 permission_failure = 4 OTHERS = 5 ). IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. " Преобразуем обратно в строку CALL FUNCTION 'HR_KR_XSTRING_TO_STRING' EXPORTING in_xstring = gv_x_str IMPORTING out_string = gv_str. WRITE gv_str. |
Remote Function Call
Remote Function Call (RFC, удалённый вызов функций) – стандартный интерфейс для обмена данными между SAP и не SAP системами. Интерфейс передачи данных основан на CPI-C или TCP/IP. Стандартная справка по теме RFC или курс BC415.
Обновление MIME хранилища для BSP приложений
Транзакция для запуска BSP приложения
Допустим у Вас есть BSP приложение и необходимо создать транзакцию для его запуска. Данную проблему можно решить скопировав транзакцию START_BSP и настроив подходящий вариант. В случае если в вашей системе нет START_BSP, поможет следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
REPORT zbsp_start. DATA: lv_url TYPE STRING, lv_urlc(4096) TYPE C, lt_parms TYPE tihttpnvp. START-OF-SELECTION. PARAMETER: p_app TYPE STRING. PARAMETER: p_page TYPE STRING. PARAMETER: p_parms TYPE STRING. END-OF-SELECTION. *-- Получаем URL для BSP приложения CALL METHOD cl_http_ext_webapp=>create_url_for_bsp_application EXPORTING bsp_application = p_app bsp_start_page = p_page bsp_start_parameters = lt_parms IMPORTING abs_url = lv_url. *-- Вызываем браузер по нашему URL'у lv_urlc = lv_url. CALL FUNCTION 'CALL_BROWSER' EXPORTING url = lv_urlc window_name = 'BSP' new_window = ' ' EXCEPTIONS frontend_not_supported = 1 frontend_error = 2 prog_not_found = 3 no_batch = 4 unspecified_error = 5 OTHERS = 6. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. |
Быстрая отправка e-mail сообщения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
REPORT zsimple_mail_send. DATA: gv_message TYPE bcsy_text. APPEND 'TEST MESSAGE' TO gv_message. cl_reca_comm_services=>send_mail( EXPORTING id_address = 'address@mail.ru' id_subject = 'Тест' it_text = gv_message if_commit = abap_true EXCEPTIONS error = 1 OTHERS = 2 ). |