是否可以从 ABAP 中调用库(具有 C 编程语言接口)?
Is a library (with C programming language interface) callable from within ABAP?
我没有 ABAP 编程经验,我想知道是否可以从 SAP 应用程序中调用具有 C 编程语言接口的第 3 方库。
更准确地说,目标是在 SAP 应用程序中使用 IBM CPLEX Optimizer(运行 在本地机器上)。 Optimizer 是一个库,具有适用于 C++、Java 和 .NET(C#、VB.NET)的 API。我想这是一个 DLL 文件。
那么你能告诉我是否可以从 ABAP 应用程序中调用 DLL 的函数吗?
是的,这是可能的,但需要在外部进行一些自己的开发。
例如,您可以通过 SAP 的 RFC 协议从 ABAP 寻址和调用外部程序。外部程序需要使用一些 SAP 连接器 SDK 来接收这样的远程函数调用。那么你自己的程序就可以为所欲为了,当然也可以使用一些其他的程序或者库。
SAP 为各种编程语言和运行时环境提供这些 RFC 连接器 SDK:
- 对于 Java:SAP Java 连接器 (JCo)
- 对于 .NET:SAP .NET 连接器 (NCo)
- 对于 C/C++:SAP NetWeaver RFC SDK (NW RFC SDK)
请参阅 https://support.sap.com/connectors 了解更多信息。
您可以通过以下方式直接使用外部DLL:
DATA: cmp_dll TYPE ole2_object.
CREATE OBJECT cmp_dll 'COMPANY.STOCK_DLL'.
CALL METHOD OF cmp_dll 'check_order' = order
EXPORTING p_num = 'number'
p_date = 'date'
p_vendor = 'vendor'.
在此之前,您应该在 SOLE
事务中注册您的 DLL,它可以在客户端或应用程序服务器上注册(因此可以从任何客户端访问)。
更好的选择可能是 Trixx 提到的 RFC 包装器。
也可以通过 SXPG_COMMAND_EXECUTE 直接在 AS 上 运行 C 代码,但这超出了您的问题范围。
我没有 ABAP 编程经验,我想知道是否可以从 SAP 应用程序中调用具有 C 编程语言接口的第 3 方库。
更准确地说,目标是在 SAP 应用程序中使用 IBM CPLEX Optimizer(运行 在本地机器上)。 Optimizer 是一个库,具有适用于 C++、Java 和 .NET(C#、VB.NET)的 API。我想这是一个 DLL 文件。
那么你能告诉我是否可以从 ABAP 应用程序中调用 DLL 的函数吗?
是的,这是可能的,但需要在外部进行一些自己的开发。 例如,您可以通过 SAP 的 RFC 协议从 ABAP 寻址和调用外部程序。外部程序需要使用一些 SAP 连接器 SDK 来接收这样的远程函数调用。那么你自己的程序就可以为所欲为了,当然也可以使用一些其他的程序或者库。
SAP 为各种编程语言和运行时环境提供这些 RFC 连接器 SDK:
- 对于 Java:SAP Java 连接器 (JCo)
- 对于 .NET:SAP .NET 连接器 (NCo)
- 对于 C/C++:SAP NetWeaver RFC SDK (NW RFC SDK)
请参阅 https://support.sap.com/connectors 了解更多信息。
您可以通过以下方式直接使用外部DLL:
DATA: cmp_dll TYPE ole2_object.
CREATE OBJECT cmp_dll 'COMPANY.STOCK_DLL'.
CALL METHOD OF cmp_dll 'check_order' = order
EXPORTING p_num = 'number'
p_date = 'date'
p_vendor = 'vendor'.
在此之前,您应该在 SOLE
事务中注册您的 DLL,它可以在客户端或应用程序服务器上注册(因此可以从任何客户端访问)。
更好的选择可能是 Trixx 提到的 RFC 包装器。
也可以通过 SXPG_COMMAND_EXECUTE 直接在 AS 上 运行 C 代码,但这超出了您的问题范围。