如何在dataweave脚本中使skipNullOn动态化?

时间:2017-04-13 09:10:47

标签: mule dataweave

基于布尔变量我想得到输出。如果variable为true,则null参数在输出中不可见,如果false null参数应该可见。如何在mule dataweave脚本中使skipNullOn动态化?

3 个答案:

答案 0 :(得分:0)

@swamy Thota不确定你是否可以在dataweave中做到这一点。 我可以考虑的替代选项是,使用选择和2个数据集,一个将跳过null而另一个将允许null。

答案 1 :(得分:0)

请使用流变量,使用一个选项并为true条件创建两个不同的映射,为false。  它将如下所示

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

<mule xmlns:encryption="http://www.mulesoft.org/schema/mule/encryption" xmlns:http="http://www.mulesoft.org/schema/mule/http" 

 <flow name="file2fileFlow">
        <file:inbound-endpoint path="D:\Tushar\Training\DataWeave\in" moveToDirectory="D:\Tushar\Training\DataWeave\out" responseTimeout="10000" doc:name="File"/>
        <set-variable variableName="test" value="#['a']" doc:name="Variable"/>
        <choice tracking:enable-default-events="true" doc:name="Choice">
            <when expression="#[flowVars.test] == 'a'">
                <dw:transform-message doc:name="If Value True">
                    <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
}]]></dw:set-payload>
                </dw:transform-message>
            </when>
            <otherwise>
                <dw:transform-message doc:name="If Value false">
                    <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
{
}]]></dw:set-payload>
                </dw:transform-message>
            </otherwise>
        </choice>
        <logger  level="INFO" doc:name="Logger"/>
        <file:outbound-endpoint  outputPattern="output.txt" responseTimeout="10000" doc:name="File"/>
    </flow>
</mule>

答案 2 :(得分:0)

您可以从文件加载dw脚本,并在文本脚本skipNullOn值中加载动态替换。然后,调用MEL函数#[dw(<script>, [<output type>] ]

您可以在那里看到更多的考试:https://support.mulesoft.com/s/article/ka4340000004GbvAAE/Dynamic-DataWeave-Script