Neu Anleitung Workflow: PopUp-/Mail-Warnung wenn Lagerreichweite < x Tage (Mindestbestand)

sjk

Sehr aktives Mitglied
16. Januar 2019
364
130
Moin zusammen:)

Gestern habe ich den Trigger unserer Nachbestell-PopUp-Warnungen vom Mindestbestand auf eine Mindest-Lagerreichweite umgestellt. Basis dafür war die "Komplexe Produkte KPI" ListView von @Thomas Lisson. Evtl. ist das für jemanden hier ja ebenfalls interessant.

Der Vorteil der Lagerreichweite ist, dass sie dynamischer auf wechselnde Verkaufsmengen reagiert als ein harter Mindestbestand.

Das Ganze sieht am Ende etwa so aus:

PopUp_Beispiel.png



Ausgangssituation
Die Warnung auf Basis des Mindestbestandes war bei uns teilweise etwas unflexibel. Es gab hier vor allem zwei Fälle, die ausschlaggebend waren:
1. Wenn Produkte plötzlich signifikant seltener verkauft werden muss man nicht zwingend den normalen Mindestbestand beibehalten bzw. kann ohne Probleme eine Zeit lang unter dem Mindestbestand fahren.
2. Wenn ein Produkt plötzlich signifikant häufiger verkauft wird reicht der Mindestbestand u.U. nicht mehr bis zur nächsten Lieferung und man ist erstmal ausverkauft.

Wie bereits oben erwähnt ist der Vorteil der Lagerreichweite dementsprechend, dass sie dynamischer auf wechselnde Verkaufsmenge reagiert, als es ein harter Mindestbestand kann.

Um nicht ständig manuell Mindestbestände ändern zu müssen arbeiten wir also ab jetzt mit einem mittleren Mindestbestand (für das Bestellwesen und die Übersicht im Dashboard), lassen einen Workflow bei jeder Ausbuchung/Auftragsanlage die Lagerreichweite mit einer SQL-Query auf 90-Tage-Basis (könnte man auch auf 30 oder 365 Tage ändern) berechnen und bekommen bei Unterschreiten einer bestimmten Mindestreichweite (z. B. die längste Lieferzeit eures wichtigsten Lieferanten) das PopUp als Warnung (ginge natürlich auch genauso per Mail).



Workflows
Wie beim Mindestbestand braucht man auch hier zwei separate Workflows, einmal unter Artikel-->Warenlagerausgang-->Minusbuchung und einmal unter Aufträge-->Auftrag erstellt. Die Workflowaktionen nutzen den WinPopper hier aus dem Forum (an dieser Stelle vielen Dank @tom10); falls Ihr Mails verschicken wollt müsstet ihr die Ausgabe natürlich dementsprechend anpassen!
Neben unterschiedlichen Ausgabewegen gibt es noch viele Möglichkeiten das hier aufzubohren. Das soll mal ein Anfangspunkt sein.

Man könnte beispielsweise den Mindestbestand noch zusätzlich als ODER-Bedingung aufnehmen und damit Spezialfälle abdecken, die wiederum von der Lagerreichweite nicht ordentlich abgedeckt werden.


Workflow Minusbuchung
LagerreichweiteMinusbuchung.png

Bedingungen:
Eine Erweiterte Eigenschaft mit folgendem Inhalt anlegen:
SQL:
SELECT
CASE
  WHEN ISNULL(SUM(jLetzte90Tage.absatz), 0) > 0 THEN ROUND(CONVERT(FLOAT, SUM(vLagerbestandEx.fVerfuegbar) / (ISNULL(SUM(jLetzte90Tage.absatz), 0) / 90)), 1)
  ELSE 'unendlich'
END AS 'Lagerreichweite'
FROM tartikel
JOIN
(SELECT tartikel.kArtikel, cArtNr, tArtikelBeschreibung.cName
FROM tartikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
  AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
  AND tArtikelBeschreibung.kPlattform=1
 WHERE tartikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
) AS jArtikel ON jArtikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
JOIN vLagerbestandEx ON vLagerbestandEx.kArtikel = tartikel.kArtikel
LEFT JOIN (
    SELECT tArtikel_kArtikel, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
    FROM tbestellung
    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
    WHERE tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
      AND tbestellung.cType = 'B'
      AND tBestellung.dErstellt > DATEADD(DAY, -90, getdate())
    GROUP BY tArtikel_kArtikel
) AS jLetzte90Tage ON jLetzte90Tage.tArtikel_kArtikel = tartikel.kArtikel
WHERE tartikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
{% endcapture -%}

{% assign result = query | DirectQueryScalar -%}
{{ result }}
Die Erweiterte Eigenschaft dann auf "kleiner gleich" prüfen und als Wert die gewünschte Mindestreichweite in Tagen eintragen.

Aktionen:
Aktion "Ausführen"
Programm/Skript: Pfad zum WinPopper in eurer Installation
Parameter:
SQL:
{% capture Ausgabe -%}================================================================================================
                           **Minimale Lagerreichweite unterschritten**
================================================================================================

Artikelnummer : {{ Vorgang.Artikel.Allgemein.Stammdaten.ArtNrSku }} | Artikel: {{ Vorgang.Artikel.Beschreibung.Amazon.Artikelname.Deutsch }}

{% capture query %}SELECT
CASE
WHEN ISNULL(SUM(jLetzte90Tage.absatz), 0) > 0 THEN ROUND(CONVERT(FLOAT, SUM(vLagerbestandEx.fVerfuegbar) / (ISNULL(SUM(jLetzte90Tage.absatz), 0) / 90)), 1)
ELSE 'unendlich'
END AS 'Lagerreichweite'
FROM tartikel
JOIN
(SELECT tartikel.kArtikel, cArtNr, tArtikelBeschreibung.cName
  FROM tartikel
 JOIN dbo.tSpracheUsed ON nStandard = 1
  JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
   AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
   AND tArtikelBeschreibung.kPlattform=1
  WHERE tartikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
) AS jArtikel ON jArtikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
JOIN vLagerbestandEx ON vLagerbestandEx.kArtikel = tartikel.kArtikel
LEFT JOIN (
SELECT tArtikel_kArtikel, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
  FROM tbestellung
  JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
   WHERE tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
    AND tbestellung.cType = 'B'
    AND tBestellung.dErstellt > DATEADD(DAY, -90, getdate())
GROUP BY tArtikel_kArtikel
) AS jLetzte90Tage ON jLetzte90Tage.tArtikel_kArtikel = tartikel.kArtikel
WHERE tartikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
{% endcapture -%}
{% assign result = query | DirectQueryScalar -%}
------------------------------------------------------------------------------------------------
     Aktuelle Lagerreichweite:  {{ result }} Tage (basierend auf den vergangenen 90 Tagen)
------------------------------------------------------------------------------------------------

Verfügbarer Bestand :{{ Tabulator }}{{ Vorgang.Artikel.Bestandsübersicht.Verfügbar }}  Einheiten | Lagerbestand:  {{ Vorgang.Artikel.Allgemein.Lager.Bestandsübersicht.AufLager }} Einheiten
Mindestbestand:{{ Tabulator }}{{ Tabulator }}{{ Vorgang.Artikel.Allgemein.Lager.Mindestbestand }} Stück
Im Zulauf:{{ Tabulator }}{{ Tabulator }}{{ Vorgang.Artikel.Allgemein.Lager.Bestandsübersicht.Zulauf }}  Stück

Bitte den Artikel beim Lieferanten bestellen.
{% endcapture -%}
--text "{{ Ausgabe }}"
Alternativ natürlich auch mit E-Mail senden möglich. Dafür Parameter Code nehmen und vor "Ausgabe" das "--text" entfernen.


Workflow Auftrag Erstellt
Dieser Workflow ist etwas komplizierter, weil alle Auftragspositionen über eine Schleife abgefragt werden müssen. Die Anzahl Tage Mindestreichweite muss deshalb im Code definiert werden; dafür habe ich euch jeweils am Anfang die Variable "minreichweite" angelegt.

LagerreichweiteAuftrag.png

Bedingungen:
Eine Erweiterte Eigenschaft mit folgendem Inhalt anlegen:
SQL:
{% assign minreichweite = 21 -%}

{% capture query -%}\

{% for pos in Vorgang.AuftragsPositionen.ArtikelPositionen -%}\

{% capture query2 -%}
SELECT

CASE

  WHEN ISNULL(SUM(jLetzte90Tage.absatz), 0) > 0 THEN ROUND(CONVERT(FLOAT, SUM(vLagerbestandEx.fVerfuegbar) / (ISNULL(SUM(jLetzte90Tage.absatz), 0) / 90)), 1)

  ELSE 'unendlich'

END AS 'Lagerreichweite'

FROM tartikel

JOIN
(
  SELECT tartikel.kArtikel, cArtNr, tArtikelBeschreibung.cName

  FROM tartikel

  JOIN dbo.tSpracheUsed ON nStandard = 1

  JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel

   AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache

   AND tArtikelBeschreibung.kPlattform=1

  WHERE tartikel.kArtikel = {{ pos.Artikel.InterneArtikelnummer }}

) AS jArtikel ON jArtikel.kArtikel = {{ pos.Artikel.InterneArtikelnummer }}

JOIN vLagerbestandEx ON vLagerbestandEx.kArtikel = tartikel.kArtikel

LEFT JOIN (

  SELECT tArtikel_kArtikel, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz

  FROM tbestellung

  JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung

  WHERE tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten

   AND tbestellung.cType = 'B'

   AND tBestellung.dErstellt > DATEADD(DAY, -90, getdate())

GROUP BY tArtikel_kArtikel

) AS jLetzte90Tage ON jLetzte90Tage.tArtikel_kArtikel = tartikel.kArtikel

WHERE tartikel.kArtikel = {{ pos.Artikel.InterneArtikelnummer }}

{% endcapture -%}

{% assign result = query2 | DirectQueryScalar -%}

{% if result < minreichweite -%}

{{ result }}

{% endif -%}

{% endfor -%}\

{% endcapture -%}\

{{ query }}

Hier die Erweiterte Eigenschaft auf "ist nicht leer" prüfen.

Aktionen:
Aktion "Ausführen"
Programm/Skript: Pfad zu eurer WinPopper Installation
Parameter:
SQL:
{% assign minreichweite = 21 -%}

{% capture Ausgabe -%}
================================================================================================

                           **Minimale Lagerreichweite unterschritten**

================================================================================================


{% capture query -%}\

{% for pos in Vorgang.AuftragsPositionen.ArtikelPositionen -%}\

{% capture query2 -%}

SELECT

CASE

   WHEN ISNULL(SUM(jLetzte90Tage.absatz), 0) > 0 THEN ROUND(CONVERT(FLOAT, SUM(vLagerbestandEx.fVerfuegbar) / (ISNULL(SUM(jLetzte90Tage.absatz), 0) / 90)), 1)

    ELSE 'unendlich'

END AS 'Lagerreichweite'

 FROM tartikel

JOIN
(SELECT tartikel.kArtikel, cArtNr, tArtikelBeschreibung.cName

FROM tartikel
JOIN dbo.tSpracheUsed ON nStandard = 1

JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel

  AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache

  AND tArtikelBeschreibung.kPlattform=1

WHERE tartikel.kArtikel = {{ pos.Artikel.InterneArtikelnummer }}

) AS jArtikel ON jArtikel.kArtikel = {{ pos.Artikel.InterneArtikelnummer }}

JOIN vLagerbestandEx ON vLagerbestandEx.kArtikel = tartikel.kArtikel

LEFT JOIN (
    SELECT tArtikel_kArtikel, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz

    FROM tbestellung

    JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung

    WHERE tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten

        AND tbestellung.cType = 'B'

        AND tBestellung.dErstellt > DATEADD(DAY, -90, getdate())

    GROUP BY tArtikel_kArtikel
) AS jLetzte90Tage ON jLetzte90Tage.tArtikel_kArtikel = tartikel.kArtikel

WHERE tartikel.kArtikel = {{ pos.Artikel.InterneArtikelnummer }}

{% endcapture -%}

{% assign result = query2 | DirectQueryScalar -%}

{% if result < minreichweite -%}\

Artikelnummer: {{ pos.Artikel.Artikelnummer }} | Artikel: {{ pos.Artikel.Bezeichnung }}


------------------------------------------------------------------------------------------------

      Aktuelle Lagerreichweite: {{ result }} Tage (basierend auf den vergangenen 90 Tagen)

------------------------------------------------------------------------------------------------


Verfügbarer Bestand:{{ Tabulator }}{{ pos.Artikel.BestandVerfügbar }} Einheiten |  Lagerbestand:  {{ pos.Artikel.Bestand }} Einheiten

Mindestbestand:{{ Tabulator }}{{ Tabulator }}{{ pos.Artikel.Mindestbestand }} Einheiten

Im Zulauf:{{ Tabulator }}{{ Tabulator }}{{ pos.Artikel.BestandBestellt }} Einheiten


Bitte den Artikel beim Lieferanten bestellen.



================================================================================================


{% endif -%}\

{% endfor %}\

{% endcapture -%}\

{{ query }}

{% endcapture -%}

--text "{{ Ausgabe }}"



wo ich noch hänge
Den Großteil unserer Bulk-Bestände füllen wir neben dem Verkauf im Bulk auch in unsere eigenen, kleineren Gebinde ab. Dementsprechend gibt es bei Bulk-Produkten sehr viele " WMS-Minusbuchungen" unseres Produktionstools, die Stand jetzt nicht vom SQL-Query erfasst werden und deshalb auch *nicht* in die Lagerreichweite mit einfließen können. Die Lagerreichweite ist bei Bulk also stets deutlich zu lang berechnet.
Kennt sich hier jemand gut genug mit der Wawi-DB und SQL aus und weiss, wie man auch Minusbuchungen in die Berechnung integrieren kann?

Ich hoffe, ein paar hier können damit was schönes basteln und falls ihr Verbesserungsvorschläge u.ä. habt gerne her damit. Dann aktualisiere ich diesen Post.
 
Zuletzt bearbeitet:

sjk

Sehr aktives Mitglied
16. Januar 2019
364
130
Push

wo ich noch hänge
Den Großteil unserer Bulk-Bestände füllen wir neben dem Verkauf im Bulk auch in unsere eigenen, kleineren Gebinde ab. Dementsprechend gibt es bei Bulk-Produkten sehr viele " WMS-Minusbuchungen" unseres Produktionstools, die Stand jetzt nicht vom SQL-Query erfasst werden und deshalb auch *nicht* in die Lagerreichweite mit einfließen können. Die Lagerreichweite ist bei Bulk also stets deutlich zu lang berechnet.
Kennt sich hier jemand gut genug mit der Wawi-DB und SQL aus und weiss, wie man auch Minusbuchungen in die Berechnung integrieren kann?

Hat hier jemand eine Idee zu den WMS-Minusbuchungen?
 

dt-depot

Mitglied
19. August 2020
43
7
Spoiler: Code Erweiterte Eigenschaft Minusbuchung
Moin,
danke für die Anleitung. Ich habe mal versucht, das bei uns umzusetzen, scheitere aber schon beim ersten SQL-Code zur Minusbuchung. In der drittletzten Zeile steht ein {% endcapture -%}, allerdings ohne vorangegangenes {% capture %}... Kann es sein, dass im Code noch was fehlt? Jedenfalls bekomme ich als Fehlermeldung zurück: "Vorlage fehlerhaft - Unknown tag 'endcapture'".
Wer kann hier helfen?
 

sjk

Sehr aktives Mitglied
16. Januar 2019
364
130
Moin @dt-depot ,

Danke für den Hinweis! Da ist beim copy/paste tatsächlich die erste Zeile verloren gegangen.

Den Ursprungsbeitrag kann ich leider nicht mehr bearbeiten...

Ich hoffe der Workflow hilft euch ansonsten weiter :)
 

dt-depot

Mitglied
19. August 2020
43
7
Gern geschehen :)

Ja, der Workflow selbst und die Anleitung dazu haben sehr geholfen/helfen sehr und sind bei uns eine willkommene Unterstützung zusätzlich zum Mindestbestand. Danke nochmal.
 

dt-depot

Mitglied
19. August 2020
43
7
Ich hoffe der Workflow hilft euch ansonsten weiter :)

Moin und hallo,

ich würde gerne doch noch mal auf die Anleitung zurückkommen. Denn ich habe die Anleitung von oben bei uns nochmal dahingehend modifiziert, dass ich den Workflow aus dem Warenlagerausgang > Minusbuchung rausgenommen und stattdessen unter Artikel > Artikel-Manuell angelegt habe; außerdem habe ich den Zeitraum, den ich rückblickend auswerte, in eine Variable gesetzt, auf die ich im Code an den entsprechenden Stellen verweise. Alles in allem sieht meine Erweiterte Eigenschaft wie folgt aus:

{% assign zeitraum = 45 -%}
{% capture query %}
SELECT
CASE
WHEN ISNULL(SUM(jLetzte{{ zeitraum }}Tage.absatz), 0) > 0 THEN ROUND(CONVERT(FLOAT, SUM(vLagerbestandEx.fVerfuegbar) / (ISNULL(SUM(jLetzte{{ zeitraum }}Tage.absatz), 0) / {{ zeitraum }})), 1)
ELSE 'unendlich'
END AS 'Lagerreichweite'
FROM tartikel
JOIN
(SELECT tartikel.kArtikel, cArtNr, tArtikelBeschreibung.cName
FROM tartikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel
AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache
AND tArtikelBeschreibung.kPlattform=1 WHERE tartikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
) AS jArtikel ON jArtikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
JOIN vLagerbestandEx ON vLagerbestandEx.kArtikel = tartikel.kArtikel
LEFT JOIN (
SELECT tArtikel_kArtikel, ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(DAY, -{{ zeitraum }}, getdate())
GROUP BY tArtikel_kArtikel
) AS jLetzte{{ zeitraum }}Tage ON jLetzte{{ zeitraum }}Tage.tArtikel_kArtikel = tartikel.kArtikel
WHERE tartikel.kArtikel = {{ Vorgang.Artikel.Allgemein.Stammdaten.InterneArtikelnummer }}
{% endcapture -%}

{% assign result = query | DirectQueryScalar -%}
{{ result }}

Während dieser Code unter Warenlagerausgang > Minusbuchung noch ein Ergebnis korrekt zurückgab, bekomme ich nun, so wie ich's jetzt habe, einen Syntaxfehler zurück:
Fehler im Befehl: Falsche Syntax in der Nähe von ")". Falsche Syntax in der Nähe des AS-Schlüsselworts.

(als Rückgabetyp ist Dezimal eingestellt)

Leider bin ich in Sachen JTL noch Neuling und deshalb nicht so bewandert in Sachen DotLiquid etc. Deshalb will ich einfach mal die Frage in den Raum werfen, ob mir jemand einen Tipp geben kann, wo der Fehler ist.

Danke und an dieser Stelle ein schönes Wochenende.
 
Zuletzt bearbeitet:

sjk

Sehr aktives Mitglied
16. Januar 2019
364
130
Moin,
Funktioniert es unter Warenlagerausgang > Minusbuchung auch mit deinem "willkürlichen" Zeitraum?
Ich meine mich nämlich zu erinnern, dass es bei mir damals nur mit 7, 30, 90 oder 365 Tagen funktioniert hat. Ansonsten fällt mir bei deinem Code nichts ins Auge, bin aber selber auch kein SQL-Experte...
 

dt-depot

Mitglied
19. August 2020
43
7
Moin sjk,

unter Warenlagerausgang > Minusbuchung funktioniert es mit jedem Zeitraum, aber beim manuellen Workflow wie oben beschrieben gibt es immer nur den Fehler zurück, egal, was ich als Zeitraum eingebe...
 

ronwaste

Aktives Mitglied
19. November 2015
56
6
Moin,

vielen Dank für die klasse Arbeit!

Ich bekomme leider folgende Meldung beim Anlegen der erweiterten EIgenschaft:

Fehler im Befehl: Fehler beim Konvertieren des varchar-Datentyps in float.

Kann mir da jemand helfen?
 

dt-depot

Mitglied
19. August 2020
43
7
Ich bekomme leider folgende Meldung beim Anlegen der erweiterten EIgenschaft:

Fehler im Befehl: Fehler beim Konvertieren des varchar-Datentyps in float.

Moin ronwaste,

Du müsstest noch über den Button "Vorschau-Warenlagerausgang wählen" testweise einen Artikel auswählen, dann sollte anstelle der Fehlermeldung ein Dezimalwert in der Vorschau erscheinen.
 

Visitmedia

Offizieller Servicepartner
SPBanner
17. September 2011
253
9
Essen
Ich hole den Vorgang hier noch mal aus der Versenkung. Hat jemand das aktuell laufen? Ich bekomme auch bei der Auswahl eines Warenlager-Vorgangs immer noch die Meldung:

Fehler im Befehl: Fehler beim Konvertieren des varchar-Datentyps in float.

Ist die Abfrage denn noch nutzbar oder gibt es hier Fehler? Ich habe das Gefühl, dass irgendwo eine Konvertierung nicht klappt. Hat hier jemand eine Idee?
 

lgrosser

Mitglied
13. Januar 2021
4
0
Hey, danke für die tolle Erklärung!
Allerdings bekomme ich zwei Mails, jeweils mit unterschiedlichen Lagerreichweiten für den gleichen Artikel und Zeitraum ... kann ja nicht richtig sein oder?

Hat mittlerweile jemand eine Lösung für die WMS Buchungen?
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Anleitung: Artikeletiketten für Auftrag, Rechnung, Lieferschein etc. drucken mit Etikettenanzahl = Artikelanzahl User helfen Usern - Fragen zu JTL-Wawi 0
JTL Mahnwesen Workflow- Email nach 30 Tagen noch nicht bezahlt. JTL-Wawi 1.8 0
Neu Workflow der bei Stücklisten: Überverkäufe de-/aktivieren User helfen Usern - Fragen zu JTL-Wawi 11
Neu Workflow Aktion E-Mail senden kann nicht Plain und HTML Email zusammen versenden Arbeitsabläufe in JTL-Wawi 6
Workflow Manuell HTML Request wie Server Antwort verarbeiten JTL-Wawi 1.7 0
Workflow Marktplätze - Otto, Kaufland, etc. JTL-Wawi 1.6 0
Workflow Artikel + Anzahl in Einkaufsliste aktualisieren JTL-Wawi 1.8 0
Neu Workflow Web-Request Post für mollie Arbeitsabläufe in JTL-Wawi 5
Workflow MwSt.-Sätze ersetzen 0% -> 19% ändert netto in Positionen aber nicht in der Auftragssumme JTL-Wawi 1.7 2
Neu API Integration via Workflow Arbeitsabläufe in JTL-Wawi 8
In Diskussion Automatische Zuweisung der Kategorien für Artikel durch Workflow JTL-Workflows - Ideen, Lob und Kritik 3
In Bearbeitung Workflow offene Aufträge zusammenfassen bei ausgelieferten JTL-Workflows - Ideen, Lob und Kritik 1
Neu Workflow-Auswahl ... mit ins Kontext-Menü aufnehmen (rechten Maustaste) JTL-Wawi - Ideen, Lob und Kritik 2
Neu Benachrichtigung per Workflow bei Wareneingang User helfen Usern - Fragen zu JTL-Wawi 24
Workflow für Artikel versandklassen JTL-Wawi 1.7 1
Gelöst Per Workflow im Servicedesk eine Mail versenden. Gelöste Themen in diesem Bereich 4
Workflow für Versandart Wenn/Und JTL-Wawi 1.7 0
Workflow für Amazon Zahlart erstellen JTL-Wawi 1.7 0
In Diskussion Workflow von Stornobelege Rechnung JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Auftraqspositionen per Email an Kunden senden JTL-Wawi 1.7 3
Gelöst Servicedesk Workflow Datei erstellen um einen Auftrag zu ändern Gelöste Themen in diesem Bereich 1
Neu Workflow mit Freipositionen in Email Gelöste Themen in diesem Bereich 3
Neu Workflow > Rechnungen > Label Setzen ? (1.8.11) User helfen Usern - Fragen zu JTL-Wawi 6
Neu Workflow Ereignis auslösen wenn alle Bedingungen erfüllt sind. Sonst anderes Ereignis auslösen. JTL-Wawi - Ideen, Lob und Kritik 0
Beantwortet Kunde von Firma per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 1
Neu Workflow für Rechnung gesucht Arbeitsabläufe in JTL-Wawi 1
Workflow - Debitorennummer JTL-Wawi 1.8 2
In Diskussion Workflow - Artikelmerkmale setzen? JTL-Workflows - Ideen, Lob und Kritik 2
Workflow: Mahnungen - Fehler JTL-Wawi 1.8 5
Neu Workflow Lieferantenartikel-Nummer vor Artikelname setzen JTL-Wawi 1.7 1
In Diskussion Workflow wenn offene Rechnungen, dann weitere offene Aufträge sperren und im Kundensatz Sperrung setzten. JTL-Workflows - Ideen, Lob und Kritik 0
Workflow für Kaufland greift nicht mehr 1.8.11.0 kaufland.de - Anbindung (SCX) 5
[JTL-WAWI API] - Trigger Sales Order Workflow Event JTL-Wawi 1.8 3
Workflow-Bug: 1.8.11 Attribute in Workflow setzen JTL-Wawi 1.8 10
In Diskussion Workflow, Wert setzen aus Zwischenablage/Clipboard JTL-Workflows - Ideen, Lob und Kritik 0
Neu EK-Preise per Workflow in Lieferantenbestellung einfügen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Rechnungsvorlage ändern klappt nicht - Wawi 1.7.13.1 User helfen Usern - Fragen zu JTL-Wawi 0
Neu per Workflow: WhatsApp oder ähnliches senden User helfen Usern - Fragen zu JTL-Wawi 0
Workflow Bug: Rechnungskorrektur erstellen aus Retoure JTL-Wawi 1.8 4
Gelöst In Workflow auf Stücklistenartikel zugreifen und dessen Eigenschaften anzeigen Gelöste Themen in diesem Bereich 7
Neu Manueller Workflow alle Artikel markieren funktioniert nicht JTL-Wawi - Fehler und Bugs 3
Englische Artikelbezeichnung in einem Workflow JTL-Wawi 1.7 0
In Diskussion Workflow für unbearbeitete Pickliste (versehentlich unbearbeitete in Auftrag verpacken verschieben) JTL-Workflows - Ideen, Lob und Kritik 2
Neu Suche Workflow Bedingung: "Wenn nicht storniert?" User helfen Usern - Fragen zu JTL-Wawi 2
Speichern von Retouren-Workflow schlägt fehl (JTL 1.6.39.0) JTL-Wawi 1.6 2
Neu Workflow: Vorname bei Auftragserstellung löschen Wawi 1.5 Gelöste Themen in diesem Bereich 3
Neu Vorschlag: Per Workflow Tickets erstellen Servicedesk (Beta) 1
Neu Workflow - Oberkategorie prüfen Eigene Übersichten in der JTL-Wawi 10
Neu Bug Popup/eModal - JTL Shop 5.3 JTL-Shop - Fehler und Bugs 0

Ähnliche Themen