我不太熟悉使用 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/