2015-11-20 23 views
1

我得到使用peopleHr連接器以下列格式JSON數據與約500員工詳細信息:存儲用於在一個WSO2 ESB代理服務引用鍵值對

{ 
    "Result": [ 
    { 
     "EmployeeId": { 
     "DisplayValue": "UK20900" 
     }, 
     "Title": { 
     "DisplayValue": "", 
     "FieldHistory": [] 
     }, 
     "FirstName": { 
     "DisplayValue": "Riyafa", 
     "FieldHistory": [] 
     }, 
     "LastName": { 
     "DisplayValue": "Abdul Hameed", 
     "FieldHistory": [] 
     }, 
     "OtherName": { 
     "DisplayValue": "", 
     "FieldHistory": [] 
     }, 
     "KnownAs": { 
     "DisplayValue": "", 
     "FieldHistory": [] 
     }, 
     "EmailId": { 
     "DisplayValue": "[email protected]", 
     "FieldHistory": [] 
     }, 
     "StartDate": { 
     "DisplayValue": "2015-11-18", 
     "FieldHistory": [] 
     }, 
     "DateOfBirth": { 
     "DisplayValue": "", 
     "FieldHistory": [] 
     }, 
     "JobRole": { 
     "DisplayValue": "", 
     "FieldHistoryForJobRole": [ 
      { 
      "JobRole": null, 
      "EffectiveDate": "2015-11-18", 
      "ChangedOn": "2015-11-18", 
      "ReasonForChange": "New Starter" 
      } 
     ] 
     } 
    }, 
    { 
     "EmployeeId": { 
     "DisplayValue": "LK500200", 
     "FieldHistory": [ 
      { 
      "OldValue": "LK", 
      "NewValue": "LK500200", 
      "ChangedOn": "2015-11-18", 
      "ReasonForChange": "We choose our own employee ids" 
      }, 
      { 
      "OldValue": "PW2", 
      "NewValue": "LK", 
      "ChangedOn": "2015-11-18", 
      "ReasonForChange": "Because we have a specific format for our employee ids" 
      } 
     ] 
     }, 
     "Title": { 
     "DisplayValue": "", 
     "FieldHistory": [] 
     }, 
     "FirstName": { 
     "DisplayValue": "Kalani", 
     "FieldHistory": [] 
     }, 
     "LastName": { 
     "DisplayValue": "Gayathri", 
     "FieldHistory": [] 
     }, 
     "OtherName": { 
     "DisplayValue": "", 
     "FieldHistory": [] 
     }, 
     "KnownAs": { 
     "DisplayValue": "", 
     "FieldHistory": [] 
     }, 
     "EmailId": { 
     "DisplayValue": "[email protected]", 
     "FieldHistory": [] 
     }, 
     "StartDate": { 
     "DisplayValue": "2015-11-17", 
     "FieldHistory": [] 
     }, 
     "DateOfBirth": { 
     "DisplayValue": "1992-05-08", 
     "FieldHistory": [] 
     }, 
     "JobRole": { 
     "DisplayValue": "IT", 
     "FieldHistoryForJobRole": [ 
      { 
      "JobRole": "IT", 
      "EffectiveDate": "2015-11-17", 
      "ChangedOn": "2015-11-18", 
      "ReasonForChange": "New Starter" 
      } 
     ] 
     } 
    } 
    ] 
} 

我想存儲EMAILID和僱員作爲將在WSO2 ESB代理服務中的將來參考中使用的關鍵值對,其中我需要使用EmailId引用EmployeeId。我想使用與所述名稱作爲EMAILID和值作爲EMPLOYEEID屬性介體,但表達不能被用作屬性介體的名稱。我如何提取這些值並將它們存儲以供將來參考到ESB代理服務中?

回答

2

可以使用「表達」屬性在屬性介以提取值(使用XPath或jsonpath)。

但是使用屬性中介,因爲這些屬性是本地的消息將不會對這種情況下的工作。也就是說,當你收到一條新消息時,你會得到一個新的屬性副本,而不是以前設置的值。

因此,您可以嘗試以下方法之一:
- 用戶DBReport和DBLookup調解器來存儲和檢索值。這將涉及建立一個數據庫。
- 使用範圍將遍及傳入郵件保存的值的自定義中介。有保存的值(從屬性),並將其與新的一個sample code here。您可以修改此值以僅保留該值並將其設置爲新消息到達時您可以使用的新屬性。

+0

我想用內嵌腳本中介的:https://docs.wso2.com/display/ESB490/Script+Mediator。希望它能工作 –