阅读IDOC时如何控制交易(提交/回滚)
题
当使用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 无例外的调用,否则您将得到一个 回滚 还有 确认 相应反应的事件。
不隶属于 StackOverflow