当使用 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
  }
}

如果我们想确保没有消息 (IDOC) 丢失,这种类型的提交似乎是必要的,即使在某些 .hasNext() 调用期间子弹击中了 CPU。还是我错了?

最佳答案

在这种情况下,SAP 假定您发回类型为“ALEAUD”的 IDOC。在这种情况下,发件人系统可以将 IDOC 状态更改为“在接收系统中创建的文档”(41)。
有关更多详细信息,请参阅“实现 SAP R/3 应用程序链接分析 (ALE) 的高级指南”文档

关于java - 读取 IDOC 时如何控制事务(提交/回滚),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4367386/

10-13 09:09