3

我将很快为一个公司项目工作,该项目将开发一个与 SAP ERP 系统集成的自定义 .net 应用程序。

我对SAP几乎一无所知,所以我在网上做了一些研究,发现它支持多种类型的数据库。

我想知道的是:

我可以通过 ado.net 直接读取 SAP 表吗?

还是 Web 服务背后的数据库?

还是因为取决于SAP系统的实现方式而不确定?

(知道 SAP 不限于任何特定类型的数据库后,我想到了第三个问题)

4

4 回答 4

6

由于 SAP 数据库表存在于普通 DBMS 中:是的,您可以使用 ADO.NET 读取它们。然而,我的经验是 SAP 人员不太喜欢这种方式。
您还可以通过ERPConnect和其他可能支持的 RFC 读取表格。这很可能是要走的路。
第三种方法是返回您需要的数据的专用 RFC 组件。

于 2011-03-11T12:43:27.700 回答
4

您通常不直接与 SAP 系统的数据库进行交互,这是一种不好的做法(甚至可能会使您的支持合同无效 - 请小心)。调用 SAP 函数的方法有很多种,具体取决于它的实现方式/部署了哪些特性。

SAP ERP 通常与 ABAP 堆栈和 J2EE 堆栈一起部署。

对于 ABAP 部分,RFC 是 IMO 最“原生”的连接形式。SAP 为 C、C++ 和 Java 提供了一个 RFC 库,可能还有其他语言。我很确定你会找到适合你最喜欢的 .Net 语言的东西。

对于 Java 方面,有很多可用的选项,就像现在几乎所有基于 J2EE 的东西(Web 服务、soap ......)一样。

于 2011-03-11T12:48:53.080 回答
2

如果您不想让系统崩溃,您不能直接阅读 SAP ERP 表,也不能在课外写. 由于可能存在安全漏洞,因此在企业环境中不允许此操作。公司安全部门将禁止此类活动。SAP 系统是根据严格定义的安全规则构建的。通常 SAP 用户通过报表或程序与 DB 数据交互,每个报表/程序依次具有用于授权检查的子程序。报告经常(总是)通过交易进行,这些交易也有安全检查。因此,如果您没有足够的权限,您甚至无法查看受数据保护的数据,那就太好了。因此,除了官方的 SAP .NET 连接器之外,您实际上没有办法实现 SAP/.NET 互操作性。6 月发布了第 3 版,与以前的版本相比,它对开发人员的使用更加舒适。祝你好运!

PS:很可能您必须在 SAP 端编写特殊的 FM(功能模块)以简化互操作性

于 2011-03-14T20:15:46.467 回答
1

我没有使用 .net,但我的 Python Web 应用程序使用 ODBC 连接直接从 SAP 的表中读取数据。所以是的,这是可能的。

更新:我们的 SAP 将其数据存储在 SQL Server 数据库中......我现在意识到并非所有安装都以这种方式设置。一个参考

于 2011-04-11T18:59:12.073 回答