Создание запроса на аннулирование отправки

*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(IV_RECORD_ID) TYPE  /TRL/XDE_HEADER-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
*"----------------------------------------------------------------------
*"----------------------------------------------------------------------

Функциональный модуль /TRL/XDE_API_SHIPM_REVOKE_REQ создает запрос на аннулирование отправки.

Таблица 100 Описание интерфейса функционального модуля /TRL/XDE_API_SHIPM_REVOKE_REQ

Параметр

Описание

IMPORTING

IV_RECORD_ID

Уникальный идентификатор отправки.

IV_COMMENT

Комментарий – причина запроса на аннулирование.

IS_CERT

Сертификат для подписания запроса на аннулирование.

IV_UNAME

Пользователь системы SAP, запросивший аннулирование.

IV_ONLY_CHECK

Если равен «X», то выполняется проверка возможности создания запроса на аннулирование отправки, при этом непосредственно отправка запроса в систему ОЭД не выполняется.

EXPORTING

ES_RETURN

Код и описание ошибки в случае, если операцию выполнить не удалось.

EV_COMMENT

Если IV_COMMENT не заполнен – содержит комментарий, введенный пользователем. Иначе равен IV_COMMENT.

В случае если ФМ запущен не в режиме проверки – ставится блокировка на запись в БД.

  • Если блокировка не удалась, то es_return-code присваивается «1011» (ошибка блокирования записи). Также в es_return-text записывается текущее системное сообщение, после этого происходит выход из ФМ.

    Получаем данные по отправлению с помощью /TRL/XDE_GET_SHIPMENTS.

  • Если работа ФМ /TRL/XDE_GET_SHIPMENTS завершилась с ошибкой – es_header-code заполняется «1106» (не удалось найти отправление). es_header-text будет присвоен текст «Внутренняя ошибка. Не удалось найти объект «Отправление»».

    Далее выполняется проверка полномочий и блокировка всех отправлений пакета.

    Если функция запущена не с целью проверки, то выполняется поиск пользовательских маршрутов с кастомными статусами для отправки. В случае ошибки заполняется переменная es_return, блокировки снимаются. Если маршрут и кастомный статус был найден - снимаются блокировки и происходит выход из функционального модуля.

    Примечание

    В текущей версии Продукта компонент для работы с кастомными статусами не поддерживается. Выполнение данного алгоритма не влияет на работу текущего функционала.

  • Если в результате этих операций поле 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.

Настройка ``FM_REVOKE_REQ``

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.

Таблица 101 Параметры модуля запроса на аннулирование

Наименование параметра

Тип

Название словарного типа или класс

IMPORTING (попадают в ФМ)

I_RECORD_ID

Тип

/TRL/XDE_ED_RECORD_ID_EXT

I_COMMENT

Тип

STRING

IS_CERT

Тип

/TRL/XDE_S_SAP_DOC_TYPE_CERT

I_UNAME

Тип

SYUNAME

I_ONLY_CHECK

Тип

XFELD

EXPORTING (результаты ФМ на выходе)

ES_RETURN

Тип

/TRL/XDE_RETURN

E_COMMENT

Тип

STRING

Функциональный модуль может иметь и другие параметры, но они должны быть не обязательными.

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

Примечание

Для использования пакетного подписания с целью оптимизации времени следует использовать новую API-функцию /TRL/XDE_API_SHIPM_REVOKE_REQ2.