Добрый день!
В ITIL есть поле "Решение" - которое представляет собой строку неограниченной длины
и на странице выглядит таким образом:

Как можно сделать такое поле обязательным по какому-либо условию ( например, при состоянии "разрешено" требовать обязательность его заполнения)

Обычное бизнес-правило для обязательности поля
ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство REQUIRED поля.
property: BusinessRuleModule.enums.Property.REQUIRED,
conditions...

здесь не срабатывает
Возможно потому что само поле отображается на странице не как все другие поля

Нравится

12 комментариев

Добрый день, Дарья!

Для того, чтобы поле "Решение" в карточке обращения стало обязательным, Вы можете воспользоваться мастером раздела, для этого:

1. Перейдите в "Обращения" и нажмите кнопку "Вид"-->"Открыть мастер раздела"
2. Выбрав пакет для редактирования, перейдите на страницу редактирования обращения, потом на детали "Решение", выбрав колонку "Решение" нажмите кнопку "Изменить" и Вы сможете в открывшемся окне поставить признак "Является обязательным"

Спасибо за обращение в поддержку Terrasoft.

Тогда оно станет просто обязательным, а не обязательным по условию.

Мой вопрос звучал так: Как можно сделать такое поле обязательным по какому-либо условию
( например, при состоянии "разрешено" требовать обязательность его заполнения)

причем обычное бизнес-правило для обязательности поля
ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
// Правило регулирует свойство REQUIRED поля.
property: BusinessRuleModule.enums.Property.REQUIRED,
conditions...

здесь не срабатывает

Дарья, во вложении прикрепил кейс "как поле Результат сделать обязательным при завершении задачи".
Прошу с ним ознакомиться, Ваш кейс аналогичен.

Александр, как я уже писала, конкретно для этого поля не работает подобное бизнес-правило.
"Solution: {
"Rule1": {
ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
property: BusinessRuleModule.enums.Property.REQUIRED,
conditions: [{
leftExpression: {
type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
attribute: "Status",
attributePath: "IsResolved"
},
comparisonType: this.Terrasoft.ComparisonType.EQUAL,
rightExpression: {
type: BusinessRuleModule.enums.ValueType.CONSTANT,
value: true
}
}]
}
}

}

Любое другое поле из карточки напишу вместо "Solution" - будет работать.
Для поля же "Решение" (Solution) не работает - с ошибкой вылетает.
Возможно дело в том, что само поле на карточке отображается не так, как все остальные поля - а как кусок текста

Попробуйте использовать свойство элемента "isRequired", напрямую добавив его операцией "merge" к элементу

Попробуйте использовать свойство элемента "isRequired", напрямую добавив его операцией "merge" к элементу

Если добавить
{
"operation": "merge",
"name": "Solution",
"values": {
"caption": {
"bindTo": "Resources.Strings.SolutuinCaption"
},
"isRequired": true
}
}
то возле поля появляется красная звездочка, но обязательным оно не становится.
И в любом случае это же необязательность по условию...

поле "Решение" в карточке отображается как структурированный текст.
Может быть в том случае как-то по-другому надо проверять заполненность?

В таком случае, Вы можете переопределить метод Save и провести валидацию в нем, например вот так:
save: function () {
if (this.get("Solution")) {
this.callParent(arguments);
} else {
this.showInformationDialog("Необходимо заполнить поле решение");
}
}

Добрый день, Дарья!

Произвели анализ изменений, которые требуются для решения Вашей задачи.
И получили результат:
HTML - контролл типа RICHTEXT, которым является данное поле «Решение» не поддерживает данную функциональность..

Понятно, спасибо

Добрый день.

У нас возникла такая же задача сделать поле "Решение" обязательным по условию, скажите пожалуйста, стало ли это возможно в версии 7.10.2? Или предусмотрено реализация данной возможности в других релизах?

Татаровская Дарья, вы ссылаетесь на справочное поле (статус) это объект, вам надо получить его GUID и сравнить его. 

Показать все комментарии

Есть проблема:
в карточке есть поле "Состояние", имеет аттрибут обязательного, источник - справочник.
Выставил на него уровень доступа - только чтение. Соответственно поле стало серым, то есть не активным. С созданными ранее карточками проблем нет.
Но есть проблема с вновь создаваемыми карточками: по-умолчанию данные не хотят вставляться, хотя при полном доступе все ок, система требует заполнить обязательное поле и следовательно карточка не сохраняется.

Как решается?

Нравится

11 комментариев

Тут одно или другое, не может быть обязательное поле на чтение. Или уберите ограничение на чтение, или уберите ограничение обязательное.

"Осауленко Александр" написал:Тут одно или другое, не может быть обязательное поле на чтение. Или уберите ограничение на чтение, или уберите ограничение обязательное.

система не умеет автоматически ставить данные в ограниченные поля?
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

Ну если у поля стоит признак только на чтение, то было бы странно, чтобы можно было положить туда значение.

а как тогда решить этот вопрос?
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

Сначала Вам необходимо решить какое из ограничений важнее. Или оба?

оба важны
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

Необходимо отказаться от проверки ограничения чего-то одного на уровне БД. И реализовать это ограничение на уровне приложения.

Нужно разобраться с бизнес-логикой. Объясните зачем Вам понадобилось такое противоречие?
Пользователь, может только заводить документы, но не должен управлять их состояниями?
Тогда нужно оставить доступ на поле на изменение, но пусть пользоватеь видит (доступ на чтение) только то состояние, которое проставляется по-умолчанию (например, "Новый").
Правда для этого нужно будет включить раздачу прав по записям на этот справочник и скриптами раздавать доступ на записи состояния.

Юлия, карточку могут создавать все, только определенная группа не может изменять состояние этой карточки(записи).
Насколько я вижу, в системе при раздаче прав доступа на поле есть только "Полный доступ", "Запрет" и "Чтение", а "Изменения" там нет.

"Старун Юлия" написал:Правда для этого нужно будет включить раздачу прав по записям на этот справочник и скриптами раздавать доступ на записи состояния.

спасибо, передам программисту
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

Полный доступ - это и есть изменение :)
А вот то, что определенная группа не может именно "менять" состояние. Т.е. должны иметь право видеть ВСЕ состояния, но не менять его. При этом иметь возможность записывать начальное состояние.
Мой предыдущий вариант не проходит.
Тут нужно именно скриптами закрыть право изменения поля в карточке группе пользователей.

"Старун Юлия" написал: Я попрошу глянуть пример реализации разработчиков.

спасибо
______________
www.abs.com.kz
Агентство недвижимости АБС Royal Estate

Показать все комментарии