Получение информации об отправителе и получателе¶
*"--------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" REFERENCE(IS_OBJECT) TYPE BORIDENT
*" REFERENCE(IV_ID_OED) TYPE /TRL/XDE_HEADER-ID_OED OPTIONAL
*" REFERENCE(IV_FLAG_DISPLAY) DEFAULT ''
*" EXPORTING
*" REFERENCE(EV_ID_OED) TYPE /TRL/XDE_HEADER-ID_OED
*" REFERENCE(EV_ID_BOX_SAP) TYPE /TRL/XDE_HEADER-ID_BOX_SAP
*" REFERENCE(EV_ID_BOX_OED) TYPE /TRL/XDE_HEADER-ID_BOX_OED
*" REFERENCE(EV_ID_BOX_CAR) TYPE /TRL/XDE_HEADER-ID_BOX_CAR
*" REFERENCE(EV_SENTYPE) TYPE /TRL/XDE_HEADER-SENTYPE
*" REFERENCE(EV_SENDER) TYPE /TRL/XDE_HEADER-SENDER
*" REFERENCE(EV_RECTYPE) TYPE /TRL/XDE_HEADER-RECTYPE
*" REFERENCE(EV_RECEIVER) TYPE /TRL/XDE_HEADER-RECIEVER
*" REFERENCE(EV_BUKRS) TYPE BUKRS
*" REFERENCE(EV_CARRIER) TYPE /TRL/XDE_HEADER-CARRIER
*" REFERENCE(EV_CARTYPE) TYPE /TRL/XDE_HEADER-CARTYPE
*" EXCEPTIONS
*" NO_FOUND_SENDER
*" NO_FOUND_RECIEVER
*" NO_FOUND_SENDER_DATA
*" NO_FOUND_RECIEVER_DATA
*" ERROR
*" USER_CANCEL
Функциональный модуль /TRL/XDE_API_BO_GET_PARTNERS
предназначен для получения информации об отправителе и получателе исходящего документооборота для инстанции бизнес-объекта SAP.
Параметр |
Описание |
---|---|
|
|
|
Тип и ключ бизнес-объекта SAP. |
|
Идентификатор оператора (см. таблицу |
|
Если параметр равен «X» и найдено несколько возможных вариантов отправителя/получателя, то
пользователю выводится экран выбора отправителя/получателя. В противном случае берутся
отправитель/получатель, отмеченный флагом «По умолчанию» в таблице |
|
|
|
Идентификатор оператора, для которого определены отправитель/получатель. |
|
Идентификатор ящика отправителя в системе ОЭД. |
|
Идентификатор ящика получателя в системе ОЭД. |
|
Идентификатор ящика перевозчика в системе ОЭД. |
|
Тип отправителя: «K» - кредитор, «D» - дебитор. |
|
Идентификатор контрагента SAP, соответствующий отправителю документа. Если |
|
Тип получателя: «K» - кредитор, «D» - дебитор. |
|
Идентификатор контрагента SAP, соответствующий получателю документа. Если |
|
Балансовая единица. Заполнен в случае, если в качестве отправителя используется Балансовая единица. |
|
Тип перевозчика: «K» - кредитор, «D» - дебитор. |
|
Идентификатор контрагента SAP, соответствующий получателю документа. Если |
|
|
|
Отправитель не найден. |
|
Получатель не найден. |
|
Не найдена информация об отправителе (ящик в системе ОЭД и т.д.). |
|
Не найдена информация о получателе (ящик в системе ОЭД и т.д.). |
|
Неизвестная ошибка. |
|
Выбор отправителя/получателя отменен пользователем. |
Функциональный модуль для определения отправителя/получателя вызывает внутри себя функциональный модуль /TRL/XDE_GET_AGENTS_BOX_BY_OBJ
.
Этот модуль в первую очередь получает контрагентов. Для этого выполняется поиск настраиваемого функционального модуля по имени настройки «FM_SHIP_OUT_PARTNERS»
в таблице /TRL/XDE_CUST
.
Если имя ФМ найдено и этот ФМ существует в системе и активен, происходит вызов настроенного ФМ (в качестве примера можно посмотреть ФМ /TRL/XDE_OUT_GET_AGENTS
).
Если ФМ не найден, будет вызвана особая ситуация ERROR c текстом сообщения «Не задан ФМ определения выставителя/получателя (/TRL/XDE_SHIP_TY
)».
Если в результате работы этого ФМ поле получатель оказалось пустым, вызывается особая ситуация NO_FOUND_RECEIVER
(Получатель не найден) с сообщением «Не удалось определить получателя для документа».
Подобным образом проверяется отправитель. Если отправитель и БЕ не содержат данных, вызывается особая ситуация NO_FOUND_SENDER (Получатель не найден) с сообщением «Не удалось определить отправителя для документа».
Далее заполняются тип отправителя и получателя, балансовая единица.
В результате будет получен доступный список адресатов отправителя и доступный список адресатов получателя.
Если результат выборки адресатов отправителя нулевой (ничего не найдено), вызывается особая ситуация
NO_FOUND_SENDER_DATA
(Данные отправителя не найдены) с сообщением «Не удалось определить данные ОЭД для отправителя».Если результат выборки адресатов получателя нулевой (ничего не найдено), вызывается особая ситуация
NO_FOUND_RECEIVER_DATA
(Данные получателя не найдены) с сообщением «Не удалось определить данные ОЭД для получателя».
Выбор ОЭД и ящика получателя происходит следующим образом.
Если входной параметр I_FLAG_DISPLAY = пусто
, то берутся данные из доступного списка адресатов получателя, у которых поле flag_default = X
.
Если таких данных не найдено, вызывается особая ситуация NO_FOUND_RECIEVER_DATA
с сообщением «Не удалось определить данные ОЭД для получателя».
Если данные из доступного списка адресатов содержат лишь одну запись, берется эта запись. Если записей несколько, запускается средство поиска и пользователю предоставляется выбор.
Если в итоге данные по идентификатору ОЭД или налоговому идентификатору окажутся пустыми, вызывается особая ситуация NO_FOUND_RECEIVER_DATA
(Данные получателя не найдены)
с сообщением «Не удалось определить данные ОЭД для получателя».
Запускается цикл по доступному списку адресатов отправителя и для каждой записи выполняется выборка из таблицы /TRL/XDE_OED_BX
. Как только будет найдена запись, происходит выход из цикла.
Если ничего не найдено, вызывается особая ситуация NO_FOUND_SENDER_DATA
(Данные отправителя не найдены) с сообщением «Не удалось определить данные ОЭД для отправителя».
Окончательная обработка работы ФМ /TRL/XDE_GET_AGENTS_BOX_BY_OBJ
.
Если
sy-subrc = 0
. Всё в порядке, выход из ФМ;Если
sy-subrc = 1
. Вызывается особая ситуацияNO_FOUND_SENDER
;Если
sy-subrc = 2
. Вызывается особая ситуацияNO_FOUND_RECIEVER
;Если
sy-subrc = 3
. Вызывается особая ситуацияNO_FOUND_SENDER_DATA
;Если
sy-subrc = 4
. Вызывается особая ситуацияNO_FOUND_RECIEVER_DATA
;Если
sy-subrc = 6
. Вызывается особая ситуацияUSER_CANCEL
;В других случаях вызывается особая ситуация
ERROR
.
Данная API функция подразумевает возможность расширения для заказчика.
Важно
При использовании явных или неявных операторов COMMIT WORK
и ROLLBACK WORK
в расширениях корректная работа API-функций не гарантируется!
Функциональный модуль определения данных контрагентов документооборота¶
При получении настроек в ракурсе /TRL/XDE_CUST
имеется настройка «FM_SHIP_OUT_PARTNERS».

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