Изменение статуса отправки ========================== .. code:: abap *"-------------------------------------------------------------------- *"*"Локальный интерфейс: *" IMPORTING *" REFERENCE(IV_RECORD_ID) TYPE /TRL/XDE_HEADER-RECORD_ID *" REFERENCE(IV_STATE) TYPE /TRL/XDE_HEADER-STATE OPTIONAL *" REFERENCE(IV_ERROR_DETAILS) TYPE /TRL/XDE_STATUS-ERROR_DETAILS *" OPTIONAL *" REFERENCE(IV_EVENT_ID) TYPE /TRL/XDE_STATUS-EVENT_ID OPTIONAL *" REFERENCE(IV_OED_DATE) TYPE /TRL/XDE_STATUS-OED_DATE OPTIONAL *" REFERENCE(IV_OED_TIME) TYPE /TRL/XDE_STATUS-OED_TIME OPTIONAL *" REFERENCE(IV_ST_DOC) TYPE /TRL/XDE_STATUS-ST_DOC OPTIONAL *" REFERENCE(IV_SENDERNAME) TYPE /TRL/XDE_STATUS-SENDERNAME *" OPTIONAL *" REFERENCE(IV_SENDERCOMPANY) TYPE /TRL/XDE_STATUS-SENDERCOMPANY *" OPTIONAL *" REFERENCE(IV_COMMENT) TYPE STRING OPTIONAL *" EXPORTING *" REFERENCE(ES_HEADER) TYPE /TRL/XDE_HEADER *" REFERENCE(ES_STATUS) TYPE /TRL/XDE_STATUS *" EXCEPTIONS *" NOT_FOUND *" NOT_PREVIOUS_STATUS_FOUND *" BLOCKED *"-------------------------------------------------------------------- Функциональный модуль ``/TRL/XDE_API_SHIPM_SET_STATUS`` предназначен для изменения статуса отправки. .. table:: Описание интерфейса функционального модуля ``/TRL/XDE_API_SHIPM_SET_STATUS`` :align: center :widths: 5 8 +------------------------------------+-------------------------------------------------------------------------------------------------------+ | Параметр | Описание | +====================================+=======================================================================================================+ | ``IMPORTING`` | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_RECORD_ID`` | Уникальный идентификатор отправки. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_STATE`` | Новый статус отправки. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_ERROR_DETAILS`` | Описание ошибки (для статуса E). | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_EVENT_ID`` | ID события в системе ОЭД. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_OED_DATE`` | Дата выставления события в системе ОЭД. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``VI_OED_TIME`` | Время выставления события в системе ОЭД. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_ST_DOC`` | Название статуса. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_SENDERNAME`` | Имя отправителя. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_SENDERCOMPANY`` | Компания отправителя. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``IV_COMMENT`` | Комментарий пользователя. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``EXPORTING`` | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``ES_HEADER`` | Данные заголовка отправки. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``ES_STATUS`` | Данные статуса. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``EXCEPTIONS`` | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``NOT_FOUND`` | Отправка не найдена. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``NOT_PREVIOUS_STATUS_FOUND`` | Не найден текущий статус. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ | ``BLOCKED`` | Отправка блокирована. | +------------------------------------+-------------------------------------------------------------------------------------------------------+ Установка блокировки по номеру отправления. * Если возникнет ошибка – будет вызвана особая ситуация ``BLOCKED`` с текущим системным сообщением. Вызов ФМ ``/TRL/XDE_SET_STATUS_FOR_SHIPM``, который добавляет статус для отправки. Внутри выполняются проверки, что для данной отправки можно установить такой статус, проверяются уровни статусов, сохраняется комментарий и обновляются таблицы ``/TRL/XDE_HEADER``, ``/TRL/XDE_HDR_ATR``, ``/TRL/XDE_STATUS``, ``/TRL/XDE_SIGN``. * Если в ходе выполнения ФМ ``/TRL/XDE_SET_STATUS_FOR_SHIPM`` возникли какие-либо особые ситуации – выдаем текущее системное сообщение. Снимаем блокировки. Проверяем работу ФМ на наличие ошибок. Далее, в зависимости от кода ``SY-SUBRC`` вызываются особые ситуации ``NOT_FOUND``, ``NOT_PREVIOUS_STATUS_FOUND``, ``NOT_FOUND`` с текущим системным сообщением. Данная API-функция подразумевает точки расширения для заказчика. .. important:: При использовании явных или неявных операторов ``COMMIT WORK`` и ``ROLLBACK WORK`` в расширениях корректная работа API-функций не гарантируется! Функциональный модуль обработки события смены статуса отправления ----------------------------------------------------------------- Имя функционального модуля обработки события смены статуса отправления содержится в таблице ``/TRL/XDE_CUST`` по имени настройки ``FM_SET_EVENT``. Данный ФМ вызывается при изменении статуса отправления. .. image:: ris28.png :scale: 88 :align: center :alt: Настройка FM_SET_EVENT Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже. .. table:: Параметры модуля обработки события смены статуса отправления :align: center :widths: 2 1 4 +----------------------------+-------+------------------------------------+ | Наименование параметра | Тип | Название словарного типа или класс | +============================+=======+====================================+ | ``IMPORTING`` (попадают в ФМ) | +----------------------------+-------+------------------------------------+ | ``IS_HEADER`` | Тип | ``/TRL/XDE_HEADER`` | +----------------------------+-------+------------------------------------+ | ``IS_STATUS`` | Тип | ``/TRL/XDE_STATUS`` | +----------------------------+-------+------------------------------------+ | ``TABLES`` (таблицы) | +----------------------------+-------+------------------------------------+ | ``IT_DOCUMENTS`` | Тип | ``/TRL/XDE_DOCUM`` | +----------------------------+-------+------------------------------------+ Функциональный модуль сортировки статусов ----------------------------------------- Имя функционального модуля сортировки статусов находится в таблице ``/TRL/XDE_CUST`` по имени настройки ``FM_SORT_STATUS_NEW``. .. image:: ris29.png :scale: 87 :align: center :alt: Настройка FM_SORT_STATUS_NEW * Если настройку удалить – не возникнет ошибки. * Если заполнить некорректно – вызова ФМ не произойдет. .. table:: Параметры модуля сортировки статусов :align: center :widths: 2 1 4 +----------------------------+-------+------------------------------------+ | Наименование параметра | Тип | Название словарного типа или класс | +============================+=======+====================================+ | ``IMPORTING`` (попадают в ФМ) | +----------------------------+-------+------------------------------------+ | ``IV_RECORD_ID`` | Тип | ``/TRL/XDE_ED_RECORD_ID_EXT`` | +----------------------------+-------+------------------------------------+ | ``IT_STATUS`` | Тип | ``/TRL/XDE_T_STATUS`` | +----------------------------+-------+------------------------------------+ | ``EXPORTING`` (результаты ФМ на выходе) | +----------------------------+-------+------------------------------------+ | ``ET_STATUS`` | Тип | ``/TRL/XDE_T_STATUS`` | +----------------------------+-------+------------------------------------+