Здравствуйте!
Есть проблема со свойством isRequired.
При установке значения isRequired: true система отображает * возле поля, но позволяет сохранить карточку с пустым значением (свойство обязательности не срабатывает)
При использовании бизнес-правил все работает корректно.
Тестировалось на релизах BPMOnline Sales 7.4
Omnichannel, Версия 7.4.0.2924
Team, Версия 7.4.0.2628
Нравится
Здравствуйте, Александр!
Ошибку не удалось воспроизвести.
Пожалуйста, уточните тип поля, для которого устанавливается обязательность, а также приведите фрагмент кода, где это происходит.
Спасибо!
Здравствуйте, Александр!
Ошибку не удалось воспроизвести.
Пожалуйста, уточните тип поля, для которого устанавливается обязательность, а также приведите фрагмент кода, где это происходит.
Спасибо!
Используется справочное поле(обязательно для заполнения по условию) и метод setSxAffiliateTransVisible для установки свойства обязательности
Также пробовал привязать в булевому полю.
Результат одинаковый: Звездочка возле обязательного поля появляется, но карточку можно сохранить не заполнив его.
define('SxServicePage', ['GeneralDetails','terrasoft','Constants','BusinessRuleModule'], function(GeneralDetails,Terrasoft,Constants,BusinessRuleModule) { return { entitySchemaName: 'SxService', details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/, diff: /**SCHEMA_DIFF*/[ { "operation": "insert", "name": "SxType", "values": { "layout": { "column": 12, "row": 0, "colSpan": 12, "rowSpan": 1 }, "contentType": 3 }, "parentName": "Header", "propertyName": "items" }, { "operation": "insert", "name": "SxAffiliateTransp", "values": { "layout": { "column": 12, "row": 2, "colSpan": 12, "rowSpan": 1 }, "visible": {"bindTo":"IsSxAffiliateTransVisible"}, "isRequired": {"bindTo":"IsSxAffiliateTransVisible"} //"isRequired": true // тоже не работает }, "parentName": "Header", "propertyName": "items" } ]/**SCHEMA_DIFF*/, attributes: { /* * Зависимость поля Филиал* от поля тип. * Скрытие по условию. Для тип=Транспортировка * */ "SxType": { dependencies: [ { columns: ["SxType"], methodName: "setSxAffiliateTransVisible" } ] } }, methods: { setSxAffiliateTransVisible:function () { var type= this.get("SxType"); if (type!=undefined && type.value==Constants.ServiceType.Transportation) { this.set("IsSxAffiliateTransVisible",true); } else { this.set("IsSxAffiliateTransVisible",false); this.set("SxAffiliateTransp", null); } } onEntityInitialized: function() { this.callParent(arguments); this.setSxAffiliateTransVisible(); } }, rules: { //C ДАННЫМ ПРАВИЛОМ РАБОТАЕТ КОРРЕКТНО /*"SxAffiliateTransp":{ "BindParameterRequiredSxAffiliateTranspToSxType": { ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER, property: BusinessRuleModule.enums.Property.REQUIRED, conditions: [ { "leftExpression": { "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE, "attribute": "SxType"//, //"attributePath": "Finish" }, "comparisonType": Terrasoft.ComparisonType.EQUAL, "rightExpression": { "type": BusinessRuleModule.enums.ValueType.CONSTANT, "value": Constants.ServiceType.Transportation } } ] } }*/ }, userCode: {} }; });
Александр, неправильно делаете. Нужно это свойство задавать атрибуту, к которому привязан контрол, а не контролу. Вот так:
attributes: { //... "SxAffiliateTransp": { "isRequired": {"bindTo":"IsSxAffiliateTransVisible"} } }
Действительно работает, спасибо за подсказку!
Попробовал, работает не так (BPM 7.5 off-site) - если поле уже обязательное по условию, и условие меняется так, что функция возвращает false, то пропадает только красненький текст валидации, а само поле продолжает вести себя как обязательное.. т.е. сильно просит заполнить себя....
Добрый день!
Комментарий предоставлен в рамках топика Binding признака обязательности поля на attributes > isRequired не работает корректно