Adapter przetwarza zdarzenie przychodzące dla pakietu
obiektów IDoc, który zawiera wiele pojedynczych obiektów IDoc, zgodnie z następującą procedurą:
- Gdy system SAP wysyła identyfikator transakcji do adaptera, adapter
sprawdza status zdarzenia i wykonuje jedną z następujących akcji:
- Jeśli jest to nowe zdarzenie, adapter zapisuje identyfikator EVNTID (który odpowiada
identyfikatorowi transakcji) ze statusem 0 (Utworzone)
w tabeli odtwarzania zdarzeń.
- Jeśli zdarzenie ma status -1 (Wycofanie zmian), adapter aktualizuje status
do wartości 0 (Utworzone).
- Jeśli zdarzenie ma status 1 (Wykonano), adapter zwraca do systemu SAP komunikat wskazujący na powodzenie.
- System SAP wysyła pakiet obiektów IDoc do adaptera, który analizuje go i przekształca obiekty IDoc w wiele obiektów biznesowych i zapisuje je w pamięci.
- Adapter aktualizuje wartość w kolumnie (lub polu tabeli) BQTOTAL w tabeli odtwarzania zdarzeń do liczby obiektów IDoc w pakiecie. Ta liczba jest używana na potrzeby kontroli i odtwarzania.
- Jeśli podczas przetwarzania pakietu obiektów IDoc adapter napotka błąd, może on zachować się na jeden z dwóch sposobów, w zależności od wartości właściwości konfiguracyjnej IgnoreIDocPacketErrors (Ignoruj błędy pakietów IDoc):
- Jeśli właściwość IgnoreIDocPacketErrors (Ignoruj błędy pakietów IDoc) jest ustawiona na wartość false, adapter nie będzie przetwarzał następnych obiektów IDoc w pakiecie i zgłosi błędy do systemu SAP.
- Jeśli właściwość IgnoreIDocPacketErrors (Ignoruj błędy pakietów IDoc) jest ustawiona na wartość true, adapter zarejestruje błąd i będzie kontynuował przetwarzanie pozostałych obiektów IDoc w pakiecie. Status transakcji zostanie oznaczony jako 3 (W toku).
W takim przypadku w dzienniku adaptera zostaną zapisane numery obiektów IDoc, dla których przetwarzanie nie powiodło się. Te pojedyncze obiekty IDoc należy osobno wysłać ponownie. Należy także ręcznie poprawić te rekordy w tabeli odtwarzania zdarzeń .
- System SAP wysyła do adaptera wywołanie COMMIT.
- Adapter wysyła obiekty biznesowe do punktu końcowego komunikatu jeden po drugim i aktualizuje właściwość BQPROC, przypisując jej kolejny numer przetwarzanego obiektu IDoc. Adapter dostarcza obiekty do odpowiedniego punktu końcowego jako część unikalnej transakcji XA (dwufazowe zatwierdzenie transakcji) sterowanej przez serwer aplikacji.
- Gdy punkt końcowy odbiera zdarzenie i transakcja zostaje zatwierdzona, adapter zwiększa wartość właściwości BQPROC.
Uwaga: Punkt końcowy komunikatu musi być skonfigurowany do obsługi transakcji XA.
- Po dostarczeniu przez adapter wszystkich obiektów biznesowych z pakietu obiektów IDoc do punktu końcowego komunikatu adapter aktualizuje status zdarzenia do wartości 1 (Wykonane).
- W przypadku nagłego przerwania podczas przetwarzania pakietu obiektów IDoc adapter wznowi przetwarzanie obiektów IDoc, poczynając od bieżącego numeru kolejnego. Adapter będzie kontynuował aktualizowanie właściwości BQPROC nawet w przypadku, gdy właściwość IgnoreIDocPacketErrors (Ignoruj błędy pakietów IDoc) jest ustawiona na wartość true. Adapter kontynuuje przetwarzania w przypadku
ręcznego zakończenia działania adaptera, jeśli adapter właśnie przetwarzał pakiet obiektów IDoc.
- Jeśli wystąpi wyjątek podczas przetwarzania zdarzenia przez adapter lub jeśli
punkt końcowy wygeneruje wyjątek, status zdarzenia zostanie zaktualizowany do wartości -1 (Wycofanie zmian).
- Jeśli nie wystąpią wyjątki, adapter wykonuje następujące czynności:
- Wysyła wywołanie COMMIT do adaptera, a zdarzenie jest aktualizowane do wartości 1 (Wykonane).
- Wysyła wywołanie CONFIRM do adaptera.
Następnie adapter usuwa rekordy ze statusem 1 (Wykonane)
i rejestruje zdarzenie infrastruktury CEI (Common Event Infrastructure), którego można użyć na potrzeby
śledzenia i kontroli.