JTL-Wawi Workflows - JTL

January 21, 2018 | Author: Anonymous | Category: Ingenieurwissenschaften, Informatik, Datenbank
Share Embed Donate


Short Description

Download JTL-Wawi Workflows - JTL...

Description

JTL-Wawi Workflows Ein Workshop mit Dirk Lehmeier & Georg Jennessen

JTL-Wawi Workflows –Workshop 1.

Einfacher Workflow: Auftrag erstellt -> Benachrichtigung senden

-

Unter dem Ereignis Auftrag -> Erstellt, fügen wir einen neuen Workflow über den Button „Hinzufügen“ ein. Wir definieren keine Bedinungen Über den Link „Neue Aktion“ wird die Aktion Email-senden hinzugefügt. Über den Button „…“ können DotLiquid Variablen hinzugefügt werden. o Bitte beachten: Fügt man DotLiquid Variablen direkt in das Textfeld ein, werden diese nicht geparst!

1

JTL-Wawi Workflows –Workshop 2. Versandart bei internationalen Aufträgen ändern

-

Unter dem Ereignis „Auftrag erstellt“ erstellen wir einen neuen Workflow „Versandart_Ändern_International“ Es werden 3 Bedingungen angelegt, die alle erfüllt sein müssen Sind alle 3 Bedingungen erfüllt, wird durch die Aktion „Versandart ändern“ die Versandart des Auftrags geändert.

2

JTL-Wawi Workflows –Workshop 3. Komplexe Bedingungen mit Regulären Ausdrücken •

Match Deutschland: Deutschland oder ^Deutschland$



Nicht Deutschland: ^((?!(Deutschland)).) (negative lookahead)



Nicht Deutschland,Österreich oder Niederlande: ^((?!(Deutschland|Österreich|Niederlande)).)

Weitere Informationen zu regulären Ausdrücken in der MSDN: https://msdn.microsoft.com/de-de/library/hs600312(v=vs.110).aspx

3

JTL-Wawi Workflows –Workshop

4. Beispiele für „Erweiterte Eigenschaften“ mit DotLiquid Aufträge älter als 5 Tage {% assign erstellt = Vorgang.Stammdaten.Erstelldatum | AddDays: 5 -%} {% if Datum.Jetzt > erstellt -%} ja{% endif -%}

Auftrag zu 25% bezahlt {% assign gesamtSummeAnzahlungen = 0.0 %} {% for Zahlungen in Vorgang.Zahlungen.Zahlungen -%} {%if Zahlungen.IstAnzahlung %} {%assign betragAnzahlung = Zahlungen.Betrag | FormatNumber: 'N2', 'de-DE' | ToDouble %} {% assign gesamtSummeAnzahlungen = gesamtSummeAnzahlungen | Plus: betragAnzahlung %} {%endif%} {% endfor -%} {% assign auftragGesamtBrutto = Vorgang.Zahlungen.Gesamtbruttopreis | FormatNumber: 'N2', 'de-DE' | ToDouble %} {% assign pw = 100.0 | DividedBy: auftragGesamtBrutto %} {% assign prozentBezahlt = gesamtSummeAnzahlungen | Times:

{% if prozentBezahlt >= 25.0 %} ja {% endif %}

4

pw %}

JTL-Wawi Workflows –Workshop

5. SQL in „Erweiterten Eigenschaften“ Scalar Query {% assign kArtikel = Vorgang.Allgemein.Stammdaten.InterneArtikelnummer %}\ {% capture query -%} SELECT cArtNr FROM tArtikel WHERE tArtikel.kArtikel = kArtikel {% endcapture -%} {% assign result = query | DirectQueryScalar %} {{result}}

Query mit Resultset: {% assign artNr = Vorgang.Allgemein.Stammdaten.Artikelnummer %}\ {% capture query -%} SELECT * FROM tArtikel WHERE tArtikel.cArtNr LIKE '%{{artNr}}%' {% endcapture -%} {% assign Result = query | DirectQuery %} {% for data in Result.Daten %} {{data.cArtNr}}\ {% endfor %}\

5

JTL-Wawi Workflows –Workshop

Lager plus Zulauf kleiner Mindestbestand (für einen Auftrag) {% assign warenlagerName = 'Außenlager' %}\ {% assign

bestandunterschritten = '' %}\

{% for Artikelbeschreibungen in Vorgang.AuftragsPositionen.Positionen -%}\ {% assign artikel = Artikelbeschreibungen.Artikel %}\ {% assign

auflager = 0.0 %}\

{% assign

zulauf = artikel.BestandBestellt %}\

{% assign

mindestbestand = artikel.Mindestbestand %}\

{% capture query -%}\ SELECT SUM(fBestand) as Menge FROM vLagerbestandproLager JOIN tWarenlager on twarenlager.kWarenLager = vlagerbestandproLager.kwarenlager WHERE twarenlager.cName = '{{ warenlagerName }}' AND vLagerbestandproLager.kArtikel = {{ artikel.InterneArtikelnummer }} {% endcapture -%}\ {% assign Anzahl = query | DirectQuery %}\ {% for anz in Anzahl.Daten %}\ {% assign

auflager = auflager |Plus: anz.Menge %}\

{% endfor %}\ {% assign lagerPlusZulauf = auflager | Plus: zulauf %}\ {%if lagerPlusZulauf

< mindestbestand %}\

Ja {% endif %}\ {% endfor -%}

6

JTL-Wawi Workflows –Workshop

Lager plus Zulauf kleiner Mindestbestand (für einen Artikel) {% assign warenlagerName = 'Standardlager' %}\ {% assign

bestandunterschritten = '' %}\

{% assign

auflager = 0.0 %}\

{% assign

zulauf = Vorgang.Bestandsübersicht.Zulauf %}\

{% assign

mindestbestand = Vorgang.Allgemein.Lager.Mindestbestand %}\

{% capture query -%} SELECT SUM(fBestand) as Menge FROM vLagerbestandproLager JOIN tWarenlager on twarenlager.kWarenLager = vlagerbestandproLager.kwarenlager WHERE twarenlager.cName = '{{ warenlagerName }}' AND vLagerbestandproLager.kArtikel = {{ Vorgang.Allgemein.Stammdaten.InterneArtikelnummer }} {% endcapture -%} {% assign Anzahl = query | DirectQuery %} {% for anz in Anzahl.Daten %} {% assign

auflager = auflager |Plus: anz.Menge %}

{% endfor %} {% assign lagerPlusZulauf = auflager | Plus: zulauf %} {% comment DEBUG

-%}

auflager: {{auflager}} artikelid:{{ Vorgang.Allgemein.Stammdaten.InterneArtikelnummer}} zulauf:{{ zulauf }} lagerpluszulauf:{{ lagerPlusZulauf }} mindestbestand: {{ mindestbestand }} {% endcomment -%} {%if lagerPlusZulauf

< mindestbestand %}

{% assign bestandunterschritten = 'Ja' %} {% endif %} {{bestandunterschritten}}

7

JTL-Wawi Workflows –Workshop

6. Ameise und JTL-Workflows  

Zum Exportieren von Daten kann man sehr gut die Aktion „Ausgabe verwenden“ Wenn man danach direkt wieder Daten mit der Ameise importieren will, ist darauf zu achten, das „Auf Aktion warten“ angehakt ist

Aufruf der Ameise über die Aktion „Ausführen“ Parameter: -s SQL-Server Instanz -d Datenbankname -u Benutzername -p Passwort -t ID der Importvorlage -i Dateiname der zu importierenden Datei -o Dateiname für eine exportierende Datei Beispiel: -s PCName\SQLSERVERINSTANZ –d datenbankname –u sa –p sa04jT14 –t IMP3 –i C:\Temp\data.csv

8

JTL-Wawi Workflows –Workshop

7. Beispiel: Ftp-Upload  Auftrag wurde erstellt  Ist komplett Dropshipping Lieferbar  Ausliefern  Lieferantenerstellung wurde erstellt  Export der Lieferantenbestellung  Upload per Ftp

9

JTL-Wawi Workflows –Workshop Beispiel Ftp-Upload Batch Datei (upload.bat) c: cd "c:\temp\connect\ftp\Dropshipper" REM Set vars set server=ftpserver.de set user=username set password=password :TRYAGAIN set csvCount=0 for %%f in (*.csv) do set csvCount=%csvCount%+1 echo %csvCount% IF %csvCount%==0 GOTO NOTHINTODO REM login echo open %server%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp" echo %user%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp" echo %password%>> "c:\temp\connect\ftp\Dropshipper\temp.tmp" del c:\temp\connect\ftp\Dropshipper\ausgabe.txt REM execute stuff echo cd Dropshipper>> "c:\temp\connect\ftp\Dropshipper\temp.tmp" for %%f in (*.csv) do echo put "c:\temp\connect\ftp\Dropshipper\%%f">> "c:\temp\connect\ftp\Dropshipper\temp.tmp" echo dir>>"c:\temp\connect\ftp\Dropshipper\temp.tmp" echo bye>>"c:\temp\connect\ftp\Dropshipper\temp.tmp" REM run the ftp script ftp -s:"c:\temp\connect\ftp\Dropshipper\temp.tmp" >> "c:\temp\connect\ftp\Dropshipper\ausgabe.txt" REM delete temp file del "c:\temp\connect\ftp\Dropshipper\temp.tmp" move "c:\temp\connect\ftp\Dropshipper\*.csv" "c:\temp\connect\ftp\Gesendet" GOTO DONE :NOTHINTODO ping 192.0.0.0 -n 1 -w 1000 GOTO TRYAGAIN :DONE

10

JTL-Wawi Workflows –Workshop 8. Nachdem Artikel geändert wurde, anderen Artikel aktualisieren  Erstellen eines Eigenen Feldes „Export“  Neuer Workflow unter „Artikel geändert“  Aktion Wert setzen -> Export = 1  Erstellen einer Exportvorlage in der Ameise mit einem Filter auf das Eigene Feld „Export = 1“  Aktion Ausführen mit dem Ameisen Export hinzufügen  Aktion Ausführen mit einem Powershell Command um die Artikelnummer der Exportdatei anzupassen  Erstellen einer entsprechenden Importvorlage für die Ameise  Aktion Ausführen mit einem Ameisen Import  Aktion Wert setzen -> Export = 100

Beispielhaftes DotLiquid für einen Powershell Aufruf {% capture query -%} SELECT cArtNr FROM tArtikel WHERE cArtNr LIKE 'Dest%' {% endcapture -%}\ {% assign result = query | DirectQueryScalar %}\ {% assign artnr=result | trim %}\ -Command "(gc c:\temp\artikel\artikel.csv) -replace '{{Vorgang.Allgemein.Stammdaten.ArtNrSku}}', '{{artnr}}' | Out-File c:\temp\artikel\replaced.csv"

11

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF