使用Dataweave将XML映射到salesforce

时间:2016-08-25 08:04:02

标签: xml mule dataweave

我正在尝试将数据从xml(输入文件)映射到开发人员salesforce版本。

输入文件:

<Z0DEBMAS>    
    <E1KNA1M SEGMENT="1">    
    <KUNNR>0030003926</KUNNR>    
    <NAME1>SAMS CLUB #6493</NAME1>    
    <VKORG>4571</VKORG>    
    </E1KNA1M>       
</Z0DEBMAS>

Mule中的Dataweave代码:

<dw:transform-message doc:name="Transform XML to sfdc">
    <dw:set-payload><![CDATA[%dw 1.0
%output application/java
---
payload.Z0DEBMAS.*E1KNA1M map {
    AccountNumber: $.KUNNR,
    Name: $.NAME1,
    Sales_Organization__c: $.VKORG
    }]]></dw:set-payload>    
</dw:transform-message>

我只获取条目KUNNR和NAME1但不输入VKORG ,我得到的VKORG为空值,如下所示。

Mule控制台中的输出:

INFO  2016-08-25 12:30:06,169 [[xmltosfdc_realtime].xmltosfdc_realtimeFlow.stage1.02] org.mule.api.processor.LoggerMessageProcessor: **[{AccountNumber=0030003926, Name=SAMS CLUB #6493, *Sales_Organization__c=null*}]**
INFO  2016-08-25 12:30:09,467 [[xmltosfdc_realtime].xmltosfdc_realtimeFlow.stage1.02] org.mule.api.processor.LoggerMessageProcessor: [[SaveResult  errors='{[0]}'
 id='0012800000poeQRAAY'
 success='true'

Output in salesforce

以下是要在salesforce中映射的字段的数据类型:

datatype

如果有人可以帮助我,请告诉我。

1 个答案:

答案 0 :(得分:0)

由于数据类型不同,显然未映射销售组织。如果引用预期的datatype,它应该是数字/数字。

错误地,从DataWeave转换的结果是String。因此,我建议您将其转换为数字,例如:Sales_Organization__c: $.VKORG as :number为整数,或Sales_Organization__c: $.VKORG as :number {class: "java.math.BigDecimal"}为BigDecimal

enter image description here