4

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)

Sandra Rossi
  • 11,934
  • 5
  • 22
  • 48
im_chc
  • 1,023
  • 15
  • 24
  • now my worry solidifies, that I won't be able to leverage my own tool to sort of administer the queries and data etc as it is targeted towards database tables – im_chc Mar 11 '11 at 14:04
  • so is there any piece of software from SAP or others that works similar to enterprise mgr (sql server) or TOAD (toad)? – im_chc Mar 11 '11 at 14:06

4 Answers4

7

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.

Daniel Hilgarth
  • 171,043
  • 40
  • 335
  • 443
4

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, ...).

Mat
  • 202,337
  • 40
  • 393
  • 406
2

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

Anton Semenov
  • 6,227
  • 5
  • 41
  • 69
1

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.

Community
  • 1
  • 1
Sean W.
  • 4,580
  • 4
  • 22
  • 22