4

JCo (3.x) を使用して SAP サーバーから送信された IDOC を読み取る場合、メッセージが適切に受信されたことを示す (つまり、コミットする) にはどのようなアクションを実行する必要がありますか?

Javaでは、次のようなものを想像します:

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

呼び出し中に銃弾が CPU に当たったとしても、メッセージ (IDOC) が失われないようにする場合は、このタイプのコミットが必要と思われ.hasNext()ます。それとも私が間違っていますか?

4

2 に答える 2

3

このような場合、SAPは、タイプが'ALEAUD'のIDOCを返送すると想定します。この場合、送信側システムはIDOCステータスを「受信側システムで作成されたドキュメント」に変更できます(41)。詳細については、「SAP R / 3のアプリケーションリンクアナブリング(ALE)を実装するためのアドバンスガイド」ドキュメントを参照してください。

于 2011-01-30T11:58:41.737 に答える
0

技術的な観点から (IDoc ステータス レコードを使用したビジネス データ ワークフローの観点からではなく)、トランザクション RFC (tRfc) の TID のコミットと確認は、RFC クライアントのタスクです。IDoc を受信すると、このシナリオでは JCo プログラムが RFC サーバーになり、RFC クライアントが送信するコミット、ロールバック、および確認イベントに対応する必要があります。これは、インターフェースを実装することによって行われますJCoServerTIDHandler

例外なしでhandleRequest呼び出しから戻った場合は、コミットと後でconfirmTIDイベントも取得します。それ以外の場合は、ロールバックと、それに応じて反応するためのconfirmTIDイベントも取得します。

于 2016-12-27T13:16:05.080 に答える