是否可以从ABAP中调用库(具有C编程语言接口)?

时间:2017-02-22 08:26:18

标签: sap abap cplex

我没有ABAP编程的经验,我想知道是否可以从SAP应用程序中调用带有C编程语言接口的第三方库。

更确切地说,目标是在SAP应用程序内使用IBM CPLEX Optimizer(在本地计算机上运行)。 Optimizer是一个库,具有适用于C ++,Java和.NET(C#,VB.NET)的API。我想这是一个DLL文件。

那么你能否告诉我是否可以从ABAP应用程序中调用DLL的功能?

2 个答案:

答案 0 :(得分:8)

您可以通过以下方式直接使用外部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代码,但这超出了您的问题范围。

答案 1 :(得分:4)

是的,这是可能的,但只有在外部有一些自己的发展。 例如,您可以通过SAP的RFC协议从ABAP寻址和调用外部程序。外部程序需要使用某些SAP Connector SDK来接收此类远程函数调用。然后你自己的程序可以做任何你想做的事情,当然也可以使用其他一些程序或库。

SAP为各种编程语言和运行时环境提供了这些RFC Connector SDK:

  • for Java:SAP Java Connector(JCo)
  • for .NET:SAP .NET Connector(NCo)
  • for C / C ++:SAP NetWeaver RFC SDK(NW RFC SDK)

有关详细信息,请参阅https://support.sap.com/connectors