Jamio Rule Editor

<< Fare clic per visualizzazione il sommario >>

Percorso:  Jamio Composer >

Jamio Rule Editor

Jamio Composer dispone di un editor universale per la definizione delle regole di business che sottendono una qualunque soluzione applicativa. Questo ambiente, denominato Jamio Rule Editor, consente di:

utilizzare un solo linguaggio per la definizione delle regole di business in ogni ambito di progettazione;

definire le regole attraverso espressioni o vettori di espressioni, e non codici complessi;

semplificare le procedure di definizione delle espressioni mediante costruzione guidata.

 

Attraverso Jamio Rule Editor è possibile definire una serie di espressioni, utilizzando un'estensione del linguaggio OGNL (Object Graph Navigation Language), opportunamente arricchito con un set di funzioni speciali, che garantiscono un maggiore livello di astrazione nella definizione delle regole all’interno della piattaforma Jamio. Il linguaggio così costruito prende il nome di Openwork Expression Language (OEL).

 

Immagine21

Il Jamio Rule Editor nella sezione della definizione del comportamento di un tipo personalizzato

 

L’OEL consente di definire delle regole, descritte nella forma <soggetto>-<predicato>-<oggetto>, mediante le quali modificare lo stato delle risorse in corso di elaborazione.

 

Il soggetto è costituito da un elemento appartenente al contesto di esecuzione corrente e può variare in base all’ambito di progettazione in cui ci si trova. Nell’ambito della definizione del comportamento di un modello di tipo ad esempio, è possibile scegliere il soggetto all’interno del contesto informativo, ovvero l’insieme di tutti i dati associati al modello di cui si sta definendo il comportamento. Un soggetto valido può essere ad esempio il campo ‘Indirizzo’ definito in un modello di tipo dati denominato ‘Cliente’.

Il predicato è invece la rappresentazione di una azione di trasformazione del soggetto e dipende dalla natura del soggetto stesso. Ad esempio, una regola può essere utilizzata per esprimere che un determinato campo informativo debba essere valorizzato obbligatoriamente. In questo caso si sceglierà il predicato ‘è non nullo’.

L’oggetto è opzionalmente indicato nei casi in cui la trasformazione prevede l’utilizzo di un’informazione, come nel caso elementare dell’assegnazione in cui il predicato ‘assegna’ prevede l’indicazione di un valore da assegnare, appunto, al soggetto. La scelta dell’oggetto è anch’essa dipendente dal contesto di esecuzione in cui ci si trova. Ad esempio, l’uso del predicato “referenzia” prevederà come oggetto della regola l’indicazione di una risorsa.

 

Le regole possono essere dunque di tre tipi differenti:

Assegnazione: associa un valore ad un soggetto - si tratta della trasformazione di un soggetto tramite gli elementi di un contesto;

Validazione: è una espressione di valutazione logica di una condizione - si tratta di un’espressione booleana che deve essere verificata;

Asserzione: associa ad uno o più soggetti un predicato - si tratta della qualificazione di un soggetto.

Se le regole devono dipendere dalla verifica di particolari condizioni, si deve inserire la regola all’interno di una Premessa, che può essere costituita da una o più condizioni che si può richiedere siano verificate tutte contemporaneamente, solo in parte o mai nessuna.

Oltre alle regole semplici, possono essere dunque inserite delle regole complesse, binarie (Quando-Allora) costituite da una premessa che, se verificata, rende applicabili una serie di regole, o ternarie (Quando-Allora-Altrimenti) costituite da una premessa e da due insiemi di regole, il primo applicabile se la premessa è vera, il secondo altrimenti.

 

L’editor delle regole permette una compilazione guidata e suggerisce i dati che si possono coinvolgere nella definizione del soggetto e dell’oggetto, inoltre elenca i predicati filtrati per tipo di regola e per tipo di soggetto selezionato.

 

Nel caso di definizione di una premessa, ovvero nella definizione di una condizione, il soggetto è selezionabile non soltanto dal contesto informativo, ma anche dal contesto utente, ovvero l’insieme di informazioni ed elementi descrittivi di un utente che si autentica per una sessione di lavoro:

scheda anagrafica dell’utente;

organizzazione di appartenenza e sua scheda anagrafica;

posizione organizzativa assegnata e sua scheda anagrafica;

scheda anagrafica dell’incarico assegnato;

unità organizzativa in cui opera l’utente e sua scheda anagrafica;

blocco organizzativo e sua scheda anagrafica;

Questo consente la definizione di regole di business condizionate dall’operatore che manipola le informazioni.

Un soggetto può essere specificato in due diverse modalità:

Contesto: per scegliere un elemento del contesto dati o del contesto utente;

Espressione: per utilizzare direttamente l’OEL.

 

E’ possibile invece specificare un oggetto in tre diverse modalità:

Contesto: per scegliere un elemento del contesto dati o del contesto utente;

Modello/Alias o Modello/Parametro: per inserire un riferimento ad un modello, ad un alias o ad un parametro di configurazione incluso nella soluzione;

Espressione: per utilizzare direttamente l’OEL.

 

Il Jamio Rule Editor mostra per i tipi elementari, oltre alle proprietà di Jamio openwork, anche i metodi e le proprietà previste da Microsoft .NET (ad esempio la proprietà Length per i campi di tipo stringa). Per i campi di tipo lista sono, invece, abilitate le proprietà del tipo .NET array.

 

Sono abilitabili le azioni di Rimuovi, Copia, Incolla e Duplica per la definizione delle business rules, sia per le regole a livello radice sia per quelle annidate all'interno di un operatore condizionale del tipo Quando...Allora o Quando...Allora...Altrimenti.

Le azioni Rimuovi, Copia e Duplica possono essere selezionate attraverso il menù contestuale, disponibile al clic del tasto destro del mouse sulla regola d'interesse, o selezionando quest'ultima e cliccando sui rispettivi tasti nella barra orizzontale di progettazione.

Per attivare l'azione Incolla:

in una Asserzione, Assegnazione, Validazione o regola condizionale, già copiata, sotto regole condizionali, va selezionato l'Allora o l'Altrimenti e successivamente Incolla;

in una Asserzione, Assegnazione , Validazione o regola condizionale, già copiata, sotto un'altra regola Asserzione, Assegnazione, Validazione o regola condizionale, va selezionata quest'ultima (nel caso di regola condizionale, sul Quando) senza far attivare il suo editor in testa e selezionare Incolla;

in una Condizione, sotto un Quando, selezionandolo, viene attivato il relativo editor riportato in testa a tutto il comportamento.

Le azioni Copia e Incolla non sono disponibili per gli editor di:

Restrizione di un catalogo;

Gruppo di ACL;

Flussi di processo condizionali.