IDoc соответствует отдельному бизнес-объекту. Адаптер может
обрабатывать событие ALE, которое содержит только один IDoc.
Процедура обработки адаптером входящего события для отдельного IDoc следующая:
- Когда система SAP передает в адаптер ИД транзакции, адаптер проверяет состояние
события и выполняет следующие действия:
- Если это новое событие, адаптер записывает в таблицу восстановления событий
значение EVNTID (соответствующее ИД транзакции) и состояние 0.
- Если состояние события равно -1 (Откат), то адаптер изменяет
состояние на 0 (Создано).
- Если состояние события - 1 (Выполнено), то адаптер возвращает
системе SAP признак успеха.
- Система SAP передает в адаптер отдельный IDoc; адаптер анализирует его,
преобразует в бизнес-объект и сохраняется в памяти.
- Система SAP отправляет адаптеру вызов COMMIT.
- Адаптер передает бизнес-объект в подходящую конечную точку сообщения.
Адаптер может доставлять объекты в конечные точки, которые не обязательно
поддерживают транзакции.
- Если конечная точка поддерживает транзакции, то адаптер доставляет в нее
бизнес-объект как часть уникальной транзакции XA (транзакции с двухэтапной
фиксацией), управляемой сервером приложений. После приема события конечной точкой и
фиксации транзакции его состояние изменяется на 1 (Выполнено). В
конечной точке сообщения должна быть настроена поддержка транзакций XA.
- Если конечная точка не поддерживает транзакции, то адаптер доставляет в нее
бизнес-объект и изменяет состояние события на 1 (Выполнено).
Адаптер доставляет бизнес-объект без QOS, что гарантирует только однократную
доставку.
- Если во время обработки события адаптером возникает исключительная ситуация,
либо исключительная ситуация порождается конечной точкой, то состояние события
изменяется на -1 (Откат).
- Если исключительных ситуаций не возникает, система SAP выполняет следующие
задачи:
- Отправляет адаптеру вызов COMMIT; состояние события изменяется на
1 (Выполнено).
- Отправляет адаптеру вызов CONFIRM.
После этого адаптер удаляет
записи с состоянием 1 (Выполнено) и заносит в протокол событие CEI
(инфраструктуры обработки событий общего формата), которое может использоваться в
целях отслеживания и контроля.