Gelöst Workflow Retourengrund im Auftrag => Anmerkungen schreiben

NewBuy

Sehr aktives Mitglied
29. August 2016
2.113
321
Moin,

ich benötige einmal Euer Schwarmwissen:

Chef ist auf die glorreiche Idee gekommen, dass per Workflow im Auftrag unter Anmerkungen der Retourengrund automatisch geschrieben wird, wenn eine Retoure eingetroffen.
Wahrscheinlich ist dieses nur über DotLiquid zu lösen... da bin ich leider mit meinem Latein am Ende. Vielleicht hat ja jemand schon etwas ähnliches hier oder mag mich dabei unterstützen.
Bisher habe ich geschafft, dass per Manuellen Workflow unter Auftrag und dann per Workflow - Ereignis im Auftrag rein geschrieben wird, dass eine RK vorhanden ist und wer die erstellt hat.


Grüße Uwe
 

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
Manuell sollte kein Problem sein. Einfach via DotLiquid die entsprechende SQL-Query für den Retourengrund einbinden und das ganze dann als Anmerkung setzen lassen. Das Problem wird das automatische Auslösen sein, da du vom Rechnungskorrektur-Worklow kein Auftrags-Workflow-Ereignis callen kannst oder zumindest hab ich keinen Weg gefunden. Manueller Auftragsworkflow wie oben beschrieben ist das einfachste.
 

NewBuy

Sehr aktives Mitglied
29. August 2016
2.113
321
Manuell sollte kein Problem sein. Einfach via DotLiquid die entsprechende SQL-Query für den Retourengrund einbinden und das ganze dann als Anmerkung setzen lassen. Das Problem wird das automatische Auslösen sein, da du vom Rechnungskorrektur-Worklow kein Auftrags-Workflow-Ereignis callen kannst oder zumindest hab ich keinen Weg gefunden. Manueller Auftragsworkflow wie oben beschrieben ist das einfachste.
Genau da ist ja mein Problem 😉 mir fehlt da die Erfahrung mit
 

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
Ok, wenn du dich selber versuchen möchtest, hier etwas Hilfestellung:
die für dich relevanten Tabellen sind tRMRetoure und tRMRetourePos. Diese musst du joinen, damit du von der Retourennummer zum Retourengrund kommst. Wenn du die Bezeichnung des Grunds haben möchtest (bislang haben wir nur den internen Schlüssel), musst du zusätzlich noch tRMGrundSprache joinen

Wenn du weitere Tipps möchtest, schreib einfach nochmal
 
Zuletzt bearbeitet:

NewBuy

Sehr aktives Mitglied
29. August 2016
2.113
321
Puh... ich glaube ich bin für so etwas zu alt, leider bekomme ich soetwas nicht hin
 

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
Ist einfacher als es vielleicht aussieht. Das Problem hier ist, dass die gesuchten Daten in 2 verschiedenen Tabellen liegen, die über eine Zwischentabelle eindeutig verbunden werden müssen; <Retourennummer> liegt in tRMRetoure und der Retourengrund (Bezeichnung, nicht interne Nummer) liegt in TRMGrundSprache.
Schritt 1: alles (*) aus (from) Tabelle tRMRetoure mit der gesuchten Retourennummer (where) ausgeben (select):
Code:
select *
from tRMRetoure
where tRMretoure.cRetoureNr = '<Retourennummer>'
Schritt 2: Tabelle tRMRetoure und tRMRetourePos Anhand (on) des Primärschlüssels kRMRetoure verbinden (inner join):
Code:
select *
from tRMRetoure
inner join tRMRetourePos
    on tRMRetoure.kRMRetoure = tRMRetourePos.kRMRetoure
where tRMretoure.cRetoureNr = '<Retourennummer>'
Schritt 3: Tabelle tRMRetoureSprache joinen:
Code:
select *
from tRMRetoure
inner join tRMRetourePos
    on tRMRetoure.kRMRetoure = tRMRetourePos.kRMRetoure
inner join tRMGrundSprache
    on tRMRetourePos.kRMGrund = tRMGrundSprache.kRMGrund
where tRMretoure.cRetoureNr = '<Retourennummer>'
Schritt 4: das korrekt Feld (anstatt alle Felder) ausgeben:
Code:
select tRMGrundSprache.cName
from tRMRetoure
inner join tRMRetourePos
    on tRMRetoure.kRMRetoure = tRMRetourePos.kRMRetoure
inner join tRMGrundSprache
    on tRMRetourePos.kRMGrund = tRMGrundSprache.kRMGrund
where tRMretoure.cRetoureNr = '<Retourennummer>'

Kann dir das MySQL Bootcamp von Colt Steele auf Udemy empfehlen (auf Rabatt-Aktion warten, die kommen alle paar Tage). Danach bist du in der Lage diese einfachen Queries recht schnell selber zu schreiben. Die Wawi läuft zwar auf TSQL von Microsoft und nicht MySQL, aber die Unterschiede sind irrelevant
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: NewBuy

NewBuy

Sehr aktives Mitglied
29. August 2016
2.113
321
Kann dir das MySQL Bootcamp von Colt Steele auf Udemy empfehlen (auf Rabatt-Aktion warten, die kommen alle paar Tage). Danach bist du in der Lage diese einfachen Queries recht schnell selber zu schreiben. Die Wawi läuft zwar auf TSQL von Microsoft und nicht MySQL, aber die Unterschiede sind irrelevant
Erst einmal DANKE 🙂

Dann ist der Kurs nur Englisch oder auch in deutsch, denn dieses habe ich seit 40 Jahren nicht mehr benötigt 😉
 

NewBuy

Sehr aktives Mitglied
29. August 2016
2.113
321
Moin noch einmal 😉

{% capture query %}
select tRMGrundSprache.cName
from tRMRetoure
inner join tRMRetourePos
on tRMRetoure.kRMRetoure = tRMRetourePos.kRMRetoure
inner join tRMGrundSprache
on tRMRetourePos.kRMGrund = tRMGrundSprache.kRMGrund
where tRMretoure.cRetoureNr = '{{ Vorgang.Retourennummer }}'
{% endcapture -%}\
{% assign result = query | DirectQueryScalar %}\
{{ result }}
So haben ich den Code unter manuelle Workflows eingebunden, diesen rufe ich dann über Workflow-Ereignis auslösen in den Workfkows von den Retouren auf, leider wird das Feld "sonstiges" im Auftrag aber nichts hineingeschrieben.
Bei einem Test wo ich den Code im Workflow eine Ausgabe für "kommentar intern" eingefügt habe, wird der Retourengrund mit hineingeschrieben.
Ich vermute mal, dass es daran liegt, dass in den Aufträgen die Variable "{{ Vorgang.Retourennummer }}" nicht zur Verfügung steht liegt.
Hier stellt sich nun die Frage, ob ich da irgendwie an die Retourennummer komme, damit ich den Retourengrund untere "sonstiges" im Auftrag sehe?

Schon mal ein frohes Fest
 

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
Moin noch einmal 😉


So haben ich den Code unter manuelle Workflows eingebunden, diesen rufe ich dann über Workflow-Ereignis auslösen in den Workfkows von den Retouren auf, leider wird das Feld "sonstiges" im Auftrag aber nichts hineingeschrieben.
Bei einem Test wo ich den Code im Workflow eine Ausgabe für "kommentar intern" eingefügt habe, wird der Retourengrund mit hineingeschrieben.
Ich vermute mal, dass es daran liegt, dass in den Aufträgen die Variable "{{ Vorgang.Retourennummer }}" nicht zur Verfügung steht liegt.
Hier stellt sich nun die Frage, ob ich da irgendwie an die Retourennummer komme, damit ich den Retourengrund untere "sonstiges" im Auftrag sehe?

Schon mal ein frohes Fest
Ok, dann übermitteln wir halt die interne Auftragsnummer:
Code:
select tRMGrundSprache.cName
from tRMRetoure
inner join tRMRetourePos
    on tRMRetoure.kRMRetoure = tRMRetourePos.kRMRetoure
inner join tRMGrundSprache
    on tRMRetourePos.kRMGrund = tRMGrundSprache.kRMGrund
where tRMRetoure.kBestellung = '{{ Vorgang.Stammdaten.InterneAuftragsnummer }}'
 
  • Gefällt mir
Reaktionen: NewBuy

Ähnliche Themen