Удаление отправки

*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(IV_RECORD_ID) TYPE  /TRL/XDE_HEADER-RECORD_ID
*"     VALUE(IV_COMMENT) TYPE  STRING OPTIONAL
*"     VALUE(IV_UNAME) TYPE  SYUNAME DEFAULT SY-UNAME
*"     VALUE(IV_ONLY_CHECK) TYPE  XFELD OPTIONAL
*"  EXPORTING
*"     VALUE(ES_RETURN) TYPE  /TRL/XDE_RETURN
*"     VALUE(EV_COMMENT) TYPE  STRING
*"----------------------------------------------------------------------

Функциональный модуль /TRL/XDE_API_SHIPM_DELETE предназначен для удаления отправки. При удалении отправка остается в системе, ей присваивается статус «D» - «Удалена».

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

Параметр

Описание

IMPORTING

IV_RECORD_ID

Уникальный идентификатор удаляемой отправки.

IV_COMMENT

Комментарий – причина удаления.

IV_UNAME

Пользователь системы SAP, выполнивший удаление отправки.

IV_ONLY_CHECK

Если параметр равен «X», то выполняется проверка возможности удаления отправки, при этом непосредственно удаление не выполняется.

EXPORTING

ES_RETURN

Код и описание ошибки в случае, если операцию выполнить не удалось.

EV_COMMENT

Если IV_COMMENT не заполнен, то содержит комментарий, введенный пользователем перед удалением. В противном случае равен IV_COMMENT.

Устанавливается блокировка по номеру GUID. Для режима проверки блокировка не ставится.

Если блокировку поставить не удалось, поле es_return-code заполняется значением «1011» (Ошибка блокирования записи). В поле es_return-text попадет текущее системное сообщение, на этом работа ФМ заканчивается.

Данные по отправлению получаются с помощью ФМ /TRL/XDE_GET_SHIPMENTS.

Если результат работы ФМ /TRL/XDE_GET_SHIPMENTS не успешен, в поле es_return-code записывается значение «1106» (Невозможно найти отправление). В поле es_return-text попадает текст «Внутренняя ошибка. Не удалось найти объект «Отправление»». После этого вызывается подпрограмма, которая снимает блокировку. На этом работа ФМ заканчивается.

Выполняется проверка полномочий с помощью метода CHECK_XDE_FUNCTION класса /TRL/XDE_CL_AUTHORITY.

Если результат работы метода не успешен, в поле es_return-code записывается значение «1013» (Проверка не пройдена). В поле es_return-text попадает текст «Нет полномочий на выполнение операции». После этого вызывается подпрограмма, которая снимает блокировку. На этом работа ФМ заканчивается.

Вызывается метод GET_STATE_SETTINGS, который достает настройки статусов из таблиц /TRL/XDE_STATE и /TRL/XDE_STATE_T.

Важно

В выборке учитывается язык входа в систему и значение настройки SETTINGS_SET из таблицы /TRL/XDE_CUST.

Если в результате работы метода данных по статусу не найдено и флаг возможности удаления не равен «X», в поле es_return-code попадает значение «9999» (Критическая ошибка). В поле es_return-text попадает текст «В статусе & операция невозможна». После этого вызывается подпрограмма снятия блокировки. На этом работа ФМ заканчивается.

Вызывается метод GET_PERMISSION_TYPE, который выполняет проверку по таблице условий в соответствии с конкретным действием (удаление). Для этого выполняется выборка из настроечной таблицы /TRL/XDE_CONDIT.

Далее вызывается ФМ /TRL/XDE_GET_STATUS_ALL, который получает все статусы отправления, при этом может отсортировать их с помощью настраиваемого ФМ. Далее в цикле по всем полученным статусам ищется такая запись, для которой код статуса отправки будет равен коду статуса отправки из таблицы условий /TRL/XDE_CONDIT по выбранному действию (удаление).

Если в результате выполнения метода получается тип доступа на операцию = 02 (запрещена) или 03 (невозможна), то в поле es_return-code попадает значение «9999» (Критическая ошибка). В поле es_return-text попадает текст «Операция невозможна». После этого вызывается подпрограмма для снятия блокировок, работа ФМ на этом заканчивается.

После этого, если был установлен режим проверки, ФМ прекращает работу. В противном случае запускается ФМ /TRL/XDE_DSP_COMMENT_DLG, который выводит для пользователя диалоговое окно для ввода комментария.

Если пользователь нажимает кнопку «Отмена», в поле es_return-text попадает текст «Действие отменено пользователем». В поле es_return-code попадает значение «2209» (Действие отменено пользователем). Вызывается подпрограмма, которая снимает блокировки, и работа ФМ заканчивается.

Извлекаются данные из настройки «STATUS_G_DELETED» и вызывается ФМ /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 возникли какие-либо особые ситуации, поле es_return-code заполняется значением «9999» (Критическая ошибка). Если текущее системное сообщение имеется, оно выводится в поле es_return-text, в противном случае выводится сообщение «Не удалось обновить статус отправления. Обратитесь в службу поддержки». После этого вызывается подпрограмма снятия блокировки, работа ФМ на этом заканчивается.

Данная API-функция подразумевает возможность расширения для заказчика.

Важно

При использовании явных или неявных операторов COMMIT WORK и ROLLBACK WORK в расширениях корректная работа API-функций не гарантируется!

Функциональный модуль сортировки статусов

Имя функционального модуля сортировки статусов находится в таблице /TRL/XDE_CUST по имени настройки «FM_SORT_STATUS_NEW».

Настройка ``FM_SORT_STATUS_NEW``
  • Если удалить настройку, ошибка не возникнет.

  • Если заполнить некорректно, вызова ФМ не произойдет.

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.

Таблица 69 Параметры модуля сортировки статусов

Наименование параметра

Тип

Название словарного типа или класс

IMPORTING (попадают в ФМ)

IV_RECORD_ID

Тип

/TRL/XDE_ED_RECORD_ID_EXT

IT_STATUS

Тип

/TRL/XDE_T_STATUS

EXPORTING (результаты ФМ на выходе)

ET_STATUS

Тип

/TRL//TRL/XDE_T_STATUS

Функциональный модуль обработки события смены статуса

Имя функционального модуля обработки события смены статуса отправления содержится в таблице /TRL/XDE_CUST по имени настройки «FM_SET_EVENT». Данный ФМ вызывается при изменении статуса отправления.

Настройка ``FM_SET_EVENT``

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.

Таблица 70 Параметры модуля обработки события смены статуса

Наименование параметра

Тип

Название словарного типа или класс

IMPORTING (попадают в ФМ)

IS_HEADER

Тип

/TRL/XDE_HEADER

IS_STATUS

Тип

/TRL/XDE_STATUS

EXPORTING (результаты ФМ на выходе)

IT_DOCUMENTS

Тип

/TRL/XDE_DOCUM

Функциональный модуль для обработки после выставления статуса

Имя функционального модуля для обработки после выставления статуса содержится в таблице /TRL/XDE_STATE, поле FMAST.

Поле ``FMAST``

Правила для ФМ из этой настройки касаются интерфейса ФМ, см. в таблице ниже.

Таблица 71 Параметры модуля для обработки после выставления статуса

Наименование параметра

Тип

Название словарного типа или класс

IMPORTING (попадают в ФМ)

IS_HEADER

Тип

/TRL/XDE_HEADER

IS_STATUS

Тип

/TRL/XDE_STATUS