【发布时间】:2019-08-21 21:55:20
【问题描述】:
使用 Dataweave,我正在尝试根据标签值将入站 XML 有效负载映射到有条件地映射到 JSON。例如,如果FieldValue.FieldName == “DueDate”,则将同一父标签FieldValue 下的FieldValue.Value 的值映射到customfield_10659,如果FieldValue.FieldName == “CommittedDate” 映射到customfield_19029。同样,如果FieldValue.FieldName == "Importance" 的值,则将FieldValue.Value.Id.Value 的值映射到customfield_38383
==============
输入 XML:
<OutboundRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xyz.bac/api">
<Entities>
<BaseEntity i:type="GenericEntity">
<Id>
<TypeName>Project</TypeName>
<Value>76wp5wtggqnr2zh2zulelom6v92</Value>
</Id>
<Values>
<FieldValue>
<FieldName>DueDate</FieldName>
<Value xmlns:d6p1="http://www.w3.org/2001/XMLSchema" i:type="d6p1:dateTime">2019-07-30T21:00:00</Value>
</FieldValue>
<FieldValue>
<FieldName>StartDate</FieldName>
<Value xmlns:d6p1="http://www.w3.org/2001/XMLSchema" i:type="d6p1:dateTime">2019-03-04T13:00:00</Value>
</FieldValue>
<FieldValue>
<FieldName>CommittedDate</FieldName>
<Value xmlns:d6p1="http://www.w3.org/2001/XMLSchema" i:type="d6p1:dateTime">2019-01-31T00:00:00</Value>
</FieldValue>
<FieldValue>
<FieldName>C_Components</FieldName>
<Value i:type="EntityId">
<TypeName>C_WorkItemComponents</TypeName>
<Value>SS-BA;SS-PM;IS-JIRA</Value>
</Value>
</FieldValue>
<FieldValue>
<FieldName>C_PrimaryTeam</FieldName>
<Value i:type="GenericEntity">
<Id>
<TypeName>C_WorkItemPrimaryTeam</TypeName>
<Value>IS-JIRA</Value>
</Id>
<Values />
</Value>
</FieldValue>
<FieldValue>
<FieldName>Importance</FieldName>
<Value i:type="GenericEntity">
<Id>
<TypeName>Importance</TypeName>
<Value>High</Value>
</Id>
<Values />
</Value>
</FieldValue>
<FieldValue>
<FieldName>C_JIRA_Integration_Code</FieldName>
<Value xmlns:d6p1="http://www.w3.org/2001/XMLSchema" i:type="d6p1:string">ZenJIRA</Value>
</FieldValue>
<FieldValue>
<FieldName>C_JIRAKey</FieldName>
<Value xmlns:d6p1="http://www.w3.org/2001/XMLSchema" i:type="d6p1:string">https://dev.server/browse/ABC-14759</Value>
</FieldValue>
<FieldValue>
<FieldName>Phase</FieldName>
<Value i:type="GenericEntity">
<Id>
<TypeName>Phase</TypeName>
<Value>Coordination</Value>
</Id>
<Values />
</Value>
</FieldValue>
</Values>
</BaseEntity>
</Entities>
<OrganizationId>2heyug4hn27vwlvmm3t6o92x90</OrganizationId>
<RuleName>JiraSync</RuleName>
</OutboundRequest>
输出 JSON:
{
"fields": {
"customfield_10659": "2019-07-30T21:00:00",
"customfield_19029": "2019-07-30T21:00:00",
"customfield_10645": {
"value": "High"
},
"customfield_12925": {
"value": "IS-JIRA"
},
"customfield_12735": {
"value": "BlockerReason"
}
}
}
【问题讨论】:
标签: dataweave