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

Mule 如何在dataweave脚本中使skipNullOn动态?,mule,dataweave,Mule,Dataweave,基于布尔变量,我想得到输出。若变量为true,则null参数在输出中不可见,若为false,则null参数应可见。如何在mule dataweave脚本中使skipNullOn动态?@swamy Thota不确定是否可以在dataweave中实现。 我能想到的另一个选择是,使用choice和2个dataweave,一个跳过null,另一个允许null 请使用一个流变量,使用一个选项并创建两个不同的映射,一个为true condition,一个为false。 它将是如下所示 <?xml ve

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

@swamy Thota不确定是否可以在dataweave中实现。
我能想到的另一个选择是,使用choice和2个dataweave,一个跳过null,另一个允许null

请使用一个流变量,使用一个选项并创建两个不同的映射,一个为true condition,一个为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>

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


您可以在这里看到更多示例:

谢谢@Suyog Sathe。只是想在dataweave中实现它。如果在dataweave中不起作用,选择是最终选项。谢谢@Tushar。只是想在dataweave中实现它。如果在dataweave中不起作用,选择是最终选项。