Versand und Stornomitteilung Plenty <-> Tradebyte

Guten Morgen Lukas :)


Ich brauche nochmal Unterstützung bei dem Aufbau des Flows.


situation:


Wir haben in Plenty einen Auftrag mit drei Artikeln. Einen davon können wir nicht liefern. Somit wird diese Artikelposition in Plenty gelöscht.


Jetzt möchte ich diese fehlende Position mit TradbyteSentMessage als Storno melden.

Logik: Prüfung ob alle Artikelpositionen wie im Database vorhanden sind - alle fehlenden werden als Storno deklariert.


Kannst du mir kurz die Flowstruktur erklären?


Grüße

Christoph

Hallo Christoph,


dass Ihr die nicht vorhandenen Positionen in eurem Prozess löscht ist natürlich etwas unglücklich. Normalerweise wird für diese Position eine neue Stornomeldung erstellt, in der Regel mit einem 8.x Status. Dadurch könnt Ihr für die Statusübermittlung zu beginn drei SearchOrders machen auf die Status 7.x, 8.x und 9.x. Aber das nur soviel zu der üblichen Vorgehensweise. :)


Was mir auf Anhieb einfällt was du machen könntest ist, du importierst ja auch die TB Aufträge über Synesty in Plenty, richtig. Beim Import könntest du eine Hilfspalte in die Kopfdaten schreiben in der du hintereinanderweg die Artikelpositionen Komma-separiert auflistest.

Bei der Statusübermittlung könntest du dir dann per Querverweis die Spalte holen und abgleichen ob noch alle Positionen vorhanden sind oder nicht. Für die fehlende Position erstellst du dann eine "CANCEL" Meldung.


Ich weiß, einfach ist was anderes, aber so könnte es theoretisch umsetzbar sein. :)


Viele Grüße,

Lukas

Hi Lukas,


das ist eine sehr gute Info mit der Vorgehensweise. Finde ich auch sauberer. Ich werde das für die Zukunft in unsere Prozesse einbinden. Wird ein bisl dauern aber ist der bessere Weg :)


Unabhängig davon benötige ich aber trotzdem die Prüfwerte auf Orderebene und deine Idee finde ich sehr gut. Habe schon nachgeschaut welche Templatefunktion ich für das zusammenstellen der jeweiligen Artikelpositionen in eine Zeile nutzen könnte. Kannst du mir hier auf die Sprünge helfen?


Noch super wäre, wenn du mir auch einen Tipp geben könntest welche Funktion ich bei der Statusübermittlung nutzen kann. Das mit dem Querverweis verstehe ich, jedoch nicht mit dem Abgleich der "Prüfwerte" in den Kopfdaten


Grüße

Christoph

Hallo Christoph,


du bekommst die Prüfwerte an den Kopf indem du nach der OrderID im Mapper gruppierst. In der entsprechenden Spalte kannst du dann die Aggregatfunktion "Eindeutige Werte Auflisten".

Anschließend kannst du den AddUpdateMappingset Step nutzen um die ein HilfsMappingset zuerstellen. Key=OrderID,Value=Prüfwerte, also ungefähr so:

OrderID=Prüfwerte

101=9954,9915,9934

102=9931,9987

103=9935


Mit dem Mappingset kannst du die dann im Ordersspreadsheet, die Itempositionen an den Kopfpositionen mappen.


Hinwei: Du musst den Flow ausführen, damit das Mappingset geschrieben wird.


Viele Grüße,

Lukas

hi lukas,


habe es verstanden :) Dauerte etwas bis ich das hinbekommen habe, aber man lernt ja immer dazu :)

Jetzt verstehe ich das auch was man so alles mit dem Mapper machen kann.


Kannst du mir jetzt noch erklären wie ich das mit der Prüfung umsetzten sollte?


""Bei der Statusübermittlung könntest du dir dann per Querverweis die Spalte holen und abgleichen ob noch alle Positionen vorhanden sind oder nicht. Für die fehlende Position erstellst du dann eine "CANCEL" Meldung.""


Grüße

Christoph

Hallo Christoph,


bei der Statusübermittlung kannst du dann wieder nach der OrderID gruppieren um alle Positionen auf einer Zeile mit Komma getrennt zu bekommen. Dann holst du dir den Prüfwert aus dem Datastore und verwendest unsere neue Funktion

${symmetricdifference(gruppiertePosition, Prüfwert)!}

Das Ergebnis sind die Positition die gelöscht sind. Danach nimmst du noch ein ColumnSplitToRows Step um für jeden Wert einen neue Zeile zu erzeugen.


Viele Grüße,

Lukas