簡體   English   中英

Mule ESB(Groovy腳本):如何檢查值並將新的鍵值映射添加到java.util.LinkedList

[英]Mule ESB (Groovy Script): How would I check a value and add a new key value mapping to a java.util.LinkedList

我正在調用以LinkedList形式從數據庫返回數據的服務。 我需要使用一個新的字段“ status”來更新LinkedList,該字段由endDate決定。

  • endDate>當前日期=>狀態=已停用
  • endDate <=當前日期=> status =有效

Mule有效載荷類: java.util.LinkedList

ule子有效載荷: [{serialNumber =,maintenanceId = 12345,customerID = 09890,startDate = 2017-10-10 23:34:17,endDate = 2018-10-10 23:34:17},{serialNumber =,maintenanceId = 09091 ,customerID = 74743,startDate = 2014-8-16 23:34:17,endDate = 2019-8-16 23:34:17}]]

我遇到的問題是,我無法導航到鏈接列表以檢索值以及向列表添加新值。 希望有人能給我一些最好的前進方法的建議。 我正在嘗試使用常規轉換器來更新有效負載,但是效果不是很好,因此沒有任何代碼可顯示。

感謝您抽出寶貴的時間!

我有一個類似的要求(有效負載是JSON,但它也應該工作),這就是我使用Dataweave所做的(我添加了數據,以便於理解)。

%dw 1.0
%output application/java
---
flowVars.input2 map {
    serialNumber : $.serialNumber,
    maintenanceId: $.maintenanceId,
    customerID: $.customerID,
    startDate: $.startDate,
    endDate: $.endDate,
    status: "deactivated" when $.endDate as :date {format:"yyyy-M-dd HH:mm:ss"} > (now  as :date {format:"yyyy-M-dd HH:mm:ss"}) otherwise "activated"
}

通過此轉換,您可以迭代列表並根據需要添加狀態值。

輸入示例:

 [{"serialNumber":"test1", "maintenanceId":"12345", "customerID":"09890", "startDate":"2017-10-10 23:34:17", "endDate":"2018-10-10 23:34:17"},{"serialNumber":"test2", "maintenanceId":"09091", "customerID":"74743", "startDate":"2014-8-15 23:34:17", "endDate":"2018-8-15 23:34:17"}]

輸出示例

[{"serialNumber":"test1","maintenanceId":"12345","customerID":"09890","startDate":"2017-10-10 23:34:17","endDate":"2018-10-10 23:34:17","status":"deactivated"},{"serialNumber":"test2","maintenanceId":"09091","customerID":"74743","startDate":"2014-8-15 23:34:17","endDate":"2018-8-15 23:34:17","status":"activated"}]

希望這對您有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM