Ein eingehendes Ereignis kann ein einzelnes
Geschäftsobjekt oder mehrere IDocs enthalten, wobei jedes IDoc einem einzelnen
Geschäftsobjekt entspricht.
Falls mehrere IDocs vorhanden sind, werden sie vom SAP-Server in
Form eines IDoc-Pakets an den Adapter gesendet. Sie können bei
der Adapterkonfiguration angeben, ob das Paket in die einzelnen IDocs aufgeteilt werden
kann oder als ein Objekt (ungeteilt) gesendet werden muss.
Die Ereignisverarbeitung beginnt, wenn der
SAP-Server
eine Transaktions-ID an den Adapter sendet. Dann werden folgende Schritte ausgeführt.
- Der Adapter prüft den Status des Ereignisses und führt eine der folgenden Aktionen
aus:
- Wenn es sich um ein neues Ereignis handelt, speichert der Adapter eine EVNTID
(die der Transaktions-ID entspricht) zusammen mit dem Status 0
(Erstellt) in der Ereigniswiederherstellungstabelle.
- Wenn das Ereignis den Status -1 (Rollback) hat, aktualisiert ihn der
Adapter auf 0 (Erstellt).
- Wenn das Ereignis den Status 1 (Ausgeführt) hat, gibt der Adapter
eine Erfolgsmeldung an das SAP-System zurück.
- Das SAP-System sendet das IDoc an den Adapter.
- Der Adapter wandelt das IDoc in ein Geschäftsobjekt um und sendet es an den Endpunkt.
Bei einzelnen IDocs und ungeteilten IDoc-Paketen kann der Adapter die Objekte
sowohl Endpunkten zustellen, die Transaktionen unterstützen, als auch Endpunkten, die
keine Transaktionen unterstützen.
- Nur bei geteilten Paketen führt der Adapter folgende Tasks aus:
- Der Adapter aktualisiert in der Ereigniswiederherstellungstabelle die Spalte (oder
das Tabellenfeld) BQTOTAL auf die Anzahl von IDocs im Paket. Diese Anzahl wird für
Prüf- und Wiederherstellungszwecke verwendet.
- Der Adapter sendet die Geschäftsobjekte nacheinander an den Nachrichtenendpunkt und
aktualisiert die Eigenschaft BQPROC auf die Folgenummer des jeweiligen IDocs, das gerade
verarbeitet wird. Der Adapter stellt dem jeweiligen Endpunkt die Objekte als Teil einer
eindeutigen XA-Transaktion (das ist eine zweiphasige COMMIT-Aktion) zu, die durch den
Anwendungsserver kontrolliert wird.
- Wenn der Endpunkt das Ereignis empfängt und die Transaktion festgeschrieben wird,
erhöht der Adapter die in der Eigenschaft BQPROC angegebene Anzahl.
Der
Nachrichtenendpunkt muss für die Unterstützung von XA-Transaktionen konfiguriert werden.
Wenn
der Adapter bei der Verarbeitung eines geteilten IDoc-Pakets einen Fehler feststellt,
hängt seine Verhaltensweise von der Einstellung der Konfigurationseigenschaft
'IgnoreIDocPacketErrors' ab: - Wenn die Eigenschaft 'IgnoreIDocPacketErrors' auf False (Falsch)
gesetzt ist, stoppt der Adapter die Verarbeitung aller weiteren IDocs in diesem Paket und meldet
dem SAP-System einen Fehler.
- Wenn die Eigenschaft 'IgnoreIDocPacketErrors' auf True (Wahr) gesetzt
ist, protokolliert der Adapter einen Fehler und fährt mit der Verarbeitung der restlichen
IDocs in diesem Paket fort. Als Status der Transaktion wird 3 (In
Bearbeitung).
In diesem Fall werden im Adapterprotokoll die fehlgeschlagenen IDoc-Nummern
aufgeführt, die separat und einzeln erneut übergeben werden müssen. Außerdem müssen diese
Datensätze auch manuell in die Ereigniswiederherstellungstabelle eingepflegt werden.
Diese Eigenschaft wird für einzelne IDocs und ungeteilte IDoc-Pakete nicht verwendet.
- Das SAP-System sendet einen COMMIT-Aufruf an den Adapter.
- Nachdem der Adapter dem Nachrichtendpunkt alle Geschäftsobjekte im IDoc-Paket
zugestellt hat, aktualisiert er den Ereignisstatus auf 1
(Ausgeführt).
- Falls während der IDoc-Paketverarbeitung abrupte Unterbrechungen auftreten, setzt der
Adapter die Verarbeitung der IDocs ab der aktuellen Folgenummer fort. Der Adapter fährt
selbst dann mit der Aktualisierung der Eigenschaft BQPROC fort, wenn
'IgnoreIDocPacketErrors' auf true (Wahr) gesetzt ist. Wenn Sie den
Adapter während der Verarbeitung eines IDoc-Pakets manuell beenden, setzt der Adapter die
Verarbeitung fort.
- Wenn eine Ausnahmebedingung auftritt, während der Adapter das Ereignis verarbeitet,
oder wenn der Endpunkt eine Ausnahmebedingung generiert, wird der Ereignisstatus auf
-1 (Rollback) aktualisiert.
- Wenn keine Ausnahmebedingung auftritt, sendet der
SAP-Server
einen CONFIRM-Aufruf an den Adapter.
- Der Adapter löscht die Datensätze mit dem Status 1 (Ausgeführt)
und protokolliert ein CEI-Ereignis (Common Event Infrastructure), das Überwachungs- und
Überprüfungszwecken dient.