Schnittstellen
Version 27 Version 26 39.5.25 39.5.23 39.5.22 39.5.21 39.5.20 39.5.19 39.5.18 39.5.17 German English
Version 27 Version 26 39.5.25 39.5.23 39.5.22 39.5.21 39.5.20 39.5.19 39.5.18 39.5.17 German English

PLANTA project und SAP

Information

  • Die nachfolgende Beschreibung ist für Sie relevant, wenn Sie die PLANTA-SAP-Schnittstelle nutzen möchten, die auf Basis von PLANTA-Universal-Schnittstelle realisiert werden kann.

  • Diese Beschreibung liefert ausschließlich technische Informationen zur Kommunikation mit einem SAP-System.

  • Die Anwendersicht, der eigentliche Austausch von Daten und die darauf aufbauende fachliche Logik werden nicht behandelt. Bitte sehen Sie hierzu die Dokumentation Universal-Schnittstelle.

  • PLANTA stellt einige SAP-Standard-Schnittstellen zur Verfügung, die als Vorlage zum Aufsetzen individueller SAP-Schnittstellen verwendet werden können.

Siehe auch: Weitere Integrationen von PLANTA project

Allgemeines

Information

  • Mit dem SAP-System wird per Remote Function Call (RFC) API kommuniziert.

  • Dazu wird die SAP NetWeaver RFC Client-Bibliothek über ein Python-Modul eingebunden und angesprochen.

    • So ist der Zugang zu SAP scriptingfähig und damit höchst flexibel.

Einrichtung

Information

Das Python-Modul pyrfc ist ab Server 39.5.31 im Einsatz und ersetzt das alte Modul pysapnwrfc. Überprüfen Sie Ihre SAP-Anbindung und stellen Sie sie ggf. auf das neue Modul um.


Windows

Voraussetzungen

  • Kundenseitig wird

    • ein SAP-System mit NetWeaver-kompatibler RFC-Implementierung in Versionen 7.20P_7 oder 7.50P_6 benötigt. Empfohlen wird die Version 7.50P_6.

    • Installierte SAP RFC Client-Bibliotheken in der 64bit-x86-Version auf dem Anwendungsserver, auf dem der PLANTA-Server läuft.

      • Das SAP NetWeaver RFC SDK in der Version 7.50P_6 benötigt eine vom folgenden Paket bereitgestellte Runtime: Visual C++ Redistributable Packages for Visual Studio 2013 (msvcr120.dll). Ist die Runtime nicht installiert, können die dlls des SDKs nicht geladen werden.

Zu beachten bei der Einrichtung

  • Je nachdem, welche PLANTA-Server-Version Sie im Einsatz haben (installieren) und somit je nach Versionenkombination von Python und SAP-Libraries, muss der im PLANTA-Server bereits enthaltene Wrapper u.U. mit dem anderen Wrapper ersetzt werden. Die neuen Wrapper-Dateien finden Sie im gesonderten Verzeichnis SAP Libs for RFC Windows auf dem PLANTA-Transfer-Server. Falls notwendig, die Wrapper-Dateien namens pyrfc.pyd und pyrfc.pdb aus dem entsprechenden Unterverzeichnis nach <Server-Verzeichnis>\sap\lib kopieren.


SAP 7.20P_7

SAP 7.50P_6

Python 3.4.3 (bis S 39.5.26)

Vorhandene Wrapper-Dateien sind funktional

nicht verfügbar

Python 3.6.0 (S 39.5.27 - S 39.5.29)

Vorhandene Wrapper-Dateien müssen ersetzt werden

Vorhandene Wrapper-Dateien müssen ersetzt werden

Python 3.8.5 (ab S 39.5.30)

Vorhandene Wrapper-Dateien müssen ersetzt werden

Vorhandene Wrapper-Dateien sind funktional

Vorgehensweise

  • Der Pfad zu den SAP-Bibliotheken muss in der Betriebssystems-Umgebungsvariable PATH zur Verfügung gestellt werden.

Linux

Voraussetzungen

  • Kundenseitig wird

    • ein SAP-System mit NetWeaver-kompatibler RFC-Implementierung in Version 7.20P_7 oder 7.50P_6 benötigt.

      • Der Einsatz von 7.50P_6 verlangt auf PLANTA-Seite mind. den Server 39.5.30.

    • Installierte SAP RFC Client-Bibliotheken in der 64bit-x86-Version auf dem Anwendungsserver, auf dem der PLANTA-Server läuft.

Zu beachten bei der Einrichtung

  • Je nachdem, welche PLANTA Server-Version Sie im Einsatz haben (installieren) und somit je nach Versionenkombination von Python und SAP-Libraries, muss der im PLANTA-Server bereits enthaltene Wrapper u.U. mit dem anderen Wrapper ersetzt werden. Die neuen Wrapper-Dateien finden Sie im gesonderten Verzeichnis SAP Libs for RFC Linux auf dem PLANTA-Transfer-Server. Falls notwendig, die Wrapper-Datei namens pyrfc.cpython-*.so aus dem entsprechenden Unterverzeichnis nach <Server-Verzeichnis>/sap/lib kopieren.


SAP 7.20P_7

SAP 7.50P_6

Python 3.4.3 (bis S 39.5.26)

Vorhandene Wrapper-Dateien sind funktional

nicht verfügbar

Python 3.6.0 (S 39.5.27 - S 39.5.29)

Vorhandene Wrapper-Dateien müssen ersetzt werden

nicht verfügbar

Python 3.8.5 (ab S 39.5.30)

Vorhandene Wrapper-Dateien sind funktional

Vorhandene Wrapper-Dateien sind funktional


Vorgehensweise

  • Der Pfad zu den SAP-Bibliotheken muss in der Betriebssystems-Umgebungsvariable LD_LIBRARY_PATH zur Verfügung gestellt werden.

  • Zusätzlich muss die Betriebssystems-Umgebungsvariable SAPNWRFC_HOME mit <Server-Verzeichnis>/sap erstellt werden.

Container-Betrieb

Voraussetzungen

  • Das Worker-Image enthält ab Worker S 39.2.5 das Python-Modul pyrfc. Mit älteren Worker-Images bricht import pyrfc mit der Meldung „No module named 'pyrfc'“ ab.

  • Kundenseitig werden die Bibliotheken des SAP NetWeaver RFC SDK 7.50 für Linux benötigt: libsapnwrfc.so, libsapucum.so und die ICU-Bibliotheken. Sie sind nicht Teil des Images und werden über den SAP-S-User bezogen.

  • Die Worker-Pods müssen den SAP-Anwendungsserver erreichen. Dazu müssen sie seinen Hostnamen auflösen und den Gateway-Port 33<Systemnummer> per TCP erreichen, z. B. 3300 für die Systemnummer 00. Läuft die Verbindung über einen SAProuter, ist es Port 3299. Netzwerkrichtlinien und Firewalls müssen diese Verbindung freigeben.

Zu beachten bei der Einrichtung

  • Die SDK-Bibliotheken werden nur in den Worker-Pods benötigt, da RFC-Aufrufe im Worker-Prozess laufen.

  • Das Worker-Image setzt LD_LIBRARY_PATH=/planta/dlls. Ein Wert für LD_LIBRARY_PATH in den Helm-Werten ersetzt diese Vorgabe. /planta/dlls muss deshalb an erster Stelle stehen bleiben, sonst fehlen dem Worker seine eigenen Bibliotheken.

  • Binden Sie kein Volume direkt auf /planta/dlls ein, da es die Server-Bibliotheken verdeckt.

  • SAPNWRFC_HOME wird im Container-Betrieb nicht benötigt.

  • Dateien, die von Hand in einen laufenden Pod kopiert werden, gehen beim Neustart verloren.

Vorgehensweise: SDK über das Customizing-Image

  • Kopieren Sie die SDK-Bibliotheken in ein kundeneigenes Customizing-Image nach /psc/src/sap/nwrfcsdk/lib/. Der Customizing-Job überträgt sie auf das Transfer-Volume, das jeder Worker-Pod unter /mnt/transfer einbindet.

FROM registry.planta.services/planta/customizing:<Tag>
COPY nwrfcsdk/lib/ /psc/src/sap/nwrfcsdk/lib/
  • Ergänzen Sie in den Helm-Werten den Bibliothekspfad des Workers:

YAML
worker:
  env:
    LD_LIBRARY_PATH: "/planta/dlls:/mnt/transfer/sap/nwrfcsdk/lib"
  • Starten Sie die Worker-Pods nach jeder Änderung am Customizing-Image neu. Ein Helm-Upgrade, das nur das Customizing-Image ändert, startet sie nicht neu.

  • Das Transfer-Volume darf im Worker-Pod nicht mit noexec eingebunden sein. Prüfen Sie das in einem laufenden Worker-Pod mit mount | grep /mnt/transfer. Enthält die Ausgabe noexec, verwenden Sie ein abgeleitetes Worker-Image.

Vorgehensweise: abgeleitetes Worker-Image

FROM registry.planta.services/planta/worker:<Tag>
USER root
COPY nwrfcsdk/lib/ /planta/sap/nwrfcsdk/lib/
ENV LD_LIBRARY_PATH=/planta/dlls:/planta/sap/nwrfcsdk/lib
USER planta
  • Setzen Sie in diesem Fall worker.env.LD_LIBRARY_PATH nicht in den Helm-Werten, da es das ENV des Images überschreibt.

  • Bauen Sie das Image bei jedem Worker-Update neu.

Einrichtung prüfen

  • Führen Sie in einem Makro import pyrfc und pyrfc.get_nwrfclib_version() aus. Danach folgt ein RFC-Aufruf gegen das SAP-Testsystem.

  • Fehlt pyrfc.Connection, wurde das SDK nicht gefunden. Der Import selbst gelingt trotzdem.

Verwendung

Information

  • Das Python-Modul sapnwrfc kann in PLANTA project innerhalb beliebiger Python-Makros durch import sapnwrfc eingebunden und genutzt werden.

  • Das Python-Modul pyrfc kann in PLANTA project innerhalb beliebiger Python-Makros durch import pyrfc eingebunden und genutzt werden