Создание исходящей отправки¶
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(IV_OPERATOR) TYPE /TRL/XDE_OED-ID_OED OPTIONAL
*" VALUE(IV_PACKAGE_TYPE) TYPE /TRL/XDE_ED_PACKAGE_TYPE OPTIONAL
*" VALUE(IV_NEED_APPROVE) TYPE XFELD OPTIONAL
*" VALUE(IV_DIALOG) TYPE XFELD DEFAULT ''
*" VALUE(IS_OBJECT) TYPE BORIDENT
*" VALUE(IS_CERTIFICATE) TYPE /TRL/XDE_S_SAP_DOC_TYPE_CERT
*" OPTIONAL
*" VALUE(IS_PARTNER_DATA) TYPE /TRL/XDE_S_SHIP_PARTNER OPTIONAL
*" VALUE(IS_DEPARTMENT_DATA) TYPE /TRL/XDE_S_DEPARTMENT_DATA
*" OPTIONAL
*" VALUE(IS_SENDER_BOX) TYPE /TRL/XDE_BOX_ID OPTIONAL
*" VALUE(IS_RECEIVER_BOX) TYPE /TRL/XDE_BOX_ID OPTIONAL
*" VALUE(IS_CARRIER_BOX) TYPE /TRL/XDE_BOX_ID OPTIONAL
*" REFERENCE(IT_DOC_TYPE_DATA) TYPE /TRL/XDE_T_DOC_TYPE_DATA
*" OPTIONAL
*" REFERENCE(IT_RELATIONS) TYPE /TRL/XDE_T_RELATION_DATA OPTIONAL
*" REFERENCE(IV_NREADY) TYPE XFLD OPTIONAL
*" REFERENCE(IV_BPROC) TYPE /TRL/XDE_ED_PROCESS OPTIONAL
*" REFERENCE(IV_COMMIT) TYPE FLAG_X DEFAULT 'X'
*" REFERENCE(IV_NO_SIGN) TYPE FLAG_X OPTIONAL
*" EXPORTING
*" REFERENCE(ET_HEADER) TYPE /TRL/XDE_T_HEADER
*" REFERENCE(ET_RETURN) TYPE BAPIRET2_T
*"----------------------------------------------------------------------
Функциональный модуль /TRL/XDE_API_SHIPM_OUT_ADD
создает исходящие отправки.
Параметр |
Описание |
---|---|
|
|
|
Идентификатор оператора, через которого должна быть выполнена отправка документов. Параметр обязателен для заполнения при фоновой отправке. |
|
Способ отправки («» – одиночная/«PGR» – пакетная). |
|
Флаг: требуется согласование. Если передано значение «X», то отправка создается без подписания и
не добавляется в очередь отправки. Статус отправки после создания задается настройкой
|
|
Флаг: создать отправки в диалоговом режиме. Если равен «X», то создание отправок выполняется в диалоговом режиме, иначе в фоновом. |
|
Тип и ключ бизнес-объекта SAP, для которого создаются отправки. Параметр должен быть заполнен. |
|
Сертификат для подписания отправок. Если не заполнен и IV_NEED_APPROVE = «», то определяется автоматически на основе настроек подписания для пользователя. Если IV_NEED_APPROVE = «X», значение параметра игнорируется. |
|
Данные отправителя/получателя. Параметр обязателен для заполнения при фоновой отправке. |
|
Данные о подразделении |
|
Данные ящика отправителя в системе ОЭД. Параметр обязателен для заполнения при фоновой отправке. |
|
Данные ящика получателя в системе ОЭД. Параметр обязателен для заполнения при фоновой отправке. |
|
Данные ящика перевозчика в системе ОЭД. Параметр обязателен для заполнения при фоновой отправке. |
|
Список документов для отправки. Для каждой записи, указанной в таблице, будет создана отдельная отправка. Параметр обязателен для заполнения при фоновой отправке. Для каждого документа в таблице может быть указана следующая информация:
Для неформализованных документов обязательно должны быть заполнены либо бинарные данные документа
(поле Для формализованных документов должны быть заполнены либо бинарные данные документа
(поле |
|
Список связанных отправок. |
|
Отложенная отправка. Необходим для установки статуса R1. |
|
Код бизнес-процесса. Используется для массовой отправки |
|
Флаг выполнения коммита. По умолчанию принимает значение «X» |
|
Флаг отправки без подписи. По умолчанию принимает пустое значение |
|
|
|
Список созданных отправок. |
|
Таблица сообщений с результатами создания отправок. |
Если стоит флаг диалогового режима – достаем данные по настройке PRD_MODULE
, после чего создается объект логирования.
Выполняем проверку полномочий на действия «Подписать» и «Поставить в очередь отправки» вне зависимости от режима работы ФМ.
Если проверка полномочий провалится – в лог будет добавлено сообщением «Нет полномочий на выполнение операции» и работа ФМ закончится. Если при этом будет стоять флаг диалогового режима – сразу будет выведен лог.
Поиск ФМ для проверки возможности отправки для БО. Ищется по настройке FM_SHIP_OUT_CHKBEFORSEND
. Если нашли – вызывается этот функциональный модуль.
Если настройка не заполнена – ошибки не возникнет.
Если в ходе работы настроенного ФМ возникнет ошибка – в лог будет добавлено текущее сообщение, сформированное в ФМ и произойдет выход из ФМ. В случае диалогового режима – сразу будет выведен лог.
Далее сильное разделение по функционалу в зависимости от режима.
В случае диалогового режима – определяем партнеров документооборота с помощью ФМ /TRL/XDE_GET_SHIP_OUT_PARTNERS
. Этот ФМ достает имя модуля из настройки FM_SHIP_OUT_PARTNERS
и делает вызов.
Если в ходе выполнения ФМ
/TRL/XDE_GET_SHIP_OUT_PARTNERS
возникнут ошибки – в лог будет добавлено системное сообщение, выведен лог и произойдет выход из ФМ.Далее ищем ФМ создания отправки по имени настройки
FM_SHIP_OUT_ADD_DIALOG
.
Если ФМ не найден – будет выведен лог с сообщением «& & & Не задан ФМ постановки в очередь отправки (
/TRL/XDE_SHIP_TY
)», после произойдет выход из ФМ.Вызов найденного ФМ создания отправки.
Если пользователь отменит создание – произойдет выход из ФМ
Если возникнет другая ошибка – будет выведен лог с текущим системным сообщением, после чего произойдет выход из ФМ
В случае если ФМ запущен не в диалоговом режиме – выполняем цикл по входной таблице IT_DOC_TYPE_DATA
и ищем ФМ для проверки документа перед постановкой документа по имени настройки FM_BSET
.
Если имя ФМ найдено – происходит вызов ФМ проверки документа перед постановкой.
Если в ходе выполнения ФМ была вызвана особая ситуация
EXCLUDE_FROM_LIST
– удаляем текущую запись из входной таблицыIT_DOC_TYPE_DATA
.Если в ходе выполнения ФМ возникла какая-либо другая ошибка – в лог добавляется текущее системное сообщение.
Далее выполняются шаги, независимые от режима запуска функционального модуля. Вызов ФМ
/TRL/XDE_SHIPMENT_OUT_ADD
. Этот ФМ для постановки единичного документа в очередь отправки. В цикле по списку документов для отправки – получаем настройки вида документа SAP и выполняем проверку, что для неформализованных документов должны быть заполнены бинарные данные или ссылка на документ в архиве.
Если не будут найдены настройки по типу пакетной отправки в
/TRL/XDE_SOUT_TY
– в лог будет добавлено сообщение «Осуществите ведение видов док-ов отправок ОЭД для вида док-та SAP & &»Если для неформализованных документов не заполнены ни бинарные данные, ни ссылки на архив – добавляем в лог сообщение «& & & Нет документов для отправки». Это считается ошибкой и после такого ФМ закончит свою работу.
Далее для пакетной отправки – определяем номер пакета и позиции пакетной отправки. После чего в цикле по документам вызывается ФМ
/TRL/XDE_ADD_SHIPMENTS_OUT
, который добавляет исходящее отправление. Этот ФМ собирает данные, находит настраиваемые ФМ для постановки документов в очередь, выполняет проверку полномочий, определяет способ подписания и сертификата, выполняет сбор данных (или просто подставляет данные из бинарных данных/ссылок на документ в архиве), вызов ФМ изменений перед отправкой, вызов ФМ конвертации данных в формат передачи, подписывает документы, сохраняет в архив, связывает с БО, связывает с другими отправлениями, сохраняет длинные тексты, обновляет таблицы и вызывает ФМ обновления статуса.
Данная API-функция подразумевает возможность расширения для заказчика.
Важно
При использовании явных или неявных операторов COMMIT WORK
и ROLLBACK WORK
в расширениях корректная работа API-функций не гарантируется!
Функциональный модуль проверки возможности выполнения отправки для бизнес-объекта¶
Имя функционального модуля проверки возможности выполнения отправки для бизнес-объекта хранится в таблице /TRL/XDE_CUST
по имени настройки FM_SHIP_OUT_CHKBEFORSEND
.

Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль определения данных контрагентов документооборота¶
Имя функционального модуля определения данных контрагентов документооборота хранится в таблице /TRL/XDE_CUST
по имени настройки FM_SHIP_OUT_PARTNERS
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль отображения экрана отправки исходящих документов¶
Имя функционального модуля отображения экрана отправки исходящих документов находится в таблице /TRL/XDE_CUST
по имени настройки FM_SHIP_OUT_ADD_DIALOG
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль проверки перед постановкой документа¶
Имя функционального модуля проверки перед постановкой документа хранится в таблице /TRL/XDE_CUST
по имени настройки FM_BSET
.
Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль постановки документа в очередь отправки¶
Имя функционального модуля постановки документа в очередь отправки хранится в таблице /TRL/XDE_CUST
по имени настройки FM_FCS
.
Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль определения способа подписания и сертификата¶
Имя функционального модуля определения способа подписания и сертификата хранится в таблице /TRL/XDE_CUST
по имени настройки FM_GET_CERT
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль формирования данных для отправки¶
Имя функционального модуля формирования данных для отправки хранится в таблице /TRL/XDE_CUST
по имени настройки FM_BDT
.
Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль для формирования XML-файла для передачи¶
Имя функционального модуля для формирования XML-файла для передачи находится в таблице /TRL/XDE_CUST
по имени настройки FM_XML_BLD
.
Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль для подписания исходящего отправления¶
Имя функционального модуля для подписания исходящего отправления находится в таблице /TRL/XDE_CUST
по имени настройки FM_SHIP_OUT_SIGN
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
||
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль для получения данных из архива¶
Имя функционального модуля для получения данных из архива хранится в таблице /TRL/XDE_AS_CUST
поле FM_DOC_GET
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль удаления из архива¶
Имя функционального модуля удаления из архива лежит в таблице /TRL/XDE_AS_CUST
поле FM_DOC_DEL
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль отправки документа в архив¶
Имя функционального модуля отправки документа в архив находится в таблице /TRL/XDE_AS_CUST
поле FM_DOC_PUT
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль обработки события изменения статуса отправления¶
Имя функционального модуля обработки события изменения статуса отправления хранится в таблице /TRL/XDE_CUST
по имени настройки FM_SET_EVENT
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
|
||
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.
Функциональный модуль для обработки после выставления статуса¶
Имя функционального модуля для обработки после выставления статуса содержится в таблице /TRL/XDE_STATE
, поле FMAST
.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.
Наименование параметра |
Тип |
Название словарного типа или класс |
---|---|---|
|
||
|
Тип |
|
|
Тип |
|
Функциональный модуль может иметь и другие параметры, но они должны быть необязательными.