Получение всех родительских отправок для заданной отправки ========================================================== .. code:: abap *"-------------------------------------------------------------------- *"*"Локальный интерфейс: *" 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`` предназначен для получения всех родительских отправок для заданной отправки. .. table:: Описание интерфейса функционального модуля ``/TRL/XDE_API_SHIPM_GET_PARENTS`` :align: center :widths: 2 8 +------------------------------------+-------------------------------------------------------------------------------------------------------+ | Параметр | Описание | +====================================+=======================================================================================================+ | ``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`` рекурсивно. Если в ходе выполнения данного ФМ найдутся данные – они добавляются к найденным ранее.