Fehler Google Spreadsheet update

Hi zusammen,
ich möchte ein Google Spreadsheet regelmäßig aktualisieren mit neuen Orders. Wenn es keine neuen Orders gibt und das Ergebnis entsprechend leer ist dann crashed der Flow.
Wie kann ich das verhindern?

Hallo @philippm,

ich gehe davon aus, dass dein Spreadsheet einfach garnicht existiert, wenn es keine neuen Bestellungen gibt? Also auch keine Kopfzeile mit deinen Spaltennamen, korrekt?

  1. Option
    Du kannst den Flow über den StopFlowIf-Step ohne Fehler abbrechen, wenn dieser Fall eintritt.

  2. Option
    Wenn du garnicht willst, dass der Flow abbricht, weil danach noch weitere Aktionen ausgeführt werden sollen, kannst du dir vielleicht mit einem SpreadsheetAppend helfen. Damit kannst du erzwingen, dass dein Spreadsheet immer eine Kopfzeile hat.
    Dafür erstellt du dir ein Spreadsheet, das nur aus den von dir gewünschten Kopfzeilen besteht. Das geht am besten über die Step-Kombination StringToFile → CSVReader.

Hier ein Beispielflow, was ich mit der zweiten Option meine.
FlowExport-Beispiel_Headerzeile_erzwingen.json (6,5 KB)

Die ersten beiden Schritte erstellen das leere Spreadsheet nur mit einer Kopfzeile, wie oben schon gesagt. Im StringToFile-Schritt listest du einfach die Spalten auf, die erstellt werden sollen. Danach macht der CSVReader daraus ein Spreadsheet. In meinem Beispiel eben ein ganz generisches Spreadsheet mit Kopfzeile1 bis 4.


Dieses Spreadsheet kannst du dann mittels SpreadsheetAppend mit dem eigentlichen Output deines GetOrders-Step verknüpfen. Ich habe im Beispiel den ShopifyGetOrders genommen, kannst du natürlich durch jegliches anderen Step austauschen.
Der Output vom Append enthält immer mindestens die Kopfzeile aus dem CSVReader.

Gruß
Gustav

1 „Gefällt mir“

Hi Gustav,

danke für Deine Vorschläge. Das Google Spreadsheet existiert und ich hänge neue Orders an das bestehende Google Spreadsheet an. Die Exception passiert wenn es keine neuen Orders gibt und er versucht die nicht vorhandenen Orders ins Spreadsheet zu schreiben. Den Flow will ich in der Tat nicht abbrechen, ich würde am liebsten diesen Schritt überspringen, wenn keine neuen Orders vorhanden sind. Gibt es diese Möglichkeit?
Ansonsten müsste ich tatsächlich immer wieder die Kopfzeile in das Spreadsheet schreiben lassen über „printHeader“, damit irgendwas geschrieben wird, falls keine Orders vorliegen.

Viele Grüße

Hallo @philippm,

ah okay, dann sind beide Lösungen für dich nicht die richtigen.

Was du aber benutzen kannst, sind die Bedingungen. Die gibt es aber erst ab einem bestimmten Paket. Damit kannst du deinen Flow in zwei (oder mehr) Abläufe splitten, von denen jeweils nur einer anhand von der definierten Bedingung ausgeführt werden.
Die Bedingung kannst du über das Zahnrad hinzufügen, wenn du auf der Verbindung zwischen zwei Gruppen hoverst.
grafik

Deine Bedingung wäre sowas wie:
spreadsheet@SpreadsheetCSVReader_2.getRows()?sequence?size > 1
Damit prüfst du, dass das Spreadsheet mehr als 1 Zeile hat (Kopfzeile wird mitgezählt!). spreadsheet@SpreadsheetCSVReader_2 musst du durch die entsprechende Variable aus deinem Flow ersetzen.

In den Branch 1 packst du dann einfach deinen UpdateSpreadsheet-Step und Branch 2 lässt du leer. So wird der Update-Step nur ausgeführt, wenn es auch Datenzeilen gibt. Den Rest von deinem Flow packst du einfach hinter das Join.