问题描述
我正在尝试根据输入有效负载来路由进程。
输入:
{
"data": {
"schema": "rWdXQ7M38dwTJ8Ro29S8PQ","payload": {
"ChangeEventHeader": {
"changeType": "CREATE","changedFields": [
],"Name": "Case","recordIds": [
"a77V00000000vI4IAA"
]
},"Last_Month_Work_Billed_RS__c": 0.0
},"event": {
"replayId": 10198245
}
},"channel": "/data/Job__ChangeEvent"
}
我在m子4中使用选择连接器
正在使用的数据编织表达式如下
payload.data.payload.ChangeEventHeader.changeType == "CREATE" & Name != " "
它给了我错误。我如何通过表达式实现这一目标?
解决方法
请提供您所犯的错误。试试
payload.data.payload.ChangeEventHeader.changeType ~= "CREATE" and payload.data.payload.ChangeEventHeader.Name != " " and payload.data.payload.ChangeEventHeader.Name?
,
Dataweave不能将&符号理解为逻辑运算符(在这种情况下为“ and”)。 另外,您应该将完整路径添加到“名称”属性。
使用以下数据编织表达式:
payload.data.payload.ChangeEventHeader.changeType == "CREATE" and payload.data.payload.ChangeEventHeader.Name != " "
Dataweave逻辑运算符的描述如下:https://docs.mulesoft.com/mule-runtime/4.3/dw-operators#logical_operators
,您还可以探索以下语法:
payload..changeType[0] == "CREATE" and !isEmpty(payload..Name[0])
isEmpty(<expression>)
:https://docs.mulesoft.com/mule-runtime/4.3/dw-core-functions-isempty