Получение всех отправок для заданной отправки¶
*"--------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(IV_RECORD_ID) TYPE /TRL/XDE_HEADER-RECORD_ID
*" VALUE(IV_REL_TYPE) TYPE /TRL/XDE_SHIP_RL-RTYPE DEFAULT
*" 'RSP'
*" VALUE(IV_MAX_LEVEL) TYPE I DEFAULT 1
*" EXPORTING
*" VALUE(ET_RELATIONS) TYPE /TRL/XDE_T_RECORD_ID
*"--------------------------------------------------------------------
Функциональный модуль /TRL/XDE_API_SHIPM_GET_RELATS
предназначен для получения всех связанных (родительских, дочерних или без указания иерархии) отправок для
заданной отправки.
Внимание
Для работы со связанными документами создан новый функциональный модуль /TRL/XDE_API_SHIPM_GET_RELATS2
, принцип работы которого не изменился,
но изменился выходной параметр ET_RELATIONS
. В новом ФМ помимо списка идентификаторов возвращается и идентификатор документа, тип связи из
идентификатор связанного документа.
Параметр |
Описание |
---|---|
|
|
|
Уникальный идентификатор отправки, для которой выполняется поиск связанных отправок. |
|
Тип связи между отправками. |
|
Максимальная глубина поиска. Если указано значение больше 1, то выполняется рекурсивный поиск («дочерние к дочерним», «родительская к родительской»). |
|
|
|
Список связанных отправок. Содержит все записи из ET_CHILDREN, ET_PARENTS и ET_LINKS |
Сразу вызывается ФМ /TRL/XDE_GET_SHIPMENTS_RELATS
. Этот ФМ определяет связи с другими поставками до определенного максимального уровня.
Если окажется, что текущий уровень выше максимального, работа ФМ закончится. Также ФМ является рекурсивным, т.е. вызывается сам в себе.
Вызывается ФМ /TRL/XDE_API_SHIPM_GET_PARENTS
. Этот ФМ получает все родительские пакеты и также является рекурсивным.
Логика поиска связанных документов основана на выборке из таблицы /TRL/XDE_SHIP_RL
. В результате работы ФМ мы получим внутреннюю таблицу lt_parents
.
Вызывается ФМ /TRL/XDE_API_SHIPM_GET_SHILD
. Этот ФМ получает все дочерние пакеты и также является рекурсивным. Логика поиска связанных документов основана
на выборке из таблицы /TRL/XDE_SHIP_RL
. В результате работы ФМ мы получим внутреннюю таблицу lt_children
.
Вызывается ФМ /TRL/XDE_API_SHIPM_GET_LINKS
. Этот ФМ получает все связанные документы без указания иерархии. Логика поиска связанных документов основана
на выборке из таблицы /TRL/XDE_SHIP_RL
. В результате работы ФМ мы получим внутреннюю таблицу lt_links
.
Из полученных lt_children
, lt_parents
и lt_links
удаляются все записи по текущей отправке, после этого записи из этих таблиц добавляются в выходную
таблицу et_reations
.
Далее увеличиваем текущий уровень и в цикле по родительским пакетам и дочерним пакетам – запускаем для каждой записи ФМ /TRL/XDE_GET_SHIPMENT_RELATS
, но уже с указанием уровня.
Таким образом будет развернута вся цепочка родительских и дочерних пакетов.
После всех манипуляций, когда программа вернется в первый по очереди вызов ФМ, произойдет заключительная сортировка выходящей таблицы et_relations
и удаление дубликатов.