简体   繁体   中英

Change a property dynamically from the payload on mule esb

I'm developing a bookstore in mule esb. When I check the quantity from a book order is available with the database, I want to set a property from payload. The payload has several properties from the book (isbn, quantity, prize, avalability), so the last one in this case I want to set to true (is attribute boolean type).

Is there any way to do that with a connector?

not really sure what you're trying to do but...

To change the payload of a message there several ways the easies one being just using a MEL expression. Say your payload is a map(for you say you toke it from the DB) then you could just do:

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

Now you say you wanted that value to be true then the code should look like:

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

MEL will put a boolean true for you there.

Finally to update the DB you should:

<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>

If you want more example about working with DB please check:

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

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

#[message.outboundProperties.propertyName]=any value

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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