Partilhar via


Criar regras usando o Microsoft Rules Composer (Visualização)

Aplica-se a: Aplicativos Lógicos do Azure (Padrão)

Importante

Esta funcionalidade está em pré-visualização e está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.

As regras regem a lógica de negócios para como os processos de negócios funcionam. Para ajudá-lo a criar essas regras para uso com seu projeto do Mecanismo de Regras de Aplicativos Lógicos do Azure, o Microsoft Rules Composer fornece uma ferramenta visual para criação e controle de versão de conjuntos de regras e vocabulários.

Este guia de instruções fornece uma visão geral de como as regras funcionam e como criar uma regra usando o Microsoft Rules Composer.

Pré-requisitos

  • Transfira e instale o Microsoft Rules Composer.

  • Se você tiver um conjunto de regras existente no qual deseja trabalhar, precisará do arquivo XML que contém esse conjunto de regras. Caso contrário, este guia mostra como criar um novo conjunto de regras, que você salva como um arquivo XML.

    Importante

    Se o arquivo XML existente depender de qualquer assembly .NET ou se os assemblies que você usa para adicionar fatos tiverem outras dependências, certifique-se de manter todos esses arquivos na mesma pasta e em um diretório local para o Microsoft Rules Composer.

O que é uma regra?

Uma regra é uma declaração declarativa que inclui uma condição e ações onde a condição é avaliada. Se o resultado for verdadeiro, o mecanismo de regras executará uma ou mais ações. O formato a seguir define a sintaxe das regras no Mecanismo de Regras de Aplicativos Lógicos do Azure:

SE <condição> então <ação>

A regra de exemplo a seguir determina se uma transação deve ser realizada e aplica a lógica de negócios comparando dois valores monetários com dados ou fatos, que usam a forma de um valor de transação e desconto:

SE o valor comprado for maior que a quantidade ENTÃO dê um desconto adicional ao cliente

  • Condição: Uma expressão booleana verdadeira ou falsa que inclui um ou mais predicados que são aplicados aos fatos. Um predicado é uma oração que contém um verbo e afirma algo sobre o assunto. No nosso exemplo, o predicado é maior do que se aplica ao valor do fato adquirido. Esta condição é sempre avaliada como verdadeiro ou falso. Você pode combinar predicados com os operadores lógicos E, OR e NÃO para formar uma expressão lógica potencialmente longa, mas sempre avalia como verdadeiro ou falso.

  • Ação: Uma ação é uma consequência funcional da avaliação da condição. Se uma condição de regra for atendida, uma ação ou ações correspondentes serão iniciadas. No nosso exemplo, dar um desconto adicional é uma ação que acontece apenas quando a condição é verdadeira, que é SE o valor comprado for maior que $1.000. As ações são representadas no Mecanismo de Regras de Aplicativos Lógicos do Azure chamando métodos, definindo propriedades em objetos ou executando operações definidas em documentos XML.

  • Fato: Um fato é uma informação discreta sobre o mundo em que as regras operam. No nosso exemplo, quantidade e quantidade são factos. Os fatos podem ter origem em muitas fontes, como sistemas de eventos, objetos em aplicativos híbridos e assim por diante, e devem ser alimentados no mecanismo de regras nos Aplicativos Lógicos do Azure usando um dos seguintes elementos:

    • Objetos .NET, como métodos, propriedades e campos.
    • Documentos XML, como elementos, atributos e subseções de documentos.
  • Vocabulário: Um nome amigável para fatos usados em condições e ações. Para obter mais informações, consulte Criar e gerenciar vocabulários.

O diagrama e as seções a seguir descrevem como condições, ações e fatos se encaixam:

O diagrama conceitual mostra o Microsoft Rules Engine.

Compositor de Regras da Microsoft

Você pode usar o Microsoft Rules Composer para criar, modificar, versão e salvar regras. Como alternativa, você pode executar essas tarefas programaticamente. O compositor de regras inclui os seguintes elementos da interface do usuário:

Janela Description
Explorador do Conjunto de Regras Crie conjuntos de regras que contenham uma ou mais regras.
Editor de condições Crie uma condição para uma regra.
Editor de ações Crie ações que são executadas quando a condição é avaliada como true.
Explorador de Factos Procure fatos XML e .NET e arraste esses fatos para o editor de condições ou editor de ações.

O diagrama conceitual mostra o Microsoft Rules Composer.

Criar e gerenciar um conjunto de regras

Um conjunto de regras é um conjunto de regras que você agrupa com base no domínio, contexto delimitado ou qualquer limite comercial. Para gerenciar conjuntos de regras e regras no repositório de regras, use o RuleSet Explorer. Você pode criar, modificar, testar ou excluir conjuntos de regras e suas regras.

  1. No Microsoft Rules Composer, abra o menu Repositório de Regras e selecione Carregar.

  2. Localize e selecione o arquivo XML que contém o repositório de regras que você deseja abrir.

  3. Na janela RuleSet Explorer, abra o menu de atalho RuleSets e selecione Add New RuleSet.

    O Microsoft Rules Composer cria um novo conjunto de regras vazio com uma versão do conjunto de regras numerada 1.0 como a versão padrão.

  4. Salve seu conjunto de regras. No menu Repositório de Regras, selecione Salvar, que cria um arquivo XML para seu conjunto de regras.

A tabela a seguir descreve outros comandos do RuleSet Explorer que você pode usar para trabalhar com conjuntos de regras:

Task Comando
Crie um novo conjunto de regras. Adicionar novo conjunto de regras
Crie uma nova versão vazia do conjunto de regras selecionado. Você pode copiar regras de outras versões e colá-las na nova versão. Adicionar nova versão
Copie a versão selecionada do conjunto de regras para a área de transferência. Copiar
Cole uma versão do conjunto de regras e seu conteúdo em um conjunto de regras selecionado. Paste
Exclua a versão selecionada do conjunto de regras. Eliminar
Exclua o conjunto de regras selecionado e todas as suas versões. Excluir no nível do conjunto de regras pai
Recarregue a versão selecionada do conjunto de regras e suas regras com a opção de descartar quaisquer alterações atuais nessa versão e restaurar o conteúdo do repositório de regras. Recarregar
Salve todas as alterações feitas na versão selecionada e suas regras. Guardar
Teste a versão selecionada do conjunto de regras antes de usá-la com seu projeto de mecanismo de regras. Conjunto de regras de teste

A tabela a seguir descreve as propriedades de uma versão do conjunto de regras:

Property valor
Nome O nome do conjunto de regras.

Nota: Você pode alterar esse valor somente atualizando a propriedade Name do conjunto de regras, não a versão do conjunto de regras.
Versão Atual A versão do conjunto de regras atualmente selecionada no RuleSet Explorer.
Fato Retriever O recuperador de fatos a ser usado para fornecer fatos à versão do conjunto de regras.

O Microsoft Rules Composer suporta a compilação de recursos e usa um recuperador de fatos para fornecer fatos. Para obter mais informações, consulte a seguinte documentação:

- Executar tarefas avançadas em conjuntos de regras
- Crie criadores e recuperadores de fatos
Profundidade máxima do loop de execução A profundidade máxima do algoritmo de encadeamento de encaminhamento antes que uma exceção de loop de execução seja lançada.

A contagem de loops padrão é 65.536.
Duração da tradução A quantidade máxima de tempo para traduzir as regras antes que uma exceção de tempo limite de tradução seja lançada.

A duração padrão é de 60.000 milissegundos.
Translator O tradutor a utilizar para traduzir as regras.

Atualmente, o Microsoft Rules Composer suporta apenas o tradutor interno padrão, mas também oferece suporte à extensibilidade para adicionar mais tradutores.
Descrição da versão A descrição da versão atual.

Para obter mais informações sobre como trabalhar com conjuntos de regras, consulte Executar tarefas avançadas em conjuntos de regras.

Criar e gerenciar uma regra

  1. No Microsoft Rules Composer, no menu Repositório de Regras, selecione Carregar.

  2. Localize e selecione o arquivo XML que contém o repositório de regras no qual você deseja trabalhar.

  3. Na janela RuleSet Explorer, localize a versão do conjunto de regras à qual pretende adicionar uma regra.

  4. Abra o menu de atalho para a versão do conjunto de regras e selecione Adicionar nova regra.

    O editor de regras é aberto para que você possa adicionar suas condições e ações.

A lista a seguir descreve as maneiras de alterar uma regra:

  • Crie uma nova versão do conjunto de regras.

  • Edite diretamente uma versão existente do conjunto de regras. Você pode alterar regras individuais, adicionar novas regras ou excluir regras existentes.

A tabela a seguir descreve todos os comandos de atalho do RuleSet Explorer que você pode usar para trabalhar com regras:

Task Comando de atalho
Crie uma nova regra na versão selecionada do conjunto de regras. Adicionar nova regra
Copie a regra selecionada para a área de transferência. Copiar
Copie a regra selecionada para a área de transferência e exclua a regra. Corte
Cole uma regra na versão selecionada do conjunto de regras. Paste
Exclua a regra selecionada. Eliminar

A tabela a seguir descreve as propriedades de uma regra:

Property valor
Nome O nome da regra.
Activo Indica se a regra está habilitada ou desabilitada.
Prioridade A prioridade para a regra dentro do conjunto de regras. Quanto maior o índice, maior a prioridade da regra. As ações para uma regra de prioridade mais alta são executadas primeiro.

O valor padrão é 0 e representa a prioridade intermediária. Você pode tornar o valor positivo ou negativo. Para obter mais informações, consulte Otimização do mecanismo de regras.

Desativar ou ativar uma regra

Você pode definir uma regra como inativa para que a regra não seja executada quando o conjunto de regras for executado ou pode reativar uma regra que foi desativada.

  1. No RuleSet Explorer, selecione a regra.

  2. Na janela Propriedades, defina a propriedade Ative como um dos seguintes valores:

    • False: Desativado
    • True: Ativado

Definir prioridade da regra

Você pode definir a prioridade de uma regra para que as ações sejam executadas antes ou depois das ações de outra regra com uma prioridade diferente. As prioridades são relativas, portanto, todas as ações em uma regra com uma prioridade específica são executadas em ordem antes de qualquer ação em uma regra com um valor de prioridade menor.

  1. No RuleSet Explorer, selecione a regra.

  2. Na janela Propriedades, defina Prioridade como o valor inteiro desejado.

Criar ou editar uma condição

Para criar, editar ou exibir uma condição que aciona uma regra, use o editor de condições, que faz parte do editor de regras. Para criar uma condição, você pode executar as seguintes tarefas:

  • Adicione predicados internos ou definidos pelo usuário, se houver.

  • Defina argumentos em predicados arrastando itens da janela do Facts Explorer.

  • Insira valores de argumento embutidos selecionando um link de argumento.

  • Mover predicados e operadores lógicos dentro de uma condição.

    Nota

    A ordem em que os predicados e operadores lógicos aparecem não determina sua ordem de avaliação.

  • Exclua predicados e operadores lógicos de uma condição.

Adicionar um predicado a uma condição

  1. No RuleSet Explorer, selecione a regra.

  2. Na janela SE, que é o editor de condições, abra o menu de atalho Condições e escolha uma das seguintes opções:

    • Selecione um operador lógico. No menu de atalho do operador, adicione os predicados ou operadores lógicos aninhados que você deseja avaliar.

      Para obter mais informações sobre como configurar operadores lógicos, consulte Adicionar operadores aritméticos e lógicos a regras

    • No menu de atalho Predicados, selecione um predicado interno ou um predicado definido pelo usuário, se tiver algum.

    As tabelas a seguir descrevem as expressões de predicados disponíveis para você selecionar nos menus de atalho Predicados:

    Predicado incorporado Description
    Após O predicado temporal que responde à pergunta: "O tempo1 é cronologicamente depois do tempo2?"
    Antes O predicado temporal que responde à pergunta: "O tempo1 é cronologicamente antes do tempo2?"
    Entre O predicado temporal que responde à pergunta: "O tempo1 é cronologicamente entre o tempo2 e o tempo3?"
    Igual a O operador de igualdade relacional.
    Existe O predicado de existência que responde à pergunta: "O elemento ou atributo XML especificado existe?"
    MaiorQue O relacional maior que operador.
    MaiorQueIgual O relacional maior ou igual ao operador.
    MenosQue O relacional menos que operador.
    MenosQueIgual O relacional menor ou igual ao operador.
    Correspondência Determine se uma expressão regular existe em uma cadeia de caracteres de entrada especificada.
    NotEqual O operador da desigualdade relacional.
    Intervalo Determine se um valor existe dentro de um intervalo.

Especificar um argumento para um predicado em uma condição

Siga estas etapas, que são as mesmas para uma função em uma ação.

Mover um operador lógico ou predicado em uma condição

No editor de condições, execute uma das seguintes etapas:

  • Arraste o operador lógico ou predicado para outro operador lógico ou para o nó Condições .

  • Abra o menu de atalho para o operador lógico ou predicado e selecione Mover para cima ou Mover para baixo para mover o item uma posição ou nível, respectivamente.

Criar ou editar uma ação

Para criar, editar ou exibir uma ação que é executada quando uma condição é atendida, use o editor de ações, que faz parte do editor de regras. Para criar uma ação, você pode executar as seguintes tarefas:

  • Adicione funções internas ou definidas pelo usuário, se houver.
  • Defina argumentos em funções arrastando itens da janela do Facts Explorer.
  • Insira valores de argumento embutidos selecionando um link de argumento.
  • Mover funções dentro de uma ação.

Adicionar uma função

  1. No RuleSet Explorer, selecione a regra.

  2. Na janela THEN, que é o editor de ações, abra o menu de atalho Actions e selecione uma função interna para adicionar uma ação e um argumento.

    A tabela a seguir descreve as funções disponíveis para você selecionar no menu de atalho Ações :

    Function Description
    Asserção Adicione um novo fato à memória de trabalho da instância do mecanismo de regras.
    Limpar Redefina a memória de trabalho e a agenda da instância do mecanismo de regras. Para obter mais informações sobre memória de trabalho e agenda, consulte Otimização do mecanismo de regras.
    Parar Encerrar o processamento de regras.
    Retrair Remova um fato da memória de trabalho da instância do mecanismo de regras.
    RetractByType Remova um fato com o tipo especificado da memória de trabalho da instância do mecanismo de regras.
    Atualização Atualize um fato na memória de trabalho da instância do mecanismo de regras.

Para obter mais informações, consulte Otimizar regras com funções de controle.

Especificar um argumento para uma função em uma ação

Siga estas etapas, que são as mesmas para um predicado em uma condição.

Mover uma função numa ação

As ações em uma regra são executadas com base na ordem especificada, exceto para as funções de controle do mecanismo de regras, que são executadas após outras ações.

  • No editor de ações, abra o menu de atalho da ação e selecione Mover para cima ou Mover para baixo para mover a ação uma posição ou nível, respectivamente.

Especificar um argumento para um predicado em uma condição ou uma função em uma ação

No editor de condições ou no editor de ações de acordo, execute uma das seguintes etapas:

  • No predicado ou função, selecione o argumento padrão e insira o valor desejado ou selecione em uma lista, se disponível, quando apropriado.

  • Na janela Facts Explorer, selecione a guia que tem o termo que você deseja usar como argumento e arraste esse termo para o argumento no predicado ou função no respetivo editor.

    O termo deve ter um tipo que o predicado ou função espera. Caso contrário, recebe um erro.

  • Para substituir um argumento por um valor de cadeia de caracteres vazia, abra o menu de atalho do argumento e selecione Definir como cadeia de caracteres vazia.

  • Para substituir um argumento por uma definição de constante nula, abra o menu de atalho do argumento e selecione Definir como nulo.

    Nota

    Essa opção pode não aparecer se o tipo de argumento não for um tipo que você possa definir como nulo.

  • Para adicionar um operador aritmético ou lógico a um argumento, consulte Adicionar operadores aritméticos e lógicos a regras.

Localizar a origem do item em uma condição ou ação

No editor de condições ou ações de acordo, execute uma das seguintes etapas:

  • Para localizar a definição de vocabulário no Explorador de Fatos que você usou para criar um predicado em uma condição, uma função em uma ação ou um argumento em qualquer uma delas, abra o menu de atalho para o predicado, função ou argumento e selecione Ir para vocabulário.

  • Para localizar um membro do .NET ou elemento XML no Facts Explorer que você usou para criar um predicado em uma condição, uma função em uma ação ou argumento em qualquer uma delas, abra o menu de atalho para o predicado, função ou argumento e selecione Ir para o fato de origem.

Excluir um predicado, operador lógico ou ação

No editor de condições, execute uma das seguintes etapas:

  • Selecione o item e pressione a tecla Delete.

  • Selecione o item, como um predicado, operador lógico ou ação, e selecione Excluir <tipo> de item.

  • Para excluir um argumento mais quaisquer argumentos aninhados e restaurar a definição padrão, abra o menu de atalho do argumento e selecione Redefinir argumento.

Adicione factos às suas regras

Você pode especificar referências de fonte de dados que podem ser salvas em seu repositório de regras para uso subsequente como fatos em suas regras e vocabulários. Você pode especificar assemblies .NET que tenham classes e membros de classe ou esquemas XSD que tenham elementos e atributos de documento XML.

  1. Para procurar dados que você já adicionou de um assembly .NET, esquema XSD ou como definições de vocabulário, na janela Facts Explorer, selecione a guia Vocabulários, a guia Esquemas XML ou a guia Classes .NET, com base em onde os dados desejados existem.

  2. Arraste os dados da guia correspondente para onde você deseja dentro de uma condição no editor de condições ou dentro de uma ação no editor de ações.

Adicionar um assembly .NET como fonte de dados para fatos do .NET

  1. Na janela Facts Explorer, selecione a guia .NET Classes.

  2. Abra o menu de atalho para o nó Assemblies .NET e selecione Procurar.

  3. Localize e abra o assembly .NET que você deseja usar.

    Em Assemblies .NET, o assembly selecionado aparece junto com suas classes e membros, por exemplo:

    A captura de tela mostra o Microsoft Rules Composer com o Facts Explorer, classes e membros da classe.

Importante

Se você atualizar o assembly .NET no diretório local, o Microsoft Rules Composer não atualizará automaticamente o assembly .NET. Para obter as etapas para atualizar referências a um assembly atualizado, consulte Atualizar referências de assembly .NET.

Atualizar referências de assembly .NET

  • Se você adicionar um novo assembly .NET, com um nome ou versão diferente, deverá atualizar seu conjunto de regras para fazer referência ao novo assembly. Para essa tarefa, no Microsoft Rules Composer, você deve criar uma nova versão do conjunto de regras e atualizar as referências ao novo assembly, incluindo as classes, métodos e assim por diante. Para carregar o assembly atualizado, certifique-se de reiniciar o Microsoft Rules Composer.

  • Se o assembly .NET atualizado usar o mesmo nome, número de versão e assim por diante, você só precisará adicionar o novo assembly ao seu projeto de função do Mecanismo de Regras de Aplicativos Lógicos do Azure.

Remover um assembly .NET como fonte de dados

  1. Na janela Facts Explorer, selecione a guia .NET Classes.

  2. Em Assemblies .NET, abra o menu de atalho do assembly e selecione Remover.

Adicionar um esquema XML como fonte de dados para fatos XML

  1. Na janela Facts Explorer, selecione a guia Esquemas XML.

  2. Abra o menu de atalho para o nó Esquemas e selecione Procurar.

  3. Na caixa Arquivos de esquema, localize e selecione o arquivo de esquema XML (.xsd) e selecione Abrir.

    Em Esquemas, o esquema XML aparece junto com seus elementos XML, por exemplo:

    A captura de tela mostra os elementos Microsoft Rules Composer, Facts Explorer e XML.

Ligações para elementos XML usados em argumentos

No Business Rules Framework, a classe TypedXmlDocument é um Microsoft . NET que representa o tipo de documento XML e é uma das classes que implementa a interface ITypedFact . Essas classes são conhecidas como fatos datilografados.

Quando você usa um nó de um documento XML como um argumento em uma regra, duas expressões XPath são criadas: uma associação de seletor e uma associação de campo, com base no nó que você escolhe usar:

  • Se o nó tiver nós filho, uma associação de seletor, também conhecida como associação XmlDocument , será criada para o nó, mas nenhuma associação de campo será criada.

  • Se o nó não tiver nós filho, uma associação de seletor, também conhecida como associação XmlDocument , será criada para o nó pai do nó. Uma associação de campo, também conhecida como uma associação XmlDocumentMember , é criada para o próprio nó. Esta ligação de campo é relativa à ligação do seletor.

Antes de arrastar um nó XML para um argumento de regra, você pode alterar as expressões XPath padrão para os nós XML e as novas informações de associação são colocadas no conjunto de regras.

Nota

Quando o esquema é recarregado no Microsoft Rules Composer, você deve reinserir todas as edições que você fez para as expressões XPath no Microsoft Rules Composer.

Por exemplo, suponha que você tenha o seguinte esquema XML:

A captura de tela mostra o Microsoft Rules Composer, o Facts Explorer, os elementos XML e seus atributos.

  • Se você usar o nó Renda em um argumento, somente uma associação seletora será criada porque o nó tem nós filho.

    Na janela Propriedades, a propriedade XPath Seletor do nó contém a seguinte expressão XPath padrão:

    /*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']/*[local-name()='Income' and namespace-uri()='']
    
  • Se você usar o nó Nome em um argumento, uma associação de seletor e uma associação de campo serão criadas.

    Na janela Propriedades, as informações de vinculação do nó aparecem da seguinte forma:

    Property valor
    Campo XPath *[local-name()='Name' and namespace-uri()='']
    Seletor XPath /*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']