Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!
Flowheater Chart

Json zusammenbauen. für Rest Adapter

  • Dalibor Jurisic
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Monate 4 Tage her - 5 Monate 4 Tage her #5133 von Dalibor Jurisic
Json zusammenbauen. für Rest Adapter - Beitrag(5133) wurde erstellt von Dalibor Jurisic
Hallo. ich kämpfe schon den ganzen Nachmittag um die passende Lösung hinzubekommen.
und zwar muss ich etwa 75000 Datensätze per REST Adapter an eine Endpunkt senden. Das mache ich aktuell mit curl was funktioniert. Da man das mit flowheater auch hinbekommen kann würde ich diesen Wege gerne wählen.
Das Problem ist folgendes: der Aufbau der zu sendenden Daten sieht wie folgt aus:
Code:
{ "items": ["string", "string", "string", "string", "string"] }
wobei der jeweilige String 1 Datensatz ist.

Vorgehensweise ist: ich frage mein interne SQL Datenbank ab und bekomme von dort die Datensätze. Diese manipuliere ich nach den Anforderungen für das entfernte Tool.
ich würde jetzt entweder erst eine json bauen, oder aber gleich den REST Adapter befüllen:
Mein bisher erzieltes Ergebnis sieht aber immer so aus: 
Code:
[     {         "items": ["\"1242705||Lorem|Ipsum 1|59.65|qm\","]     },     {         "items": ["\"1242711||Lorem|Ipsum2|50.63|qm\","]     } ]
Ich würde es aber so benötigen:
Code:
{         "items": ["1242705||Lorem|Ipsum 1|59.65|qm","1242711||Lorem|Ipsum2|50.63|qm"]....     }

Ich steh auf dem Schlauch und könnte etwas Hilfe gebrauchen.

Mfg.
Dalibor

P.S. Habe soeben das Schlüsselfeld für die Gruppierung entdeckt. Nun bin ich schon etwas weiter
Code:
{     "items": ["\"1242705||Lorem|Ipsum1|59.65|qm\",", "\"1242711||Lorem|Ipsum2|qm\","] }
wo die vielen Kommas herkommen ist mir noch rätselhaft.
 
Letzte Änderung: 5 Monate 4 Tage her von Dalibor Jurisic.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Dalibor Jurisic
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Monate 4 Tage her #5134 von Dalibor Jurisic
So ich bin schon weitergekommen. Das Array wird aktuell so erzeugt wie ich es benötige. Aber wie konfiguriert man den REST Adapter richtig?
Wie kommen meine Items da hin wo sie hin sollen?
Wenn ich die Daten hier unter Standardwert manuel reinschreibe klappt das.
 
wenn ich das wie folgt konfiguriere kommt immer ein Fehler 400
 

 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
5 Monate 4 Tage her #5137 von FlowHeater-Team
Hallo Herr Jurisic,

das Problem ist, dass Ihr REST API Web Service vermutlich einen validen JSON String benötigt. Wenn Sie die Daten über eine PIPE direkt vom Array abgreifen, erhalten Sie nur die Werte des Arrays getrennt nach einem frei definierbaren Trennzeichen als String zurück. Das Trennzeichen können Sie im JSON Konfigurator im Reiter Erweitert ändern.

       z.B. 1242705[#]Lorem[#]Ipsum 1[#]59.65[#]qm","1242711[#]

Wenn Ihr REST API Web Service aus dem Array immer nur 4 Werte benötigt könnten Sie das JSON hier noch manuell zusammenbauen, im Anhang finden Sie ein kleines Beispiel. Das Konstrukt müssten Sie in Ihre Definition einbauen und dem Feld „Items“ übergeben, dann sollte es klappen.

Alternativ müssten die einzelne JSON Dateien generiert werden, die dann im Anschluss mit dem Batch Modul über Wildcards zusammen verarbeitet werden.

     z.B. FHBatch.exe /ReadFileName *.json REST-API-CALL.fhd

PS: Wie das zusammengebaut werden muss/kann hängt immer davon ab wie Ihr Web Service aufgebaut ist bzw. hier die Daten erwartet wird sowie wie Ihre Daten vorliegen.

 

Dateianhang:

Dateiname: json-rest-...call.zip
Dateigröße:8 KB

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Dalibor Jurisic
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Monate 3 Tage her - 5 Monate 3 Tage her #5140 von Dalibor Jurisic
Vielen Dank für Ihren Vorschlag. Tatsächlich bringt mich das so gar nicht weiter.
Der Webservice erwartet die Daten in dieser Form:
{ "items": ["string", "string", "string", "string", "string"] }

der "string" ist ein zusammengesetzter Datensatz:
Der Datensatz sieht für diesen Vorgang so aus: 
1242705||Lorem|Ipsum1|59.65|qm
Nun hat mein Flow 75000 Datensätze also 75000 mal diesen string hintereinander.
Ich schaffe es auf der Read Seite den MySQL Adapter und auf der Write Seite mit dem JSON Adapter, den geforderten Input genau so zu generieren, wie ich es benötigen würde:
{
    "items": ["1242705||Lorem|Ipsum1|59.65|qm", "1242711||Lorem|Ipsum2|50.63|qm"]
}
Nun ist mir nicht klar wie ich die erzeugte json im 2ten Schritt weiterverarbeiten kann?
Wenn ich den Wert oben in meinen REST Adapter unter Daten manuell packe 

klappt das super. 
Die json Daten müsste vom Write Adapter in den Read Adapter. Das mache ich aktuell indem ich die json abspeichere und sie dann im 2ten Schritt wieder lade.
Allerdigns ist mir nicht klar wie der REST sauber konfiguriert werden soll:
 


 
Letzte Änderung: 5 Monate 3 Tage her von Dalibor Jurisic.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
5 Monate 3 Tage her #5141 von FlowHeater-Team
Hallo Herr Jurisic,

mir ist jetzt nicht mehr klar was Sie genau durchführen möchten?

Soll pro Datensatz ein REST API Call durchgeführt werden, also ca. 7500 einzelne REST Web Service Aufrufe, oder möchten Sie die Daten komplett in den Content packen und über nur einen REST API Call verschicken?

Wenn es ein Call pro Datensatz (also ca. 7500 Einzelaufrufe) sein soll, dann würde mein Beispiel genau das so erzeugen. Ist nicht schön, hier müssen noch Verbesserungen im Handling vorgenommen werden.

Den Inhalt Verbinden Sie dann mit dem Feld „Item“ auf der WRITE Seite. Hinweis: Der Feldname ist hier komplett egal, der Typ muss lediglich „RequestContent“ sein. Das überschreibt dann den statischen „Daten“ Inhalt vom Reiter „Allgemein“. Der Inhalt ist dann auch das was per PUT an den Webserver übergeben wird.

Wenn Sie mir mal ein Beispiel JSON zukommen lassen, kann ich Ihnen gerne ein Beispiel erstellen.

 

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Dalibor Jurisic
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Monate 3 Tage her #5142 von Dalibor Jurisic
Hallo Herr Stark,
sorry für meine chaotischen Erklärungen.
Mein Ziel ist es aus einem lokalen Mysql Server ca. 75000 Datensätze auszulesen und diese an einen per REST Adapter an einen Web Service senden.

Ich kann die Datensätze nicht einzeln senden, sondern muss alle gemeinsam senden. 
Das schreibt der Anbieter.
Warnung: Spoiler!


 

Dateianhang:

Dateiname: item.json
Dateigröße:1 KB

 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
5 Monate 3 Tage her #5145 von FlowHeater-Team
Hallo Herr Jurisic,

ok, jetzt habe ich es verstanden. Dann ist es einfach.

Sie ändern den JSON Adapter auf der READ Seite in den TestData Adapter und stellen die zu erzeugenden Datensätze auf 1.

Dann benötigen Sie den File Heater um die JSON Datei komplett zu lesen und lassen sich den Inhalt als String (UTF-8) zurückgeben. Den Ausgaben verbinden Sie mit dem Items Feld vom REST API Adapter (Type: RequestContent), das sollte es gewesen sein. Im Anhang finden Sie ein kleines Beispiel.

Wenn Sie eine Definition mit zwei Verarbeitungsschritten haben, erzeugen Sie im ersten Step die JSON Datei und im zweiten Step verfahren Sie so wie hier beschrieben.

 

 

Dateianhang:

Dateiname: json-rest-call.zip
Dateigröße:5 KB


PS: Das gesamte Handling muss hier noch verbessert werden, sowie sind detailierte Beispiele in Arbeit!
 

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Dalibor Jurisic
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Monate 3 Tage her #5147 von Dalibor Jurisic
Hallo Herr Stark,
leider komme ich hiermit nicht weiter.
Würde Ihnen gerne den kompletten Flow schicken, aber da sind alle Anmeldedaten enthalten.
Wie könnte man das hinbekommen?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Dalibor Jurisic
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
5 Monate 2 Tage her #5149 von Dalibor Jurisic
Vielen Dank für die Unterstützung. Nun funktioniert alles genau so wie es sein soll. 
 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.319 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.