0
我正在使用Mule ESB 3.4 CE。我有這個使用Salesforce連接器創建聯繫人的流程。我想分析錯誤並採取一些行動。解析Mule中Salesforce Connector的錯誤ESB
....
<sfdc:create config-ref="Salesforce" type="Contact" doc:name="Create Contacts">
<sfdc:objects ref="#[payload]"/>
</sfdc:create>
<expression-component doc:name="Get Successful List">flowVars.listSuccess = ($ in payload if $.success=='true')</expression-component>
<expression-component doc:name="Get Failed List">flowVars.listErrors = ($.errors in payload if $.success=='false')</expression-component>
的結果如下:
[[SaveResult errors='{[1][Error fields='{[1]Email,}'
message='A contact with this email address already exists.'
statusCode='FIELD_CUSTOM_VALIDATION_EXCEPTION'
]
,}'
id='null'
success='false'
]
, [SaveResult errors='{[1][Error fields='{[1]Email,}'
message='A contact with this email address already exists.'
statusCode='FIELD_CUSTOM_VALIDATION_EXCEPTION'
]
,}'
id='null'
success='false'
]
]
我能夠通過下面的表達式組件以獲取IDS:
<expression-component doc:name="Get Failed List">flowVars.listIds = (Id in payload)</expression-component>
然而,我無法到狀態碼和錯誤信息。我嘗試了各種組合,但我無法得到它。對於例如#[(message in(error in flowVars.listErrors)]。當Salesforce返回錯誤時,如何獲取StatusCode和消息?
我能看到控制檯輸出,但你怎麼能提取消息和狀態代碼放到一個變量,這樣我就可以登錄到數據庫 –
我不知道是否可以?在MEL中展開這樣的嵌套列表,或者如果這是記錄錯誤的最佳方式,但您始終可以在Groovy中遵循我的示例,並使用該方法提取消息/狀態代碼並將它們分配給變量。 –