FileToString für FileFindAndReplace Input APICall

Nach einem FileFindAndReplace-Step möchte ich das Ergebnis als RequestBody eines APICall-Steps nutzen. SynestyStudio schlägt nun vor einen FileToString-converter zu verwenden. Jedoch findet sich dieser nicht unter den Steps. Ist dieser Teil einer Erweiterung?

Hallo Sebastian,

den FileToString gibt es nicht mehr.

Kannst du mal beschreiben, was du grob machen willst. Vielleicht können wir dir einen anderen Weg nennen.

Ein POST-Request benötigt URL-encoded XML-Daten als Anfrageparameter. Der einzige Parameter heißt "xml" und benötigt einen XML-String. In diesem gibt es dynamische Felder. Ich verwende eine Datei(Variable) als Template und tausche später die Felder mit Regex(z.b. aus einem datastore) aus. URL und Header bleiben konstant.

Du könntest das XML auch mit dem Step TextHTMLWriter erzeugen. Da kannst du dir z.B. XML dynamisch aus dem Datastore zusammenbauen. Das ist unserer Meinung nach besser als Suchen/Ersetzen.

Der Ansatz ist grob hier beschrieben:


Das Ergebnis des TextHTMLWriters könntest du dann per APICall als POST Request verschicken.

Wir prüfen gerade noch mal eben, wie man das im APICall angeben müsste, damit das per POST geht und der Parameter "xml" heißt. Wir melden uns hier nochmal.


Frage: musst du nur einen einzigen Request abschicken oder sollen es mehrere werden (z.B. ein request pro Artikel)?

Ja, es müssen mehrere API-Calls ausgeführt werden. Eine OrderID ist das dynamische Feld.

Ok, dann ist der APICall nicht der richtige Step. Der SpreadsheetURLDownload ist der Step, um mehrere Calls basierend auf einem Spreadsheet auszuführen.

Benutze zum testen am besten ein Tool wie https://requestb.in , um zu prüfen, wie der Request auf der Gegenseite ankommt.


Im Beispiel des SpreadsheetURLDownloads würden wir wie folgt vorgehen:


1. SearchDatastore (da kommen deine Daten her)

2. SpreadsheetMapper (dort erzeugst du dir eine Spalte z.B. mit dem Namen "xmlRequest") und im Wert-Feld erzeugst du dir all das was im "xml" Parameter des des Calls übertragen werden soll

3. SpreadsheetURLDownload

- hier verarbeitest du das Ergebnis aus 2. d.h. ein Call pro Zeile.

- Wichtig: im requestBody schreibst du xml=hierdein parameter inhalt. Das Gleichheitszeichen ist wichtig.


image


Der Flow könnte dann glob so aussehen.



image



Damit sollte es so ankommen.

image



Wir empfehlen an dieser Stelle unsere Schulung am 19. Oktober. Da werden genau solche Themen behandelt.