Creare regole usando Microsoft Rules Composer (anteprima)
Si applica: App per la logica di Azure (Standard)
Importante
Questa funzionalità è in anteprima ed è soggetta alle Condizioni supplementari per l'utilizzo per le anteprime di Microsoft Azure.
Le regole regolano la logica di business per il funzionamento dei processi aziendali. Per semplificare la creazione di queste regole da usare con il progetto motore regole di App per la logica di Azure, Microsoft Rules Composer offre uno strumento visivo per la creazione e il controllo delle versioni di set di regole e vocabolari.
Questa guida pratica fornisce una panoramica sul funzionamento delle regole e su come creare una regola usando Microsoft Rules Composer.
Prerequisiti
Scaricare e installare Microsoft Rules Composer.
Se si dispone di un set di regole esistente su cui si desidera lavorare, è necessario il file XML che contiene tale set di regole. In caso contrario, questa guida illustra come creare un nuovo set di regole, che viene salvato come file XML.
Importante
Se il file XML esistente dipende da qualsiasi assembly .NET o se gli assembly usati per aggiungere fatti hanno altre dipendenze, assicurarsi di mantenere tutti questi file nella stessa cartella e in una directory locale in Microsoft Rules Composer.
Che cos'è una regola?
Una regola è un'istruzione dichiarativa che include una condizione e azioni in cui viene valutata la condizione. Se il risultato è true, il motore regole esegue una o più azioni. Il formato seguente definisce la sintassi per le regole nel motore regole App per la logica di Azure:
Azione IF <condition THEN <>>
La regola di esempio seguente determina se eseguire una transazione e applica la logica di business confrontando due valori monetari con dati o fatti, che usano la forma di importo e sconto di una transazione:
SE l'importo acquistato è maggiore della quantità, dare uno sconto aggiuntivo al cliente
Condizione: espressione booleana true-o-false che include uno o più predicati applicati ai fatti. Un predicato è una clausola che contiene un verbo e indica qualcosa sull'oggetto. In questo esempio, il predicato è maggiore di quanto si applica all'importo del fatto acquistato. Questa condizione restituisce sempre true o false. È possibile combinare predicati con gli operatori logici AND, OR e NOT per formare un'espressione logica potenzialmente lunga, ma restituisce sempre true o false.
Azione: un'azione è una conseguenza funzionale della valutazione della condizione. Se viene soddisfatta una condizione della regola, viene avviata un'azione o un'azione corrispondente. In questo esempio, assegnare uno sconto aggiuntivo è un'azione che si verifica solo quando la condizione è true, ovvero l'importo IF acquistato è maggiore di $ 1.000. Le azioni vengono rappresentate nel motore regole di App per la logica di Azure chiamando metodi, impostando proprietà su oggetti o eseguendo operazioni set su documenti XML.
Fatto: un fatto è un pezzo discreto di informazioni sul mondo su cui operano le regole. In questo esempio, la quantità e la quantità sono fatti. I fatti possono provenire da molte origini, ad esempio sistemi eventi, oggetti nelle applicazioni ibride e così via e devono essere inseriti nel motore regole in App per la logica di Azure usando uno degli elementi seguenti:
- Oggetti .NET, ad esempio metodi, proprietà e campi.
- Documenti XML, ad esempio elementi, attributi e sottosezioni di documenti.
Vocabolario: un nome descrittivo per i fatti usati in condizioni e azioni. Per altre informazioni, vedere Creare e gestire vocabolari.
Il diagramma e le sezioni seguenti descrivono come le condizioni, le azioni e i fatti si integrano:
Microsoft Rules Composer
È possibile usare Microsoft Rules Composer per creare, modificare, versione e salvare le regole. In alternativa, è possibile eseguire queste attività a livello di codice. Rules Composer include gli elementi dell'interfaccia utente seguenti:
Window | Descrizione |
---|---|
Esplora set di regole | Creare set di regole che contengono una o più regole. |
Editor condizioni | Compilare una condizione per una regola. |
Editor azioni | Azioni di compilazione eseguite quando la condizione restituisce true. |
Esplora fatti | Cercare i fatti XML e .NET e quindi trascinare i fatti nell'editor di condizioni o nell'editor di azioni. |
Creare e gestire un set di regole
Un set di regole è un set di regole raggruppate in base al dominio, al contesto delimitato o a qualsiasi limite aziendale. Per gestire i set di regole e le regole nell'archivio regole, usare RuleSet Explorer. È possibile creare, modificare, testare o eliminare set di regole e le relative regole.
In Microsoft Rules Composer aprire il menu Archivio regole e selezionare Carica.
Trovare e selezionare il file XML che contiene l'archivio regole che si desidera aprire.
Nella finestra Esplora regole aprire il menu di scelta rapida RuleSets e selezionare Aggiungi nuovo set di regole.
Microsoft Rules Composer crea un nuovo set di regole vuoto con una versione del set di regole numerata 1.0 come versione predefinita.
Salvare il set di regole. Scegliere Salva dal menu Archivio regole per creare un file XML per il set di regole.
La tabella seguente descrive altri comandi di RuleSet Explorer che è possibile usare per usare i set di regole:
Attività | Comando |
---|---|
Creare un nuovo set di regole. | Aggiungi nuovo set di regole |
Creare una nuova versione vuota del set di regole selezionato. È possibile copiare le regole da altre versioni e incollarle nella nuova versione. | Aggiungi nuova versione |
Copiare la versione del set di regole selezionata negli Appunti. | Copia |
Incollare una versione del set di regole e il relativo contenuto in un set di regole selezionato. | Incolla |
Eliminare la versione del set di regole selezionata. | CANC |
Eliminare il set di regole selezionato e tutte le relative versioni. | Eliminare a livello di set di regole padre |
Ricaricare la versione del set di regole selezionata e le relative regole con l'opzione per rimuovere le modifiche correnti in tale versione e ripristinare il contenuto dall'archivio regole. | Ricaricare |
Salvare le modifiche apportate alla versione selezionata e alle relative regole. | Salva |
Testare la versione del set di regole selezionata prima di usare con il progetto del motore regole. | Set di regole di test |
Nella tabella seguente vengono descritte le proprietà di una versione del set di regole:
Proprietà | valore |
---|---|
Nome | Nome del set di regole. Nota: è possibile modificare questo valore solo aggiornando la proprietà Name del set di regole, non la versione del set di regole. |
Versione corrente | Versione del set di regole attualmente selezionata in Esplora regole. |
Recupero dei fatti | Retriever dei fatti da usare per fornire fatti alla versione del set di regole. Microsoft Rules Composer supporta la compilazione delle funzionalità e l'uso di un retriever dei fatti per fornire fatti. Per altre informazioni, vedere la documentazione seguente: - Eseguire attività avanzate sui set di regole - Creare creatori e recuperatori di fatti |
Profondità massima ciclo di esecuzione | Profondità massima dell'algoritmo forward chaining prima che venga generata un'eccezione del ciclo di esecuzione. Il numero di cicli predefinito è 65.536. |
Durata traduzione | Quantità massima di tempo per convertire le regole prima che venga generata un'eccezione di timeout di conversione. La durata predefinita è di 60.000 millisecondi. |
Translator | Traduttore da usare per tradurre le regole. Microsoft Rules Composer supporta attualmente solo il traduttore predefinito, ma supporta anche l'estendibilità per aggiungere altri traduttori. |
Descrizione della versione | Descrizione della versione corrente. |
Per altre informazioni sull'uso dei set di regole, vedere Eseguire attività avanzate sui set di regole.
Creare e gestire una regola
In Microsoft Rules Composer scegliere Carica dal menu Archivio regole.
Trovare e selezionare il file XML contenente l'archivio regole su cui si desidera lavorare.
Nella finestra Esplora set di regole trovare la versione del set di regole in cui si vuole aggiungere una regola.
Aprire il menu di scelta rapida per la versione del set di regole e selezionare Aggiungi nuova regola.
Verrà aperto l'editor regole in modo da poter aggiungere le condizioni e le azioni.
L'elenco seguente descrive i modi in cui è possibile modificare una regola:
Creare una nuova versione del set di regole.
Modificare direttamente una versione del set di regole esistente. È possibile modificare singole regole, aggiungere nuove regole o eliminare regole esistenti.
Nella tabella seguente vengono descritti tutti i comandi di scelta rapida di RuleSet Explorer che è possibile usare per usare le regole:
Attività | Comando di scelta rapida |
---|---|
Creare una nuova regola nella versione del set di regole selezionata. | Aggiungi nuova regola |
Copiare la regola selezionata negli Appunti. | Copia |
Copiare la regola selezionata negli Appunti ed eliminare la regola. | Taglia |
Incollare una regola nella versione del set di regole selezionata. | Incolla |
Eliminare la regola selezionata. | CANC |
Nella tabella seguente vengono descritte le proprietà di una regola:
Proprietà | valore |
---|---|
Nome | Nome della regola. |
Attive | Indica se la regola è abilitata o disabilitata. |
Priorità | Priorità per la regola all'interno del set di regole. Maggiore è l'indice, maggiore è la priorità della regola. Le azioni per una regola con priorità più alta vengono eseguite per prime. Il valore predefinito è 0 e rappresenta la priorità media. È possibile rendere positivo o negativo il valore. Per altre informazioni, vedere Ottimizzazione del motore regole. |
Disabilitare o abilitare una regola
È possibile impostare una regola su inattiva in modo che la regola non venga eseguita quando viene eseguito il set di regole oppure è possibile riattivare una regola disattivata.
In Esplora set di regole selezionare la regola.
Nella finestra Proprietà impostare la proprietà Active su uno dei valori seguenti:
- False: Disabilitato
- True: Abilitato
Impostare la priorità delle regole
È possibile impostare la priorità per una regola in modo che le azioni vengano eseguite prima o dopo le azioni di un'altra regola con priorità diversa. Le priorità sono relative, quindi tutte le azioni in una regola con una priorità specifica vengono eseguite in ordine prima di qualsiasi azione in una regola con un valore di priorità inferiore.
In Esplora set di regole selezionare la regola.
Nella finestra Proprietà impostare Priorità sul valore intero desiderato.
Creare o modificare una condizione
Per compilare, modificare o visualizzare una condizione che attiva una regola, usare l'editor delle condizioni, che fa parte dell'editor regole. Per compilare una condizione, è possibile eseguire le attività seguenti:
Aggiungere predicati predefiniti o definiti dall'utente, se presenti.
Definire gli argomenti nei predicati trascinando gli elementi dalla finestra Esplora fatti.
Immettere i valori degli argomenti inline selezionando un collegamento all'argomento.
Spostare predicati e operatori logici all'interno di una condizione.
Nota
L'ordine in cui i predicati e gli operatori logici non determinano l'ordine di valutazione.
Eliminare predicati e operatori logici da una condizione.
Aggiungere un predicato a una condizione
In Esplora set di regole selezionare la regola.
Nella finestra IF, ovvero l'editor condizioni, aprire il menu di scelta rapida Condizioni e scegliere una delle opzioni seguenti:
Selezionare un operatore logico. Dal menu di scelta rapida dell'operatore aggiungere i predicati o gli operatori logici annidati da valutare.
Per altre informazioni sulla configurazione degli operatori logici, vedere Aggiungere operatori aritmetici e logici alle regole
Dal menu di scelta rapida Predicati selezionare un predicato predefinito o un predicato definito dall'utente, se presente.
Le tabelle seguenti descrivono le espressioni di predicato disponibili da selezionare dai menu di scelta rapida Predicati :
Predicato predefinito Descrizione Dopo Predicato temporale che risponde alla domanda: "Time1 cronologicamente dopo time2?" Prima Predicato temporale che risponde alla domanda: "Time1 cronologicamente prima di time2?" Compreso tra Predicato temporale che risponde alla domanda: "Time1 cronologicamente tra time2 e time3?" Uguale Operatore di uguaglianza relazionale. Exists Predicato di esistenza che risponde alla domanda "L'elemento o l'attributo XML specificato esiste?" GreaterThan Operatore relazionale maggiore di . GreaterThanEqual Operatore relazionale maggiore o uguale a . LessThan Operatore relazionale minore di. LessThanEqual Operatore relazionale minore o uguale a . Fiammifero Determinare se un'espressione regolare esiste in una stringa di input specificata. NotEqual Operatore di disuguaglianza relazionale. Intervallo Determinare se un valore esiste all'interno di un intervallo.
Specificare un argomento per un predicato in una condizione
Seguire questi passaggi, che sono gli stessi per una funzione in un'azione.
Spostare un operatore logico o un predicato in una condizione
Nell'editor condizioni eseguire uno dei passaggi seguenti:
Trascinare l'operatore logico o il predicato in un altro operatore logico o nel nodo Condizioni .
Aprire il menu di scelta rapida per l'operatore logico o il predicato e selezionare Sposta su o Sposta giù per spostare l'elemento una posizione o un livello rispettivamente.
Creare o modificare un'azione
Per compilare, modificare o visualizzare un'azione eseguita quando viene soddisfatta una condizione, usare l'editor delle azioni, che fa parte dell'editor delle regole. Per compilare un'azione, è possibile eseguire le attività seguenti:
- Aggiungere funzioni predefinite o definite dall'utente, se presenti.
- Definire gli argomenti nelle funzioni trascinando gli elementi dalla finestra Esplora fatti.
- Immettere i valori degli argomenti inline selezionando un collegamento all'argomento.
- Spostare le funzioni all'interno di un'azione.
Aggiungere una funzione
In Esplora set di regole selezionare la regola.
Nella finestra THEN, ovvero l'editor di azioni, aprire il menu di scelta rapida Azioni e selezionare una funzione predefinita per aggiungere un'azione e un argomento.
La tabella seguente descrive le funzioni disponibili da selezionare dal menu di scelta rapida Azioni :
Funzione Descrizione Assert Aggiungere un nuovo fatto alla memoria di lavoro dell'istanza del motore regole. Cancella Reimpostare la memoria di lavoro e l'agenda dell'istanza del motore regole. Per altre informazioni sulla memoria di lavoro e sull'agenda, vedere Ottimizzazione del motore regole. Halt Terminare l'elaborazione delle regole. Retract Rimuovere un fatto dalla memoria di lavoro dell'istanza del motore regole. RetractByType Rimuovere un fatto con il tipo specificato dalla memoria di lavoro dell'istanza del motore regole. Aggiornamento Aggiornare un fatto nella memoria di lavoro dell'istanza del motore regole.
Per altre informazioni, vedere Ottimizzare le regole con le funzioni di controllo.
Specificare un argomento per una funzione in un'azione
Seguire questi passaggi, che sono gli stessi per un predicato in una condizione.
Spostare una funzione in un'azione
Le azioni di una regola vengono eseguite in base all'ordine specificato, ad eccezione delle funzioni di controllo del motore regole, che eseguono le altre azioni seguenti.
- Nell'editor delle azioni aprire il menu di scelta rapida dell'azione e selezionare Sposta su o Sposta giù per spostare rispettivamente l'azione una posizione o un livello.
Specificare un argomento per un predicato in una condizione o una funzione in un'azione
Nell'editor delle condizioni o nelle azioni di conseguenza, eseguire una delle operazioni seguenti:
Nel predicato o nella funzione selezionare l'argomento predefinito e immettere il valore desiderato o selezionato da un elenco, se disponibile, se appropriato.
Nella finestra Esplora fatti selezionare la scheda con il termine che si vuole usare come argomento e trascinare tale termine nell'argomento nel predicato o nella funzione nell'editor corrispondente.
Il termine deve avere un tipo previsto dal predicato o dalla funzione. In caso contrario, viene visualizzato un errore.
Per sostituire un argomento con un valore stringa vuoto, aprire il menu di scelta rapida dell'argomento e selezionare Imposta su stringa vuota.
Per sostituire un argomento con una definizione costante Null, aprire il menu di scelta rapida dell'argomento e selezionare Imposta su Null.
Nota
Questa opzione potrebbe non essere visualizzata se il tipo di argomento non è un tipo che è possibile impostare su Null.
Per aggiungere un operatore aritmetico o logico a un argomento, vedere Aggiungere operatori aritmetici e logici alle regole.
Trovare l'origine dell'elemento in una condizione o un'azione
Nell'editor di condizioni o azioni eseguire di conseguenza uno dei passaggi seguenti:
Per individuare la definizione del vocabolario in Esplora fatti usata per creare un predicato in una condizione, una funzione in un'azione o un argomento in uno dei due, aprire il menu di scelta rapida per il predicato, la funzione o l'argomento e selezionare Vai al vocabolario.
Per individuare un membro .NET o un elemento XML in Esplora fatti usato per creare un predicato in una condizione, una funzione in un'azione o un argomento, aprire il menu di scelta rapida per il predicato, la funzione o l'argomento e selezionare Vai al fatto di origine.
Eliminare un predicato, un operatore logico o un'azione
Nell'editor condizioni eseguire uno dei passaggi seguenti:
Selezionare l'elemento e quindi premere CANC.
Selezionare l'elemento, ad esempio un predicato, un operatore logico o un'azione e selezionare Elimina <tipo di> elemento.
Per eliminare un argomento più eventuali argomenti annidati e ripristinare la definizione predefinita, aprire il menu di scelta rapida dell'argomento e selezionare Reimposta argomento.
Aggiungere fatti alle regole
È possibile specificare riferimenti alle origini dati che è possibile salvare nell'archivio regole per utilizzarli successivamente come fact nelle regole e nei vocabolari. È possibile specificare assembly .NET con classi e membri di classe o schemi XSD con attributi e elementi documento XML.
Per esplorare i dati già aggiunti da un assembly .NET, uno schema XSD o come definizioni di vocabolario, dalla finestra Esplora fatti selezionare la scheda Vocabolari , xml Schema o classi .NET, in base alla posizione in cui sono presenti i dati desiderati .
Trascinare i dati dalla scheda corrispondente in cui si desidera entrare in una condizione nell'editor delle condizioni o all'interno di un'azione nell'editor azioni.
Aggiungere un assembly .NET come origine dati per i fatti .NET
Nella finestra Esplora fatti selezionare la scheda Classi .NET.
Aprire il menu di scelta rapida per il nodo Assembly .NET e selezionare Sfoglia.
Trovare e aprire l'assembly .NET da usare.
In Assembly .NET l'assembly selezionato viene visualizzato insieme alle relative classi e membri, ad esempio:
Importante
Se si aggiorna l'assembly .NET nella directory locale, Microsoft Rules Composer non aggiorna automaticamente l'assembly .NET. Per i passaggi per aggiornare i riferimenti a un assembly aggiornato, vedere Aggiornare i riferimenti agli assembly .NET.
Aggiornare i riferimenti agli assembly .NET
Se si aggiunge un nuovo assembly .NET, con un nome o una versione diversa, è necessario aggiornare il set di regole per fare riferimento al nuovo assembly. Per questa attività, in Microsoft Rules Composer è necessario creare una nuova versione del set di regole e aggiornare i riferimenti al nuovo assembly, incluse le classi, i metodi e così via. Per caricare l'assembly aggiornato, assicurarsi di riavviare Microsoft Rules Composer.
Se l'assembly .NET aggiornato usa lo stesso nome, il numero di versione e così via, è sufficiente aggiungere il nuovo assembly al progetto di funzione del motore regole di App per la logica di Azure.
Rimuovere un assembly .NET come origine dati
Nella finestra Esplora fatti selezionare la scheda Classi .NET.
In Assembly .NET aprire il menu di scelta rapida dell'assembly e selezionare Rimuovi.
Aggiungere uno schema XML come origine dati per i fatti XML
Nella finestra Esplora fatti selezionare la scheda XML Schema.
Aprire il menu di scelta rapida per il nodo Schemi e selezionare Sfoglia.
Nella casella File di schema trovare e selezionare il file XML Schema (xsd) e selezionare Apri.
In Schemi l'XML Schema viene visualizzato insieme ai relativi elementi XML, ad esempio:
Associazioni per gli elementi XML utilizzati negli argomenti
In Business Rules Framework la classe TypedXmlDocument è microsoft . Libreria di classi conforme a NET che rappresenta il tipo di documento XML ed è una delle classi che implementa l'interfaccia ITypedFact . Queste classi sono note come fatti tipizzati.
Quando si usa un nodo da un documento XML come argomento in una regola, vengono create due espressioni XPath: un'associazione del selettore e un'associazione di campi, in base al nodo che si sceglie di usare:
Se il nodo ha nodi figlio, viene creata un'associazione del selettore, nota anche come associazione XmlDocument , al nodo, ma non viene creata alcuna associazione di campi.
Se il nodo non ha nodi figlio, viene creata un'associazione del selettore, nota anche come associazione XmlDocument , al nodo padre del nodo. Un'associazione di campi, nota anche come associazione XmlDocumentMember , viene creata nel nodo stesso. Questa associazione di campi è relativa all'associazione del selettore.
Prima di trascinare un nodo XML in un argomento regola, è possibile modificare le espressioni XPath predefinite per i nodi XML e le nuove informazioni di associazione vengono inserite nel set di regole.
Nota
Quando lo schema viene ricaricato in Microsoft Rules Composer, è necessario immettere nuovamente le modifiche apportate alle espressioni XPath in Microsoft Rules Composer.
Si supponga, ad esempio, di avere lo schema XML seguente:
Se si usa il nodo Income in un argomento, viene creata solo un'associazione del selettore perché il nodo ha nodi figlio.
Nella finestra Proprietà la proprietà XPath Selector del nodo contiene l'espressione XPath predefinita seguente:
/*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']/*[local-name()='Income' and namespace-uri()='']
Se si usa il nodo Nome in un argomento, vengono creati sia un'associazione del selettore che un'associazione di campi.
Nella finestra Proprietà le informazioni di associazione del nodo sono visualizzate come segue:
Proprietà valore Campo XPath *[local-name()='Name' and namespace-uri()='']
Selettore XPath /*[local-name()='Root' and namespace-uri()='http://LoansProcessor.Case']