早上好。
我们有一个使用 SAP RFC SDK 的"经典"API 到 SAP 的工作 Idoc 接口。由于不再支持此功能,我们需要迁移到新的Netweaver RFC SDK,该SDK附带了新的API。我现在在理解哪些新调用替换旧调用时遇到了一些麻烦。
我们的接口构建了两个C程序,一个用于SAP入站(sapclient(,一个用于SAP出站(sapserver(,两者都使用tRFC。
sapclient 当前使用以下一系列 API 函数:
打开连接
RfcConnect
圈:
填充内部数据结构
ItCreate("IDOC_CONTROL_REC_40")
ItCreate("IDOC_DATA_REC_40")
ItAppLine("IDOC_CONTROL_REC_40")
ItAppLine("IDOC_DATA_REC_40")
通过表
RfcIndirectCall("IDOC_INBOUND_ASYNCHRONOUS")
删除控点
ItDelete(firstHandle)
ItDelete(secondHandle)
sapserver 程序执行以下操作:
打开连接
RfcAccept
设置错误处理程序
RfcEnvironment
事务控制
RfcInstallTransactionControl("RFC_ON_CHECK_TID", "RFC_ON_COMMIT", "RFC_ON_ROLLBACK", "RFC_ON_CONFIRM_TID")
安装功能
RfcInstallFunction("IDOC_INBOUND_ASYNCHRONOUS")
循环:处理传入数据
RfcDispatch
现在,在新的Netweaver API中看起来如何?
作为起点,我推荐SAP的这些文章。他们描述了NetWeaver API,并在每一章中与旧的(经典(API进行了简短的比较:
第一部分 -- RFC 客户端编程https://wiki.scn.sap.com/wiki/x/zz27Gg
第二部分 -- RFC 服务器编程https://wiki.scn.sap.com/wiki/x/9z27Gg
第三部分 -- 高级主题https://wiki.scn.sap.com/wiki/x/FD67Gg
您可能需要第一部分用于客户端通信,第三部分用于 tRFC 协议(由 IDocs 使用(。