我对ABAP编程没有经验,我想知道是否可以在SAP应用程序中使用C编程语言接口调用第三方库。是从ABAP内部调用的库(带有C编程语言接口)吗?
更确切地说,目标是在SAP应用程序内部使用IBM CPLEX Optimizer(在本地计算机上运行)。 Optimizer是一个库,具有适用于C++,Java和.NET(C#,VB.NET)的API。我想这是一个DLL文件。
那么你能告诉我是否可以从ABAP应用程序中调用DLL的功能吗?
我对ABAP编程没有经验,我想知道是否可以在SAP应用程序中使用C编程语言接口调用第三方库。是从ABAP内部调用的库(带有C编程语言接口)吗?
更确切地说,目标是在SAP应用程序内部使用IBM CPLEX Optimizer(在本地计算机上运行)。 Optimizer是一个库,具有适用于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,它可以注册任何应用程序服务器上的客户端或(并因此从访问任何客户)。
更好的选择可能是RFC包装,由Trixx提到。
也可以通过SXPG_COMMAND_EXECUTE直接在AS上运行C代码,但这不在您的问题的范围之内。
好的,但它看起来像这个解决方案需要DLL导出COM接口,对吗?它不适用于任何任意的DLL,是吗? – Lanzelot
是的,这是可能的,但只有在外部一些自己的发展。 例如,您可以通过SAP的RFC协议寻址并呼叫来自ABAP的外部程序。外部程序需要使用一些SAP Connector SDK来接收这样的远程函数调用。然后你自己的程序可以做你想做的任何事情,当然也可以使用其他程序或库。
SAP提供这些RFC连接器的SDK用于各种编程语言和运行环境:
请参阅http://service.sap.com/connectors进一步的信息。
你想让CPLEX Optimizer在客户端机器上运行吗?或者服务器= – vwegert