Создание и изменение бизнес-правил

 

Опубликовано: Ноябрь 2016

Применимо к: Dynamics CRM 2015

В Microsoft Dynamics 365 можно применять логику формы без создания кода JavaScript или разработки подключаемых модулей. Бизнес-правила предоставляют простой декларативный интерфейс для реализации и поддержки быстро меняющихся, широко используемых бизнес-правил, которые будут применяться к основным формам, экспресс-формам и сущности в веб-приложении и Microsoft Dynamics CRM для планшетов. Он применяется к основным формам и экспресс-формам в клиенте Outlook в интерактивном и автономной режимах.

Содержание

Зачем нужны бизнес-правила?

Что могут сделать бизнес-правила?

Как настраивать правила?

Бизнес-правила на стороне сервера и поддержка логики "если, то, иначе" и И/ИЛИ

Ограничения бизнес-правил

Локализация сообщений об ошибках, используемых в бизнес-правилах

Зачем нужны бизнес-правила?

Бизнес-правила предоставляют простой декларативный способ последовательной оценки бизнес-логики в клиенте и на сервере без написания кода. Оценка логики на стороне клиента более непосредственна, поскольку она может быть выполнена при открытии и обновлении формы записи, в то время как оценка логики на стороне сервера обеспечивает последовательную оценку логики на сервере.

  • Бизнес-правило выполняется только в клиенте, если область правила задана на уровне формы (всех форм или определенной формы). Правила выполняются при загрузке и обновлении формы записи.

  • Бизнес-правило выполняется на сервере и в клиенте, если область правила задана на уровне сущности. Правила на стороне сервера выполняются при создании или сохранении записи.

Что могут сделать бизнес-правила?

Бизнес-правила позволяют реализовывать подмножество возможностей, предоставляемых скриптами форм. Можно определить условия и применить следующие действия:

  • Задание значений полей

  • Очистка значений поля

  • Задание уровней требований полей

  • Отображение или скрытие полей

  • Включение или отключение полей

  • Проверка данных и отображение сообщений об ошибке

Бизнес-правила можно настроить для применения к основным или экспресс-формам сущностей быстрого создания, либо к конкретным основным формам, которые выбирает пользователь. Также можно задать правило для применения к сущности.

Можно перенести бизнес-процессы из одной организации в другую, включив их в решение и установив решения, содержащие эти бизнес-правила.

Примеры установки или очистки значений полей

Рассмотрим несколько примеров. Согласно первому правилу при любой немедленной покупке применяется скидка 5%. Согласно второму правилу все скидки отменяются, если интервал времени покупки неизвестен.

Следующее определение правила показывает, как установить значение поля на скидку 5% для немедленных покупок.

Настройка поля в разделе "Возможная сделка" в Dynamics CRM

Следующее определение правила показывает, как очистить значение поля (удалить все скидки) при покупках с неизвестным интервалом времени.

Действие для очистки поля в Dynamics CRM

Очистка поля в Dynamics CRM

Как настраивать правила?

Сначала нужно иметь привилегии, необходимые для открытия раздела Параметры > Настройка. Сюда, как правило, относится роль безопасности Системный администратор или Системный настройщик. Чтобы активировать бизнес-правило, необходимо иметь привилегию Активировать бизнес-правила.

Примечание

Бизнес-правила будут работать только для Обновленные сущности или настраиваемых сущностей.

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

  • Решение > Сущность
    Из решения, например из решения по умолчанию, откроется узел Бизнес-правила для всех сущностей.

    Бизнес-правила в сущности организации в CRM

  • Решение > Сущность > Поле
    При просмотрите поле сущности можно заметить узел Бизнес-правила, который будет отображать только бизнес-правила, включающие этот атрибут.

    Бизнес-правила в поле в Dynamics CRM

  • Редактор форм
    Из редактора форм можно использовать кнопку Бизнес-правила на ленте Обозреватель бизнес-правил в правой части. Это позволит отобразить все бизнес-правила, которые будут применяться исключительно к этой форме.

    При создании правила из редактора форм область по умолчанию предназначена для этой формы.Дополнительные сведения:Настройка области

    Бизнес-правила формы в Dynamics CRM

  • Редактор форм > Поле
    При просмотре свойства для поля, которое используется в форме, отображается вкладка Бизнес-правила, на которой отображаются бизнес-правила с этим атрибутом.

    Бизнес-правила в поле "Форма" Dynamics CRM

Если существующее правило аналогично правилу, которое необходимо создать, можно открыть такое правило и использовать кнопку Сохранить как, чтобы копировать существующее правило в качестве отправной точки для нового правила.

Настройка области

В правом верхнем углу формы в поле Область укажите область для правила.

Область

Место выполнения

Сущность

Все формы и сервер

Все формы

Все формы

Определенная форма

Только данная форма

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

Бизнес-правила на стороне сервера и поддержка логики "если, то, иначе" и И/ИЛИ

Ранее бизнес-правила можно было оценить в отдельном клиенте. Для оценки логики бизнес-правил на сервере и ее применения ко всем клиентам было необходимо предоставить подключаемые модули, разработка и поддержка которых стоят дорого. Настройка области бизнес-правила на уровне сущности предоставляет возможность оценить бизнес-правило один раз на сервере и применить его ко всем клиентам без написания кода. Можно переместить логику для распространенных сценариев из подключаемых модулей в бизнес-правила на уровне сущности. Кроме того, добавлена поддержка значений по умолчанию в бизнес-правиле. Например, если компания Contoso работает только в США, можно реализовать простое бизнес-правило, чтобы при создании входящего интереса стране/региону автоматически присваивалось значение "США".

Примечание

Если для области задано значение "Сущность" и запись создается или изменяется с помощью формы, правило выполняется на стороне клиента, но позднее оно выполняется еще раз на сервере. Это позволяет избежать создания циклической ссылки на поле, если для области задано значение "Сущность". Например, невозможно установить кредитный лимит = кредитный лимит + 1000, так как это приведет к увеличению значения один раз на стороне клиента и повторной попытке выполнения на стороне сервера.

В более сложных бизнес-сценариях было необходимо использовать несколько бизнес-правил, которые оценивались с помощью логического оператора AND. Все условия должны были быть выполнены (иметь значение true), чтобы действия были применены. Логика If-Else или AND/OR не поддерживалась. Теперь эта возможность добавлена, и можно создавать более сложные бизнес-правила с меньшими усилиями. В следующем примере бизнес-правила используется логика If-Else:

Бизнес-правило с логикой If-Else в Dynamics CRM

Существует несколько ограничений, о которых следует помнить:

  • Вложенные операторы If-Else не поддерживаются.

  • Группа выражений в условии не поддерживается.

  • Выражения можно объединить с помощью AND, с помощью OR или с помощью обоих операторов.

Настройка условий

Если требуется изменить активированное бизнес-правило, необходимо деактивировать его и внести нужные изменения.

Для добавления условия щелкните значок +, и отобразится новая строка условий с заданными значениями по умолчанию. Введите имя поля, чтобы задать значение Поле, и выберите соответствующий Оператор. Параметры оператора будут меняться в зависимости от типа данных в поле.

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

Можно выбрать три разных типа условий.

  • Поле
    Используйте этот тип для сравнения значения в одном поле формы со значением в другом.

  • Значение
    Используйте этот тип для сравнения значения в одном поле формы с вводимым значением.

  • Формула
    Этот вариант отображается только для числовых типов данных и дат. Он не отображается для полей, содержащих текст. Используйте этот тип для сравнения результатов простого вычисления, в котором может использоваться либо значение из другого поля формы, либо вводимое значение.

Завершив ввод или редактирование правила, щелкните значок флажка, чтобы сохранить его, либо значок (X), чтобы отменить изменения. Чтобы удалить ранее сохраненное условие, наведите указатель мыши на условием и нажмите кнопку УдалитьКнопка «Удалить».

Настройка действий

Чтобы добавить действие, нажмите кнопку Добавить+. Вам доступны следующие варианты:

  • Показать сообщение об ошибке
    Используйте это действие, чтобы настроить сообщение об ошибке в поле, если данные в них не являются допустимыми. Указываемый для сообщения текст будет отображаться со значком ошибки рядом с полем.

    Сообщение об ошибке в поле формы в Dynamics CRM

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

  • Задать значение поля
    Выберите Поле и щелкните Тип. Существует три типа.

    • Поле
      Используйте этот тип для задания значения в одном из полей формы со значением в другой форме.

    • Значение
      Используйте этот тип для задания значения в одном поле формы с вводимым значением.

    • Формула
      Этот вариант отображается только для числовых типов данных и дат. Он не отображается для полей, содержащих текст. Используйте этот тип для задания значения результатов простого вычисления, в котором может использоваться либо значение из другого поля формы, либо вводимое значение.

  • Задать бизнес-требование
    Используйте этот тип, чтобы изменить уровень требований для поля. Доступны параметры Не обязательно и Обязательно. Невозможно задать здесь значение "рекомендовано бизнесом".

  • Задать видимость
    Используйте этот тип, чтобы изменить отображение поля в форме. Параметры: Отобразить поле и Скрыть поле.

  • Заблокировать или разблокировать поле
    Используйте этот тип, чтобы изменить включение поля в форме. Параметры: Заблокировать и Разблокировать. Если поле заблокировано, пользователи не смогут редактировать значение в поле.

Определившись с действием, можно изменить последовательность или удалить ее, воспользовавшись параметрами, доступными при размещении курсора над действием.

Задание описания

Это не является обязательным. Оно не отображается нигде, кроме редактора бизнес-правил. Имеет смысл включить описание предполагаемых функций правила и причину добавления.

Тестирование и активация бизнес-правил

Прежде чем кто-либо сможет использовать созданные вами бизнес-правила, необходимо активировать их. Перед активацией их необходимо протестировать. Можно протестировать бизнес-правила с помощью кнопки Просмотр в редакторе форм.

Ограничения бизнес-правил

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

Ниже приводится ряд ограничений использования бизнес-правил:

  • Бизнес-правила выполнятся только при загрузке форм и изменении значений поля. Они не выполняются при сохранении записи, если область правила не установлена на уровне сущности.

  • Бизнес-правила работают только с полями. Если необходимо взаимодействие с другими видимыми элементами, например вкладками или разделами, необходимо использовать скрипты форм в пределах формы.

  • При задании значения поля с использованием бизнес-правила обработчики событий OnChange для этого поля выполняться не будут. Это призвано сократить вероятность возникновения циклической ссылки, которая может привести к бесконечному циклу.

  • Если бизнес-правило ссылается на поле, отсутствующее в форме, правило просто не будет выполнено. Сообщение об ошибке возникать не будет.

  • Поля целых чисел, использующие форматы для часового пояса, продолжительности или языка, не отобразятся в редакторе правил для условий и действий, поэтому их невозможно использовать с бизнес-правилами.

  • Невозможно добавить более десяти условий if-else в бизнес-правило.

  • В Microsoft Dynamics CRM для планшетов определение бизнес-правил загружается и кэшируется при открытии CRM для планшетов. Изменения к бизнес-правилам не применяются, до тех пор пока не закрыта и повторно не открыта CRM для планшетов.

  • При указании значения поля поиска текст значения основного поля, заданный в форме, всегда будет совпадать с текстом, Отображаемым в определении поля. Если текст, представляющий основное значение поля записи, которая задается в области поиска, меняется, значение, заданное правилом, продолжает использовать часть текста основного значения поля, определенную правилом. Чтобы исправить это, обновите определение правила, чтобы оно использовало текущее основное значение поля имени.

    Полезно понимать, что значение, заданное для поиска, имеет три части.

    • Name: текст основного значения поля, который отображается в форме.

    • Id: уникальный идентификатор записи. Это сохраняемые данные. Они не видны в форме.

    • LogicalName: имя сущности, например contact, account или opportunity.

    Правило будет задавать все три части этого значения. Значение Id для конкретной записи никогда не меняется, однако может измениться значение Name.

    Например, если определить правило для настройки поиска контакту с Полное имя равным "Старое имя", этот текст будет представлять собой Name, отображаемый в области поиска, если он задан бизнес-правилом (даже если кто-то впоследствии изменит Полное имя контакта на "Новое имя"). Значение поиска Id будет задано правильно и представлять собой ожидаемую запись, однако Name (не сохраняется) будет отражать значение определения правила, а не текущее значение Полное имя записи, на которую она ссылается.

Удаление действий из правил

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

Если Предпочтительный способ связи равен Телефон,
задайте Рабочий телефон в качестве значения Обязательное.

Это сработает всякий раз, когда для поля Предпочтительный способ связи будет установлено значение Телефон. Но если поле Предпочтительный способ связи впоследствии меняется на что-то еще, поле Телефон останется Обязательное. Для очистки этого действия необходимо включить отдельное правило для применения следующей логики.

Если Предпочтительный способ связи не равен Телефон,
задайте Рабочий телефон в качестве значения Не обязательное.

Действие Показать сообщение об ошибке отличается, поскольку автоматически оценивает любые условия, используемые для задания сообщения об ошибке и удаления, если условия более не выполняются.

Локализация сообщений об ошибках, используемых в бизнес-правилах

При наличии нескольких языков, предоставляемых для организации, потребуется локализовать настроенные сообщения об ошибке. Всякий раз при настройке сообщения система создает метку. При экспорте переводов в организации можно добавить локализованные версии сообщения, а затем импортировать эти метки обратно в Microsoft Dynamics 365, чтобы пользователи, работающие с языками отличными от базового, могли просматривать переведенные сообщения.

См. также

Видео: Новые возможности настройки Microsoft Dynamics CRM — бизнес-правила
Создание и изменение процессов
Создание и разработка форм
Создание и изменение представлений
SDK: Создание или изменение порядка запуска бизнес-правил

© Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены. Авторские права