Получение всех родительских отправок для заданной отправки

*"--------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(IV_RECORD_ID) TYPE  /TRL/XDE_HEADER-RECORD_ID
*"     REFERENCE(IV_REL_TYPE) TYPE  /TRL/XDE_SHIP_RL-RTYPE
*"     REFERENCE(IV_MAX_LEVEL) TYPE  INT3 DEFAULT '1'
*"  EXPORTING
*"     REFERENCE(ET_PARENTS) TYPE  /TRL/XDE_T_RECORD_ID
*"  CHANGING
*"     VALUE(CV_LEVEL) TYPE  INT3 OPTIONAL
*"  EXCEPTIONS
*"      NOTHING_FOUND
*"      LEVEL_ERROR
*"--------------------------------------------------------------------

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

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

Параметр

Описание

IMPORTING

IV_RECORD_ID

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

IV_REL_TYPE

Тип связи между отправками.

IV_MAX_LEVEL

Максимальная глубина поиска. Если указано значение больше 0, то выполняется рекурсивный поиск («родительская к родительской»).

EXPORTING

ET_PARENTS

Список родительских отправок.

CHANGING

CV_LEVEL

Для внутреннего использования.

EXCEPTIONS

NOTHING_FOUND

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

LEVEL_ERROR

Для внутреннего использования.

Функциональный модуль является рекурсивным, поэтому сначала чистим выходную таблицу et_parents и проверяем, что параметр cv_level меньше или равен максимальному iv_max_level.

Если всё в порядке – выбираем данные из таблицы /TRL/XDE_SHIP_RL и для каждой записи также запускаем ФМ /TRL/XDE_API_SHIPM_GET_PARENTS рекурсивно. Если в ходе выполнения данного ФМ найдутся данные – они добавляются к найденным ранее.