Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过C#应用程序连接到SAP_C#_Asp.net_Oracle_Ado.net_Sap - Fatal编程技术网

通过C#应用程序连接到SAP

通过C#应用程序连接到SAP,c#,asp.net,oracle,ado.net,sap,C#,Asp.net,Oracle,Ado.net,Sap,我的公司在SAP系统中拥有材料信息,其数据库托管在linux服务器上。我正在设计具有图形信息的新应用程序,现在我想为图形指定材质。公司中较旧的应用程序从SAP导出物料数据并导入到应用程序中。但这意味着在两个不同的地方进行数据复制和数据维护 现在,我们正在设计一个新系统,我们只希望SAP中有物料信息,并将我们的新应用程序(在C#、ASP.Net、ADO.Net、LINQ中开发)连接到SAP数据库以准备物料信息。我们应用程序中的SAP access将完全是只读的 如何从应用程序连接到SAP系统/数据

我的公司在SAP系统中拥有材料信息,其数据库托管在linux服务器上。我正在设计具有图形信息的新应用程序,现在我想为图形指定材质。公司中较旧的应用程序从SAP导出物料数据并导入到应用程序中。但这意味着在两个不同的地方进行数据复制和数据维护

现在,我们正在设计一个新系统,我们只希望SAP中有物料信息,并将我们的新应用程序(在C#、ASP.Net、ADO.Net、LINQ中开发)连接到SAP数据库以准备物料信息。我们应用程序中的SAP access将完全是只读的

如何从应用程序连接到SAP系统/数据库


编辑:我可以通过Oracle的SQL Developer直接连接SAP数据库并浏览所需的表,这意味着我现在可以使用C#->实体框架连接到这些表。这样行吗?请记住,我将在我的应用程序中使用只读访问权限访问它们。

您可以轻松开发web服务。在SAP上创建soap web服务并从任何语言调用它

如果您的版本大于7.40,您也可以使用odata服务

如果您不想在SAP端进行任何开发,您有两个选择:

  • 对新项目或更改的项目使用IDOC机制
  • 使用通用web服务调用bapi

  • 最流行的bapi功能是bapi_MATERIAL_GETLIST。

    您可以在SAP系统中开发web服务,正如mkysoft已经解释的那样。另一种选择是使用SAP.Net Connector,这是SAP自己提供的一个库,免费提供给SAP客户。它允许您调用启用RFC的功能模块,如BAPI,或充当RFC服务器或RFC客户端

    如果您仅在基于.Net的应用程序中需要SAP访问,SAP NCo可能是更简单的解决方案,因为您只需调用任何具有远程功能的功能模块,而无需对SAP系统进行任何修改。如果您需要从多个系统访问这些数据,其中一些系统没有与SAP.Net connector等效的接口,那么与平台无关的解决方案(如web services)将是更好的解决方案


    直接访问SAP ERP数据库在技术上是可行的,但不建议这样做。首先,有些表类型(特别是集群表和池表)不能作为数据库表直接访问,就像通过ABAP/功能模块访问它们一样。您还可以绕过应用服务器中的业务逻辑。如果这是一个问题,你的具体情况是很难回答的。如果只访问一对材料主表,不要修改任何东西,也不需要考虑现有的业务逻辑(或者在重新创建应用程序中的逻辑时感到满意),您可以直接访问数据库,而不会遇到任何问题。

    如果您能对我的帖子最后编辑的部分发表意见,我将不胜感激。如果您能对我的帖子最后编辑的部分发表意见,我将不胜感激。对于SAP产品,您的项目中从未/从未访问过数据库。因为SAP有自己的缓存机制。而且它使用了大量的表格来保存数据。这个问题已经被回答了很多次。可能是重复的