Точки расширения для заказчиков =============================== Для расширения функционала массовой отправки создана точка расширения ``/TRL/XDE_ENH_SPOT_MSEND``. Внутри данной точки имеется BAdI определение ``/TRL/XDE_MSEND_BADI`` на основе интерфейса ``/TRL/XDE_IF_MSEND_BADI``. .. note:: Данное BAdI многоразовое, значит, поддерживает несколько внедрений, которые будут вызваны одно за другим по очереди. Описание интерфейса /TRL/XDE_IF_MSEND_BADI ------------------------------------------- .. list-table:: Интерфейс /TRL/XDE_IF_MSEND_BADI :widths: auto :header-rows: 1 * - Имя метода - Вид метода - Описание * - UPLOAD_DOCUMENT - Instance Method - Функционал заказчика по кнопке "Загрузить приложение" * - CHANGE_MAIN_TAB - Instance Method - Изменение таблицы основной выборки * - CHANGE_PREDEF_BPROC - Instance Method - Изменение предопределенных бизнес-процессов * - CHANGE_PREDEF_DOCS - Instance Method - Изменение предопределенных документов для бизнес-процессов * - CHANGE_BPROC_SELECTED - Instance Method - Изменение выбранных бизнес-процессов * - SHIPM_OUT_ADD - Instance Method - Изменение параметров перед отправкой * - HANDLE_PACKAGE_SENT - Instance Method - Доп. обработка после отправки * - HANDLE_ERROR_HAPPENED - Instance Method - Доп. обработка после ошибки * - CHOOSE_PF_STATUS - Instance Method - Выбор кастомного GUI статуса * - HANDLE_CUSTOM_BUTTON - Instance Method - Обработка пользовательских кнопок Описание методов интерфейса /TRL/XDE_IF_MSEND_BADI -------------------------------------------------- Функционал заказчика по кнопке "Загрузить приложение" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода UPLOAD_DOCUMENT :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - CS_DOCUMENT - Changing - SOOD4 - Данные о документе и ссылке хранения BAdI метод вызывается внутри метода ``UPLOAD_DOCUMENT`` локального класса ``LCL_MSEND``. С помощью этого метода можно заменить приложение к документу. Изменение таблицы основной выборки ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода CHANGE_MAIN_TAB :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - CT_MAIN_TAB - Changing - ANY TABLE - Таблица любого типа BAdI метод вызывается внутри метода ``MAIN_TAB_BADI`` локального класса ``LCL_MSEND`` и позволяет заменить данные в таблице. Изменение предопределенных бизнес-процессов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода CHANGE_PREDEF_BPROC :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - IV_VBELN - Importing - VBELN - Номер документа сбыта * - IV_KUNNR - Importing - KUNNR - Номер дебитора * - CT_PROC - Changing - MTY_T_PROC - Перечень бизнес-процессов Метод вызывается внутри метода ``GET_PREDEFINED_BPROC_BY_KYNNR`` в локальном классе ``LCL_MSEND`` и позволяет изменить список бизнес-процессов, предопределенных для данного дебитора. Изменение предопределенных документов для бизнес-процессов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода CHANGE_PREDEF_DOCS :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - IT_MATCH - Importing - MTY_T_MATCH - Присвоение контрагентам бизнес-процесса * - IT_PROCDOC - Importing - MTY_T_PROCDOC - Документы в составе бизнес-процессов * - CT_PROC - Changing - MTY_T_DOCTYPES - Тип документа для бизнес-процесса Данный метод вызывается внутри метода ``GET_PREDEFINED_DOCS_BY_KYNNR`` в локальном классе ``LCL_MSEND`` и позволяет изменить список предопределенных документов для бизнес-процессов. Изменение выбранных бизнес-процессов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода CHANGE_BPROC_SELECTED :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - CT_BPROC_SELECTED - Changing - MTY_T_BPROC - Таблица фактура - дебитор - бизнес-процесса Данный метод вызывается внутри метода ``ADD_SELECTED_BPROC_TO_KUNNR`` локального класса ``LCL_MSEND`` и позволяет изменить список выбранных бизнес-процессов. Изменение параметров перед отправкой ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода SHIPM_OUT_ADD :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - CV_OPERATOR - Changing - /TRL/XDE_ED_ID_OED - Код оператора ЭДО * - CV_NEED_APPROVE - Changing - XFELD - Флаг необходимости подтверждения * - CS_OBJECT - Changing - BORIDENT - Данные по объекту * - CS_PARTNER_DATA - Changing - /TRL/XDE_S_SHIP_PARTNER - Данные по партнеру (отправитель-получатель) * - CS_SENDER_BOX - Changing - /TRL/XDE_BOX_ID - Данные по ящику отправителя * - CS_RECEIVER_BOX - Changing - /TRL/XDE_BOX_ID - Данные по ящику получателя * - CS_CARRIERER_BOX - Changing - /TRL/XDE_BOX_ID - Данные по ящику перевозчика * - CT_DOC_TYPE_DATA - Changing - /TRL/XDE_T_DOC_TYPE_DATA - Данные по документам отправки * - CV_BPROC - Changing - /TRL/XDE_ED_PROCESS - Код бизнес-процесса Метод вызывается внутри метода ``SHIPM_OUT_ADD`` локальных классов ``LCL_MSEND`` и ``LCL_MSEND_PRINT`` и позволяет заменить бизнес-объект, данные по партнерам и данные по отправке. Доп. обработка после отправки ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода HANDLE_PACKAGE_SENT :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - IS_OBJECT - Importing - BORIDENT - Данные по бизнес-объекту * - IT_HEADER - Importing - /TRL/XDE_T_HEADER - Таблица основных данных по отправкам * - CT_RETURN - Changing - BAPIRET2_T - Таблица возврата (сообщения) Данный метод вызывается внутри метода ``HANDLE_PACKAGE_SENT`` локального класса ``LCL_MSEND`` и позволяет добавить свою обработку для отправленных документов. Доп. обработка после ошибки ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода HANDLE_ERROR_HAPPENED :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - CT_LOG - Changing - MTY_T_LOG - Таблица лога * - CT_LOG_LOCAL - Changing - MTY_T_LOG - Таблица лога Данный метод вызывается внутри метода ``HANDLE_ERROR_HAPPENED`` локального класса ``LCL_MSEND`` и позволяет изменять, добавлять, удалять сообщения об ошибках, которые попадают в лог. Выбор GUI статуса для отчета ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода CHOOSE_PF_STATUS :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Ссылочный тип - Описание * - IV_POP - Importing - CHAR1 - Тип экрана * - CV_PF - Changing - SYPFKEY - Имя GUI статуса * - CV_REPORT - Changing - SYREPID - Имя программы Данный метод вызывается внутри метода ``CHOOSE_PF_STATUS`` локального класса ``LCL_SALV``. Метод позволяет подменить GUI статус, что дает возможность создания собственных кнопок. Для сохранения работы уже существующего функционала требуется скопировать GUI статус из программы ``/TRL/XDE_MSEND``. Обработка пользовательских кнопок ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Параметры метода HANDLE_CUSTOM_BUTTON :widths: auto :header-rows: 1 * - Имя параметра - Вид параметра - Обязательность - Ссылочный тип - Описание * - IV_FUNCTION - Importing - X - SALV_DE_FUNCTION - Код функции * - IT_RECORDS - Importing - X - ANY TABLE - Выбранные на ALV записи Данный метод вызывается внутри метода ``HANDLE_USER_COMMAND`` локального класса ``LCL_EVENT_HANDLER``. Метод позволяет реализовать свой функционал для выбранных на ALV строк для созданных кастомных кнопок.