HVS32 SAP IDOC Schnittstelle (Automatik-Polling)

From Wiki - Heidler Strichcode GmbH
Revision as of 15:11, 23 April 2021 by Odelice (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Voraussetzungen

DGS-Version 3.6.0.550 oder höher
DGS-Plugins HVS32Client, SAP IDoc Server, (optional für Rückmeldungen via IDoc: SAP IDoc Client)

Funktionsbeschreibung

Der DataGatewayServer (DGS) nutzt für die Kommunikation mit einem SAP System die SAP Bibliothek "JCo" und agiert beim Automatik Polling als JCo Server-Programm.

Der DGS ist die zentrale Kommunikationseinheit, über die sämtliche Daten zwischen dem Versandsystem und dem SAP-System ausgetauscht werden. Er läuft in Form eines Dienstes auf einem Windows-Server.

Die Daten werden im IDoc-Format über das auf TCP/IP basierende SAP-RFC-Protokoll (Remote Function Call) vom DGS empfangen. Je HVS32-Funktion muss ein eigener IDoc Type verwendet werden. Die IDoc-Typen können sowohl Basistypen, individualisierte Basistypen als auch komplett individuelle IDocs sein.

Damit vom SAP-System IDocs an den DataGatewayServer gesendet werden können, registriert sich dieser selbständig als externes RFC-Server-Programm (unter einer Programm-ID) bei einem SAP-Gateway (nicht für ein spezifisches SAP-System) und wartet auf eingehende RFC-Aufrufe.

Wenn ein RFC-Aufruf von einem beliebigen SAP-System an dieses SAP Gateway mit der Option "Verbindung mit einem bereits registrierten Programm" (mit der selben Programm-ID) übermittelt wird, findet die Verbindung mit dem DGS statt.

Nach dem Ausführen einer RFC-Funktion wartet der DGS auf weitere RFC-Aufrufe vom selben oder einem anderen SAP-System.

Im Falle einer unterbrochenen oder beendeten RFC-Verbindung registriert sich der DGS automatisch wieder am selben SAP Gateway unter der selben Programm-ID.

Nach dem Erzeugen des IDoc, wird dieses über einen transaktionsbasierten RFC an den DataGatewayServer gesendet. Dabei wird nicht auf eine Antwort gewartet, das heißt der Aufruf erfolgt asynchron.
Sobald das IDoc im DGS ankommt, wird anhand der enthaltenen Steuerinformationen eine passende HVS32-Station zur Verarbeitung gesucht. Falls keine Station zur Verfügung steht, wird das IDoc als fehlerhaft protokolliert und verworfen. Im anderen Fall werden die Daten in das spezielle HVS32-XML-Format umgesetzt, das schließlich an die ausgewählte HVS32-Station zur Verarbeitung weitergereicht wird. Im HVS32 findet eine sequentielle Verarbeitung aller ankommenden Aufträge statt. Somit kann eine Station nicht mehrere Aufträge parallel verarbeiten. Anschließend werden die Rückmeldedaten an den DGS gegeben, welcher anhand dieser Information das IDoc als erledigt markiert.
Wie im Ablauf zu sehen ist, wird keine direkte Rückmeldung an SAP geschickt. Der Grund dafür liegt bei der asynchronen Verarbeitung von IDocs, wodurch kein Anfrage-Antwort-Dialog zwischen dem Versandsystem und dem SAP-System zustande kommt. Dennoch besteht grundsätzlich die Möglichkeit die Rückmeldedaten (wie z.B. Paketnummer) über ein separates IDoc nach der Verarbeitung, ebenfalls asynchron, an SAP zu senden.


Notwendige SAP-Komponenten/-Parameter

  • neueste Version 3 der SAP Bibliotheken SAP Java Connector (SAP JCo) und SAP Java IDoc Library (SAP JIDocLib) in 64Bit
  • SAP GUI Installation auf dem Server, auf welchem der DataGatewayServer installiert ist - alternativ eine manuelle Anpassung der %SystemRoot%\system32\drivers\etc\services und %SystemRoot%\system32\drivers\etc\hosts
  • eine definierte Destination mit Verbindungstyp T (TCP/IP-Verbindung) im SAP-System über die Transaktion SM59 (siehe Destination über SM59 definieren)


Folgende Parameter werden vom DGS benötigt, um sich mit einer Programm-ID an einem SAP Gateway zu registrieren:

Parameter Beschreibung
jco.server.gwhost SAP-Gateway an welchem die Funktionsbausteine registriert werden
jco.server.gwserv SAP-Gateway-Service (Port) der genutzt wird (z.B. sapgw00)
jco.server.progid Programm-ID aus der SM59 unter welcher die Registrierung stattfindet
jco.server.connection_count Anzahl gleichzeitiger Verbindungen, die später von SAP zum Aufruf genutzt werden können
jco.client.ashost SAP-Applikation-Server auf welchem sich die Struktur des RFC Bausteins befindet
jco.client.sysnr SAP System Nr
jco.client.client Mandanten ID (SAP)
jco.client.user SAP-Benutzer mit Rechten zum Ausführen von RFC
jco.client.passwd Passwort
IDocTypes Liste von IDoc-Typen, die vom DataGatewayServer interpretiert werden sollen

Falls für clientseitige RFC-Aufrufe eine Lastverteilung (SAP Message Server) auf Seiten von SAP genutzt wird, muss anstelle der Parameter ashost und sysnr folgendes konfiguriert werden:

Parameter Beschreibung
jco.client.mshost IP oder Name des SAP Message Server
jco.client.r3name System ID des SAP-Systems
jco.client.group Name der SAP-Servergruppe

Verfügbare HVS32 Funktionen

Artikel-Daten und Gefahrgut-Informationen müssen im IDoc als Untersegment des Packstück-Segments definiert werden, da diese in einer 1:n Beziehung zu den Packstückdaten stehen.
Die Kommunikation ist unidirektional, d.h. eine Rückmeldung aus dem HVS32 erfolgt nicht bzw. asynchron in einer eigenen Trasaktion

Bitte beachten Sie, dass die Feld-Beschreibungen sich nur auf einen Standard beziehen, welcher als Vorschlag für die Schnittstelle dienen soll. Funktionsnamen, Feldnamen /-längen /-formate können prinzipiell abweichen, müssen in diesem Fall jedoch individuell betrachtet/analysiert werden.

Verfügbare HVS32 Funktionen

Beispiele

  • DELVRY05, DELVRY07
  • DESADV01

FAQ / Troubleshooting

Destination über SM59 definieren

Zur Einrichtung einer RFC-Verbindung im SAP, welche für die Anbindung des HVS32 Versandsystems gedacht ist, gehen Sie bitte wie folgt vor:

  1. Wechseln Sie zur Transaktion sm59
  2. Wählen Sie den Typ T (TCP/IP connections) [Abb.1]
  3. Erstellen Sie mit dem Button "create" eine neue Verbindung
  4. Geben Sie eine RFC Destination an (z.B. "RFC_HVS32")
  5. Stellen Sie den Aktivierungstyp auf "Registriertes Serverprogramm"
  6. Legen Sie eine Programm ID fest (z.B. "HVS32") [Abb.2]
  7. Öffnen Sie den Reiter "MDMP & Unicode"
  8. Stellen Sie dort die Art der Kommunikation auf "Unicode" [Abb.3]
  9. Speichern Sie die Einstellungen
  10. Sie können die Verbindung über "Connection Test" prüfen, sobald auf dem Zielsystem der DataGatewayServer installiert und als Dienst gestartet ist [Abb.4]