2017-04-07 23 views
0

增加了新的代碼,其中我想先保存lineData,加工頭和回來行提取值,但它不喜歡的setPayloadToLines騾子Dataweave:需要從陣列

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

+0

你想每個逗號分隔的值是數據庫中的輸入? –

+0

是的,這是真的..我想作爲一個單獨的行插入數據庫表。 – insaneyogi

+0

是否需要dataweave?我可以告訴你一個簡單的方法 –

回答

0

由於歐還沒有表現出完整的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]

UPDATE:

按照你的問題,我已經更新了查詢: -

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

有沒有優化'批量插入'到數據庫和優化的foreach? – insaneyogi

+0

這是爲你工作嗎? –

+0

給我幾個我正在測試它 – insaneyogi