当使用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),即使子弹在某些人击中CPU,这种类型的提交似乎是必要的 .hasNext() 称呼。还是我错了?

有帮助吗?

解决方案

在这种情况下,SAP假设您以“ Aleaud”类型将IDOC发送回IDOC。在这种情况下,发件人系统可以将IDOCS状态更改为“接收系统中创建的文档”(41)。有关更多详细信息

其他提示

从技术角度来看(不是从IDOC状态记录的业务数据工作流的角度来看),并确认交易RFC(TRFC)的TID是RFC客户端的任务。在接收IDOC的情况下,您的JCO程序是RFC服务器,在这种情况下,您应该对这些提交,回滚并确认RFC客户端发送给您的事件。这是通过实现界面来完成的 JCoServerTIDHandler.

你会得到一个 犯罪 后来也 确认 事件,如果您从您的 HandleRequest 无例外的调用,否则您将得到一个 回滚 还有 确认 相应反应的事件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top