Связывание отправки бизнес-объекта SAP ====================================== .. code:: abap *"-------------------------------------------------------------------- *"*"Локальный интерфейс: *" IMPORTING *" REFERENCE(IV_RECORD_ID) TYPE /TRL/XDE_ED_RECORD_ID_EXT *" REFERENCE(IS_OBJECT) TYPE BORIDENT *" REFERENCE(IV_LINK_DOC) DEFAULT 'X' *" REFERENCE(IV_LINK_BO) DEFAULT 'X' *" REFERENCE(IV_HEADER_UPDATE) DEFAULT '' *" REFERENCE(IV_DELETE_LINK) DEFAULT '' *" EXPORTING *" REFERENCE(ES_RETURN) TYPE /TRL/XDE_RETURN *"-------------------------------------------------------------------- Функциональный модуль ``/TRL/XDE_API_SHIPM_LINK_TO_BO`` предназначен для связывания отправки бизнес-объекта SAP, а также для удаления связи. .. table:: Описание интерфейса функционального модуля ``/TRL/XDE_API_SHIPM_LINK_TO_BO`` :align: center :widths: 2 8 +------------------------------------+-------------------------------------------------------------------------------------------------------+ | Параметр | Описание | +====================================+=======================================================================================================+ | ``IMPORTING`` | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_RECORD_ID`` | Уникальный идентификатор отправки, для которой выполняется поиск связанных отправок | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IS_OBJECT`` | Идентификатор бизнес-объекта SAP | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_LINK_DOC`` | Флаг: прикрепить документы отправки к бизнес-объекту SAP | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_LINK_BO`` | Флаг: связать отправку с бизнес-объектом SAP | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_HEADER_UPDATE`` | Флаг: обновить бизнес-объект SAP в заголовке отправки (таблица ``/TRL/XDE_HEADER``) | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_DELETE_LINK`` | Флаг: удалить существующую связь отправки и бизнес-объекта SAP | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``EXPORTING`` | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``ES_RETURN`` | Результат обработки | +------------------------------------+-------------------------------------------------------------------------------------------------------+ Функциональный модуль имеет несколько режимов. Если выбран режим «Удалить связь» – проверяем, что заполнены данные по идентификатору отправления и ключу объекта. * Если эти данные не заполнены – происходит выход из ФМ без вывода ошибок. Если при этом режиме также активен флаг «Обновление БО» – запускается ФМ ``/TRL/XDE_GET_SHIPMENTS``, который находит данные по номеру отправления. После чего запускается цикл по найденным документам и для каждой записи вызывается функциональный модуль ``/TRL/XDE_DEL_DOC_FROM_BO``, внутри которого вызывается настраиваемый ФМ для удаления связи между документом и бизнес-объектом SAP. Далее, если найденные данные совпадают по ключу и типу объекта – запускается ФМ ``/TRL/XDE_UPDATE_HEADER``, который обновляет таблицу ``/TRL/XDE_HEADER``, если это позволит настройка в таблице ``/TRL/XDE_STATE``. * Если в ходе выполнения ФМ ``/TRL/XDE_UPDATE_HEADER`` возникла ошибка – поле ``es_return-code`` будет заполнено значением «9999». После этого происходит удаление из таблицы ``/TRL/XDE_BO_LINK``. * Если удаление не завершилось успехом – поле ``es_return-code`` заполняется значением «9999». Если выбран режим «Связать объекты» - заполняется локальная структура на основе входных данных и происходит обновление таблицы ``/TRL/XDE_BO_LINK``. * Если обновление не завершилось успехом – в ``es_return-code`` попадет значение «9999». Если выбран режим «Связать документы» – вызывается ФМ ``/TRL/XDE_GET_SHIPMENTS``, который находит данные из таблицы ``/TRL/XDE_DOCUM``. * Если данных найдено не было – происходит выход из ФМ. В цикле по выбранным данным – запускается ФМ ``/TRL/XDE_LINK_DOC_TO_BO``. Этот ФМ соединяет документы с бизнес-объектом. Для этого вызывается настраиваемый ФМ. * Если ФМ не найден – в ``es_return_code`` попадет значение «9999». Если выбран режим «Обновление БО» - запускается ФМ ``/TRL/XDE_HEADER``, который обновляет таблицу ``/TRL/XDE_HEADER``, если это позволит настройка в таблице ``/TRL/XDE_STATE``. * Если в ходе выполнения ФМ ``/TRL/XDE_UPDATE_HEADER`` возникла ошибка – поле ``es_return-code`` будет заполнено значением «9999». Данная API-функция подразумевает возможность расширения для заказчика. .. important:: При использовании явных или неявных операторов ``COMMIT WORK`` и ``ROLLBACK WORK`` в расширениях корректная работа API-функций не гарантируется! Функциональный модуль для прикрепления документов к бизнес-объектам ------------------------------------------------------------------- Имя ФМ для прикрепления документов к бизнес-объектам хранится в таблице ``/TRL/XDE_AS_CUST`` поле ``FM_DOC_BO_LINK``. .. image:: ris9.png :scale: 80 % :align: center :alt: Настройка ``FM_DOC_BO_LINK`` Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже. .. table:: Параметры модуля для прикрепления документов к бизнес-объектам :align: center :widths: 2 1 4 +----------------------------+-------+------------------------------------+ | Наименование параметра | Тип | Название словарного типа или класс | +============================+=======+====================================+ | ``IMPORTING`` (попадают в ФМ) | +----------------------------+-------+------------------------------------+ | ``IS_OBJECT`` | Тип | BORIDENT | +----------------------------+-------+------------------------------------+ | ``I_LINK`` | Тип | /TRL/XDE_ED_LINK | +----------------------------+-------+------------------------------------+ | ``I_ASTYPE`` | Тип | /TRL/XDE_ED_ASTYPE | +----------------------------+-------+------------------------------------+ | ``I_FILENAME`` | Тип | /TRL/XDE_ED_ARC_FILE_NAME | +----------------------------+-------+------------------------------------+ | ``I_RECORD_ID`` | Тип | /TRL/XDE_ED_RECORD_ID_EXT | +----------------------------+-------+------------------------------------+ | ``EXPORTING`` (результаты ФМ на выходе) | +----------------------------+-------+------------------------------------+ | ``ES_RETURN`` | Тип | /TRL/XDE_RETURN | +----------------------------+-------+------------------------------------+ Функциональный модуль может иметь и другие параметры, но они должны быть необязательными. Функциональный модуль должен добавлять связь между документом (I_LINK) и бизнес-объектом SAP (IS_OBJECT) для типа архива (I_ASTYPE). Функциональный модуль для удаления связи между документом и бизнес-объектом ---------------------------------------------------------------------------- Имя ФМ для удаления связи между документом и бизнес-объектом хранится в таблице ``/TRL/XDE_AS_CUST`` в поле ``FM_DOC_BO_DEL``. .. image:: ris40.png :scale: 90 % :align: center :alt: Настройка ``FM_DOC_BO_DEL`` Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже. .. list-table:: Параметры ФМ для удаления связи между документом и БО :widths: auto :header-rows: 1 * - Наименование параметра - Тип - Название словарного типа или класс * - IS_OBJECT - BORIDENT - Идентификатор БО * - IV_LINK - /TRL/XDE_DOCUM-LINK - Ссылка на документ в архиве * - IV_ASTYPE - /TRL/XDE_ED_ASTYPE - Тип архива * - IV_FILE_NAME - /TRL/XDE_DOCUM-FILE_NAME - Имя файла в архиве * - IV_RECORD_ID - /TRL/XDE_ED_RECORD_ID_EXT - GUID отправки в SAP * - ES_RETURN - /TRL/XDE_RETURN - Код и текст сообщения В продукте xDE имеется ФМ ``/TRL/XDE_EXMPL_DEL_DOC_FROM_BO`` с данным интерфейсом, который можно использовать в качестве шаблона.