A felosztott IDoc csomagban több IDoc van, amelyek mindegyike
egyetlen üzleti objektumnak felel meg.
Az adapter a következő eljárás szerint
dolgoz fel egy több IDoc dokumentumot tartalmazó IDoc csomaghoz tartozó
bejövő eseményt:
- Amikor az SAP rendszer elküldi a tranzakcióazonosítót az adapternek,
akkor az adapter ellenőrzi az esemény állapotát, és az alábbiak
valamelyikét teszi:
- Ha ez egy új esemény, akkor az adapter tárol egy EVNTID azonosítót
(ami a tranzakcióazonosítónak felel meg) 0 állapottal
(Létrehozva) az esemény-helyreállítási táblában.
- Ha az esemény állapota -1 (Visszagörgetés), akkor az
adapter frissíti az állapotot 0 (Létrehozva) értékre.
- Ha az esemény állapota 1 (Végrehajtva), akkor az
adapter jelzi a sikert az SAP rendszernek.
- Az SAP rendszer elküldi az IDoc csomagot az adapternek, ami értelmezi
azt és átalakítja az IDoc dokumenumot több üzleti objektumba, és eltárolja
azokat a memóriában.
- Az adapter frissíti az esemény-helyreállítási tábla BQTOTAL oszlopát
(vagy táblamezőjét) a csomagban található IDoc dokumentumok számának
értékére. Ez a szám megfigyelési és helyreállítási célokra használatos.
- Ha az adapter hibát észlel az IDoc csomag feldolgozása során, akkor az
a két mód valamelyikén viselkedhet az IgnoreIDocPacketErrors konfigurációs
tulajdonságtól függően.
- Ha az IgnoreIDocPacketErrors tulajdonság false
(hamis) értékre van állítva, akkor az adapter leállítja a csomagban lévő
többi IDoc feldolgozását, és hibát jelent az SAP rendszernek.
- Ha az IgnoreIDocPacketErrors tulajdonság true (igaz)
értékre van állítva, akkor az adapter egy hibát naplóz, és folytatja a
csomagban lévő többi IDoc feldolgozását. A tranzakció állapota
3 (Folyamatban) értékkel lesz megjelölve. Ebben az
esetben az adapter naplója megjeleníti a meghiúsult IDoc dokumentumok
számát, és ezeket az egyedi IDoc dokumentumokat külön újra el kell
küldeni. Ezeket a rekordokat kézileg is karban kell tartania az
esemény-helyreállítási táblában.
- Az SAP rendszer egy COMMIT hívást küld az adapternek.
- Az adapter egymásután elküldi az üzleti objektumokat az
üzenetvégpontnak, és frissíti a BQPROC tulajdonságot annak az IDoc
dokumentumnak a sorszámával, amelyiken éppen dolgozik. Az adapter az
objektumokat egy egyedi XA tranzakció (egy kétfázisú véglegesítési
tranzakció) részeként szállítja a megfelelő végpont számára, amelyet az
alkalmazáskiszolgáló vezérel.
- Amikor a végpont fogadja az eseményt és a tranzakció véglegesítésre
került, az adapter növeli a BQPROC tulajdonságban lévő számot.
Megjegyzés: Az
üzenetvégpontot úgy kell beállítani, hogy támogassa az XA tranzakciókat.
- Miután az adapter leszállította az IDoc csomagban lévő összes üzleti
objektumot az üzenetvégpontnak, az esemény állapotát 1
(Végrehajtva) értékre frissíti.
- Az IDoc csomag feldolgozása során történő hirtelen megszakítások
esetén az adapter az aktuális sorszámtól folytatja az IDoc dokumentumok
feldolgozását. Az adapter folytatja a BQPROC tulajdonság frissítését, még
ha az IgnoreIDocPacketErrors true értékre is van állítva.
Az adapter folytatja a feldolgozást, hátha kézileg zárja le az adaptert,
amikor az éppen egy IDoc csomagot dolgoz fel.
- Ha kivétel történik, míg az adapter feldolgozza az eseményt, illetve
míg a végpont kivételt állít elő, akkor az esemény állapota
-1 (Visszagörgetés) lesz.
- Ha nem történik kivétel, akkor az adapter a következőket teszi:
- Elküld egy COMMIT hívást az adapternek, és az esemény állapota
1 (Végrehajtva) lesz.
- Elküld egy CONFIRM hívást az adapternek.
Az adapter
ezután törli az 1 (Végrehajtva) állapotú rekordokat, majd
naplóz egy CEI eseményt, ami nyomkövetési és megfigyeli célokra
használható.