繁体   English   中英

Mule Dataweave:需要从数组中提取值

[英]Mule Dataweave: Need to extract values from an array

添加了新代码,我试图首先保存lineData,处理标头并返回到行,但是它不喜欢setPayloadToLines

 <set-variable variableName="lineData" value="#[payload.LineID]" doc:name="Variable"/>
  …              

 <set-payload value="lineData" doc:name="setPayloadToLines" />
 <foreach doc:name="For Each" collection="#[payload.LineID]">
    <db:insert config-ref="Oracle_Configuration" doc:name="Database">
        <db:parameterized-query><![CDATA[INSERT INTO HDR_TABLE (LINE_ID,ID) VALUES(LINE_SEQ.NEXTVAL,#[payload.LineID])]]></db:parameterized-query>
    </db:insert>
    </foreach>

由于您尚未显示完整的json请求,因此,请考虑以下json:-

{
    "Industry": ["111","ggh","ooo",888],
    "Phone": null,
    "Id": null,
    "type": "Account",
    "Name": "Manufacturing"
}

因此,这是您如何提取每个逗号分隔值并将其插入db的方法:-

 <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
    <flow name="TestFlow" >
        <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/>
        <json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object"/>
        <logger level="INFO" doc:name="Logger" message="#[payload.Industry]"/>
        <foreach doc:name="For Each" collection="#[payload.Industry]">
            <logger message="Each extracted value :#[payload]" level="INFO" doc:name="Logger"/>
            <!-- Your Database insert code here inserting each value with #[payload] -->
        </foreach>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
   </flow>

您可以修改上面的代码并将其插入db。
请注意for循环#[payload]已提取逗号分隔的值。 您可以根据需要将其放入变量中,而不用编写#[payload]

更新:

根据您的问题,我已经更新了您的查询:

<foreach doc:name="For Each" collection="#[payload.LineID]">
    <db:insert config-ref="Oracle_Configuration" doc:name="Database">
        <db:parameterized-query><![CDATA[INSERT INTO HDR_TABLE (ID,LINE_ID) VALUES(LINE_SEQ.NEXTVAL,#[payload])]]></db:parameterized-query>
    </db:insert>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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