Ich muss die 1. Ebene Normalisierung von den Eingangsdaten von Excel. [Eingabe Excel] [1].CSV zu CSV Transformation mit Dataweave in Mule
Jetzt soll die Ausgabe wie [Ausgabedatei] [2] sein. Ich habe versucht, MEL (Definieren einer Methode als globale Konfiguration) in Kombination von Dataweave. Inside dataweave versuche ich die oben definierte Methode als globale Konfiguration aufzurufen. Dieser Ansatz funktioniert nicht, da die generierte Datei leer ist. Könnte jemand einen besseren Ansatz oder ein Problem in diesem Ansatz vorschlagen? Unten ist der Code @Manik:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw"
xmlns:file="http://www.mulesoft.org/schema/mule/file" 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.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
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/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
def getCompanyName(name){
if (flowVars.companyList contains name) {
return "";
} else {
flowVars.companyList.add(name);
return name;
}
}
</global-functions>
</expression-language>
</configuration>
<file:connector name="File" autoDelete="true" streaming="true" validateConnections="true" doc:name="File" readFromDirectory="C:\Users\Desktop\Mule-Doc"/>
<file:connector name="File1" autoDelete="true" outputAppend="true" streaming="true" validateConnections="true" doc:name="File"/>
<flow name="csvnormalizationFlow">
<file:inbound-endpoint path="C:\Users\Desktop\Mule-Doc" connector-ref="File" responseTimeout="10000" doc:name="File"/>
<set-variable value="#[[]]" variableName="companyList" doc:name="Variable" mimeType="application/csv"/>
<logger message="The payload is-----------------------#[payload]" level="INFO" doc:name="Logger"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/csv header=true
---
payload map {
CompanyName: getCompanyName($.Company),
location:$.Location
}]]></dw:set-payload>
</dw:transform-message>
<file:outbound-endpoint path="C:\Users\Desktop\Output" outputPattern="test.csv" connector-ref="File1" responseTimeout="10000" doc:name="File"/>
</flow>
</mule>
Könnten Sie bitte posten Sie Ihre MEL-Funktion und dataweave Skript – AnupamBhusari
Die MEL-Funktion def getCompanyName (name) { if (flowVars.companyList enthält den Namen) { return ""; } sonst { flowVars.companyList.add (Name); Name zurückgeben; } } global-Funktionen> Ausdruck-Sprache> configuration> –
Der dataweave Code ist dw: set-payload> dw: transform-message> –