Мне нужно создать функцию с такими условиями, как этот псевдокод:
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):
Неверный ввод '+', ожидаемое пространство имен или атрибут <<@ ('(Name: Value) +') '> (строка 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?