Поделиться через


Ограничение области правил для полей по состоянию, переходу или причине

Обновлен: Ноябрь 2007

Как описано в разделе Определение рабочего процесса рабочего элемента, правила для полей можно использовать, чтобы определить поведение типа рабочего элемента независимо от состояния рабочего элемента. Например, поле, которое является обязательным для новой и активной ошибки, остается обязательным до ее закрытия.

В качестве области правил для полей также может выступать определенное состояние, переход и даже причина. Полный набор правил, которые применяются к какому-то определенному полю, является совокупностью четырех подмножеств:

  • правила для типа рабочего элемента;

  • правила для состояния;

  • правила для перехода;

  • правила для причины.

Правила для типа рабочего элемента

Правила для типа рабочего элемента применяются независимо от расположения рабочего элемента в модели состояний. Например, правило <REQUIRED/> выполняет следующую проверку:

"MyField Value" != NULL

Правила для состояния

Правила для состояния распространяются на экземпляр рабочего элемента в определенном состоянии. Проверка правила для состояния следующая.

State field value == "MyState" && "MyField Value" != NULL

Правила для перехода

Правила для перехода распространяются на рабочий элемент, который выполняет определенный переход. Проверка правила для перехода следующая.

State field value == "ToState"  &&

"Previous State Before Edit/New" == "FromState"

&& "MyField Value" != NULL

Правила для причины

Правила для причины распространяются на конкретную причину определенного перехода. Проверка правил для причины следующая.

Reason field == "MyReason" &&

State field value == "ToState"  &&

"Previous State Before Edit/New" == "FromState" && "MyField Value" != NULL

Ограничение области правил для полей

Правилам для полей можно задать область, используя элементы <FIELDS> и <FIELD> внутри элементов <STATE>, <TRANSITION> и <REASON>.

ms194951.alert_note(ru-ru,VS.90).gifПримечание.

При перечислении полей в бизнес-правиле, следует указать только ссылочное имя поля.

Пример

В приведенном ниже примере определяется следующее правило: «Когда ошибка находится в активном состоянии, запретить изменение поля важности клиента».

<STATE name="Active">
<FIELDS>
<FIELD refname="MyCorp.Severity" />
<READONLY />
</FIELD>
</FIELDS>
</STATE>

См. также

Другие ресурсы

Определение рабочего процесса рабочего элемента