我没有ABAP编程的经验,我想知道是否可以从SAP应用程序中调用使用C编程语言界面的第三方库。
更确切地说,目标是在SAP应用程序中使用IBM CPLEX优化器(在本地计算机上运行)。优化器是一个库,具有适用于C ,Java和.net(C#,VB.NET)的API。我想这是一个dll文件。
那么,您能告诉我是否可以从ABAP应用程序中调用DLL的功能?
您可以直接以以下方式使用外部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直接运行C代码,但这是您问题的范围。
是的,这是可能的,但只有在外侧进行某些开发。例如,您可以通过SAP的RFC协议从ABAP寻址和调用外部程序。外部程序需要使用一些SAP连接器SDK接收此类远程功能调用。然后,您自己的程序可以做任何您想做的事,当然还使用其他一些程序或库。
SAP为各种编程语言和运行时环境提供这些RFC连接器SDK:
- 用于Java:SAP Java Connector(JCO)
- for .net:SAP .NET连接器(NCO)
- 对于C/C :SAP NetWeaver RFC SDK(NW RFC SDK)
请参阅https://support.sap.com/connectors有关更多信息。