【发布时间】:2014-03-05 07:20:30
【问题描述】:
我有一条从队列中挑选出来的 XML 消息,我需要使用从数据库表上的 Select 语句返回的值来更新 XML 消息。
所以最初我将 XML 有效负载保存到一个单独的变量中。然后我发出数据库调用,将值保存在局部变量中,然后重置有效负载变量。
//Save Payload
<set-variable variableName="tempPayload" value="#[message.payload]" doc:name="Variable"/>
//Database Operation
<jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryTimeout="-1" connector-ref="Database" doc:name="GetInformation" queryKey="Select Data">
<jdbc-ee:query key="Select Data" value="SELECT address, city, zip,state, country, phone, email,org FROM Details WHERE id = "100" />
</jdbc-ee:outbound-endpoint>
<set-variable doc:name="address1" value="#[message.payload[0].address]" variableName="address1"></set-variable>
<set-variable doc:name="city" value="#[message.payload[0].city]" variableName="city"></set-variable>
<set-variable doc:name="zip" value="#[message.payload[0].zip
]" variableName="zip"></set-variable>
<set-variable doc:name="state" value="#[message.payload[0].state]" variableName="state"></set-variable>
<set-variable doc:name="country" value="#[message.payload[0].country]" variableName="country"></set-variable>
<set-variable doc:name="phone" value="#[message.payload[0].phone]" variableName="phone"></set-variable>
<set-variable doc:name="email" value="#[message.payload[0].email]" variableName="email"></set-variable>
<set-variable doc:name="org" value="#[message.payload[0].org]" variableName="org"></set-variable>
//Reset Payload
<set-payload value="#[tempPayload]" doc:name="Set Payload"/>
现在我的原始有效载荷格式为:
<Order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="">
<TransactionId>376721</TransactionId>
<TransactionDateTime>2014-01-30T00:00:00</TransactionDateTime>
<Parties>
<Party>
<PartyType>abcd</PartyType>
<PartyCode></PartyCode>
<FirstName></FirstName>
<LastName></LastName>
<CompanyName></CompanyName>
<Address1></Address1>
<CityName></CityName>
<StateOrProvinceCode></StateOrProvinceCode>
<PostalCode></PostalCode>
<CountryCode></CountryCode>
<PhoneNumber></PhoneNumber>
<EmailAddress></EmailAddress>
</Party>
<Party>
<PartyType>adfa</PartyType>
<FirstName></FirstName>
<Address1></Address1>
<Address2></Address2>
<CityName></CityName>
<StateOrProvinceCode></StateOrProvinceCode>
<PostalCode></PostalCode>
<CountryCode></CountryCode>
<EmailAddress></EmailAddress>
</Party>
<Party>
<PartyType>XXXXXXX</PartyType>
<Address/>
<City/>
<Zip/>
<State/>
<Country/>
<Phone/>
<Email/>
<Org/>
</Party>
<Party>
</Party>
</Parties>
<Items>
<Item>
</Item>
</Items>
</Order>
</code>
我想将从数据库中检索到的值设置为特定方类型“XXXXXXX”,然后进一步发送消息进行处理。
实现这一目标的最佳方法是什么?
【问题讨论】: