Создание запроса на массовое аннулирование пакета отправок¶
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(IT_RECORD_ID) TYPE /TRL/XDE_T_RECORD_ID OPTIONAL
*" VALUE(IV_COMMENT) TYPE STRING OPTIONAL
*" VALUE(IS_CERT) TYPE /TRL/XDE_S_SAP_DOC_TYPE_CERT OPTIONAL
*" VALUE(IV_UNAME) TYPE SYUNAME DEFAULT SY-UNAME
*" VALUE(IV_ONLY_CHECK) TYPE XFELD 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_REVOKE_REQ2
создает запрос на массовое аннулирование отправки.
Параметр |
Описание |
---|---|
|
|
|
Набор уникальных идентификаторов отправки. |
|
Комментарий – причина запроса на аннулирование. |
|
Сертификат для подписания запроса на аннулирование. |
|
Пользователь системы SAP, запросивший аннулирование. |
|
Если равен «X», то выполняется проверка возможности создания запроса на аннулирование отправки, при этом непосредственно отправка запроса в систему ОЭД не выполняется. |
|
|
|
Код и описание ошибки в случае, если операцию выполнить не удалось. |
|
Если |
|
Заголовок отправки. |
Запускается цикл по набору идентификаторов отправок. В случае если ФМ запущен не в режиме проверки – ставится блокировка на запись в БД.
Если блокировка не удалась, то
es_return-code
присваивается «1011» (ошибка блокирования записи). Также вes_return-text
записывается текущее системное сообщение, после этого происходит выход из ФМ. Также заполняетсяes_header
для того, чтобы вывести информацию о типе документа и номере пакета, с которым возникла проблема.Получаем данные по отправлениям с помощью
/TRL/XDE_GET_SHIPMENTS
.Если работа ФМ
/TRL/XDE_GET_SHIPMENTS
завершилась с ошибкой –es_return-code
заполняется «1106» (не удалось найти отправление).es_return-text
будет присвоен текст «Внутренняя ошибка. Не удалось найти объект «Отправление»». Также заполняетсяes_header
для того, чтобы вывести информацию о типе документа и номере пакета, с которым возникла проблема.Далее выполняется проверка полномочий и блокировка всех отправлений пакета.
Если функция запущена не с целью проверки, то выполняется поиск пользовательских маршрутов с кастомными статусами для отправки. В случае ошибки заполняется переменная
es_return
иes_header
, блокировки снимаются. Если маршрут и кастомный статус был найден, происходит переход к следуюшей отправке.Примечание
В текущей версии Продукта компонент для работы с кастомными статусами не поддерживается. Выполнение данного алгоритма не влияет на работу текущего функционала.
Если в результате этих операций поле
es_return-code
не пусто – снимаются блокировки и происходит выход из ФМ.На этом заканчивается цикл по идентификаторам отправок. Затем находится имя ФМ для отправки запроса на аннулирование и проверяется, что он существует в системе и активен.
Если в результате получена пустая переменная (название ФМ для аннулирования) -
es_return-code
будет заполнено значением «1008» (проблемы с настройками). А вes_return-text
попадет сообщение «Не задан ФМ обработки аннулирования (/TRL/XDE_OED_TY
)». Снимаются блокировки и происходит выход из ФМ.Вызов найденного ФМ. После чего снимаются блокировки и работа ФМ завершается.
Данная API функция подразумевает возможность расширения для заказчика.
Важно
При использовании явных или неявных операторов COMMIT WORK
и ROLLBACK WORK
в расширениях корректная работа API-функций не гарантируется!
Функциональный модуль запроса на аннулирование¶
Имя ФМ отправки запроса на аннулирование хранится в таблице /TRL/XDE_CUST
по имени настройки FM_REVOKE_REQ
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть не обязательными.
Функциональный модуль, используемый по умолчанию, содержит внедрение BAdI /TRL/XDE_CHECK_BADI
для выполнения кастомных проверок после проверок,
выполняемых в продукте xDE, в методе CHECK_REQUEST_REVOKE
.
Кроме того, функциональный модуль, используемый по умолчанию, содержит внедрение BAdI /TRL/XDE_SHIPMENT_BADI
для работы с отправлениями,
а именно для возможности создания комментария перед выводом диалогового окна пользователю. Создания комментария выполняется в методе SET_COMMENT
.