HVS32 Ehrhardt + Partner LFS Schnittstelle (Automatik-Polling)

From Wiki - Heidler Strichcode GmbH
Jump to navigation Jump to search

Voraussetzungen

DGS-Version 3.6.0.550 oder höher
DGS-Plugins HVS32Client, EPServer


Funktionsbeschreibung

Der DataGatewayServer (DGS) nutzt für die Kommunikation mit einem E+P LFS ein spezielles Kommunikationsprotokoll und stellt einen TCP-Server bereit, der auf Verbindungen vom E+P LFS wartet.

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.

Pro LFS Druck-Job wird vom LFS eine Verbindung zum Gateway aufgebaut, in der dann die Anfragen (Druck,Storno, etc.) mittels eines auf TCP basierenden Protkolles in einem XML-Dokument übermittelt werden. Auf E+P Seite ist ebenfalls eine Standardschnittstelle für diese Art der Kommunikation hinterlegt.

Ablauf

Das Server-Plugin wartet auf eine ankommende TCP-Verbindung vom LFS. Der LFS Job Verbindet sich auf diesen Server und hält dann dauerhaft die Verbindung, in einem bestimmten Intervall werden KEEPALIVE Meldungen von E+P gesendet.

Sobald eine Verbindung aufgebaut ist und Daten gesendet werden, vermittelt der DGS die Anfrage an den entsprechenden HVS32-Client / HVS32 Monitoringservice. Der Packplatz / Druckername wird dabei vom LFS im Feld HCOUTQ übergeben und die auszuführende Gatewayfunktion in HCUSAG.

Nach der Verarbeitung im HVS32 werden die Rückmeldedaten als XML-Dokument über die gleiche Verbindung an das LFS zurückgemeldet.

Kommunikationsprotokoll

Das verwendete Kommunikationsprotokoll basiert auf TCP und ist folgendermaßen aufgebaut:

Name Beschreibung Länge
Startflag Fest ASCII-Wert 0x02 <STX> 1 Byte
Bytecount Anzahl der Bytes des XML 4 Byte
XML Daten XML-Dokument mit den Anfragedaten Wert von Bytecount
Endeflag Fest ASCII-Wert 0x03 (ETX) 1 Byte

XML-Format

Der Rootknoten des XML-Dokuments hat stets den Namen LFS. Die darin enthaltenen Knoten stehen für jeweils einen Datensatz. Diese tragen den Namen PESSSND bei Anfragen vom LFS an das HVS, oder PESSRCV bei Rückmeldungen vom HVS zum LFS. In einem Datensatz sind die Felder mit den Namen aus den LFS-Tabellen enthalten. Numerische Felder habenzusätzlich noch einen Suffix _NUM.

Zusätzlich können bei einer Anfrage neben den PESSSND Knoten weitere Knoten für Gefahrgut- und Lieferscheinpositionen im Rootknoten enthalten sein. Die Namen dieser Knoten sind frei konfigurierbar, müssen aber nach dem PESSSND-Knoten übergeben werden. Für Gefahrgutdaten wird z.B. momentan PESSGGV verwendet.

Die auszuführende Gatewayfunktion wird im Feld HCUSAG als numerischer Wert übergeben. Die Verwendungsnummer HCUSAG aus dem LFS steht für folgende Funktionen:

1 = Packstück-Verarbeitung (VersandDatenAnfrage)
2 = Packstückdaten aktualisieren (UpdateVersandDaten)
4 = Packstück stornieren (StornoVersandDaten)
5 = Packstück verladen/freigeben (VerladeVersandDaten)
6 = Tagesabschluss

Notwendige E+P LFS Parameter

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

Parameter Beschreibung
TCP/IP Port TCP/IP Port über welchen der DataGatewayServer verfügbar sein soll
Stream Charset Zeichensatz des TCP/IP Streams über welchen das E+P LFS Daten sendet
XML Charset Zeichensatz des XML, welches von E+P gesendet wird
LFS Request-Element XML Knoten, in welchen das E+P LFS die Packstückdaten sendet (Standard: PESSSND)
LFS Response-Element XML Knoten, in welchen das E+P LFS die Rückmeldedaten erwartet (Standard: PESSRCV)

Verfügbare HVS32 Funktionen

Artikel-Daten und Gefahrgut-Informationen müssen im Request-XML als eigener Knoten (z.B. PESSGGV) auf gleicher Hirachie-Ebene zu den Packstückdaten übergeben werden, da diese in einer 1:n Beziehung zu den Packstückdaten stehen.
Die Kommunikation ist bidirektional, d.h. die Rückmeldung erfolgt synchron in der gleichen Transaktion wie die Anfrage.

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.

Packstück-Verarbeitung (VersandDatenAnfrage) [HCUSAG=1]

Die Gatewayfunktion VersandDatenAnfrage wird vom Data-Gateway-Server im Automatik-Polling Modus an das HVS32 gesendet, um dort ein Etikett für ein Packstück zu erzeugen und verbuchen. Ein Etikett wird für alle weiteren Funktionen wie Storno, Verladefreigabe, etc. anhand der hostseitigen Packstück-ID identifiziert. Diese wird im Feld PackstueckID übergeben und muss dementsprechend innerhalb des Versandsystems eindeutig sein.

Schnittstellen-Feld-Beschreibung

Packstück verladen/freigeben (VerladeVersandDaten) [HCUSAG=5]

Die Gatewayfunktion VerladeVersandDaten wird vom Data-Gateway-Server im Automatik-Polling Modus an das HVS32 gesendet, um dort Packstücke für den Ausgang frei zu geben. Nur Packstücke, welche für den Ausgang freigegeben wurden, werden für den Tagesabschluss berücksichtigt.

Schnittstellen-Feld-Beschreibung

Packstückdaten aktualisieren (UpdateVersandDaten) [HCUSAG=2]

Die Gatewayfunktion UpdateVersandDaten wird vom Data-Gateway-Server im Automatik-Polling Modus an das HVS32 gesendet, um dort die Daten von bestehende Packstücken zu verändern. Diese Anfrage wird zum Beispiel gesendet, wenn der Warenwert für ein Packstück erst zu einem späteren Zeitpunkt bekannt ist. Dabei wird stets über das Feld PackstueckID und bei Belegung auch über das Feld TrackingNr gesucht. Bei dieser Anfrage werden allerdings die zu aktualisierenden Felder und Inhalte nicht mehr nach den Richtlinien des Frachtführers geprüft (z.B. Gewichtsgrenzen, etc.). Es muss somit vom Vorsystem sichergestellt werden, dass die aktualisierenden Werte mit den Richtlinien des Frachtführers übereinstimmen. Sollte dies nicht möglich sein, kann diese Funktion nicht genutzt werden, sondern das Etikett muss storniert und neu verarbeitet werden. Außerdem können Felder, welche bereits auf einem Etikett angedruckt oder vom Versandsystem HVS32 in einer Frachtführerabwicklung ermittelt wurden (z.B. Adresse, Route, TrackingNr, Sonderdienste, etc.) nicht manipuliert werden.

Schnittstellen-Feld-Beschreibung

Packstück stornieren (StornoVersandDaten) [HCUSAG=4]

Die Gatewayfunktion StornoVersandDaten wird vom Data-Gateway-Server im Automatik-Polling Modus an das HVS32 gesendet, um dort bestehende Packstücke zu stornieren, die noch nicht auf einer Ausgangsliste sind. In der Regel wird ein Packstück anhand der hostseitigen Packstück-ID storniert. Diese wird im Feld PackstueckID übergeben. Zusätzlich zur hostseitigen Packstück-ID kann auch die TrackingNr zur Identifikation des Packstücks beitragen, für den Fall, dass die hostseitige Packstück-ID keine Eindeutigkeit garantieren kann.

Schnittstellen-Feld-Beschreibung

Tagesabschluss (Tagesabschluss) [HCUSAG=6]

Das Gateway sendet die Tagesabschluss-Anfrage an das Automatik-Polling des HVS32. Im HVS32 wird somit ein Tagesabschluss anhand der zusätzlich übergebenen Parameter ausgelöst. Der Tagesabschluss setzt sich aus den Punkten Ausgangsliste erzeugen und Frachtführer DFÜ erzeugen zusammen. Nur Packstücke, welche für den Ausgang freigegeben wurden, werden für den Tagesabschluss berücksichtigt. Standardmäßig sind alle Packstücke freigegeben, außer sie wurden durch das Erweiterungsmodul Ausgangsscannung gesperrt. Die Rückmeldung im HVS32 findet nach dem Ausführen des Tagesabschluss statt. Es stehen keine Packstück-/Sendungs-Daten für die Rückmeldung zur Verfügung.

Schnittstellen-Feld-Beschreibung

Beispiele

Beispiel eines XML-Dokuments für eine Druckanfrage an den Packplatz DRELPPA07 inklusive einer Gefahrgutposition.
	<?xml version="1.0" encoding="ISO-8859-15"?>
	<LFS>
		<PESSSND>
			<HCKONZ>200</HCKONZ>
			<HCFIRM>010</HCFIRM>
			<HCUSAG>1</HCUSAG>
			<HCOUTQ>DRELPPA07</HCOUTQ>
			<HCSART>IMP</HCSART>
			<HCKDNR>0091052005</HCKDNR>
			<HCAN1>Beispiel GmbH</HCAN1>
			<HCAN2>z.H. Max Mustermann</HCAN2>
			<HCSTR>Teststr. 4</HCSTR>
			<HCLAKZ>DE</HCLAKZ>
			<HCPLZ>12345</HCPLZ>
			<HCLORT>Musterstadt</HCLORT>
			<HCLRGN>001</HCLRGN>
			<HCBHF>Versand+LS</HCBHF>
			<HCMAND>200010</HCMAND>
			<HCHVAR>DANS</HCHVAR>
			<HCLSNR>0014488006</HCLSNR>
			<HCANR1>0014488006</HCANR1>
			<HCBST1>0201583029</HCBST1>
			<HCWAWE_NUM>427,5000</HCWAWE_NUM>
			<HCWSWW>EUR</HCWSWW>
			<HCSSVC>31000</HCSSVC>
			<HCFLCO>medical equipment</HCFLCO>
			<HCDEDA>00.00.0000</HCDEDA>
			<HCDETI>00:00</HCDETI>
			<HCBGEW_NUM>224,05000</HCBGEW_NUM>
			<HCNGEW_NUM>201,15000</HCNGEW_NUM>
			<HCQUPA_NUM>1</HCQUPA_NUM>
			<HCPANR_NUM>1</HCPANR_NUM>
			<HCTOPA>PAL</HCTOPA>
			<HCPLEN_NUM>120</HCPLEN_NUM>
			<HCPWID_NUM>80</HCPWID_NUM>
			<HCPHEI_NUM>72</HCPHEI_NUM>
			<HCPKNR_NUM>357249014</HCPKNR_NUM>
			<HCDDAT>01.06.2007</HCDDAT>
			<HCDTIM>10:22</HCDTIM>
			<HCIDOC>0000000022309156</HCIDOC>
			<HCLBSL>FH</HCLBSL>
			<HCLAPA>1</HCLAPA>
			<HCRA13>A3001140</HCRA13>
			<HCRA18>DZL/4501017185</HCRA18>
			<HCAJH_NUM>20</HCAJH_NUM>
			<HCAJA_NUM>7</HCAJA_NUM>
			<HCAMO_NUM>6</HCAMO_NUM>
			<HCATA_NUM>1</HCATA_NUM>
			<HCASTD_NUM>10</HCASTD_NUM>
			<HCAMIN_NUM>22</HCAMIN_NUM>
			<HCASEK_NUM>24</HCASEK_NUM>
			<HCLFDN_NUM>1992951</HCLFDN_NUM>
		</PESSSND>
		<PESSGGV>
			<HGKONZ>200</HGKONZ>
			<HGFIRM>010</HGFIRM>
			<HGZUNR_NUM>6251</HGZUNR_NUM>
			<HGGGS>UN31</HGGGS>
			<HGGMEN_NUM>1,000</HGGMEN_NUM>
			<HGME>ST</HGME>
		</PESSGGV>
	</LFS>
Rückmeldung für die obige Anfrage:
	<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
	<LFS>
		<PHVSRCV>
			<HCKONZ>200</HCKONZ>
			<HCFIRM>010</HCFIRM>
			<HCUSAG>1</HCUSAG>
			<HCOUTQ>DRELPPA07</HCOUTQ>
			<HCSART>IMP</HCSART>
			<HCKDNR>0091052005</HCKDNR>
			<HCAN1>Beispiel GmbH</HCAN1>
			<HCAN2>z.H. Max Mustermann</HCAN2>
			<HCSTR>Teststr. 4</HCSTR>
			<HCLAKZ>DE</HCLAKZ>
			<HCPLZ>12345</HCPLZ>
			<HCLORT>Musterstadt</HCLORT>
			<HCLRGN>001</HCLRGN>
			<HCBHF>Versand+LS</HCBHF>
			<HCMAND>200010</HCMAND>
			<HCHVAR>DANS</HCHVAR>
			<HCLSNR>0014488006</HCLSNR>
			<HCANR1>0014488006</HCANR1>
			<HCBST1>0201583029</HCBST1>
			<HCWAWE_NUM>427,5000</HCWAWE_NUM>
			<HCWSWW>EUR</HCWSWW>
			<HCSSVC>31000</HCSSVC>
			<HCFLCO>medical equipment</HCFLCO>
			<HCDEDA>00.00.0000</HCDEDA>
			<HCDETI>00:00</HCDETI>
			<HCBGEW_NUM>224,05000</HCBGEW_NUM>
			<HCNGEW_NUM>201,15000</HCNGEW_NUM>
			<HCQUPA_NUM>1</HCQUPA_NUM>
			<HCPANR_NUM>1</HCPANR_NUM>
			<HCTOPA>PAL</HCTOPA>
			<HCPLEN_NUM>120</HCPLEN_NUM>
			<HCPWID_NUM>80</HCPWID_NUM>
			<HCPHEI_NUM>72</HCPHEI_NUM>
			<HCPKNR_NUM>357249014</HCPKNR_NUM>
			<HCDDAT>01.06.2007</HCDDAT>
			<HCDTIM>10:22</HCDTIM>
			<HCIDOC>0000000022309156</HCIDOC>
			<HCLBSL>FH</HCLBSL>
			<HCLAPA>1</HCLAPA>
			<HCRA13>A3001140</HCRA13>
			<HCRA18>DZL/4501017185</HCRA18>
			<HCAJH_NUM>20</HCAJH_NUM>
			<HCAJA_NUM>7</HCAJA_NUM>
			<HCAMO_NUM>6</HCAMO_NUM>
			<HCATA_NUM>1</HCATA_NUM>
			<HCASTD_NUM>10</HCASTD_NUM>
			<HCAMIN_NUM>22</HCAMIN_NUM>
			<HCASEK_NUM>24</HCASEK_NUM>
			<HCLFDN_NUM>1992951</HCLFDN_NUM>
			<HCRA15>073427000040941</HCRA15>
			<HCVENR>JND60073427000040941</HCVENR>
		</PHVSRCV>
	</LFS>
Beispiel-Mapping
HVS32 Feld LFS Feld
KundenNr HCKDNR
ZielAdrName1 HCAN1
ZielAdrName2 HCAN2
ZielAdrName3 HCAN3
ZielAdrStrasse HCSTR
ZielAdrLKZ HCLAKZ
ZielAdrPLZ HCPLZ
ZielAdrOrt HCLORT
ZielAdrRegion HCLRGN
ZielAdrBahnhof HCBHF
Ansprechpartner HCCNTC
TelefonNr HCTEL
FaxNr HCFAX
EmpfEmailAdresse HCEMAI
UstIDNr HCUIDN
ILNNr HCKILN
AuftraggeberID HCMAND
VersandartID HCVAVS
AVISHinweis1 HCSHW1
AVISHinweis2 HCSHW2
ZusatzZeile1 HCADA1
ZusatzZeile2 HCADA2
LieferscheinNr HCLSVS
AuftragNr HCANR1
BestellNr HCBST1
KundenBestellNr HCRA18
Warenwert HCWAWE_NUM
WWWaehrung HCWSWW
Nachnahme HCNNWE_NUM
NNWaehrung HCWSNN
NNVermerk HCCODT
NNVerwendung HCCODU
Versicherungswert HCINSW
VWWaehrung HCCKIW
FrankaturKennung HCLBSL
Zahlungsbedinung HCTPAY
ZbZoll HCTCUS
FrachtfuehrerKdNr HCTPNR
FrachtfuehrerKdNrZoll HCTCNR
SonderdiensteInaktiv HCSSVC
SendungsInhalt HCFLCO
TerminArt HCTKZ
TerminDatum HCDTLF
RechnungsEmpfName1 HCBAN1
RechnungsEmpfName2 HCBAN2
RechnungsEmpfName3 HCBAN3
RechnungsEmpfStr HCBSTR
RechnungsEmpfLKZ HCBLKZ
RechnungsEmpfPLZ HCBPLZ
RechnungsEmpfOrt HCBORT
PostLeitcode HCPLCD
PostZielfrachtzent HCDEFC
Frachtbrief HCBOL
Gewicht HCBGEW_NUM
PackStkGes HCQUPA_NUM
PackStkNr HCPANR_NUM
VerpackungsArt HCTOPA
PackStueckLaenge HCPLEN_NUM
PackStueckBreite HCPWID_NUM
PackStueckHoehe HCPHEI_NUM
PackStueckID HCPKNR_NUM
LieferscheinDatum HCRA10

FAQ / Troubleshooting