将 SAP ERP 数据库公开给外部各方的最佳实践?

发布于 2024-10-21 14:10:26 字数 276 浏览 2 评论 0原文

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

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

我想知道的是:

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

或者是网络服务背后的数据库?

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

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

I will soon work for a company project which will develop a custom .NET application that will integrate with the SAP ERP system.

I virtually know nothing about SAP, so I did some research on the web and found out that it supports multiple types of database.

What I want to know is:

can I directly read SAP tables thru ado.net?

Or is the database behind a web service?

Or is it undetermined because it depends on how the SAP system is implemented?

(the third question comes to my mind after knowing that SAP is not confined to any particular type of database)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

壹場煙雨 2024-10-28 14:10:26

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

As the SAP database tables live in a normal DBMS: Yes, you can read them with ADO.NET. My experience however is that this is not liked very much by the SAP folks.
You can also read the tables through RFC as supported by ERPConnect and possibly others. This will most likely be the way to go.
A third way will be a dedicated RFC component that returns the data you need.

南渊 2024-10-28 14:10:26

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

SAP ERP 通常同时部署 ABAP 堆栈和 J2EE 堆栈。

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

对于 Java 方面,与当今几乎所有基于 J2EE 的事物一样,有一大堆可用选项(Web 服务、soap 等)。

You don't usually interact with an SAP system's database directly, it's bad practice (might even void your support contract - be careful). There are many different ways to call SAP functions, depending on how it is implemented/what features are deployed.

SAP ERP is often deployed with both the ABAP stack and a J2EE stack.

For the ABAP part, RFC is the most "native" form of connection IMO. SAP provides an RFC library for C, C++ and Java, possibly other languages too. I'm pretty sure you'll find something for your favorite .Net language.

For the Java side, there are a whole bunch of available options as with pretty much any J2EE-based thing these days (web services, soap, ...).

素衣风尘叹 2024-10-28 14:10:26

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

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

You must not read SAP ERP table directly and off cource you MUST NOT write if you dont want to crash system. This action is not permissible in enterprise environment because of possibility of security flaws. Security division of company will prohibit such activity. The SAP system is constructed on strictly defined security rules. Normally SAP user interacts with DB data through reports or programs, each report/program in turn have subroutines for authorization check. Reports often (always) ran through transactions, which also have security checks. So if you havent sufficient rights you cant even view data protected data, thats solid. So you actually have no ways to SAP/.NET interoperability except official one - SAP .NET connector. In junuary was released version 3 its more comfortable in use for developer compared with previous version. Good luck!

PS: Its most likely what you will have to write special FMs (functional modules) on SAP side to simplify interoperability

八巷 2024-10-28 14:10:26

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

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

I'm not using .net, but my Python web application reads data directly from SAP's tables using an ODBC connection. So yes, it's possible.

Update: Our SAP stores its data in a SQL Server database... I now realize that not all installations are set up that way. a reference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文