Возникла задача:
Необходимо установить признак обязательности поля UsrDeviationReason, если даты UsrDatePlan и UsrDateActual не равны друг другу и UsrDateActual заполнена:
Написали правило:
"UsrDeviationReason":{
"BindParameterRequiredDeviationReason": {
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
"property": BusinessRuleModule.enums.Property.REQUIRED,
"logical": Terrasoft.LogicalOperatorType.AND,
"conditions": [
{
"leftExpression": {
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
"attribute": "UsrDatePlan"
},
"comparisonType": Terrasoft.ComparisonType.NOT_EQUAL,
"rightExpression": {
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
"attribute": "UsrDateActual"
}
},
{
"leftExpression": {
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
"attribute": "UsrDateActual"
},
"comparisonType": Terrasoft.ComparisonType.IS_NOT_NULL
}
]
}
В итоге два вопроса:
1) По UsrDateActual IS_NOT_NULL работает (т.е., если поле UsrDateActual не заполнено, то признак обязательности не появляется).
Но при равенстве UsrDatePlan и UsrDateActual признак обязательности всё равно остаётся. Что указано не так?
2) Даже если признак обязательности исчезает, всё равно остаётся подсказка заполнить это поле и никак не исчезает.
Спасибо за помощь!