Seite 1 von 1

DHL Geschäftskundenportal / DHL Shipment PollingClient / CSV

Verfasst: Di 27. Mär 2018, 14:26
von Felix.Merk
Hallo,

Unser Österreich-Importeur nutzt noch 1.4.5.7 und werden auch so schnell nicht auf 1.5 umstellen... (never change a running system usw. :-))

er nutzt wir für den Paketversand EasyPak von der Österreichischen Post (quasi baugleich Easlog von der DHL).
Er erstellt für jeden Kunden einen Lieferschein, CAO bastelt eine CSV, die CSV wird von EasyPak gesucht (Polling), eingelesen, weiterverarbeitet und gelöscht.
Funktioniert seit Jahren perfekt für ihn!

Jetzt stellt die Post (verpflichtend) von EasyPak auf "Post Label Center" um.
Dort könnte man z.B. eine Sendungsliste hochladen oder händisch Labels erstellen ssw... - also keine Option....
Er brauchen das weitestgehende automatisert (bei ca.20.000 - 25.000 Paketen pro Jahr)

Um nicht alle Kunden zu verprellen hat die Post jetzt einen "Pollingclient" (OnDotPrintin) ins leben gerufen, welcher ebenfalls an einem definierten Pfad nach der CSV-Datei sucht.
Diese wird dann eingelesen und ins "Post Label Center" übertragen.
Soweit die Theorie....

In der Praxis ist das ein wenig schwieriger:
Im EasyPak konnte man noch eine CSV einlesen, ein Profil erstellen und die Werte in der CSV dann den "EasyPakfeldern" zuordnen.
Felder, welche CAO nicht lieferte konnte man fest auf einen definierten "Textwert" einstellen...

Leider hat man das bei dem neuen tollen Programm wohl vergessen....
Jetzt gibt es nur noch ein paar fest definierte CSV-Formate unter denen man auswählen kann.

Und nun kommt das Problem:

Wie soll ich CAO klar machen, das es z.B. als dritten Wert in der CSV immer die "004" (z.B. für das Post-Produkt "Zerbrechlich") vergeben soll, dann brauch ich z.B. 8 Semikolone in folge, da hier keine Werte übergeben werden....
also z.B.:

Name1;Name2;Name3;004;;;;;;;;Strasse;PLZ;ORT;;;;;;;;0310;;;

Die Deutsche Post macht das übrigens genau so.... Dort wird auch das funktionierende "EasyLog" durch ein nicht funktionierendes "Geschäftskundenportal" mit "Pollingclient" abgelöst....
Allerdings kann man sich dort wenigstens online seine CSV-Profile zusammenstellen...

Lieben Gruß
Felix

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Di 27. Mär 2018, 14:52
von Felix.Merk
@Moderator bitte den Betreff abändern in: EasyPak/Easylog CSV-Export bei Lieferscheinerstellung

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Di 27. Mär 2018, 14:54
von Felix.Merk
hier noch die Schnittstellenbeschreibung von der Österreichischen Post.

Für uns kommen nur die "Ports":
- SchenkerPostPort
- UltimatePostPort

in Frage, da wir das Feld "Paketanzahl" benötigen....

Lieben Gruß
Felix

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Di 27. Mär 2018, 15:08
von hh-cm
Wie soll ich CAO klar machen, das es z.B. als dritten Wert in der CSV immer die "004" (z.B. für das Post-Produkt "Zerbrechlich") vergeben soll, dann brauch ich z.B. 8 Semikolone in folge, da hier keine Werte übergeben werden....
Der SQL Befehl der bei der Lieferscheinerstellung eine CSV erzeugt ist der Knackpunkt.

Ein Beispiel

Code: Alles auswählen

SELECT NAME,VORNAME,STRASSE FROM FOOBAR
Bewirkt natürlich, dass NAME,VORNAME,STRASSE aus der Tabelle FOOBAR zurückgegeben wird.

Was macht wohl

Code: Alles auswählen

SELECT NAME,'004' AS PLATZHALTER1, '' AS PLATZHALTER2, VORNAME,STRASSE FROM FOOBAR
Es kommt

NAME;004;;VORNAME;STRASSE

dabei raus.
Ein SQL muss keine direkten Felder beinhalten.

Sorry aber hier hat gerade keiner wirklich Zeit sich mit den Umstellungen und Wünschen der Paketdienstleister zu beschäftigen.
Konkrete Fragen können wir beantworten.

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Mi 28. Mär 2018, 08:16
von Felix.Merk
:-) brauchst dich nicht entschuldigen, ist schon alles was ich benötige :-)
Danke!

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Mi 28. Mär 2018, 08:17
von hh-cm
Super :)

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Mi 28. Mär 2018, 09:37
von Felix.Merk
Funktioniert für mich soweit,
hier mein SQL-Cose zur Orientierung für den sogenannten "SchenkerPostPort" der Österreichischen Post.

Gibt es eine Möglichkeit Straße und Hausnummer mittels SQL zu trennen?

Code: Alles auswählen

'' AS "Sendungsnummer",
'' AS "Absenderreferenz1",
'' AS "Absender.FremdsystemReferenz",
'' AS "Absender.Name1",
'' AS "Absender.Name2",
'' AS "Absender.Name3",
'' AS "Absender.Adresszeile1",
'' AS "Absender.Hausnummer",
'' AS "Absender.Postleitzahl",
'' AS "Absender.Ort",
'' AS "Absender.Land",
'' AS "Empfänger.FremdsystemReferenz",
L.KUN_NAME1 as "Empfänger.Name1",
L.KUN_NAME2 as "Empfänger.Name2",
L.KUN_NAME3 as "Empfänger.Name2",
AD.EMAIL as "Empfänger.Mail",
L.KUN_STRASSE as "Empfänger.Adresszeile1",
'' AS "Empfänger.Hausnummer",
L.KUN_PLZ as "Empfänger.Postleitzahl",
L.KUN_ORT as "Empfänger.Ort",
L.KUN_LAND as "Empfänger.Land",
'31' AS "Produkt",
L.USR1 as "Paketanzahl",
'' AS "Gewicht",
'004' AS "Zusatzleistungen (CSV 2)",
'' AS "Zustellhinweis",
L.KUN_NUM as "KundenID",
'' AS "PrinterShippingNETName",
AD.TELE1 as "Empfänger.Tel",
'' AS "Absender.Tel",
'' AS "Absender.Email",
'' AS "Empfänger.ProvinzIsoCode",
'' AS "Rücksendeweg",
'' AS "Rücksendeoption",
'' AS "Rücksendedauer",
'' AS "Zollbeschreibung",
'' AS "Dokumentenart",
'' AS "Artikelliste"

FROM LIEFERSCHEIN L 

INNER JOIN LIEFERSCHEIN_POS LP on LP.LIEFERSCHEIN_ID=L.REC_ID
left outer JOIN ADRESSEN AD on AD.REC_ID=L.ADDR_ID

WHERE L.REC_ID=:ID
Wenn was falsch oder umständlich ist, wäre ich froh wenn Ihr mir einen Hinweis gebt :-)

Liebe Grüße
Felix

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Mi 28. Mär 2018, 11:09
von hh-cm
Jein. Man könnte die Straße anhand des Leerzeichens splitten. Ist allerdings gefährlich, da z.B "Hans Müller Str. 54" nicht funktionieren würde

SUBSTRING_INDEX(SUBSTRING_INDEX(L.KUN_STRASSE, ' ', 1), ' ', -1) as STRASSE,
SUBSTRING_INDEX(SUBSTRING_INDEX(L.KUN_STRASSE, ' ', 2), ' ', -1) as HAUSNR

In der 1.5 gibt es das Feld STRASSE, HAUSNR und ADRESSZUSATZ welches in einer der nächsten Versionen benutzt werden kann.

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Mi 28. Mär 2018, 11:12
von Felix.Merk
das ist mir zu gefährlich :-)
Die Labels werden auch so übernommen.... sollte also passen...

Code: Alles auswählen

/*
Zusammenstellung für Import in "Post Label Center" der Österreichischen Post mittels "SchenkerPostPort"
*/
'' AS "Sendungsnummer",
'' AS "Absenderreferenz1",
'' AS "Absender.FremdsystemReferenz",
'' AS "Absender.Name1",
'' AS "Absender.Name2",
'' AS "Absender.Name3",
'' AS "Absender.Adresszeile1",
'' AS "Absender.Hausnummer",
'' AS "Absender.Postleitzahl",
'' AS "Absender.Ort",
'' AS "Absender.Land",
L.KUN_NUM AS "Empfänger.FremdsystemReferenz",
L.KUN_NAME1 as "Empfänger.Name1",
L.KUN_NAME2 as "Empfänger.Name2",
L.KUN_NAME3 as "Empfänger.Name2",
AD.EMAIL as "Empfänger.Mail",
L.KUN_STRASSE as "Empfänger.Adresszeile1",
'' AS "Empfänger.Hausnummer",
L.KUN_PLZ as "Empfänger.Postleitzahl",
L.KUN_ORT as "Empfänger.Ort",
L.KUN_LAND as "Empfänger.Land",
'31' AS "Produkt",
L.USR1 as "Paketanzahl",
'' AS "Gewicht",
'004' AS "Zusatzleistungen (CSV 2)",
'' AS "Zustellhinweis",
'' as "KundenID",
'' AS "PrinterShippingNETName",
AD.TELE1 as "Empfänger.Tel",
'' AS "Absender.Tel",
'' AS "Absender.Email",
'' AS "Empfänger.ProvinzIsoCode",
'' AS "Rücksendeweg",
'' AS "Rücksendeoption",
'' AS "Rücksendedauer",
'' AS "Zollbeschreibung",
'' AS "Dokumentenart",
'' AS "Artikelliste"

FROM LIEFERSCHEIN L 

INNER JOIN LIEFERSCHEIN_POS LP on LP.LIEFERSCHEIN_ID=L.REC_ID
left outer JOIN ADRESSEN AD on AD.REC_ID=L.ADDR_ID

WHERE L.REC_ID=:ID
kleine Ergänzung/Änderung im Code

Re: DHL Geschäftskundenportal / DHL Shipment PollingClient /

Verfasst: Di 5. Mär 2019, 13:11
von Felix.Merk
nochmal eine Zusatzfrage...
Wir "missbrauchen" das Feld Überschrift1 dazu, um die Paketanzahl zu übergeben.
Im Export steht dann z.B. eine 4 in der Spalte Paketanzahl...
Es wird aber pro Lieferschein logischerweise nur eine Zeile mit Werten ausgegeben.

also z.B.:

Code: Alles auswählen

Name;Vorname;Strasse;PLZ;Ort,Paketanzahl
Mayer;Franz,Teststraße 1;88888;Testhausen;4


Ist es irgendwie möglich, wenn wir die "4" da reinschreiben, 4 einzelne Zeilen erstellen zu lassen.
Also 4 mal der Datensatz?

also dann so etwa:

Code: Alles auswählen

Name;Vorname;Strasse;PLZ;Ort,Paketanzahl
Mayer;Franz,Teststraße 1;88888;Testhausen;4
Mayer;Franz,Teststraße 1;88888;Testhausen;4
Mayer;Franz,Teststraße 1;88888;Testhausen;4
Mayer;Franz,Teststraße 1;88888;Testhausen;4
Lieben Gruß
Felix