【问题标题】:How can SAP tRFC server tell client through JCo that function has been carried out?SAP tRFC 服务器如何通过 JCo 告诉客户端该功能已执行?
【发布时间】:2010-05-07 09:55:19
【问题描述】:

SAP“事务性 RFC 技术描述”文档(4.0 版,请参阅 http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/ee6bca90-0201-0010-5792-d9693e2eac83?QuickLink=index&overridelayout=true ) 在第 6 页的事务性 RFC 部分中说:“最后,服务器告诉客户端,该功能已经执行并且客户端确认了这一点。”。

当服务器通过 JCo(Java 连接器)与客户端通信时,服务器如何将这些告诉客户端?

【问题讨论】:

    标签: saprfc jco


    【解决方案1】:

    4.0 版已经很老了 - 请务必始终使用最新的文档。

    据我所知,没有办法将 tRFC 调用的结果返回给服务器。 tRFC 调用可能被放置在(本地或远程)队列中并稍后执行。有关如何监控 tRFC 调用的信息,请参阅 http://help.sap.com/saphelp_nw04/helpdata/en/f0/02a63b9bb3e035e10000000a114084/frameset.htm

    【讨论】:

      【解决方案2】:

      答案很简单:不抛出异常!假设这里的JCo端是服务器,只要从实现功能模块的方法中成功返回即可。然后,JCo 将自动将 tRFC 协议所需的确认返回给客户端(在这种情况下为 R/3 系统)。

      R/3 系统在收到来自 JCo 的 ACK 后,将触发 Confirm 事件,JCo 接收该事件并将其传递到您的 JCoServerTIDHandler 的适当事件中。然后,您可以在此处从您的状态保持数据库中清除 TID。

      如果你的函数模块方法返回错误,JCo 会相应地报告,并且后端会触发 Rollback 事件。

      以下文章更详细地解释了如何在外部程序和 SAP 系统之间实施 tRFC。它基于 NetWeaver RFC 库 (C/C++),但您可以轻松地将其转换为 JCo 和 Java: https://wiki.scn.sap.com/wiki/x/FD67Gg

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-15
        • 1970-01-01
        • 2014-08-29
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        相关资源
        最近更新 更多