SAPS“交易RFC技术说明”文档(版本4.0,请参阅http://www.sdn.sap.com/irj/scn/go/portal/portal/proot/docs/library/uuid/eee6bca90-0201-0010-0010-5792-D9693E2EA2EAC83?quickicklink= Index&overrideLideLIDELAYOUTITITITITTRUE = TRUE = TRUE)在第6页的交易式RFC节中说:“最后,服务器告诉客户端,该功能已被执行,客户端确认了这一点。”

当服务器通过JCO(JAVA连接器)与客户端通信时,服务器如何告诉客户端?

有帮助吗?

解决方案

版本4.0很旧 - 请务必始终使用最近的文档。

从我看来,无法将TRFC调用的结果交给服务器。 TRFC调用可以放置在(本地或远程)队列中并稍后执行。看 http://help.sap.com/saphelp_nw04/helpdata/en/f0/02a63b9bb3e035e1000000000a114084/frameset.htm 有关如何监视TRFC调用的信息。

其他提示

答案非常简单:不抛出例外!假设JCO端是这里的服务器,那么您需要做的就是从实现功能模块的方法中成功返回。然后,JCO将自动将TRFC ProtoColl要求的确认书返回客户端(在这种情况下为R/3系统)。

R/3系统在从JCO中收取ACK后,将触发JCO接收并传递到JCoservertIdhandler的适当事件的确认事件。然后,您可以从状态保持数据库中清理tid。

如果您的功能模块方法返回错误,JCO将相应地报告,后端将触发回滚事件。

以下文章在更多详细信息中解释了外部程序和SAP系统之间的TRFC。它基于NetWeaver RFC库(C/C ++),但您可以轻松地将其转换为JCO和Java:https://wiki.scn.sap.com/wiki/x/fd67gg

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