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