Мне нужно создать функцию с такими условиями, как этот псевдокод:
var consent = []
function buildConsent() {
if (condition1) {
consent += values1
}
if (condition2) {
consent += values2
}
if (condition3) {
consent += values3
}
}
Вот как я это делаю на Mule4 и DW 2.0:
%dw 2.0
var consent = []
var factIntake = vars.facts
fun buildConsent() =
if (factIntake.miscFactItems[?($.value1 == true)] != null) {
consent + {
"Consent_Type": "some1",
"Consent_Given_By": "some2"
}
}
if (factIntake.miscFactItems[?($.value2 == true)] != null) {
consent + {
"Consent_Type": "some3",
"Consent_Given_By": "some4"
}
}
output application/json
--
{
"Consent_Data": buildConsent()
}
Но я получаю следующую ошибку из среды IDE (AnypointStudio 7):
Неверный ввод '+', ожидаемое пространство имен или атрибут ‹'@ (' (Имя: Значение) + ')'> (строка 11, столбец 11):
Где строка 11, столбец 11 - первое появление consent +
. Если я попытаюсь отладить проект, все, что у меня появится в консоли:
Сообщение: Ошибка при разборе скрипта:% dw 2.0
Вот пример ввода / вывода, чтобы вы могли лучше понять, чего я пытаюсь достичь:
// Input
{
"miscFactItems": [{
"factId": "designeeFirstName",
"factValue": "test test",
"factValueType": "System.String"
}, {
"factId": "designeeLastName",
"factValue": "test test",
"factValueType": "System.String"
},{
"factId": "value1",
"factValue": true,
"factValueType": "System.Boolean"
}, {
"factId": "value2",
"factValue": true,
"factValueType": "System.Boolean"
}, {
"factId": "value3",
"factValue": true,
"factValueType": "System.Boolean"
}
]
}
// Output
consent = [{
"Consent_Type": "type1",
"Consent_Given_By": miscFactItems.designeeFirstName
}, {
"Consent_Type": "type2",
"Consent_Given_By": miscFactItems.designeeFirstName
}, {
"Consent_Type": "type3",
"Consent_Given_By": miscFactItems.designeeFirstName
}
]
Что мне здесь не хватает? Как мне добавить три условия к моей функции и добавить значения в consent
var?
consent
- person ReynierPM   schedule 30.05.2019