从mule esb上的有效负载动态更改属性

时间:2015-02-12 18:21:01

标签: java mule payload

我正在用mule esb开发一家书店。当我检查数据库中的图书订单数量时,我想从有效负载设置属性。有效载荷有书中的几个属性(isbn,quantity,prize,avalability),所以在这种情况下我想要设置为true的最后一个属性(属性为布尔类型)。

有没有办法用连接器做到这一点?

2 个答案:

答案 0 :(得分:2)

不确定你要做什么,但......

要更改消息的有效负载,有几种方法可以简单地使用MEL表达式。 假设你的有效载荷是一张地图(因为你说你从数据库中取出它)然后你就可以这样做:

<expression-transformer expression="#[payload['avalability']='your value']" 

现在你说你希望这个值为真,那么代码应该是这样的:

<expression-transformer expression="#[payload['avalability']=true]

MEL会在那里给你一个布尔值。

最后要更新数据库,你应该:

<db:update config-ref="Database" bulkMode="true" doc:name="insert contacts to Database">
    <db:parameterized-query>
        UPDATE books
        SET 'avalability' = #[payload['avalability']]
        WHERE 'isbn'= #[payload['isbn']]
    </db:parameterized-query>
</db:update>

如果您想了解有关使用DB的更多示例,请检查:

https://www.mulesoft.com/library#!/?types=template&filters=Database

答案 1 :(得分:2)

您可以使用以下方式动态设置propertyName

#[message.outboundProperties.propertyName]=any value