2017-01-10 9 views
0

Ich verwende Anypoint Studio 6.1 mit Mule 3.8.1 und in der Transform Message Komponente habe ich eine Eingabe-CSV-Datei, die Feldnamen in der ersten Zeile und Datentypen für das in der zweiten Zeile abgelegt hat. Ich möchte mit der Verarbeitung der Datensätze ab Zeile 3 beginnen, kann aber die Reader-Konfiguration nicht so konfigurieren, dass die zweite Zeile mit den Datentypen fehlt.Wie ignorierst du die ersten beiden Zeilen einer CSV-Datei in Dataweave?

Gibt es eine Möglichkeit, dies zu tun, so wird die 1. Zeile für Feldnamen verwendet, die 2. Zeile wird ignoriert und die 3. Zeile sind die Datensätze, die verarbeitet werden?

Test-CSV:

Product,Price 
string,decimal(10,2) 
phone,99 
tv,499 

XML Flow:

<?xml version="1.0" encoding="UTF-8"?> 

<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:metadata="http://www.mulesoft.org/schema/mule/metadata" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd"> 
    <flow name="csvreaderFlow"> 
     <dw:transform-message metadata:id="08c0a5d4-9d7d-44ad-b72b-bac83ab6b6c1" doc:name="Transform Message"> 
      <dw:input-payload doc:sample="sample_data\list_csv.csv" mimeType="application/csv"> 
       <dw:reader-property name="bodyStartLineNumber" value="2"/> 
      </dw:input-payload> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/json 
--- 
payload map ((payload01 , indexOfPayload01) -> { 
    products: payload01.Product 
})]]></dw:set-payload> 
     </dw:transform-message> 
    </flow> 
</mule> 

Selbst wenn ich die Körperlinie Startnummer 10 zu erhöhen, ist es nach wie vor zeigt die Linie 2 und die 2 Datensätze herstellen. Ich dachte, das würde einen Fehler verursachen.

enter image description here

enter image description here

Dank

+0

eine Kopie der CSV-Datei erstellen und die Linien nicht erforderlich entfernen. –

Antwort

1

Im Eingangsleser Konfiguration für CSV auf dem Dataweave, haben sie eine Einstellung "bodyStartLineNumber" (festgelegt, dass auf '3' in Ihrem Fall). Lassen Sie mich wissen, wenn Sie Fragen haben,

Hier sind die Schritte auf dem Dataweave zu folgen,

1. Right click on the "Payload" label (left panel). 
2. Click on the "Reader Configuration" option. 
3. GUI opens with multiple options to be set. 
4. Configure the "Body Start Line Number" 
+0

Ich habe die XML und Test csv hinzugefügt, die ich verwende. Ich schaue, um die 1. Zeile als Header zu verwenden, ignorieren Sie die 2. Zeile und dann Telefon und TV werden die Datensätze sein. Ich habe "Body Start Line Number" auf 2 geändert, aber ich bekomme immer noch die zweite Zeile in der Vorschau – user3165854

+0

Haben Sie versucht, es auf 3 ?? –

+0

Ich habe es bei 3 probiert und es sogar auf 10 erhöht, was ich dachte, dass ich eine Ausnahme erhalten hätte, weil es nur 3 Datensätze gibt. – user3165854

Verwandte Themen