如何从mule DB连接器中仅获取链接列表值的值部分

时间:2016-12-26 07:18:14

标签: linked-list mule

我有以下流程,它返回DB中的值列表,其中包含mule。 我希望能够只得到DB结果的值部分,而不是格式为" column = value"的完整链表。我想在下一个http块中使用值部分作为URL的一部分。请参阅下面的流程。任何反馈都会有所帮助。

<http:request-config name="HTTP_Request_Configuration" protocol="HTTPS" host="jsonplaceholder.typicode.com/#[flowVars.custID]" port="443" doc:name="HTTP Request Configuration"/>
<http:listener-config name="HTTP_Listener_Configuration1" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>

<flow name="dbcconnectorFlow">
    <http:listener config-ref="HTTP_Listener_Configuration2" path="/lockStatus" allowedMethods="PUT" doc:name="HTTP"/>
    <db:select config-ref="Oracle_Configuration" doc:name="Database">
        <db:dynamic-query><![CDATA[select CUST_NO FROM CUSTOMERS WHERE LOCKED='N']]></db:dynamic-query>
    </db:select>
    <logger message="#[message.payload]&quot;" level="INFO" doc:name="Logger"/>
    <set-variable variableName="custID" value="#[message.payload[0]]" doc:name="Variable"/>
    <http:request config-ref="HTTP_Request_Configuration" path="/" method="PUT" doc:name="HTTP"/>
</flow>

Ekow

2 个答案:

答案 0 :(得分:0)

从DB获取结果的值部分的一种方法是在DB组件之后放置转换消息(Dataweave)组件,并按照此示例中所示进行配置:

    <flow name="myprojectFlow">
      <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
      <db:select config-ref="MySQL_Configuration" doc:name="Database">
        <db:parameterized-query><![CDATA[select CompanyName from Customers limit 10]]></db:parameterized-query>
      </db:select>
      <response>
          <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
      %output application/json
      ---
      payload.CompanyName[1]]]></dw:set-payload>
        </dw:transform-message>
      </response>
    </flow>

输出是数组中的第一个公司名称字符串。列名不包括在内。

答案 1 :(得分:0)

找到解决这个问题的方法。我必须使用对象到xml转换器将作为对象的db结果转换为xml。然后使用拆分器来分割结果,因为我期待多个输出,如下所示

[xpath3(&#39; // root / data /&#34; xml_tag_of_required_data&#34;&#39;,有效负载,&#39; NODESET&#39;)]。然后我将输出设置为变量并引用http端点URL中的变量。