Массовое подписание/отклонение входящей отправки (Рё запроса РЅР° аннулирование) ============================================================================== .. code:: abap *"---------------------------------------------------------------------- *"*"Локальный интерфейс: *" IMPORTING *" VALUE(IT_RECORD_ID) TYPE /TRL/XDE_T_RECORD_ID *" VALUE(IV_COMMENT) TYPE STRING OPTIONAL *" VALUE(IV_ACCEPT) TYPE XFELD OPTIONAL *" VALUE(IS_CERT) TYPE /TRL/XDE_S_SAP_DOC_TYPE_CERT OPTIONAL *" VALUE(IV_SIGN_ONLY) TYPE /TRL/XDE_ED_FLAG_SIGN DEFAULT '' *" VALUE(IV_UNAME) TYPE SYUNAME DEFAULT SY-UNAME *" VALUE(IV_ONLY_CHECK) TYPE XFELD OPTIONAL *" VALUE(IT_DOC_TYPE_DATA) TYPE /TRL/XDE_T_DOC_TYPE_DAT OPTIONAL *" VALUE(IV_UPD_ACCEPT_CODE) TYPE /TRL/XDE_ED_TIT_RESULT_CODE OPTIONAL *" EXPORTING *" VALUE(ES_RETURN) TYPE /TRL/XDE_RETURN *" VALUE(EV_COMMENT) TYPE STRING *" VALUE(ES_HEADER) TYPE /TRL/XDE_HEADER *"---------------------------------------------------------------------- Функциональный модуль ``/TRL/XDE_API_SHIPM_SIGN_IN2`` выполняет массовое подписание/отклонение входящей отправки, Р° также массовое подтверждение/отклонение запроса РЅР° аннулирование отправки. .. table:: Описание интерфейса функционального модуля ``/TRL/XDE_API_SHIPM_SIGN_IN2`` :align: center :widths: 2 8 +------------------------------------+-------------------------------------------------------------------------------------------------------+ | Параметр | Описание | +====================================+=======================================================================================================+ | ``IMPORTING`` | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IT_RECORD_ID`` | Набор уникальных идентификаторов отправки. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_COMMENT`` | Комментарий – причина отклонения. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_ACCEPT`` | Если равен В«XВ», то выполняется согласование отправки/подтверждение запроса РЅР° аннулирование. | | | Если РЅРµ равен В«XВ», то выполняется отклонение отправки/запроса РЅР° аннулирование. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IS_CERT`` | Сертификат для подписания. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_SIGN_ONLY`` | Если равен В«XВ», то РїСЂРё раздельном подписании выполняется только подписание, | | | без отправки РІ систему РћРР”. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_UNAME`` | Пользователь системы SAP, выполняющий операцию. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_ONLY_CHECK`` | Если равен В«XВ», то выполняется проверка возможности выполнения подписания/отклонения, | | | РїСЂРё этом непосредственно подписание/отклонение РЅРµ выполняется. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IT_DOC_TYPE_DATA`` | Файлы документов РІ бинарном РІРёРґРµ. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_UPD_ACCEPT_CODE`` | РљРѕРґ итога для РЈРџР”(820). | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``EXPORTING`` | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``ES_RETURN`` | РљРѕРґ Рё описание ошибки РІ случае, если операцию выполнить РЅРµ удалось. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``EV_COMMENT`` | Если ``IV_COMMENT`` РЅРµ заполнен – содержит комментарий, введенный пользователем. | | | Рначе равен ``IV_COMMENT``. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``ES_HEADER`` | Заголовок отправки. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ Запускается цикл РїРѕ отправлениям. Если ФМ запущен РЅРµ РІ режиме проверки – блокируется запись РїРѕ номеру отправления. * Если возникла ошибка РїСЂРё блокировке – РІ ``es_return-code`` попадет В«1011В», РІ ``es_return-text`` попадает текущее системное сообщение. После этого работа ФМ закончится. Получаем данные РїРѕ отправке СЃ помощью ``/TRL/XDE_GET_SHIPMENTS``. * Если возникла ошибка РІ С…РѕРґРµ выполнения – РІ ``es_return-code`` попадет В«1106В», РІ ``es_return-text`` попадет «Внутренняя ошибка. РќРµ удалось найти объект "Отправление"В». Снимаются блокировки Рё РїСЂРѕРёСЃС…РѕРґРёС‚ выход РёР· ФМ. РџСЂРѕРёСЃС…РѕРґРёС‚ получение технических значений для статусов РїРѕ имени настроек ``STATUS_G_ERROR`` Рё ``STATUS_G_REV_REQ_RECEIVED`` РёР· таблицы ``/TRL/XDE_CUST``. Проверяется, что РєРѕРґ статуса отправки равен значению РёР· настройки ``STATUS_G_REV_REQ_RECEIVED``. Если РєРѕРґ статуса отправки равен значению настройки ``STATUS_G_ERROR`` - РїСЂРѕРёСЃС…РѕРґРёС‚ получение значений настроек ``STATUS_G_REV_REQ_REJECTED`` Рё ``STATUS_G_REVOKED``. Далее РїСЂРѕРёСЃС…РѕРґРёС‚ получение данных РїРѕ статусам РїРѕ номеру отправления СЃ помощью ФМ ``/TRL/XDE_GET_SHIPMENTS`` Рё РїРѕРёСЃРє такого, который был Р±С‹ равен значению РёР· настройки ``STATUS_G_REV_REQ_RECEIVED``. Если какое-либо РёР· этих условий выполнено – нужно выполнять аннулирование, РІ противном случае – подписание/отклонение. Выполняется РїРѕРёСЃРє пользовательских маршрутов СЃ кастомными статусами для отправки. Р’ случае ошибки заполняется переменная ``es_return``, блокировки снимаются. Если маршрут Рё кастомный статус был найден – снимаются блокировки Рё РїСЂРѕРёСЃС…РѕРґРёС‚ выход РёР· функционального модуля. .. note:: Р’ текущей версии Продукта компонент для работы СЃ кастомными статусами РЅРµ поддерживается. Выполнение данного алгоритма РЅРµ влияет РЅР° работу текущего функционала. Для аннулирования ищется ФМ РІ таблице ``/TRL/XDE_CUST`` РїРѕ имени настройки ``FM_REVOKE_ACPT``. * Если ФМ РЅРµ найден или РЅРµ существует РІ системе – РІ ``es_return-code`` попадет В«1008В», РІ ``es_return-text`` попадет В«& & & РќРµ задан ФМ обработки аннулирования (/TRL/XDE_OED_TY)В». После этого снимаются блокировки Рё РїСЂРѕРёСЃС…РѕРґРёС‚ выход РёР· ФМ. Для подписания/отклонения нужно проверить, что сообщение является входящим Рё после этого выполнить РїРѕРёСЃРє ФМ РІ таблице ``/TRL/XDE_CUST`` РїРѕ имени настройки ``FM_SHIP_IN_SIGN`` или ``FM_SHIP_SIGN_ONLY``, если нужно только подписать. * Если ФМ РЅРµ найден или РЅРµ существует РІ системе – РІ ``es_return-code`` попадет В«1008В», РІ ``es_return-text`` попадет В«& & & РќРµ задан ФМ РЎРѕРіР»-РЅРёСЏ/отклонения входящего документа (/TRL/XDE_OED_T)В». Снимаются блокировки Рё РїСЂРѕРёСЃС…РѕРґРёС‚ выход РёР· ФМ. * Если РІ С…РѕРґРµ вызова ФМ только подписания возникли ошибки – РІ ``es_return-code`` попадет В«1011В», РІ ``es_return-text`` текущее системное сообщение. Снимаются блокировки Рё РїСЂРѕРёСЃС…РѕРґРёС‚ выход РёР· ФМ. * Если действие – РЅРµ аннулирование Рё РЅРµ подписание/отклонение, то РІ ``es_return-code`` попадет В«9999В», РІ ``es_return-text`` попадет «В статусе & операция невозможна». Снимаются блокировки Рё РїСЂРѕРёСЃС…РѕРґРёС‚ выход РёР· ФМ. Выполняется проверка полномочий. * Если проверка полномочий РЅРµ пройдена – РІ ``es_return-code`` попадет В«1013В», РІ ``es_return-text`` попадет «Нет полномочий РЅР° выполнение операции». Снимаются блокировки Рё РїСЂРѕРёСЃС…РѕРґРёС‚ выход РёР· ФМ. Повторная блокировка Рё проверка полномочий для всех отправлений пакета, если для этого есть настройки оператора. РќР° этом цикл РїРѕ отправкам заканчивается. Далее РїСЂРѕРёСЃС…РѕРґРёС‚ вызов найденного ФМ (ФМ аннулирования или подписания/отклонения). Снимаются блокировки. Данная API функция предполагает точки расширения для заказчика. .. important:: РџСЂРё использовании явных или неявных операторов ``COMMIT WORK`` Рё ``ROLLBACK WORK`` РІ расширениях корректная работа API-функций РЅРµ гарантируется! Функциональный модуль подтверждения/отклонения запроса аннулирования -------------------------------------------------------------------- РРјСЏ ФМ подтверждения/отклонения запроса аннулирования хранится РІ таблице ``/TRL/XDE_CUST`` РїРѕ имени настройки ``FM_REVOKE_ACPT``. .. image:: ris30.png :scale: 73 :align: center :alt: Настройка ``FM_REVOKE_ACPT`` Правила для ФМ РёР· этой настройки касаются интерфейса ФМ, СЃРј. РІ таблице ниже. .. table:: Параметры модуля подтверждения/отклонения запроса аннулирования :align: center :widths: 2 1 4 +----------------------------+-------+------------------------------------+ | Наименование параметра | РўРёРї | Название словарного типа или класс | +============================+=======+====================================+ | ``IMPORTING`` (попадают РІ ФМ) | +----------------------------+-------+------------------------------------+ | ``IT_RECORD_ID`` | РўРёРї | ``/TRL/XDE_T_RECORD_ID`` | +----------------------------+-------+------------------------------------+ | ``I_COMMENT`` | РўРёРї | ``STRING`` | +----------------------------+-------+------------------------------------+ | ``IS_CERT`` | РўРёРї | ``/TRL/XDE_S_SAP_DOC_TYPE_CERT`` | +----------------------------+-------+------------------------------------+ | ``I_ONLY_CHECK`` | РўРёРї | ``XFELD`` | +----------------------------+-------+------------------------------------+ | ``I_UNAME`` | РўРёРї | ``SYUNAME`` | +----------------------------+-------+------------------------------------+ | ``I_ACCEPT`` | РўРёРї | ``XFELD`` | +----------------------------+-------+------------------------------------+ | ``EXPORTING`` (результаты ФМ РЅР° выходе) | +----------------------------+-------+------------------------------------+ | ``ES_RETURN`` | РўРёРї | ``/TRL/XDE_RETURN`` | +----------------------------+-------+------------------------------------+ | ``E_COMMENT`` | РўРёРї | ``STRING`` | +----------------------------+-------+------------------------------------+ | ``ES_HEADER`` | РўРёРї | ``/TRl/XDE_HEADER`` | +----------------------------+-------+------------------------------------+ Функциональный модуль может иметь Рё РґСЂСѓРіРёРµ параметры, РЅРѕ РѕРЅРё должны быть необязательными. Функциональный модуль, используемый РїРѕ умолчанию, содержит внедрение BAdI ``/TRL/XDE_CHECK_BADI`` для выполнения кастомных проверок после проверок, выполняемых РІ продукте xDE, РІ методах ``CHECK_IN_REVOKE_ACCEPT`` Рё ``CHECK_IN_REVOKE_REJECT``. РљСЂРѕРјРµ того, функциональный модуль, используемый РїРѕ умолчанию, содержит внедрение BAdI ``/TRL/XDE_SHIPMENT_BADI`` для работы СЃ отправлениями, Р° именно для возможности создания комментария перед выводом диалогового РѕРєРЅР° пользователю. Создание комментария выполняется РІ методе ``SET_COMMENT``. Функциональный модуль подписания входящих сообщений --------------------------------------------------- РРјСЏ ФМ подписания входящих сообщений хранится РІ таблице ``/TRL/XDE_CUST`` РїРѕ имени настройки ``FM_SHIP_IN_SIGN``. .. image:: ris31.png :scale: 100 % :align: center :alt: Настройка ``FM_SHIP_IN_SIGN`` Правила для ФМ РёР· этой настройки касаются интерфейса ФМ, СЃРј. РІ таблице ниже. .. table:: Параметры модуля подписания входящих сообщений :align: center :widths: 2 1 4 +----------------------------+-------+------------------------------------+ | Наименование параметра | РўРёРї | Название словарного типа или класс | +============================+=======+====================================+ | ``IMPORTING`` (попадают РІ ФМ) | +----------------------------+-------+------------------------------------+ | ``IT_RECORD_ID`` | РўРёРї | ``/TRL/XDE_T_RECORD_ID`` | +----------------------------+-------+------------------------------------+ | ``I_COMMENT`` | РўРёРї | ``STRING`` | +----------------------------+-------+------------------------------------+ | ``IS_CERT`` | РўРёРї | ``/TRL/XDE_S_SAP_DOC_TYPE_CERT`` | +----------------------------+-------+------------------------------------+ | ``I_ONLY_CHECK`` | РўРёРї | ``XFELD`` | +----------------------------+-------+------------------------------------+ | ``I_UNAME`` | РўРёРї | ``SYUNAME`` | +----------------------------+-------+------------------------------------+ | ``I_ACCEPT`` | РўРёРї | ``XFELD`` | +----------------------------+-------+------------------------------------+ | ``I_SIGN_ONLY`` | РўРёРї | ``/TRL/XDE_ED_FLAG_SIGN`` | +----------------------------+-------+------------------------------------+ | ``IT_DOC_TYPE_DATA`` | РўРёРї | ``/TRL/XDE_T_DOC_TYPE_DAT`` | +----------------------------+-------+------------------------------------+ | ``EXPORTING`` (результаты ФМ РЅР° выходе) | +----------------------------+-------+------------------------------------+ | ``ES_RETURN`` | РўРёРї | ``/TRL/XDE_RETURN`` | +----------------------------+-------+------------------------------------+ | ``E_COMMENT`` | РўРёРї | ``STRING`` | +----------------------------+-------+------------------------------------+ | ``ES_HEADER`` | РўРёРї | ``/TRL/XDE_HEADER`` | +----------------------------+-------+------------------------------------+ Функциональный модуль может иметь Рё РґСЂСѓРіРёРµ параметры, РЅРѕ РѕРЅРё должны быть необязательными. Функциональный модуль определения отложенной отправки ----------------------------------------------------- РРјСЏ ФМ определения отложенной отправки находится РІ таблице ``/TRL/XDE_CUST`` РїРѕ имени настройки ``FM_SHIP_SIGN_ONLY``. .. image:: ris32.png :scale: 100 % :align: center :alt: Настройка ``FM_SHIP_SIGN_ONLY`` .. table:: Параметры модуля определения отложенной отправки :align: center :widths: 2 1 4 +----------------------------+-------+------------------------------------+ | Наименование параметра | РўРёРї | Название словарного типа или класс | +============================+=======+====================================+ | ``IMPORTING`` (попадают РІ ФМ) | +----------------------------+-------+------------------------------------+ | ``IS_HEADER`` | РўРёРї | ``/TRL/XDE_HEADER`` | +----------------------------+-------+------------------------------------+ | ``EXPORTING`` (РЅР° выход ФМ) | +----------------------------+-------+------------------------------------+ | ``EV_SIGN_ONLY`` | РўРёРї | ``/TRL/XDE_ED_FLAG_SIGN`` | +----------------------------+-------+------------------------------------+ Функциональный модуль может иметь Рё РґСЂСѓРіРёРµ параметры, РЅРѕ РѕРЅРё должны быть необязательными. Функциональный модуль сортировки статусов ----------------------------------------- РРјСЏ функционального модуля сортировки статусов находится РІ таблице ``/TRL/XDE_CUST`` РїРѕ имени настройки ``FM_SORT_STATUS_NEW``. .. image:: ris33.png :scale: 87 :align: center :alt: Настройка ``FM_SORT_STATUS_NEW`` * Если настройку удалить – РЅРµ возникнет ошибки. * Если заполнить некорректно – вызова ФМ РЅРµ произойдет. .. table:: Параметры модуля сортировки статусов :align: center :widths: 2 1 4 +----------------------------+-------+------------------------------------+ | Наименование параметра | РўРёРї | Название словарного типа или класс | +============================+=======+====================================+ | ``IMPORTING`` (попадают РІ ФМ) | +----------------------------+-------+------------------------------------+ | ``IV_RECORD_ID`` | РўРёРї | ``/TRL/XDE_ED_RECORD_ID_EXT`` | +----------------------------+-------+------------------------------------+ | ``IT_STATUS`` | РўРёРї | ``/TRL/XDE_T_STATUS`` | +----------------------------+-------+------------------------------------+ | ``EXPORTING`` (РЅР° выход ФМ) | +----------------------------+-------+------------------------------------+ | ``ET_STATUS`` | РўРёРї | ``/TRL/XDE_T_STATUS`` | +----------------------------+-------+------------------------------------+