Neu Capture Dotliquid - Warenlagerplatz in Wawi anzeigen

akBenutzer

Gut bekanntes Mitglied
24. April 2017
191
19
Hallo,

ich würde gerne einen Workflow erstellen, mit dem ich dem Anwender in der JTL-Wawi anzeigen kann, in welchen Lagerplätzen der Artikel sich befindet. Wir haben das Problem, dass bestimmte Artikel auf Klärplätzen vorhanden sind und dadurch nicht verfügbar sind. Laut Wawi sind sie in der Artikelübersicht aber in der WMS vorhanden und dies kann beim Support zu Verwirrungen führen, da man nicht immer Zugriff auf JTL-WMS hat und sich anschauen kann, ob der Artikel nun auf einem Klärplatz liegt oder nicht.

Hierzu habe ich nun eine Abfrage geschrieben, die ich dann über den Winpopper ausgeben lassen will:
Code:
{% for pos in Vorgang.AuftragsPositionen.Artikelpositionen -%}
  // Alle Artikel eines Auftrags durchlaufen und die Summe der Warenbestände herausfinden
  {% capture query1 %}
    SELECT twarenlagerEingang.kWarenLagerPlatz, twarenlagerEingang.kArtikel,
    CAST(SUM(twarenlagerEingang.fAnzahlAktuell) AS INT) AS fAnzahl
    FROM twarenlagerEingang
    JOIN dbo.tWarenLagerPlatzArtikel
    ON tWarenLagerPlatzArtikel.kArtikel = tWarenLagerEingang.kArtikel
    AND tWarenLagerPlatzArtikel.kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz
    INNER JOIN dbo.tWarenLagerPlatz
    ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz
    where tWarenLagerPlatzArtikel.kArtikel = {{ pos.InterneArtikelnummer }}
    and dbo.tWarenLagerPlatz.kWarenLagerPlatzTyp != 5
    and dbo.tWarenLagerPlatz.kWarenLager = 2
    GROUP BY twarenlagerEingang.kArtikel, twarenlagerEingang.kWarenLagerPlatz
  {% endcapture -%}

  {% assign kWarenlagerPlatz = query1 | DirectQuery -%}

  {% for daten in kWarenlagerPlatz.Daten -%}

    {% if daten.fAnzahl > 0 -%}
      // Wenn der Artikel im WMS mit bestimmten Plätzen liegt, dann speichere die Anzahl für die spätere Nutzung
      {% assign AnzahlArtikel = daten.fAnzahl -%}

      // Ermittle den Namen des Warenlagerplatzes
      {% capture query2 %}
        select wlp.cName
        from tWarenLagerPlatz wlp
        where wlp.kWarenLagerPlatz = {{ daten.kWarenlagerPlatz }}
      {% endcapture -%}

      // Speichere den Warenlagerplatznamen für die spätere Nutzung
      {% assign kWarenlagerPlatzName = query2 | DirectQuery -%}

      {% for data in kWarenlagerPlatzName.Daten -%}
        {% assign WarenlagerPlatzName = data.cName -%}
      {% endfor -%}

      // !!!! Problem !!!!
      // Abfragenergebnis in einen Platzhalter einfügen:
      {% capture result -%}
        Artikelnummer {{ pos.Artikelnummer }} liegt {{ AnzahlArtikel }}x in {{ WarenlagerPlatzName }}
      {% endcapture -%}
    {% endif -%}
  {% endfor -%}
{% endfor -%}

--text "{{ result }}"

Also zur Erläuterung:
1. Die // Kommentarzeilen habe ich nur für dieses Forum eingefügt, diese sind bei Nutzung zu entfernen
2. Ablauf: Ich laufe über alle Artikel und mache 2 Abfragen über die Datenbank um die Anzahl der Artikel und den Warenlagerplatznamen zu erhalten.
3. Mein Problem ist die endgültige Darstellung ich möchte die Zeile:
Artikelnummer {{ pos.Artikelnummer }} liegt {{ AnzahlArtikel }}x in {{ WarenlagerPlatzName }}
in jedem Durchlauf in eine Variable/Capture anfügen.

Aber ich habe derzeit keine Idee wie dies funktionieren soll. In dieser Ausführung ist im {{ result }} natürlich nur der letzte Artikel des Durchlaufs vorhanden.

Kann mir jemand sagen, wie ich das lösen kann?

1. Meine Ideen hierzu wären, dass ich dies als Erweiterte Eigenschaft anlege, aber wie greife ich auf die Erweiterte Eigenschaft als Variable zu damit ich sie mit dem --text "" ausgeben kann?
2. Es irgendwie hinbekommen, dass der gewünschte Text in einem Platzhalter angefügt und nicht überschrieben wird.

Danke
Gruß Artur
 
Zuletzt bearbeitet:

akBenutzer

Gut bekanntes Mitglied
24. April 2017
191
19
Ich habe die Lösung gefunden:
{% capture result -%} und das dazugehörige {% endcapture -%} einfach um die ganze Formel machen.

Closed.
 

Ähnliche Themen