Mule db组件从另一个db查询输入有效负载

时间:2014-10-15 13:59:35

标签: java database mule flow

我需要一个基本的Mule流程,以便从一个数据库中选择行,转换有效负载并在另一个数据库中调用一个过程。我不想使用DataMapper组件,我想改用Java Transformer。

我的XML流程:

<set-variable variableName="currentOrder" value="#[payload.increment_id]" doc:name="Variable"/>
<db:select config-ref="MySQL_Configuration" doc:name="GET ORDER">
    <db:parameterized-query><![CDATA[select id from sales where id=#[currentOrder]]]></db:parameterized-query>
</db:select>
<custom-transformer class="com.mycompany.transformers.TargerProc" doc:name="Java"/>
<db:stored-procedure config-ref="Oracle_Configuration" doc:name="PROC1">
    <db:parameterized-query><![CDATA[call proc1(:P1,:P2)]]></db:parameterized-query>
    <db:in-param name="P1" type="NUMERIC" value="#[payload.id]"/>
    <db:out-param name="P2" type="NUMERIC" value=""/>
</db:stored-procedure>

第一个问题:

Message payload is of type: CaseInsensitiveHashMap

有人可以对此有所了解吗?我认为实现这一目标非常简单。

提前致谢!

1 个答案:

答案 0 :(得分:1)

试试这个<db:parameterized-query>{ call proc1(:P1,:P2) }</db:parameterized-query>: -

<set-variable variableName="currentOrder" value="#[payload.increment_id]" doc:name="Variable"/>
<db:select config-ref="MySQL_Configuration" doc:name="GET ORDER">
    <db:parameterized-query><![CDATA[select id from sales where id=#[currentOrder]]]></db:parameterized-query>
</db:select>
<custom-transformer class="com.mycompany.transformers.TargerProc" doc:name="Java"/>
<db:stored-procedure config-ref="Oracle_Configuration" doc:name="PROC1">
    <db:parameterized-query>{ call proc1(:P1,:P2) }</db:parameterized-query>
    <db:in-param name="P1" type="NUMERIC" value="#[payload.id]"/>
    <db:out-param name="P2" type="NUMERIC" value=""/>
</db:stored-procedure>