HVS32 JDBC Schnittstelle (Automatik-Polling)

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

Falls Sie bereits unsere ODBC-Schnittstelle im Einsatz haben, finden Sie die Beschreibung unter: ODBC-Schnittstelle

Voraussetzungen

DGS-Version 3.7.0.618 oder höher
DGS-Plugins HVS32Client, JDBC Server
JDBC Treiber neuste Version der JDBC Treiber (JDK15) für die eingesetzte Datenbank

Funktionsbeschreibung

Der DataGatewayServer (DGS) selektiert in einem konfigurierbaren Intervall (default 1000 ms) die zu verarbeitenden Datensätze aus der Polling Tabelle und übermittelt diese an den HVS32 Client zur Verarbeitung. Die Datensätze werden dabei anhand vom Steuerungsfeld HVS32Verarbeitet (Wert = 0) selektiert.
Anhand vom Steuerungsfeld HVS32Funktion wird dem DGS mitgeteilt, welche Funktion für den selektierten Datensatz ausgeführt werden soll.

Nachdem der Datensatz vom HVS32 bearbeitet wurde, erfolgt die Rückmeldung. Dabei wird der Wert HVS32Verarbeitet auf den Wert 1 gesetzt. Sollte im HVS32 ein Fehler bei der Verarbeitung aufgetreten sein, z.B. "Die Route konnte nicht ermittelt werden!", so wird zusätzlich das Feld HVS32Fehler mit dem Wert 1 und der Fehlertext in HVS32Fehlertext1 + HVS32Fehlertext2 zurück gemeldet.

Für die Anfrage (Request) und Rückmeldung (Response) können weitere "Subrequests / -responses" konfiguriert werden. Diese SQLs werden zusätzlich ausgeführt und die Daten mit dem Hauptrequest / -response angereichert. Für jede Request / Response und Subrequest / - response kann die SQL individuell angepasst, sowie eine unterschiedliche Datenbankquelle konfiguriert werden.

Zusätzlich gibt es die Möglichkeit einen Fall Back zu konfigurieren, welcher ausgeführt wird, sobald der Request oder Response fehlschlagen sollte. Zum Beispiel wenn in der Request Steuerzeichen oder in der Rückmeldung ein falscher Datentyp (alphanumerische anstelle von numerischen Werten) übermittelt wird. Des Weiteren kann der Fall Back genutzt werden, wenn keine HVS32 Clients am DGS verbunden sind. Damit soll verhindert werden, das fehlerhafte Datensätze immer wieder selektiert werden und somit erneut auf Fehler laufen.

Steuerungs-Teil

Anhand vom Steuerungs-Teil wird definiert, welche Aktion mit dem Datensatz aus der Datenbank durchgeführt werden soll.

Feldname Typ Max Länge Dezimalstellen Belegung
ID Integer - - Eindeutige Nummer zur Identifizierung des Datensatzes (Autocounter).
HVS32Funktion Integer - - Die Funktionsnummer, die im HVS32 für den Datensatz ausgeführt werden soll.

1 = VersandDatenAnfrage
2 = VerladeVersandDaten
3 = UpdateVersandDaten
4 = StornoVersandDaten
5 = Tagesabschluss
6 = VersandDatenPruefAnfrage
7 = AnonymisiereVersandDaten

HVS32Verarbeitet Integer - - Wird nach der Verarbeitung im HVS32 auf 1 gesetzt. Datensätze werden anhand dieses Feldes selektiert.
HVS32Fehler Integer - - Wenn der Datensatz im HVS32 verarbeitet worden ist und ein Fehler auftrat, wird dieser Wert auf 1 gesetzt.
HVS32Fehlertext1 String 200 - Fehlertext im Fehlerfall
HVS32Fehlertext2 String 200 - Fehlertext im Fehlerfall

Verfügbare HVS32 Funktionen

Packstück-Verarbeitung (VersandDatenAnfrage)

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.

Artikel- und Gefahrgutdaten sollten jeweils in einer eigenen Tabelle mit 1:n relation zur Packstücktabelle realisiert werden. Die Relation der Tabellen kann zum Beispiel über die ID aus dem Steuerungs-Teil erfolgen.

Schnittstellen-Feld-Beschreibung

Packstück verladen/freigeben (VerladeVersandDaten)

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)

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)

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

Packstückdaten prüfen (VersandDatenPruefAnfrage)

Das Gateway sendet die VersandDatenPruefAnfrage an das Automatik-Polling des HVS32. Im HVS32 wird somit eine VersandDatenAnfrage simuliert. Dabei werden keine Etiketten gedruckt und das Packstück bzw. das Etikett wird nicht verbucht, jedoch sind alle weiteren Prozesse identisch zur VersandDatenAnfrage (Routenermittlung, Trackingnummer-Ermittlung, Adressprüfung, etc.) Diese Funktion dient dazu im Vorfeld alle Versand-Daten zu validieren.

Artikel- und Gefahrgutdaten sollten jeweils in einer eigenen Tabelle mit 1:n relation zur Packstücktabelle realisiert werden. Die Relation der Tabellen kann zum Beispiel über die ID aus dem Steuerungs-Teil erfolgen.

Schnittstellen-Feld-Beschreibung

Packstückdaten anonymisieren (AnonymisiereVersandDaten)

Das Gateway sendet die AnonymisiereVersandDaten an das Automatik-Polling des HVS32. Im HVS32 werden somit Kunden bezogene Daten für den entsprechenden Datensatz gemäß DSGVO anonymisiert. Diese Anonymisierung wird unwiderruflich und endgültig auf der Datenbankebene des Versandsystems durchgeführt. Eine Wiederherstellung der ursprünglichen Daten ist somit nicht mehr möglich. Log-Dateien, Rückmelde-Dateien, bereits übertragene Frachtführer DFÜs etc. sind hiervon nicht betroffen. Es können ausschließlich Packstücke und Sendungen anonymisiert werden, welche bereits Tages abgeschlossen sind.

Schnittstellen-Feld-Beschreibung

Tagesabschluss (Tagesabschluss)

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

Bitte beachten Sie, dass es sich bei den folgenden Scripten nur um eine Hilfestellung von unserer Seite handelt. Die Administration der Datenbank obliegt in der Verantwortung des Kunden.
Feldnamen /-längen /-formate oder auch Tabellennamen können prinzipiell abweichen, müssen in diesem Fall jedoch individuell betrachtet/analysiert werden.

MySQL
CREATE TABLE polling_packstueck (
        -- Steuerungsteil
        ID bigint(20) unsigned NOT NULL auto_increment,
        HVS32Funktion int(10) unsigned NOT NULL default 1,
        HVS32Verarbeitet int(1) unsigned NOT NULL default 0,
        HVS32Fehler int(1) unsigned NOT NULL default 0,
        HVS32Fehlertext1 varchar(200) default NULL,
        HVS32Fehlertext2 varchar(200) default NULL,
        -- Sendungsteil
        KundenNr varchar(20) default NULL,
        ZielAdrName1 varchar(50) NOT NULL,
        ZielAdrName2 varchar(50) default NULL,
        ZielAdrName3 varchar(50) default NULL,
        ZielAdrStrasse varchar(50) NOT NULL,
        ZielAdrLKZ varchar(5) NOT NULL,
        ZielAdrPLZ varchar(10) NOT NULL,
        ZielAdrOrt varchar(50) NOT NULL,
        ZielAdrRegion varchar(20) default NULL,
        ZielAdrBahnhof varchar(30) default NULL,
        Ansprechpartner varchar(20) default NULL,
        TelefonNr varchar(20) default NULL,
        FaxNr varchar(20) default NULL,
        UstIDNr varchar(20) default NULL,
        ILNNr varchar(20) default NULL,
        AuftraggeberID varchar(10) NOT NULL,
        VersandartID varchar(10) NOT NULL,
        AVISHinweis1 varchar(30) default NULL,
        AVISHinweis2 varchar(30) default NULL,
        AVISZusatz1 varchar(20) default NULL,
        AVISZusatz2 varchar(20) default NULL,
        LieferscheinNr varchar(40) NOT NULL,
        AuftragNr varchar(20) default NULL,
        BestellNr varchar(20) default NULL,
        Warenwert decimal(18,2) default NULL,
        WWWaehrung varchar(3) default NULL,
        Nachnahme decimal(18,2) default NULL,
        NNWaehrung varchar(3) default NULL,
        NNVermerk varchar(1) default NULL,
        NNVerwendung varchar(30) default NULL,
        Versicherungswert decimal(18,2) default NULL,
        VWWaehrung varchar(3) default NULL,
        FrankaturKennung varchar(10) default NULL,
        Zahlungsbedinung varchar(10) default NULL,
        ZBZoll varchar(1) default NULL,
        FrachtfuehrerKDNr varchar(10) default NULL,
        Sonderdienste varchar(30) default NULL,
        SendungsInhalt varchar(30) default NULL,
        TerminArt varchar(1) default NULL,
        TerminDatum varchar(10) default NULL,
        TerminZeit varchar(5) default NULL,
        NeutabsenderName1 varchar(30) default NULL,
        NeutabsenderName2 varchar(30) default NULL,
        NeutabsenderName3 varchar(30) default NULL,
        NeutabsenderStrasse varchar(30) default NULL,
        NeutabsenderLKZ varchar(3) default NULL,
        NeutabsenderPLZ varchar(10) default NULL,
        NeutabsenderOrt varchar(30) default NULL,
        RechnungsEmpfName1 varchar(50) default NULL,
        RechnungsEmpfName2 varchar(50) default NULL,
        RechnungsEmpfName3 varchar(50) default NULL,
        RechnungsEmpfStr varchar(50) default NULL,
        RechnungsEmpfLKZ varchar(5) default NULL,
        RechnungsEmpfPLZ varchar(10) default NULL,
        RechnungsEmpfOrt varchar(50) default NULL,
        PostLeitcode varchar(15) default NULL,
        PostZielFrachtzent varchar(5) default NULL,
        FrachtBrief varchar(20) default NULL,
        -- Packstueckteil
        Gewicht decimal(8,3) default NULL,
        NettoGewicht decimal(8,3) default NULL,
        PackStkGes int(10) unsigned default NULL,
        PackStkNr int(10) unsigned default NULL,
        Verpackungsart varchar(6) default NULL,
        PackstueckLaenge int(10) unsigned default NULL,
        PackstueckBreite int(10) unsigned default NULL,
        PackstueckHoehe int(10) unsigned default NULL,
        Packplatz varchar(10) default NULL,
        PackstueckID varchar(15) NOT NULL,
        -- Rückmeldung
        TrackingNr  varchar(35) default NULL,
        VersandSendungsNr varchar(20) default NULL,
        DruckDateTime varchar(20) default NULL,
        AusgangDateTime varchar(10) default NULL,
        Gebuehr decimal(8,3) default NULL, 
        GebuehrWaehrung varchar(3) default NULL,
        -- Primärschlüssel
        PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


MSSQL
CREATE TABLE polling_packstueck (
        -- Steuerungsteil
        ID bigINT IDENTITY(1,1) NOT NULL,
        HVS32Funktion INT NOT NULL default 1,
        HVS32Verarbeitet INT NOT NULL default 0,
        HVS32Fehler INT NOT NULL default 0,
        HVS32Fehlertext1 VARCHAR(200) default NULL,
        HVS32Fehlertext2 VARCHAR(200) default NULL,
        -- Sendungsteil
        KundenNr VARCHAR(20) default NULL,
        ZielAdrName1 VARCHAR(50) NOT NULL,
        ZielAdrName2 VARCHAR(50) default NULL,
        ZielAdrName3 VARCHAR(50) default NULL,
        ZielAdrStrasse VARCHAR(50) NOT NULL,
        ZielAdrLKZ VARCHAR(5) NOT NULL,
        ZielAdrPLZ VARCHAR(10) NOT NULL,
        ZielAdrOrt VARCHAR(50) NOT NULL,
        ZielAdrRegion VARCHAR(20) default NULL,
        ZielAdrBahnhof VARCHAR(30) default NULL,
        Ansprechpartner VARCHAR(20) default NULL,
        TelefonNr VARCHAR(20) default NULL,
        FaxNr VARCHAR(20) default NULL,
        UstIDNr VARCHAR(20) default NULL,
        ILNNr VARCHAR(20) default NULL,
        AuftraggeberID VARCHAR(10) NOT NULL,
        VersandartID VARCHAR(10) NOT NULL,
        AVISHinweis1 VARCHAR(30) default NULL,
        AVISHinweis2 VARCHAR(30) default NULL,
        AVISZusatz1 VARCHAR(20) default NULL,
        AVISZusatz2 VARCHAR(20) default NULL,
        LieferscheinNr VARCHAR(40) NOT NULL,
        AuftragNr VARCHAR(20) default NULL,
        BestellNr VARCHAR(20) default NULL,
        Warenwert NUMERIC(18,2) default NULL,
        WWWaehrung VARCHAR(3) default NULL,
        Nachnahme NUMERIC(18,2) default NULL,
        NNWaehrung VARCHAR(3) default NULL,
        NNVermerk VARCHAR(1) default NULL,
        NNVerwendung VARCHAR(30) default NULL,
        Versicherungswert NUMERIC(18,2) default NULL,
        VWWaehrung VARCHAR(3) default NULL,
        FrankaturKennung VARCHAR(10) default NULL,
        Zahlungsbedinung VARCHAR(10) default NULL,
        ZBZoll VARCHAR(1) default NULL,
        FrachtfuehrerKDNr VARCHAR(10) default NULL,
        Sonderdienste VARCHAR(30) default NULL,
        SendungsInhalt VARCHAR(30) default NULL,
        TerminArt VARCHAR(1) default NULL,
        TerminDatum VARCHAR(10) default NULL,
        TerminZeit VARCHAR(5) default NULL,
        NeutabsenderName1 VARCHAR(30) default NULL,
        NeutabsenderName2 VARCHAR(30) default NULL,
        NeutabsenderName3 VARCHAR(30) default NULL,
        NeutabsenderStrasse VARCHAR(30) default NULL,
        NeutabsenderLKZ VARCHAR(3) default NULL,
        NeutabsenderPLZ VARCHAR(10) default NULL,
        NeutabsenderOrt VARCHAR(30) default NULL,
        RechnungsEmpfName1 VARCHAR(50) default NULL,
        RechnungsEmpfName2 VARCHAR(50) default NULL,
        RechnungsEmpfName3 VARCHAR(50) default NULL,
        RechnungsEmpfStr VARCHAR(50) default NULL,
        RechnungsEmpfLKZ VARCHAR(5) default NULL,
        RechnungsEmpfPLZ VARCHAR(10) default NULL,
        RechnungsEmpfOrt VARCHAR(50) default NULL,
        PostLeitcode VARCHAR(15) default NULL,
        PostZielFrachtzent VARCHAR(5) default NULL,
        FrachtBrief VARCHAR(20) default NULL,
        -- Packstueckteil
        Gewicht NUMERIC(8,3) default NULL,
        NettoGewicht NUMERIC(8,3) default NULL,
        PackStkGes INT default NULL,
        PackStkNr INT default NULL,
        Verpackungsart VARCHAR(6) default NULL,
        PackstueckLaenge INT default NULL,
        PackstueckBreite INT default NULL,
        PackstueckHoehe INT default NULL,
        Packplatz VARCHAR(10) default NULL,
        PackstueckID VARCHAR(15) NOT NULL,
        -- Rückmeldung
        TrackingNr  VARCHAR(35) default NULL,
        VersandSendungsNr VARCHAR(20) default NULL,
        DruckDateTime VARCHAR(10) default NULL,
        AusgangDateTime VARCHAR(10) default NULL,
        Gebuehr NUMERIC(8,3) default NULL, 
        GebuehrWaehrung VARCHAR(3) default NULL,
        AusgangslisteNr INT default NULL
)


FAQ / Troubleshooting