Compartilhar via


Criar regras usando o Microsoft Rules Composer (Versão prévia)

Aplica-se a: Aplicativos Lógicos do Azure (Standard)

Importante

Esse recurso está em versão prévia e está sujeito aos Termos de uso suplementares para versões prévias do Microsoft Azure.

As regras governam a lógica de negócios para o funcionamento dos processos de negócios. Para ajudar você 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

  • Baixe 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 mostrará como criar um conjunto de regras, que será salvo como um arquivo XML.

    Importante

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

O que é uma regra?

Uma regra é uma instrução declarativa que inclui uma condição e ações em que 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:

IF <condição> THEN <ação>

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

Se o valor comprado for maior que a quantidade THEN 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 cláusula que contém um verbo e afirma algo sobre o assunto. Em nosso exemplo, o predicado é maior que se aplica ao fato valor comprado. Essa condição sempre é avaliada como verdadeiro ou falso. Você pode combinar predicados com os operadores lógicos AND, OR e NOT para formar uma expressão lógica potencialmente longa, mas que sempre é avaliada como verdadeira ou falsa.

  • 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. Em nosso exemplo, conceder um desconto adicional é uma ação que ocorre somente quando a condição é verdadeira, ou seja, se o valor comprado for maior que USD 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 definir em documentos XML.

  • Fato: Um fato é uma informação discreta sobre o mundo no qual as regras operam. No nosso exemplo, valor e quantidade são fatos. Os fatos podem se originar de 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.

Microsoft Rules Composer

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

Janela Descrição
Explorador do Conjunto de Regras Crie conjuntos de regras que contenham uma ou mais regras.
Editor de condições Criar uma condição para uma regra.
Editor de ações Crie ações que sejam executadas quando a condição for avaliada como verdadeira.
Gerenciador de Fatos Procure fatos XML e .NET e arraste-os para o editor de condições ou para o 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, no contexto delimitado ou em qualquer limite de negócios. Para gerenciar conjuntos de regras e regras no repositório de regras, use o Explorador do Conjunto de Regras. 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 deseja abrir.

  3. Na janela Explorador do Conjunto de Regras, abra o menu de atalho Conjuntos de Regras e selecione Adicionar Novo Conjunto de Regras.

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

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

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

Tarefa Comando
Criar um conjunto de regras. Adicionar Novo Conjunto de Regras
Cria uma versão vazia do conjunto de regras selecionado. É possível copiar regras de outras versões e colá-las na nova versão. Adicionar Nova Versão
Copiar a versão do conjunto de regras selecionado para a área de transferência. Copy
Colar uma versão do conjunto de regras e seu conteúdo em um conjunto de regras selecionado. Colar
Excluir a versão do conjunto de regras selecionado. Delete (excluir)
Excluir o conjunto de regras selecionado e todas as suas versões. Excluir no nível do conjunto de regras pai
Recarregar a versão do conjunto de regras selecionada 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
Salvar as alterações feitas na versão selecionada e em suas regras. Salvar
Teste a versão do conjunto de regras selecionada antes de usá-la em seu projeto de mecanismo de regras. Testar Conjunto de Regras

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

Propriedade Valor
Nome O nome do conjunto de regras.

Observação: Você só pode alterar esse valor atualizando a propriedade Nome do conjunto de regras e não a versão do conjunto de regras.
Versão atual A versão do conjunto de regras atualmente selecionada no Explorador do Conjunto de Regras.
Recuperador de Fatos O recuperador de fatos a ser usado para fornecer fatos à versão do conjunto de regras.

O Microsoft Rules Composer dá suporte a capacidade de criar e usar um recuperador de fatos para fornecer fatos. Para saber mais, confira a seguinte documentação:

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

A contagem padrão do loop é 65.536.
Duração da Tradução O tempo máximo para traduzir as regras antes que uma exceção de tempo limite de tradução seja gerada.

A duração padrão é de 60.000 milissegundos.
Tradutor O tradutor a ser usado para traduzir as regras.

No momento, o Microsoft Rules Composer dá suporte apenas para o tradutor interno padrão, mas também dá 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 Realizar 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 com o qual você deseja trabalhar.

  3. Na janela Explorador do Conjunto de Regras, localize a versão do conjunto de regras em que você deseja adicionar uma regra.

  4. Abra o menu de atalho da versão do conjunto de regras e selecione Adicionar Nova Regra.

    O editor de regras se abre para que você possa adicionar as condições e ações.

A lista a seguir descreve as maneiras pelas quais você pode alterar uma regra:

  • Criar uma versão do conjunto de regras.

  • Editar 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 Explorador do Conjunto de Regras que você pode usar para trabalhar com regras:

Tarefa Comando de atalho
Criar uma regra na versão do conjunto de regras selecionada. Adicionar Nova Regra
Copiar a regra selecionada para a área de transferência. Copy
Copie a regra selecionada para a área de transferência e exclua a regra. Recortar
Colar uma regra na versão do conjunto de regras selecionada. Colar
Excluir a regra selecionada. Delete (excluir)

A tabela a seguir descreve as propriedades de uma regra:

Propriedade Valor
Nome O nome da regra.
Com atividade Indica se a regra está habilitada ou desabilitada.
Prioridade A prioridade da regra no conjunto de regras. Quanto maior o índice, maior a prioridade da regra. As ações de uma regra de prioridade mais alta são executadas primeiro.

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

Desabilitar ou habilitar uma regra

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

  1. No Explorador do Conjunto de Regras, selecione a regra.

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

    • Falso: Desabilitado
    • Verdadeiro: Habilitado

Definir a 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 prioridade diferente. As prioridades são relativas, de modo que todas as ações de uma regra com uma prioridade específica são executadas em ordem antes de quaisquer ações de uma regra com um valor de prioridade mais baixo.

  1. No Explorador do Conjunto de Regras, 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:

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

  • Definir argumentos em predicados arrastando itens da janela do Gerenciador de Fatos.

  • Inserir valores de argumentos em linha, selecionando um link de argumento.

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

    Observação

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

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

Adicionar um predicado a uma condição

  1. No Explorador do Conjunto de Regras, selecione a regra.

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

    • Selecionar 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 a configuração de operadores lógicos, consulte Adicionar operadores aritméticos e lógicos às regras

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

    As tabelas a seguir descrevem as expressões de predicado disponíveis para serem selecionadas nos menus de atalho Predicados:

    Predicado interno Descrição
    Depois O predicado temporal que responde à pergunta: "O tempo1 é cronologicamente posterior ao tempo2?"
    Antes O predicado temporal que responde à pergunta: "O tempo1 é cronologicamente anterior ao tempo2?"
    Entre O predicado temporal que responde à pergunta: "O tempo1 está 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?"
    GreaterThan O operador relacional maior que.
    GreaterThanEqual O operador relacional maior que ou igual a.
    LessThan O operador relacional menor que.
    LessThanEqual O operador relacional menor que ou igual a.
    Corresponder Determina se existe uma expressão regular em uma cadeia de caracteres de entrada especificada.
    NotEqual O operador relacional de desigualdade.
    Intervalo Determinar se um valor existe em 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 etapas a seguir:

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

  • Abra o menu de atalho do 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:

  • Adicionar funções internas ou definidas pelo usuário, se houver.
  • Definir argumentos em funções arrastando itens da janela do Gerenciador de Fatos.
  • Inserir valores de argumentos em linha, selecionando um link de argumento.
  • Mover funções dentro de uma ação.

Adicionar uma função

  1. No Explorador do Conjunto de Regras, selecione a regra.

  2. Na janela THEN, que é o editor de ações, abra o menu de atalho Ações 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 serem selecionadas no menu de atalho Ações:

    Função Descrição
    Assert Adicionar um novo fato à memória de trabalho da instância do mecanismo de regras.
    Limpar Redefinir a memória de trabalho e a agenda da instância do mecanismo de regras. Para obter mais informações sobre a memória de trabalho e agenda, consulte Otimização do mecanismo de regras.
    Parar Encerrar o processamento da regra.
    Retrair Remover um fato da memória de trabalho da instância do mecanismo de regras.
    RetractByType Remove um fato com o tipo especificado da memória de trabalho da instância do mecanismo de regras.
    Atualizar Atualizar 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 em uma ação

As ações em uma regra são executadas com base na ordem especificada, exceto 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 atalhos 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, execute uma das seguintes etapas:

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

  • Na janela Gerenciador de Fatos, selecione a guia que contém o termo que você deseja usar como argumento e arraste esse termo para o argumento no predicado ou função no respectivo editor.

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

  • Para substituir um argumento por um valor de cadeia 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 atalhos do argumento e selecione Definir como nulo.

    Observação

    Essa opção pode não aparecer se o tipo de argumento não for um tipo que possa ser definido como nulo.

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

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

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

  • Para localizar a definição de vocabulário no Gerenciador de Fatos que foi usada 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 do predicado, da função ou do argumento e selecione Ir para o vocabulário.

  • Para localizar um membro do .NET ou elemento XML no Gerenciador de Fatos que tenha sido usado 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 do 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 etapas a seguir:

  • Selecionar o item e pressionar a tecla Excluir.

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

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

Adicionar fatos às suas regras

É possível especificar referências de fontes de dados que podem ser salvas no repositório de regras para uso posterior como fatos nas regras e vocabulários. Você pode especificar assemblies do .NET que tenham classes e membros de classe ou esquemas XSD que tenham elementos e atributos de documentos XML.

  1. Para pesquisar dados já adicionados a partir de um assembly do .NET, esquema XSD ou definições de vocabulário, na janela Gerenciador de Fatos, selecione a guia Vocabulários, Esquemas XML ou Classes do .NET, de acordo com a localização dos dados desejados.

  2. Arraste os dados da guia correspondente para o local desejado dentro de uma condição no editor de condições ou dentro de uma ação no editor de ações.

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

  1. Na janela Gerenciador de Fatos, selecione a guia Classes do .NET.

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

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

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

    A captura de tela mostra o Microsoft Rules Composer com o Gerenciador de Fatos, as classes e os membros da classe.

Importante

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

Atualizar as referências de assembly do .NET

  • Se você adicionar um novo assembly do .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, os métodos e assim por diante. Para carregar o assembly atualizado, certifique-se de reiniciar o Microsoft Rules Composer.

  • Se o assembly do .NET atualizado usar o mesmo nome, número de versão etc., 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 do .NET como uma fonte de dados

  1. Na janela Gerenciador de Fatos, selecione a guia Classes do .NET.

  2. Em Assemblies do .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 Gerenciador de Fatos, selecione a guia Esquemas XML.

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

  3. Na caixa Arquivos de Esquema, encontre 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 o Microsoft Rules Composer, o Gerenciador de Fatos e os elementos XML.

Associações para elementos XML usados em argumentos

Na Business Rules Framework, a classe TypedXmlDocument é uma biblioteca de classes compatível com 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 tipados.

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

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

  • Se o nó não tiver nós filhos, 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 XmlDocumentMember, será criada para o próprio nó. Essa associação de campo é relativa à associação de 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 serão colocadas no conjunto de regras.

Observação

Quando o esquema é recarregado no Microsoft Rules Composer, você deve inserir novamente as edições feitas nas 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 Gerenciador de Fatos, os elementos XML e seus atributos.

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

    Na janela Propriedades, a propriedade Seletor XPath 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, serão criadas uma associação de seletor e uma associação de campo.

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

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