Обработка событий для разделяемых анализируемых пакетов IDoc

Разделяемый пакет IDoc содержит несколько IDoc, каждый из которых соответствует отдельному бизнес-объекту.

Процедура обработки адаптером входящего события для пакета IDoc, содержащего несколько отдельных документов IDoc, следующая:
  1. Когда система SAP передает в адаптер ИД транзакции, адаптер проверяет состояние события и выполняет одно из следующих действий:
    • Если это новое событие, адаптер записывает в таблицу восстановления событий значение EVNTID (соответствующее ИД транзакции) и состояние 0.
    • Если состояние события равно -1 (Откат), то адаптер изменяет состояние на 0 (Создано).
    • Если состояние события - 1 (Выполнено), то адаптер возвращает системе SAP признак успеха.
  2. Система SAP передает адаптеру пакет IDoc; адаптер анализирует его и преобразует в несколько бизнес-объектов, которые сохраняет в памяти.
  3. Адаптер изменяет значение столбца (или поля) BQTOTAL в таблице восстановления событий на число документов IDoc в пакете. Это значения предназначено для контроля и восстановления.
  4. Если при обработке пакета IDoc адаптер обнаруживает ошибку, то его дальнейшее поведение определяется значением свойства конфигурации IgnoreIDocPacketErrors:
    • Если значение свойства IgnoreIDocPacketErrors равно false, то то адаптер прекращает обработку остальных IDoc в пакете и отправляет в в систему SAP сообщение об ошибках.
    • Если значение свойства IgnoreIDocPacketErrors равно true, то адаптер заносит ошибку в протокол и продолжает обработку оставшихся IDoc. Состояние транзакции изменяется на 3 (Выполняется). В этом случае в протоколе адаптера будут показаны номера IDoc, обработка которых не выполнена, и их необходимо будет повторно передать на обработку по отдельности. Кроме того, необходимо вручную сохранить эти записи в таблице восстановления событий.
  5. Система SAP отправляет адаптеру вызов COMMIT.
  6. Адаптер передает бизнес-объекты (один за другим) в конечную точку сообщения и указывает в качестве значения свойства BQPROC порядковый номер IDoc, с которым он работает в данный момент. Адаптер доставляет объекты в подходящую конечную точку как часть уникальной транзакции XA (транзакции с двухэтапной фиксацией), управляемой сервером приложений.
  7. После того как событие принимается в конечной точке и выполняется фиксация транзакции, адаптер увеличивает значение свойства BQPROC на единицу.
    Прим.: В конечной точке сообщения должна быть настроена поддержка транзакций XA.
  8. После того как все бизнес-объекты из данного пакета IDoc будут доставлены в конечную точку сообщения, адаптер изменит состояние события на 1 (Выполнено).
  9. Если во время обработки пакета IDoc происходят прерывания, то адаптер возобновляет обработку, начиная с IDoc с текущим порядковым номером. Адаптер продолжает обновлять свойство BQPROC, даже если значение свойства IgnoreIDocPacketErrors равно true. Если во время обработки адаптером пакета IDoc его работа завершается вручную, он продолжает обработку.
  10. Если во время обработки события адаптером возникает исключительная ситуация, либо исключительная ситуация порождается конечной точкой, то состояние события изменяется на -1 (Откат).
  11. Если исключительных ситуаций не возникает, адаптер выполняет следующие действия:
    • Отправляет адаптеру вызов COMMIT; состояние события изменяется на 1 (Выполнено).
    • Отправляет адаптеру вызов CONFIRM.

    После этого адаптер удаляет записи с состоянием 1 (Выполнено) и заносит в протокол событие CEI (инфраструктуры обработки событий общего формата), которое может использоваться в целях отслеживания и контроля.


Условия использования |


(c) Copyright IBM Corporation 2005, 2006.
Данная справочная система Information Center создана на основе технологии Eclipse (http://www.eclipse.org)