sap - 使用直接 Rfc 调用而不是 BAPI 有优势吗?

标签 sap saprfc bapi sap-dotnet-connector

我不太熟悉使用 SAP,但我当前的任务是通过我正在处理的 c# 项目利用 Rfc 调用在 SAP 中创建采购订单。

使用直接 Rfc 调用而不是 BAPI 有什么优势吗?我问过我的主管,他的理由是“避免未知/不必要的困惑”。

我们的旧程序使用 BAPI。我发现通过这项任务,我现在正在追逐自己的尾部,因为我深入研究元数据并解决使用/获取我需要的结构的问题。

一切都在进行中,但我只是不明白为什么坚持使用 Rfc 而不是 BAPI。

编辑以澄清我糟糕的术语:我们目前使用包装器,然后为我们调用 BAPI。我的任务是不使用包装器,而是使用与 BAPI 相同的 Rfc 调用。

例子:

IRfcFunction poCreateFunction = _dest.Repository.CreateFunction("BAPI_PO_CREATE1");
IRfcStructure poHeader = poCreateFunction.GetStructure("POHEADER");
poCreateFunction.SetValue("POHEADER", poHeader);
...
poCreateFunction.Invoke(_dest);

最佳答案

技术上正确但有点无用的答案是 ?SYNTAX ERROR,然后是一个巨大的蓝色闪烁光标。

BAPI 是支持 RFC 的功能模块,因此调用 BAPI 与调用任何其他支持 RFC 的功能模块之间没有技术差异。不同之处在于 BAPI 是正式发布供客户和合作伙伴使用的。它们得到支持、维护并且大部分都有很好的文档记录——与出于某些技术原因必须启用 RFC 的某些内部功能模块相反。有一套严格的规则,任何想要提供 BAPI 的开发人员都必须遵守,以便在整个编程接口(interface)中保持一套特定的标准。 BAPI确实有相当长的参数名和庞大的数据结构,涵盖了各种特殊的应用,但称之为“乱七八糟”并没有给人留下积极的印象……

关于sap - 使用直接 Rfc 调用而不是 BAPI 有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201374/

相关文章:

abap - 通过 BAPI 获取通知的 GOS 附件列表

javascript - Adobe Livecycle Designer 中的下划线字符串

python - 使用win32com模块设置RFC_READ_TABLE的查询参数?

python - 使用Python的SAP RFC服务器,可能吗?

可以在 RFC 用户下调试吗?

java - 使用 SAP JCo (v3.0) 时,如何处理 JCoContext.end() 期间的异常?

abap - 如何通过FM或BAPI获取MIGO数据?

c# - 如何使用 SAP .Net Connector 3 创建 Idoc 并将其发送到 SAP

sap - ERP 阅读/练习什么?

sap - 调用方法和方法链接