我的公司在SAP系统中有材料信息,其数据库托管在Linux服务器上。我正在设计具有图纸信息的新应用程序,现在我想为图纸分配材料。公司中较旧的应用程序从SAP导出材料数据并导入到应用程序中。但这意味着数据在两个不同的地方重复和维护。
现在我们正在设计新系统,我们希望仅在SAP中提供材料信息,并将我们的新应用程序(在C#,ASP.Net,ADO.Net,LINQ中开发)连接到SAP数据库以准备材料信息。我们的应用程序中的SAP访问将完全是READONLY。
如何从我的应用程序连接到SAP系统/数据库?
编辑:我可以通过Oracle的SQL Developer直接连接SAP数据库并浏览所需的表,这意味着我现在可以使用C# - > Entity Framework连接到这些表。这个可以吗?请记住,我将通过READONLY访问权限在我的应用程序中访问它们。
答案 0 :(得分:1)
您可以在SAP系统中开发Web服务,正如mkysoft已经解释过的那样。另一种选择是使用SAP .Net Connector,这是SAP自己的库,免费为SAP客户提供。它允许您调用支持RFC的功能模块,如BAPI,或充当RFC服务器或RFC客户端。
如果您只需要在基于.Net的应用程序中进行SAP访问,SAP NCo可能是更简单的解决方案,因为您可以在SAP系统中无需任何修改即可调用任何具有远程功能的功能模块。如果您需要从多个系统访问这些数据,其中一些系统没有与SAP .Net连接器等效,那么像Web服务这样的独立于平台的解决方案将是更好的解决方案。
在技术上可以直接访问SAP ERP数据库,只是不推荐。首先,有一些表类型(特别是集群和池表),您可以像通过ABAP /功能模块一样直接访问数据库表。您还可以规避应用程序服务器中的业务逻辑。如果这是您的具体案件的问题很难回答。如果您只访问几个物料主表,不要修改任何内容而不需要考虑现有的业务逻辑(或者很适合在应用程序中重新创建该逻辑),您可以直接访问数据库而无需碰到任何问题。
答案 1 :(得分:0)
您可以开发eassly Web服务。在SAP上创建soap Web服务并使用任何语言调用它。
如果您的版本大于7.40,您也可以使用odata服务。
如果您不想在SAP方面进行任何开发,您有两个选择:
最受欢迎的bapi功能是BAPI_MATERIAL_GETLIST。