When the value of "operator" is "=" "value" must not be null or empty.
It report error with this which have been hinder me for couple days.
Interface Definition: Expression evaluation error at function a!queryLogicalExpression [line 25]: The a!queryFilter function has an invalid value for the "value" parameter. When the value of "operator" is "=" "value" must not be null or empty.
a!localVariables(
a!formLayout(
label: "Username",
contents: {
a!textField(
label: "username",
labelPosition: if(
ri!readOnly,
"ADJACENT",
"ABOVE"
),
value: ri!username.username,
saveInto: ri!username.username,
refreshAfter: "UNFOCUS",
validations: {
if(
a!queryEntity(
entity: cons!usernameConstant,
query: a!query(
fetchTotalCount: true,
pagingInfo: a!pagingInfo(
startIndex: 1,
batchSize: 1
),
logicalexpression: a!queryLogicalExpression(
operator:"OR",
filters: {
a!queryFilter(
field: "username",
operator: "=",
value:(ri!username.username)
),
a!queryFilter(
field: "username",
operator: "is null"
),
}
)
)
).totalCount > 0,
"Username exists",
null
)
}
),
a!textField(
label: "gender",
labelPosition: if(
ri!readOnly,
"ADJACENT",
"ABOVE"
),
value: ri!username.gender,
saveInto: ri!username.gender,
refreshAfter: "UNFOCUS",
),
a!columnsLayout(
columns: {
a!columnLayout(
contents: {
a!textField(
label: "Password",
labelPosition: if(
ri!readOnly,
"ADJACENT",
"ABOVE"
),
value: ri!username.password,
saveInto: ri!username.password,
characterLimit: 255,
readOnly: ri!readOnly
)
}
)
}
),
},
buttons: a!buttonLayout(
primaryButtons: {
a!buttonWidget(
label: "Insert",
saveInto:(
a!writeToDataStoreEntity(
dataStoreEntity: cons!usernameConstant,
valueToStore:(ri!username)
),
),
submit: true,
style: "PRIMARY",
),
a!buttonWidget(
label: "update",
saveInto:(
a!writeToDataStoreEntity(
dataStoreEntity: cons!usernameConstant,
valueToStore:ri!username,
),
),
submit: true,
style: "PRIMARY"
),
a!buttonWidget(
label: "delete",
saveInto:(
a!deleteFromDataStoreEntities(
dataToDelete: {
a!entityDataIdentifiers(
entity: cons!usernameConstant,
identifiers:{ri!username.username},
)
}
)
),
submit: true,
style: "PRIMARY"
)
},
secondaryButtons: {
a!buttonWidget(
label: "Cancel",
value: true,
saveInto: ri!cancel,
submit: true,
style: "NORMAL",
validate: false
)
},
showWhen: or(
isnull(
ri!readOnly
),
not(
ri!readOnly
)
)
)
)
)
