Добрый день.
В договоре сделал бизнес правило для блокировки всех полей в заголовке если поле "Состояние" выбрано: Подписан.
1F703F42-F7E8-4E3F-9B54-2B85F62EA507 - это id состояния "Подписан"
В общем поля блокируются в любом случае даже если выбрано другое состояние, а мне надо, блокировать поля в случае если выбрано только значение "Подписан".
Как исправить?
"Number": {
// Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
"BindParameterDisabledNumber": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство ENABLED.
"property": BusinessRuleModule.enums.Property.ENABLED,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для определения, установлено ли значение.
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
// Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// атрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "State"
},
// Тип операции сравнения.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
// Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает
// константное значение.
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
// Значение, с которым сравнивается выражение левой части.
"value": "1F703F42-F7E8-4E3F-9B54-2B85F62EA507"
}
}]
}
},
"Owner": {
// Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
"BindParameterEnabledOwnerr": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство ENABLED.
"property": BusinessRuleModule.enums.Property.ENABLED,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для определения, установлено ли значение.
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
// Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// атрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "State"
},
// Тип операции сравнения — не равно.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
// Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает
// константное значение.
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
// Значение, с которым сравнивается выражение левой части.
"value": "1F703F42-F7E8-4E3F-9B54-2B85F62EA507"
}
}]
}
},
"Type": {
// Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
"BindParameterEnabledType": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство ENABLED.
"property": BusinessRuleModule.enums.Property.ENABLED,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для определения, установлено ли значение.
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
// Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// атрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "State"
},
// Тип операции сравнения.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
// Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает
// константное значение.
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
// Значение, с которым сравнивается выражение левой части.
"value": "1F703F42-F7E8-4E3F-9B54-2B85F62EA507"
}
}]
}
},
"StartDate": {
// Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
"BindParameterEnabledStartDater": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство ENABLED.
"property": BusinessRuleModule.enums.Property.ENABLED,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для определения, установлено ли значение.
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
// Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// атрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "State"
},
// Тип операции сравнения.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
// Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает
// константное значение.
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
// Значение, с которым сравнивается выражение левой части.
"value": "1F703F42-F7E8-4E3F-9B54-2B85F62EA507"
}
}]
}
},
"EndDate": {
// Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
"BindParameterEnabledEndDate": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство ENABLED.
"property": BusinessRuleModule.enums.Property.ENABLED,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для определения, установлено ли значение.
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
// Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// атрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "State"
},
// Тип операции сравнения.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
// Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает
// константное значение.
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
// Значение, с которым сравнивается выражение левой части.
"value": "1F703F42-F7E8-4E3F-9B54-2B85F62EA507"
}
}]
}
},
"qrtOrderPaymentList": {
// Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
"BindParameterEnabledqrtOrderPaymentList": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство ENABLED.
"property": BusinessRuleModule.enums.Property.ENABLED,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для определения, установлено ли значение.
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
// Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// атрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "State"
},
// Тип операции сравнения.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
// Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает
// константное значение.
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
// Значение, с которым сравнивается выражение левой части.
"value": "1F703F42-F7E8-4E3F-9B54-2B85F62EA507"
}
}]
}
},
"qrtOriginalDoc": {
// Правило зависимости доступности поля [Рабочий телефон] от значения в поле [Мобильный телефон].
"BindParameterEnabledqrtOriginalDoc": {
// Тип правила BINDPARAMETER.
"ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство ENABLED.
"property": BusinessRuleModule.enums.Property.ENABLED,
// Массив условий, при выполнении которых отрабатывает правило. В данном
// случае массив содержит одно условие для определения, установлено ли значение.
"conditions": [{
// Выражение левой части условия.
"leftExpression": {
// Тип выражения ATTRIBUTE указывает на то, что в качестве выражения выступает
// атрибут (колонка) модели представления.
"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
// Название колонки модели представления, значение которой сравнивается в выражении.
"attribute": "State"
},
// Тип операции сравнения.
"comparisonType": Terrasoft.ComparisonType.EQUAL,
// Выражение правой части условия.
"rightExpression": {
// Тип выражения CONSTANT указывает на то, что в качестве значения выражения выступает
// константное значение.
"type": BusinessRuleModule.enums.ValueType.CONSTANT,
// Значение, с которым сравнивается выражение левой части.
"value": "1F703F42-F7E8-4E3F-9B54-2B85F62EA507"
}
}]
}
}
}
Нравится
у меня такое правило вроде отрабатывает
"Number": { "BindParameterDisabledNumber": { "ruleType": BusinessRuleModule.enums.RuleType.BINDPARAMETER, "property": BusinessRuleModule.enums.Property.ENABLED, "conditions": [{ "leftExpression": { "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE, "attribute": "State" }, "comparisonType": Terrasoft.ComparisonType.NOT_EQUAL, "rightExpression": { "type": BusinessRuleModule.enums.ValueType.CONSTANT, "value": "1f703f42-f7e8-4e3f-9b54-2b85f62ea507" } }] } }
ВИдимо вы напутали с comparisonType
Добрый день, Максим.
Скорей всего, Вам стоит поменять comparisonType на Terrasoft.ComparisonType.NOT_EQUAL.
Также рекомендую Вам заменить бизнес правила на атрибут отвечающий за активность поля и менять его значение при изменении поля "Состояние". Это сделает код более читабельным и менее громоздким.