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