Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Azure Logic Apps (стандартная версия)
Правила управляют бизнес-логикой для работы бизнес-процессов. Чтобы помочь вам создать эти правила для использования с проектом обработчика правил Azure Logic Apps, Microsoft Rules Composer предоставляет визуальное средство для разработки и управления версиями наборов правил и словарей.
В этом руководстве показано, как создать правило с помощью Microsoft Rules Composer.
Предварительные требования
Скачайте и установите Microsoft Rules Composer.
Если у вас есть существующий набор правил, над которым вы хотите работать, вам потребуется XML-файл, содержащий этот набор правил. В противном случае в этом руководстве показано, как создать новый набор правил, который сохраняется в виде XML-файла.
Внимание
Если существующий XML-файл зависит от любых сборок .NET или если сборки, используемые для добавления фактов, имеют другие зависимости, обязательно сохраните все эти файлы в одной папке и локальном каталоге в Microsoft Rules Composer.
Что такое правило?
Правило — это декларативная инструкция, которая включает условие и действия, в которых вычисляется условие. Если результат имеет значение true, обработчик правил выполняет одно или несколько действий. Следующий формат определяет синтаксис правил в обработчике правил Azure Logic Apps:
ЕСЛИ <условие> ТО <действие>
В следующем примере правила определяется, следует ли проводить транзакцию и применять бизнес-логику, сравнивая две денежные значения с данными или фактами, которые используют форму суммы транзакции и скидки:
Если сумма покупки превышает количество, то присвойте клиенту дополнительную скидку
Условие: логическое выражение true-или-false, включающее один или несколько предикатов, применяемых к фактам. Предикат — это предложение, содержащее глагол и указывает что-то о теме. В нашем примере предикат больше, чем применяется к факту объем приобретенного. Это условие всегда вычисляется либо как истина, либо как ложь. Вы можете объединить предикаты с логическими операторами AND, OR и NOT, чтобы сформировать потенциально длинное логическое выражение, но оно всегда оценивается как либо true, либо false.
Действие: действие является функциональным следствием оценки состояния. Если условие правила выполнено, запускается соответствующее действие или действия. В нашем примере присвойте дополнительную скидку — это действие, которое происходит только в том случае, если условие является истинным, то есть если сумма покупки превышает $1000. Действия представлены в обработчике правил Azure Logic Apps путем вызова методов, задания свойств объектов или выполнения операций задания в XML-документах.
Факт: факт является дискретной частью информации о мире, на которой работают правила. В нашем примере количество и количество являются фактами. Факты могут быть получены из многих источников, таких как системы событий, объекты в гибридных приложениях и т. д., и должны быть переведены в обработчик правил в Azure Logic Apps с помощью одного из следующих элементов:
- Объекты .NET, такие как методы, свойства и поля.
- XML-документы, такие как элементы, атрибуты и подразделы документов.
Словарь: дружественное имя для фактов, используемых в условиях и действиях. Дополнительные сведения см. в статье "Создание словарей и управление ими".
На следующей схеме и разделах описывается, как условия, действия и факты соответствуют следующим требованиям:
Microsoft Rules Composer
Вы можете использовать Microsoft Rules Composer для создания, изменения, версии и сохранения правил. Кроме того, эти задачи можно выполнять программным способом. Приложение Rules Composer включает следующие элементы пользовательского интерфейса:
| Окно | Описание |
|---|---|
| Обозреватель RuleSet | Создайте наборы правил, содержащие одно или несколько правил. |
| Редактор условий | Создайте условие для правила. |
| Редактор действий | Действия сборки, которые выполняются, когда условие оценивается как true. |
| Обозреватель фактов | Найдите XML и .NET факты, а затем перетащите эти факты в редактор условий или редактор действий. |
Создание набора правил и управление ими
Набор правил — это набор правил, которые группируются на основе домена, ограниченного контекста или любой бизнес-границы. Для управления наборами правил и правилами в хранилище правил используйте обозреватель RuleSet. Вы можете создавать, изменять, тестировать или удалять наборы правил и их правила.
В microsoft Rules Composer откройте меню "Хранилище правил" и выберите "Загрузить".
Найдите и выберите XML-файл, содержащий хранилище правил, которое нужно открыть.
В окне обозревателя правил откройте контекстное меню "Наборы правил" и выберите "Добавить новый набор правил".
Microsoft Rules Composer создает новый пустой набор правил с номером 1.0 версии набора правил в качестве версии по умолчанию.
Сохраните набор правил. В меню "Хранилище правил" выберите "Сохранить", который создает XML-файл для набора правил.
В следующей таблице описаны другие команды Обозревателя правил, которые можно использовать для работы с наборами правил:
| Задача | Команда |
|---|---|
| Создайте новый набор правил. | Добавление нового набора правил |
| Создайте пустую версию выбранного набора правил. Вы можете скопировать правила из других версий и вставить их в новую версию. | Добавление новой версии |
| Скопируйте выбранную версию набора правил в буфер обмена. | Копировать |
| Вставьте версию набора правил и его содержимое в выбранный набор правил. | Вставить |
| Удалите выбранную версию набора правил. | Удаление |
| Удалите выбранный набор правил и все его версии. | Удаление на уровне родительского набора правил |
| Перезагрузите выбранную версию набора правил и ее правила с возможностью отмены текущих изменений в этой версии и восстановления содержимого из хранилища правил. | Перезаряжать |
| Сохраните все изменения, внесенные в выбранную версию и ее правила. | Сохранить |
| Проверьте выбранную версию набора правил перед использованием в проекте обработчика правил. | Набор правил тестирования |
В следующей таблице описаны свойства набора правил:
| Свойство | Значение |
|---|---|
| Имя | Имя набора правил. Примечание. Это значение можно изменить только путем обновления свойства Name набора правил, а не версии набора правил. |
| Текущая версия | Версия набора правил, выбранного в настоящее время в обозревателе правил. |
| Извлечение фактов | Извлекатель фактов, используемый для предоставления фактов версии набора правил. Microsoft Rules Composer поддерживает возможность создания и использования извлекателя фактов для подачи информации. Дополнительные сведения см. в следующей документации: - Выполнение расширенных задач в наборе правил - Создавайте модули создания и извлечения фактов |
| Максимальная глубина цикла выполнения | Максимальная глубина алгоритма переадресации перед созданием исключения цикла выполнения. Число циклов по умолчанию — 65 536. |
| Длительность перевода | Максимальное время для исполнения правил до возникновения исключения по превышению времени ожидания на перевод. Длительность по умолчанию составляет 60 000 миллисекунда. |
| Переводчик | Переводчик, используемый для перевода правил. Microsoft Rules Composer в настоящее время поддерживает только встроенный переводчик по умолчанию, но также поддерживает расширяемость для добавления дополнительных переводчиков. |
| Описание версии | Описание текущей версии. |
Дополнительные сведения о работе с наборами правил см. в разделе "Выполнение расширенных задач" для наборов правил.
Создание правила и управление ими
В Microsoft Rules Composer в меню "Хранилище правил" выберите "Загрузить".
Найдите и выберите XML-файл, содержащий хранилище правил, над которым вы хотите работать.
В окне обозревателя правил найдите версию набора правил, в которой требуется добавить правило.
Откройте контекстное меню для версии набора правил и нажмите кнопку "Добавить новое правило".
Откроется редактор правил, чтобы можно было добавить условия и действия.
В следующем списке описаны способы изменения правила.
Создайте новую версию набора правил.
Непосредственно измените существующую версию набора правил. Вы можете изменить отдельные правила, добавить новые правила или удалить существующие правила.
В следующей таблице описаны все сочетания клавиш ruleSet Explorer, которые можно использовать для работы с правилами:
| Задача | Команда ярлыка |
|---|---|
| Создайте новое правило в выбранной версии набора правил. | Добавление нового правила |
| Скопируйте выбранное правило в буфер обмена. | Копировать |
| Скопируйте выбранное правило в буфер обмена и удалите правило. | Вырезать |
| Вставьте правило в выбранную версию набора правил. | Вставить |
| Удалите выбранное правило. | Удаление |
В следующей таблице описываются свойства правила:
| Свойство | Значение |
|---|---|
| Имя | Имя правила. |
| Активный | Указывает, включено ли или отключено правило. |
| Приоритет | Приоритет правила в наборе правил. Чем выше индекс, тем выше приоритет правила. Сначала выполняются действия для правила с более высоким приоритетом. Значение по умолчанию равно 0 и представляет средний приоритет. Вы можете сделать значение положительным или отрицательным. Дополнительные сведения см. в разделе "Оптимизация подсистемы правил". |
Отключение или включение правила
Правило можно задать для неактивного действия, чтобы правило не выполнялось при выполнении набора правил или можно повторно активировать правило, которое было деактивировано.
В RuleSet Explorer выберите правило.
В окне "Свойства" задайте для свойства Active одно из следующих значений:
- False: отключено
- True: включено
Установка приоритета правила
Вы можете задать приоритет для правила, чтобы действия выполнялись до или после действий другого правила с другим приоритетом. Приоритеты относительны, поэтому все действия в правиле с определенным приоритетом выполняются в порядке перед действиями в правиле с более низким приоритетом.
В Обозревателе RuleSet выберите правило.
В окне "Свойства" задайте для значения приоритета целочисленное значение, которое требуется.
Создание или изменение условия
Чтобы создать, изменить или просмотреть условие, которое активирует правило, используйте редактор условий, который является частью редактора правил. Чтобы создать условие, можно выполнить следующие задачи:
Добавьте встроенные или пользовательские предикаты, если таковые есть.
Определите аргументы в предикатах путем перетаскивания элементов из окна обозревателя фактов.
Введите значения аргументов на той же строке, выбрав ссылку на аргумент.
Перемещение предикатов и логических операторов в пределах условия.
Примечание.
Порядок, в котором отображаются предикаты и логические операторы, не определяют порядок оценки.
Удалите предикаты и логические операторы из условия.
Добавление предиката в условие
В RuleSet Explorer выберите правило.
В окне IF, которое является редактором условий, откройте контекстное меню "Условия" и выберите один из следующих вариантов:
Выберите логический оператор. В контекстном меню оператора добавьте предикаты или вложенные логические операторы, которые необходимо оценить.
Дополнительные сведения о настройке логических операторов см. в разделе "Добавление арифметических и логических операторов в правила"
В контекстном меню предикатов выберите встроенный предикат или определяемый пользователем предикат, если у вас есть.
В следующих таблицах описываются доступные выражения предиката, которые можно выбрать в контекстном меню предикатов :
Встроенный предикат Описание После Темпоральный предикат, который отвечает на вопрос: "Время1 хронологично после времени 2?" До Темпоральный предикат, который отвечает на вопрос: "Время1 хронологично до времени2?" Между Темпоральный предикат, который отвечает на вопрос: "Является ли время1 хронологически между временем2 и временем3?" Равный Оператор реляционного равенства. Существует Предикат существования, который отвечает на вопрос: "Существует ли указанный XML-элемент или атрибут?" GreaterThan Реляционный больше оператора. GreaterThanEqual Реляционный оператор больше или равен оператору. LessThan Реляционный меньше оператора. LessThanEqual Реляционный оператор меньше или равен оператору. Совпадение Определите, существует ли регулярное выражение в указанной входной строке. NotEqual Оператор реляционного неравенства. Диапазон Определите, существует ли значение в диапазоне.
Укажите аргумент предиката в условии
Выполните следующие действия, которые одинаковы для функции в действии.
Перемещение логического оператора или предиката в условии
В редакторе условий выполните одно из следующих действий:
Перетащите логический оператор или предикат на другой логический оператор или на узел Условий.
Откройте контекстное меню для логического оператора или предиката, а затем выберите "Переместить вверх " или " Вниз", чтобы переместить элемент в одну позицию или уровень соответственно.
Создание или изменение действия
Чтобы создать, изменить или просмотреть действие, которое выполняется при выполнении условия, используйте редактор действий, который является частью редактора правил. Чтобы создать действие, можно выполнить следующие задачи:
- Добавьте встроенные или определяемые пользователем функции, если таковые есть.
- Определите аргументы в функциях путем перетаскивания элементов из окна обозревателя фактов.
- Введите значения аргументов на той же строке, выбрав ссылку на аргумент.
- Перемещение функций в рамках операции.
Добавление функции
В RuleSet Explorer выберите правило.
В окне THEN, который является редактором действий, откройте контекстное меню "Действия" и выберите встроенную функцию, чтобы добавить действие и аргумент.
В следующей таблице описываются доступные функции, которые можно выбрать в контекстном меню "Действия ".
Функция Описание Утверждать Добавьте новый факт в рабочую память экземпляра обработчика правил. Ясный Сброс рабочей памяти и повестки дня экземпляра обработчика правил. Дополнительные сведения о рабочей памяти и повестке дня см. в статье "Оптимизация подсистемы правил". Остановка Прекратить обработку правил. Убрать Удалите факт из рабочей памяти экземпляра обработчика правил. RetractByType Удалите факт с указанным типом из рабочей памяти экземпляра обработчика правил. Обновлять Обновите факт в рабочей памяти экземпляра обработчика правил.
Дополнительные сведения см. в разделе "Оптимизация правил с помощью функций управления".
Задайте аргумент функции в действии
Выполните следующие действия, которые одинаковы для предиката в условии.
Перемещение функции в действии
Действия в правиле выполняются в соответствии с указанным порядком, за исключением функций управления обработчиком правил, которые выполняются после других действий.
- В редакторе действий откройте контекстное меню действия и выберите пункт "Переместить вверх " или "Вниз ", чтобы переместить действие в одну позицию или уровень соответственно.
Укажите аргумент предиката в условии или функции в действии
В редакторе условий или редакторе действий выполните одно из следующих действий:
В предикате или функции выберите аргумент по умолчанию и введите нужное значение или выберите из списка, если это возможно.
В окне обозревателя фактов выберите вкладку с термином, который вы хотите использовать в качестве аргумента, и перетащите этот термин в аргумент в предикате или функции в соответствующем редакторе.
Термин должен иметь тип, который ожидает предикат или функция. В противном случае возникает ошибка.
Чтобы заменить аргумент пустым строковым значением, откройте контекстное меню аргумента и выберите "Задать для пустой строки".
Чтобы заменить аргумент определением константы NULL, откройте контекстное меню аргумента и выберите "Задать значение NULL".
Примечание.
Этот параметр может не отображаться, если тип аргумента не относится к тем, которым можно установить значение NULL.
Чтобы добавить арифметический или логический оператор в аргумент, см. статью "Добавление арифметических и логических операторов в правила".
Найти источник элемента в условии или операции
В соответствии с условиями или редактором действий выполните одно из следующих действий:
Чтобы найти определение словаря в обозревателе фактов, который использовался для создания предиката в условии, функции в действии или аргументе, откройте контекстное меню предиката, функции или аргумента и выберите "Перейти к словарю".
Чтобы найти элемент .NET или ЭЛЕМЕНТ XML в обозревателе фактов, который использовался для создания предиката в условии, функции в действии или аргументе, откройте контекстное меню предиката, функции или аргумента и выберите " Перейти к исходному факту".
Удаление предиката, логического оператора или действия
В редакторе условий выполните одно из следующих действий:
Выберите элемент и нажмите клавишу DELETE.
Выберите элемент, например предикат, логический оператор или действие, и выберите " Удалить <тип> элемента".
Чтобы удалить аргумент, а также все вложенные аргументы и восстановить определение по умолчанию, откройте контекстное меню аргумента и выберите "Сбросить аргумент".
Добавление фактов в правила
Вы можете указать ссылки на источники данных, которые можно сохранить в хранилище правил для последующего использования в качестве фактов в правилах и словарях. Можно указать сборки .NET, которые имеют классы и члены класса или схемы XSD с элементами и атрибутами XML-документа.
Чтобы просмотреть данные, которые вы уже добавили из сборки .NET, схемы XSD или в виде определений словаря, в окне обозревателя фактов выберите вкладку "Словарь ", вкладку "Схемы XML" или вкладку классов .NET в зависимости от того, где существуют нужные данные.
Перетащите данные с соответствующей вкладки в нужное место внутри условия в редакторе условий или внутри действия в редакторе действий.
Добавление сборки .NET в качестве источника данных для фактов .NET
В окне обозревателя фактов выберите вкладку .NET классы.
Откройте контекстное меню узла .NET сборки и выберите Обзор.
Найдите и откройте сборку .NET, которую вы хотите использовать.
В разделе "Сборки .NET" выбранная сборка отображается вместе со своими классами и элементами, например:
Внимание
При обновлении сборки .NET в локальном каталоге microsoft Rules Composer не обновляет сборку .NET автоматически. Инструкции по обновлению ссылок на обновленную сборку см. в статье Об обновлении ссылок на сборки .NET.
Обновление ссылок на сборки .NET
Если вы добавляете новую сборку .NET с другим именем или версией, необходимо обновить набор правил, чтобы ссылаться на новую сборку. Для этой задачи в Microsoft Rules Composer необходимо создать новую версию набора правил и обновить ссылки на новую сборку, включая классы, методы и т. д. Чтобы загрузить обновленную сборку, обязательно перезапустите Microsoft Rules Composer.
Если обновленная сборка .NET использует то же имя, номер версии и т. д., вам нужно только добавить новую сборку в проект функции движка правил Azure Logic Apps.
Удалить сборку .NET как источник данных
В окне обозревателя фактов выберите вкладку .NET классы.
В разделе "Сборки .NET" откройте контекстное меню сборки и нажмите кнопку "Удалить".
Добавление XML-схемы в качестве источника данных для XML-фактов
В окне обозревателя фактов перейдите на вкладку "Схемы XML".
Откройте контекстное меню узла "Схемы " и нажмите кнопку "Обзор".
В поле "Файлы схемы" найдите и выберите XML-файл схемы (XSD) и нажмите кнопку "Открыть".
В разделе "Схемы" схема XML отображается вместе со своими XML-элементами, например:
Привязки для XML-элементов, используемых в аргументах
В фреймворке бизнес-правил класс TypedXmlDocument является библиотекой классов Microsoft .NET, совместимой с платформой, представляющей тип XML-документа и одним из классов, реализующих интерфейс ITypedFact. Эти классы называются типизированными фактами.
При использовании узла из XML-документа в качестве аргумента в правиле создаются два выражения XPath: привязка селектора и привязка поля на основе выбранного узла:
Если узел имеет дочерние узлы, привязка селектора, также называемая привязкой XmlDocument , создается на узле, но привязка поля не создается.
Если узел не имеет дочерних узлов, привязка селектора, также известная как привязка XmlDocument , создается на родительском узле узла. Привязка поля, также называемая привязкой XmlDocumentMember , создается для самого узла. Эта привязка поля относится к привязке селектора.
Перед перетаскиванием XML-узла в аргумент правила можно изменить выражения XPath по умолчанию для XML-узлов, а новые сведения о привязке помещаются в набор правил.
Примечание.
При повторной загрузке схемы в Microsoft Rules Composer необходимо повторно ввести все изменения, внесенные в выражения XPath в microsoft Rules Composer.
Например, предположим, что у вас есть следующая XML-схема:
Если в аргументе используется узел "Доход" , создается только привязка селектора, так как узел имеет дочерние узлы.
В окне "Свойства" свойство XPath Selector узла содержит следующее выражение XPath по умолчанию:
/*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']/*[local-name()='Income' and namespace-uri()='']При использовании узла Name в аргументе создаются привязка селектора и привязка поля.
В окне "Свойства" сведения о привязке узла отображаются следующим образом:
Свойство Значение Поле XPath *[local-name()='Name' and namespace-uri()='']Селектор XPath /*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']