Question

Lors de l'utilisation JCo (3.x) pour lire IDOC envoyés à partir d'un serveur SAP, quelles mesures devraient être prises pour indiquer le message a été reçu correctement (à savoir commettras)?

En Java j'imagine quelque chose comme:

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
  }   
}

Ce type de commettre semble nécessaire si nous voulons nous assurer qu'aucun message (IDOC) est perdu, même si une balle frappe la CPU pendant un certain appel .hasNext(). Ou je me trompe?

Était-ce utile?

La solution

Dans ce cas, SAP suppose que vous envoyez IDOC de retour avec le type de « ALEAUD ». Dans ce cas, le système de l'expéditeur peut modifier les statuts de IDOCS à « document créé dans le système de réception » (41). Pour plus de détails se pencher sur "Le Guide de l'avance inplementing SAP R / 3 Application Link Anabling de (ALE)" document

Autres conseils

Du point de vue technique (et non du point de vue du flux de données d'affaires avec les registres d'état IDOC) et la confirmation de commettre TID d'un RFC transactionnel (TRFC) est la tâche du client RFC. Avec la réception IDocs votre programme JCo est le serveur RFC dans ce scénario et vous devez réagir sur ces événements, commettre rollback et confirmer que le client RFC vous envoie. Cela se fait par la mise en œuvre du JCoServerTIDHandler d'interface.

Vous obtiendrez un commit et plus tard un confirmTID événement, si vous revenez de votre handleRequest invocation sans exception, sinon vous obtenir un rollback et aussi confirmTID événement pour réagir en conséquence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top