Flow scheint Folgeschritt zu schnell zu starten, Daten noch nicht in Datenbank

Hallo,

wir haben für einen Kunden einen Flow, der bei Magento Aufträge abholt, umformatiert und dann nach Plentymarkets über Plentyaddorders einspielt.

Das funktionierte bisher auch Problemlos. Seit einiger Zeit kommt es jedoch vor, dass die Aufträge in Plentymarkets ohne Artikel ankommen.
Wir haben das jetzt soweit eingegrenzt, dass es bei denen wohl so ist, dass die Auftragspositionen (noch) nicht in der Datenbank angekommen sind.

Woran könnte das liegen ? Startet der Folgeflow, bevor der voherige fertig ist ?
Ich konnte keine Fehlermeldung finden.

Unser Flow sieht wie folgt aus:
Magento2GetOrders holt die Aufträge
und dann landen die in
Magento2OrderHead (# of records affected: 10 # of inserts: 1 # of updates: 9)
und
Magento2OrderItem # of records affected: 15 # of inserts: 4 # of updates: 11 # of children linked to master records: 15)

Bis dahin passt es noch mit den inserts 1 Auftrag mit 4 Positionen

Dann holt SeachDataStore die Headers
ein Mapper arbeitet die Daten um und
steckt die in Plentyorderheads (# of records affected: 12 # of inserts: 1 # of updates: 11 # of updates with changed content: 1)

Dann holt ein weiterer SearchDataStore die Items
ein Mapper arbeitet die um und
steckt sie in PlentyOrderItems
Und hier sind im ersten Durchlauf keine angekommen, obwohl sie in Magento2OrderItems vorhanden sind…

Entsprechend kommt dann in Plenty nur ein leerer Auftrag an.

Beim zweiten Durchlauf landen dann auch Artikel im Datastore PlentyOrderItems.
Der Auftrag ist natürlich schon angelegt und wird dann nicht mehr angefasst.

Wenn ich den Auftrag dann zurücksetze und in Plenty die Externe Auftragnummer im leeren Auftrag entferne, dann wird der Auftrag mit neuer Nummer nochmal angelegt.

Irgendeine Idee wo das Problem liegt und vielleicht auch, wie wir es beheben könne OHNE den Flow zu teilen ?

Gruß

Heinke

Welche Filter sind denn bei diesem SearchDatastore eingestellt?

Hallo,

der Filter ist auf das Erstellungsdatum gesetzt. Es wird alles gesucht was neuer ist als heute -3 Tage.

Gruß

Heinke

Man könnte aus den Outputs des DatastoreWriters für Magento2OrderHead direkt die newRecords nehmen und damit den Plentyorderheads DS befüllen.

Analog dazu mit den zweiten DatastoreWriter von Magento2OrderItem um damit die PlentyOrderItems zu schreiben.

Dieser Ansatz vermeidet das obige („zu schnell“)-Problem des SearchDatastore und hat auch den (Performance-)Vorteil, dass man exakt nur die Datensätze erwischt, die gerade geschrieben wurden.