2017-07-18 5 views
0

Ich habe einen Flow erstellt, der eine CSV über einen Formulardaten-API-POST akzeptiert und dann jede Zeile in einem Batch-Job verarbeitet. Im Idealfall möchte ich nicht jede Spalte manuell zuordnen, bevor ich sie an den Batch-Executor übergebe, aber ich konnte nicht herausfinden, wie man die Schlüssel/Wert-Paare dynamisch "durchläuft". Ich möchte sicherstellen, dass die CSV neue Spalten haben können und wir werden sie durchlaufen, ohne vorher über sie zu wissen ... Das ist, was ich habe:Mulesoft Dataweave konvertieren CSV dynamisch zu mappen

%dw 1.0 
%output application/java 
--- 
payload map { 
    title: $.title, 
    description: $.description, 
    template_id: $.template_id, 
    pricing_flat_price: $.pricing_flat_price, 
    scheduled_start_date: $.scheduled_start_date, 
    resource_id: $.resource_id, 
    industry_id: $.industry_id, 
    owner_email: $.owner_email, 
    location_offsite: $.location_offsite 
} 

Und das ist, was ich werde (in nicht-sensical psuedocode):

%dw 1.0 
%output application/java 
--- 
payload map { 
    *:* 
} 

ich habe vorstellen, dies leicht getan, aber ich kann es nicht herausgefunden.

Danke, Steve

Antwort

0

Sie können einfach Transformation verwenden, wie unten -

%dw 1.0 
%output application/java 
--- 
(payload) 
0

Hand-Karte jede Spalte, bevor es dem Batch Executor

Sie sollten nicht tun müssen, um diese übergeben. Übergeben Sie den gesamten CSV an die Batch-Input-Phase und lassen Sie jede Zeile in eine Linked Hashmap aufteilen.

+0

Das ist nicht für mich arbeiten. Fehler zeigte an, dass die Eingabeklasse nicht der richtige Typ war. –

Verwandte Themen