Frage

Das ist vielleicht eine etwas vage Frage, aber das wirkliche Leben ist so.

Unser Unternehmen führt das SAP-System ein.Ich weiß, dass sie jetzt Webdienste anbieten, sodass wir gleichzeitig .NET für alles einführen können, von dem wir wissen, dass wir es in C# tun können.

Welche Fallstricke gibt es auf dem Weg der SAP-.NET-Integration?Ich verstehe, dass sich die Logik von SAP stark von der „Standard“-Programmierung unterscheidet, aber ich hoffe, den „Geschäfts“-Teil vom „Präsentations“-Teil zu trennen und in ASP.NET zu schreiben.

War es hilfreich?

Lösung

Wenn Sie Ihre Anwendungen nicht erfordern SAP Portal-Integration und Ihre Kunden fragen nicht für SAP-ähnlichen Look and Feel dann sind Sie frei, was Präsentationsschicht zu verwenden, die Sie mögen.

Ich bin nicht einverstanden mit der Haltung, die Sie SAP-Tools verwenden müssen, wenn Sie eine SAP-Integration wählen zu tun. Produkte wie NWDI oder alt NWDS sind eine klare Kopfschmerzen (im nicht aufwendigen Gonna auf, dass hier, es ist eine lange Geschichte), Ausbildung von Menschen Webdynpro ist meiner Meinung nach lernen, nicht das Geld wert, wenn Sie einen 100% gewidmet SAP Integrator Arent.

Andere Tipps

Ich bin ein SAP ABAP und Microsoft.NET Entwickler. Ich arbeite für eine Firma, die Software mit SAP und anderen Plattformen, wie Microsoft.NET, Java und RoR erstellt.

Da Ihr Unternehmen SAP Roll-out ist, sollten Sie die ECC 6.0 Backend erhalten, die RFC oder Webservices verwenden können.

SAP hat einen Standard-API als Business API (aka BAPI) bekannt ist. Sie können sie aus bei BAPI Transaktion versuchen.

Ein gutes Beispiel ist dies:. BAPI_USER_GET_DETAIL

Dieses BAPI ist verantwortlich für die Informationen über alle SAP-Benutzer zurück. Das BAPI erfordert nur einen einzigen Eingabeparameter, NUTZERNAME genannt, und gibt verschiedene Datenstrukturen mit Informationen über den Benutzer, wie E-Mail, Vor- und Nachnamen, Benutzerprofile, etc.

Innerhalb ABAP, eine Vorlage dieses BAPI für den Aufruf sollte wie folgt sein:

CALL FUNCTION 'BAPI_USER_GET_DETAIL'
EXPORTING
USERNAME = sy-UNAME
* IMPORTING
* LOGONDATA =
* DEFAULTS =
ADDRESS = L_IT_RETURN1
* COMPANY =
* SNC =
* REF_USER =
* ALIAS =
* UCLASS =
* LASTMODIFIED =
* ISLOCKED =
TABLES
* PARAMETER =
* PROFILES =
* ACTIVITYGROUPS =
RETURN = L_IT_RETURN
ADDTEL = i_Tel
* ADDFAX =
* ADDTTX =
* ADDTLX =
* ADDSMTP =
* ADDRML =
* ADDX400 =
* ADDRFC =
* ADDPRT =
* ADDSSF =
* ADDURI =
* ADDPAG =
* ADDCOMREM =
* PARAMETER1 =
* GROUPS =
* UCLASSSYS =
* EXTIDHEAD =
* EXTIDPART =
* SYSTEMS =.

Nun, jeder BAPI ist auch RFC (Remote Function Call) aktiviert. Das bedeutet, dass, wenn Sie die SAP RFC API in Ihrer Anwendung implementieren, Sie jede BAPI oder eine andere Funktion innerhalb SAP aufrufen können, dass das Setup ist als RFC aktiviert.

In älteren Versionen, können Sie die Standard-SAP-RFC-API verwenden können, oder verwenden Sie SAP Wizard Connectors, wie SAP .NET Connector oder SAP Java Connector.

Auf den neueren Versionen hat SAP einen Webserver an das ABAP Application Server ist, um Dienste wie ITS, BSP und Web Dynpro für ABAP auszuführen. Durch die Nutzung dieser Web-Server, können Sie jedes RFC als WebService veröffentlichen.

Aber, genommen von meiner täglichen Erfahrung, die SAP R / 3-Leistung ist nicht so gut. Ein einfacher RFC Aufruf an eine Funktion, die zwei Zahlen summieren und gibt das Ergebnis von 1 bis 5 Sekunden dauern kann, abhängig von der avaliability des Servers.

Dies geschieht vor allem wegen der vielen Abstraktionsebenen, die auf dem Weg zu bekommen passiert, wenn Sie SAP .NET Connector oder WebServices verwenden.

Also, wenn Sie Ihr System für den täglichen Transaktionen avaliable zu sein (wie 5.000 Kunden täglich von E-Commerce-Anwendung erstellen oder machen über 40.000 verkauft online) Ich empfehle Ihnen, tief verwenden Java Connector oder zu implementieren RFC-API von Ihrer eigenen.

Ansonsten, wenn Ihre Anwendung von weniger Menschen intern verwendet werden, empfehle ich Ihnen SAP .NET Connector oder WebServices zu bedienen, nur weil sie completelly GTD orientiert.

Hope, das hilft!

(Bitte fügen Sie das Präfix http: // auf die Links unten, weil ich Links nicht genug Ruf schreiben :()

Der RFC-API: help.sap.com/printdocu/core/Print46c/EN/data/pdf/BCFESDE4/BCFESDE4.pdf

SAP .NET Connector: help.sap.com/saphelp_nw04/Helpdata/EN/e9/23c80d66d08c4c8c044a3ea11ca90f/content.htm

SAP Java Connector: help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5c6a85b11d6b28500508b5d5211/content.htm

Erstellen von WebServices mit ABAP: wiki.sdn.sap.com/wiki/display/stage/Service+Enabling+in+ABAP

Sie es nicht kämpfen. Wenn Sie SAP sind Implementierung implementieren nur SAP. Es ist fast garantiert nicht die Mühe wert, es zu bekämpfen.

SAP hat Werkzeuge, um die Präsentation zu handhaben, wenn Sie die GUI nicht gefällt (BSPs, WDJ, WDA). Ich würde nicht versuchen, ein 3rd-Party-Front-End zu implementieren, es sei denn Sie wirklich, wirklich haben.

Einige allgemeine Ratschläge.

  • Es scheint mir, dass Sie nach einem „goldenen Weg“ oder so etwas suchen.Vergiss es.Nichts in Sapland ist einfach, unkompliziert oder, nun ja, normal.In alle Richtungen gibt es Hindernisse und Fallstricke.Aber verzweifeln Sie nicht.Nachdem der Schmerz nachgelassen hat, erledigt der Saft seine unternehmerische Aufgabe (was auch immer es ist) erstaunlich gut.
  • Für Hardcore-SAP-Benutzer (Benutzer, die sich mit Finanzen, Personalwesen, Inventar usw. befassen) müssen Sie sich für das entscheiden, was SAP anbietet.Die GUI wird schrecklich sein, aber die Leute sind erstaunlich anpassungsfähig.Und wenn sie keine anderen Optionen haben, werden sie das, was Sap zu bieten hat, lieben.
  • Für gelegentliche Benutzer (z. B. Spesenabrechnungen) ist es eine Verschwendung von Ressourcen, dies über die von SAP angebotene GUI (Web- oder Desktop-SAPGUI) zu tun.Benutzer werden einen innovativen Weg finden, diese Anwendung zu vermeiden.So.net ist der richtige Weg.Sie werden auf viele Probleme stoßen.Aber denken Sie daran, dass die andere Option schlechter ist.

Antwort auf Kommentar:Zunächst einmal denke ich nicht, dass Berichte nicht in SAP erstellt werden sollten.Berichte sind von Natur aus hässlich und der Saft zeichnet sich dadurch aus.Ich dachte an kleine Anwendungen, die nicht die Hauptaufgabe der Benutzer sind.Dinge wie die Meldung von Ausgaben, die Genehmigung von Kaufanfragen durch das Management und so weiter.Wo kann man Material zu den besagten Straßensperren finden?Das kannst du nicht.Man muss sie zuerst mit dem Kopf finden.

Denken Sie auch die Gründe mit .NET:

  • Verwenden Sie nicht nur .NET , weil Sie wissen, dass Sie es tun können, , das ist kein guter Grund, aber wenn es ein gültiges Geschäft Grund ist für die Verwendung von .NET dann gehen
  • Seien Sie konsequent. Definieren Sie, wenn die Präsentationsschicht .NET sein muss, und wenn es nicht angemessen ist.
  • Versuchen Sie nicht, auf SAP-Standardfunktionalität „austricksen“, indem sie es zwingt in einer anderen Art und Weise zu verhalten, dass das, was es soll. (Ich sage nicht, passe nicht - ich sage das SAP preffered Optionen wie Erweiterungen verwenden, User-Exits etc. Sie werden ein besseres Produkt erhalten und besser SAP-Support Sie nicht SAP withouth versuchen implementieren können, das Angebot zu verstehen. vollständig)
  • Es ist nicht „nur eine Regel“ Sie auf die Bedürfnisse Ihrer Nutzer / Kunden und nur zu verstehen, weil Sie .NET für einen kundenorientierten Website verwenden, bedeutet nicht, dass Sie nicht Business-Objekte für das Management Reporting verwenden können, oder ein einfacher ALV-Grid für den Großteil Ihrer Berichterstattung
  • Web-Dynpro ist nicht so schwer für einen ABAP-Entwickler zu lernen, und wenn Sie die Entwickler von außerhalb der SAP-Raum WEB trainieren müssen Dynpro werden die am wenigsten von der Lernkurve. SAP Business-Logik ist viel schwieriger und wie SAP-Standard in einer unterstützten Weise wiederverwendet werden, ohne zu brechen der Kern eine größere Herausforderung als die ABAP-Toolset zu lernen.

Ich habe in einer Reihe von .NET / SAP-Implementierungen beteiligt. Auf der einen Seite, empfehle ich gegen .NET statt nur mit schreiben, was Sie in ABAP wollen, aber auf der anderen Seite kann es gemacht wird einigermaßen gut zu arbeiten. Als jemand oben erwähnt, kann der Aufwand für Web-Service für kleine Transaktionen hoch sein, so versuchen, die Dinge so einrichten, dass eine angemessene Menge an Daten auf einmal übergeben wird (das heißt einen ganzen Bildschirm voll). das zu tun bedeutet auch, dass SAP eine vollständige Transaktion verarbeiten kann oder intern mehr, statt zu einer Zeit kleine Mengen von Sachen vorbei und um den Zustand zu behandeln haben. Umgang mit Präsentation / Austausches von Daten Die Business-Logik sollte nur innerhalb von SAP, mit dem .NET-Teil implementiert werden.

Ich werde zweite, was gesagt wurde über die Kosten-Schnittstelle. Fast jeder tut das extern mit anderem Software-Anbieter, aber Sie haben keine Lust in Echtzeit .NET Sachen zu verwenden, um Kostendaten zu importieren, haben nur einen einfachen Batch-Job, den es einmal pro Tag importiert. Manchmal ist die einfachste Art und Weise ist die beste.

In meinem Unternehmen sind wir in der gleichen Situation. Wir führen Integrationsprojekte mit SAP .NET

können Sie vermeiden, einen Web Service vermeiden, indem Funktionen direkt von .NET BAPI ausgeführt wird. Heute habe ich gelernt, dass Standard RFC-Funktionen können sowie BAPI-Funktionen ausgesetzt werden.

verwenden wir ERP-Connect von Theobald Software bapi / RFC-Funktionen direkt und da es nicht in dieser Diskussion erwähnt, ich dachte, Sie könnten profitieren zu wissen, auszuführen.

Es ist nicht kostenlos, aber ich denke, es wird ein Entwickler das Leben viel einfacher.

Bitte beachten Sie, ich nicht in irgendeiner Weise mit Theobald Software verbundenen bin.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top