2016-12-07 3 views
1

Meine Firma verfügt über Materialinformationen im SAP-System, deren Datenbank auf einem Linux-Server gehostet wird. Ich entwerfe neue Anwendung, die Zeichnungen Informationen hat und jetzt möchte ich Material zu Zeichnungen zuweisen. Ältere Anwendungen im Unternehmen haben Materialdaten aus SAP exportiert und in die Anwendung importiert. Aber das bedeutet Datenduplikation und Datenpflege an zwei verschiedenen Orten.Verbindung mit SAP über C# -Anwendung

Jetzt entwerfen wir ein neues System, wo wir Materialinformationen nur in SAP haben wollen, und verbinden unsere neuen Anwendungen (in C#, ASP.Net, ADO.Net, LINQ entwickelt) mit SAP-Datenbank, um Materialinformationen bereit zu stellen . SAP-Zugriff in unserer Anwendung wird ausschließlich READONLY sein.

Wie kann ich eine Verbindung zu SAP System/Datenbank über meine Anwendung herstellen?

BEARBEITEN: Ich kann direkt mit der SAP-Datenbank über Oracle SQL Developer verbinden und durchsuchen Sie die erforderlichen Tabellen, was bedeutet, dass ich mit C# -> Entity Framework eine Verbindung zu diesen Tabellen herstellen kann. Ist das ok? Denken Sie daran, dass ich in meiner Anwendung mit READONLY-Zugriff darauf zugreifen werde.

+0

Diese Frage wurde bereits mehrfach beantwortet. – vwegert

+0

Mögliches Duplikat von [SAP-Verbindung zum Extrahieren von Daten] (http: // stackoverflow.com/questions/31076348/sap-connection-to-extract-data) – vwegert

Antwort

1

können Sie entweder einen Webservice innerhalb des SAP-Systems entwickeln, wie mkysoft bereits erklärt hat. Die andere Alternative wäre die Verwendung des SAP .Net Connectors, einer Bibliothek von SAP selbst, die für SAP-Kunden kostenlos zur Verfügung gestellt wird. Sie können RFC-fähige Funktionsbausteine ​​wie BAPIs aufrufen oder als RFC-Server oder RFC-Client fungieren.

Wenn Sie den SAP-Zugriff nur in Ihrer .Net-basierten Anwendung benötigen, ist SAP NCo wahrscheinlich die einfachere Lösung, da Sie einfach jeden remote-fähigen Funktionsbaustein ohne Änderungen im SAP-System aufrufen können. Wenn Sie Zugriff auf diese Daten von mehreren Systemen benötigen, von denen einige nicht mit dem SAP.Net-Connector vergleichbar sind, wäre eine plattformunabhängige Lösung wie Webdienste die bessere Lösung.

Der direkte Zugriff auf die SAP-ERP-Datenbank ist technisch möglich, es wird nur nicht empfohlen. Zum einen gibt es Tabellentypen (speziell Cluster- und Pool-Tabellen), auf die Sie nicht direkt als Datenbanktabellen zugreifen können, genauso wie Sie über ABAP/Funktionsbausteine ​​darauf zugreifen können. Sie umgehen auch die Geschäftslogik innerhalb des Anwendungsservers. Wenn dies ein Problem für Ihren speziellen Fall ist, ist es schwierig zu beantworten. Wenn Sie nur auf einige Materialstammtabellen zugreifen, keine Änderungen vornehmen und die vorhandene Geschäftslogik nicht berücksichtigen (oder diese Logik in Ihrer Anwendung neu erstellen möchten), können Sie direkt auf die Datenbank zugreifen, ohne auf ein Problem zu stoßen .

+0

Ich freue mich, wenn Sie den letzten bearbeiteten Teil meines Beitrags kommentieren können – WAQ

+0

@WAQ Ich habe meine Antwort bearbeitet –

0

Sie können eassly-Webdienste entwickeln. Erstellen Sie einen Soap-Web-Service auf SAP und rufen Sie ihn aus einer beliebigen Sprache auf.

Wenn Ihre Version größer als 7.40 ist, können Sie auch ODATA-Dienste verwenden.

Wenn Sie keine Entwicklung auf SAP-Seite vornehmen möchten, haben Sie zwei Optionen:

  1. mit IDOC Mechanismus für neue oder geänderte Elemente
  2. allgemeine Web-Dienst für den Aufruf bapi http://sapserverurl/sap/bc/soap/wsdl?sap-client=clientnumber&services=functioname

Die beliebteste BAPI-Funktion ist BAPI_MATERIAL_GETLIST.

+0

Ich freue mich, wenn Sie den letzten EDITED Teil meines Beitrags kommentieren können – WAQ

+0

Nie/nie db direkt auf Ihre Projekte für SAP-Produkte zugreifen. Weil SAP eigene hat Caching-Mechanismus. Und es verwendet eine Menge Tabellen, die Daten speichern. – mkysoft

Verwandte Themen