Diese Dokumentation unterstützt Sie bei der Integration von SAP in Ihr Intrexx-Portal.
Sie benötigen mindestens Intrexx 7 und SAP mit einem Basisrelease höher als 4.6x (z.B. SAP R/3 4.6c),
um die hier beschriebenen Beispiele nachzuvollziehen. Der Connector für SAP Business Suite muss im Portal
konfiguriert sein.
Systeme, die auf SAP Gateway basieren, wie z.B. SAP CRM, SAP BW u.ä. werden ebenfalls
technisch unterstützt. Die meisten Beispielszenarien basieren jedoch auf einem ERP-R/3-Datenmodell.
2. Auswahl der richtigen Technologie
SAP kann mit verschiedenen Techniken in Intrexx-Portale integriert werden:
Fremddatengruppe
Auslesen und Ändern von SAP-Daten.
Skripting
Verwendung der SAP-Integration mit Groovy-Skript in Prozessen
oder mit Velocity in Applikationen.
Lizenzierung: mindestens View & Write.
Remote Services
Zugriff von SAP auf die Intrexx-Portal-Datenbank.
Auslesen und Manipulation der Portaldaten innerhalb von Jobs u.ä.
Lizenzierung: Developer API.
Webservices
Technisch möglich ab einer SAP Basis 6.40.
Sowohl in Intrexx als auch in SAP mit Einschränkungen
verbunden.
Single Sign On SAPGUI Integration
Einbindung von SAP-Internet-Seiten oder Aufruf der SAPGUI
ohne erneute Anmeldung; Autorisierung der Portalanwender gegen SAP.
Lizenzierung: Developer API.
3. Integration mit Fremddatengruppe
Intrexx verwendet bei der Anbindung von SAP-Datenbanken das Konzept der
Fremddatengruppe.
Direktes Lesen oder Schreiben auf die Datenbank des SAP-Systems würde die Grundkonzepte
von SAP-Systemen wie Berechtigungen und Business Logiken unterwandern. Für den Connector
für SAP Business Suite wurde deshalb der übliche Weg über RFC (Remote Function Calls)
gewählt. Dafür wurde für SAP ein SAP Portal Plugin (SAPPOPI)
entwickelt, das als Transport in die anzubindenden SAP-Systeme einzuspielen ist.
Das SAPPOPI Plugin für SAP ab SAP R/3 4.6c ist frei verfügbar und kann auch für
die Anbindung von anderen externen Systemen an SAP verwendet werden. Weitere Informationen
zum Plugin finden Sie im
SAP API Entwicklerhandbuch.
Das SAPPOPI bietet eine schmale RFC-API, welche die wichtigsten API-Methoden für
den Zugriff auf tabellenähnliche SAP-Objekte implementiert:
Get_MetaInfo
Get_List
Get_Detail
Modify
Delete
Ein Intrexx-Portal leitet Zugriffe auf SAP-Fremddatengruppen über die SAP Middleware
(SAP Java Connector) auf diese RFC-API um.
In SAP werden die Zugriffe über spezielle Handler verarbeitet.
Für den Zugriff auf Tabellen und Views steht ein generischer Handler
zur Verfügung, der eine Einbindung von Tabellen bzw. Views in SAP
ohne Programmierung ermöglicht. Damit ist z.B. die Anzeige des SAP-Kundenstammes
(ERP Tabelle KNA1) in wenigen Minuten ohne Programmierung möglich.
Reicht der Zugriff auf Tabellen und Views nicht aus oder soll schreibender Zugriff umgesetzt
werden, kann das objektorientierte Erweiterungskonzept im SAP-Portal-Plugin verwendet werden.
Das
SAP API Entwicklerhandbuch enthält umfangreiche Informationen und Beispiele
zur Implementierung solcher Handler.
4. Integration mit Skripting
Groovy-Skript bietet die besten Möglichkeiten, auf SAP BAPI-Funktionen bzw.
RFC-fähige Funktionsbausteine zuzugreifen, ohne die Integration mit Fremddatengruppen
nutzen zu müssen. Es steht ein
Skript-Generator
zur Verfügung, um die Implementierung des notwendigen Skripts zu beschleunigen. Gerade bei umfangreichen
SAP-Funktionsbausteinen werden Fehler vermieden, da das notwendige Java-Coding
zum Füllen umfangreicher SAP-Strukturen und -Tabellen automatisch generiert wird.
5. Integration mit Remote Services
Remote Services erlauben den Zugriff von SAP auf ein
Intrexx-Portal. Mit dieser Funktionalität können z.B. die im Portal erfassten
Informationen im Batchjob ausgelesen und in SAP verarbeitet werden.
Alle schreibenden Zugriffe (Anlegen, Ändern, Löschen) von SAP
auf das Portal stehen ebenfalls nur über die Remote Services zur Verfügung.
Hier handelt es sich meistens um die Replikation von SAP-Objekten (z.B. Stammdaten)
in entsprechende Intrexx-Datengruppen, wenn der Zugriff auf SAP
mit Fremddatengruppen nicht gewünscht ist. Im einfachsten Fall wird ein Ereignis
in SAP (z.B. Auftrag wird geändert) verwendet, um den aktuellen Status
(z.B. "geliefert") in das Portal zu übertragen.
6. Integration mit Webservices
Die Verwendung von Webservices ist häufig mit konzeptionellen Einschränkungen
oder Aufwand verbunden. Intrexx kann nahezu alle Webservices konsumieren.
Es ist zu prüfen, an welchen Stellen Daten aus Webservices benötigt werden
und wie diese in den Benutzeroberflächen eingebunden werden können.
Hier stehen nicht alle Möglichkeiten zur Verfügung, die die Verwendung
von Fremddatengruppen bietet. Als Anbieter von Webservices können alle
Intrexx-Datengruppen verwendet werden. Das kann aber gleichzeitig eine
Einschränkung sein, wenn die Daten nicht innerhalb von Datengruppen
zur Verfügung stehen. Im SAP-Umfeld ist das Konsumieren von fremden Webservices
immer mit Entwicklung verbunden, obwohl hier auch sehr viel generiert werden kann.
Zu beachten ist aber, dass es zwischen den Basisreleases 6.40 bis 7.10 umfangreiche
Änderungen gab, so dass mit Aufwand nach dem Einspielen von Support-Packages
oder nach Upgrades zu rechnen ist. Als Konsument von SAP-Webservices kann
evtl. auf den großen Bestand bereits verfügbarer SAP-Webservices
zurückgegriffen werden (z.B. SAP ERP 2005 – ECC 6.0). Stehen keine nutzbaren
Webservices zur Verfügung, so gilt das gleiche wie beim Konsumieren fremder
Webservices.