简体   繁体   English

Mule esb 3.8 如何将变量添加到有效负载中?

[英]Mule esb 3.8 how to add variable into payload?

let say I have payload:假设我有有效载荷:

{ Name=User1, Age=29 } { 姓名=用户 1,年龄=29 }

and variable:和变量:

{ Address=Planet Earth} {地址=行星地球}

I want to have a check if that variable not null then add it into payload.我想检查该变量是否不为空,然后将其添加到有效负载中。 So final result will be:所以最终结果将是:

{ Name=User1, Age=29, Address=Planet Earth } { 姓名=User1,年龄=29,地址=行星地球}

How?如何? Was try via payload.Put(variable) but that not allow me such.通过 payload.Put(variable) 尝试但不允许我这样做。

With DataWeave using a Transform component you can use the expression: payload ++ flowVars.variable通过使用 Transform 组件的 DataWeave,您可以使用以下表达式: payload ++ flowVars.variable

If you don't want or can't use DataWeave then you can use a MEL expression that uses the Java method Map.putAll() of the Map interface.如果您不想或不能使用 DataWeave,则可以使用 MEL 表达式,该表达式使用 Map 接口的 Java 方法Map.putAll() You can not use <set-payload> because it doesn't return a value.您不能使用<set-payload>因为它不返回值。 Instead you can use the <expression-component> component.相反,您可以使用<expression-component>组件。

Example:例子:

<expression-component doc:name="Expression"><![CDATA[payload.putAll(flowVars.variable)]]></expression-component>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM