Frage

Wenn JCo (3.x) über IDocs von einem SAP-Server gesendet zu lesen, welche Maßnahmen sollte die Nachricht anzuzeigen eingeleitet worden richtig empfangen (das heißt commit)?

In Java Ich stelle mir so etwas wie:

public class MyHandler implements JCoIDocHandler {
  public void handleRequest(JCoServerContext serverCtx, IDocDocumentList documentList) {
    IDocDocumentIterator iterator = documentList.iterator();
    while (iterator.hasNext()) {
             IDocDocument doc = iterator.next();
             // some processing
    }
    // here I would like to say COMMIT
    // i.e., I confirm all the documents have been read
    // and our side takes ownership
  }   
}

Diese Art von Commit scheint notwendig, wenn wir sicher, dass keine Meldung (IDOC) machen wollen, verloren geht, selbst wenn eine Kugel die CPU während einiger .hasNext() Anruf trifft. Oder bin ich falsch?

War es hilfreich?

Lösung

In solchen Fällen SAP geht davon aus, dass Sie wieder IDOC mit Art von ‚ALEAUD‘ senden. In diesem Fall kann Sendersystem IDOCs Status zu ‚Dokumenten-Empfangssystem geschaffen‘ (41) ändern. Für weitere Informationen schauen Sie in "The Voraus Guide to + Einrichtung SAP R / 3 des Application Link Anabling (ALE)" Dokument

Andere Tipps

Aus technischer Sicht (und nicht aus der Sicht des Geschäftsdaten-Workflow mit den IDoc-Statussätze) zu begehen und TIDs einer transaktionalen RFC Bestätigung (tRFC) ist die Aufgabe des RFC-Client. Mit Empfangen von IDocs Ihre JCo-Programm ist der RFC-Server in diesem Szenario und Sie sollten auf diese verpflichten, Rollbacks und bestätigen Ereignisse reagieren, dass der RFC-Client sendet Ihnen. Dies geschieht durch die Schnittstelle JCoServerTIDHandler implementieren.

Sie erhalten eine commit und später auch eine confirmTID Veranstaltung, wenn Sie von Ihrer Rückkehr handelte Aufruf ohne Ausnahme, sonst werden Sie erhält ein Rollback und auch ein confirmTID Ereignis für die Reaktion entsprechend.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top