11. Definire il comportamento

70 visualizzazioni 0 26 gennaio 2017

La definizione del comportamento consente di stabilire le business rules che governano le modalità di elaborazione delle informazioni. Il comportamento viene espresso sotto forma di regole, in una modalità molto vicina al linguaggio naturale, infatti la tipologia di linguaggio è di tipo dichiarativo e non procedurale. Il linguaggio OEL (Openwork Expression Language) consente la definizione di: regole semplici, costituite da una sola espressione non condizionata; regole binarie, basate su una struttura di tipo ‘Quando – Allora’ costituite da una premessa espressa mediante una o più condizioni booleane che, se verificate, abilitano l’esecuzione di un insieme di espressioni; regole ternarie, basate sulla struttura ‘Quando – Allora – Altrimenti’ (if-then-else), costituite da una premessa e da due set di espressioni: se la premessa è verificata allora deve essere eseguito il primo set, in caso contrario il secondo.

Le espressioni del linguaggio OEL possono essere inserite con:

  • Editor facilitato che evidenzia la struttura soggetto-predicato-oggetto;
  • Editor testuale che consente la scrittura libera destrutturata con syntax check (attivato con tasto […] in modalità Espressione)

L’editor delle espressioni facilita la composizione delle stesse:

  • la combinazione di tasti

CTRL+SPACE

          consente di visualizzare la lista di oggetti, funzioni e tipi disponibili;

  • Gli oggetti di contesto sono accessibili attraverso parole chiave: #data, #user, #position, #unit, #organization, #assignment, #block, (presenti con simbolo azzurro nella lista);
  • le funzioni sono presenti con simbolo rosa.

L’entità correntemente elaborata, sia in funzione di soggetto che di oggetto di un’espressione può essere esplorata con l’operatore (punto).
Le proprietà (es.: Name, Description, …) sono visualizzate con il simbolo azzurro.
I metadati personalizzati sono visualizzati con l’icona standard degli attributi. I metadati personalizzati sono accessibili tramite la collection Fields (es.: #data.Fields[‘Importo’])
E’ possibile operare sulle liste attraverso gli opportuni operatori  come ad esempio List Projection, List Selection, AddToList, etc.

Nel nostro esempio per il modello di dati Nota spese inseriremo le seguenti regole di comportamento per le informazioni:

  • La ‘Data’ deve essere inserita obbligatoriamente;
  • Il catalogo ‘ElencoSpese’ deve contenere almeno un elemento;
  • La ‘Motivazione’ della richiesta dovrà essere scelta tra le opzioni ‘Anticipo trasferta’, ‘Rimborso trasferta’, ‘Altro’; quando la scelta è ‘Altro’ occorre specificare il dettaglio della motivazione;
  • Solo un utente con posizione di ‘Responsabile organizzazione’ e i suoi primi riporti possono scegliere la motivazione ‘Altro’;
  • Gli utenti appartenenti all’unità ‘Amministrazione’ possono inserire una nota spese per conto terzi.

Definire il comportamento del modello NotaSpese
Tutte le regole sono espresse nella forma

‘Soggetto – Predicato’

o nella forma

‘Soggetto – Predicato – Complemento’

Dopo aver inserito una asserzione, la regola di validazione verificherà, in fase di esecuzione, che sia stata effettuata la valorizzazione dei campi ‘Data’, ‘Motivazione’, ecc… prima del salvataggio di ogni risorsa creata a partire dal modello ‘NotaSpese’.

  1. Inserisci alcune regole che definiscano il comportamento del modello ‘NotaSpese’, quindi inizia con l’aprire il modello ‘NotaSpese’;
  2. Seleziona la sezione ‘Comportamento’: verrà visualizzato il Jamio Notation Editor che consentirà la definizione delle regole di comportamento;
  3. Inserisci una ‘Nuova regola’. E’ possibile farlo sia tramite tasto destro del mouse direttamente sull’editor sia attraverso il relativo comando posto in alto a sinistra dell’editor;
  4. Inserisci una regola di ‘Validazione’ che dica che il campo ‘Data’ debba essere necessariamente compilato, ovvero compilare così l’espressione:’L’affermazione Data è non nullo deve essere vera’. Il risultato mostrato sull’editor sarà: Data di NotaSpese deve essere non nullo .
  5. Nello stesso modo, in ordine, crea ora una serie di regole così composte:
    – Validazione: ElencoSpese di NotaSpese deve contenere un numero di elementi maggiore di 0.  Per esprimere il complemento di questa regola devi utilizzare la modalità Espressione.
    – Assegnazione: Name di NotaSpese assume il valore di Motivazione di NotaSpese ;
    – Asserzione: Importo è bloccato ;
    – Assegnazione: Importo di NotaSpese assume il valore Projection(#data.Fields[‘ElencoSpese’],’Fields[“Importo”]’).sum(); 
    Per esprimere il complemento di questa regola devi utilizzare la modalità Espressione. Per la compilazione facilitata, apri l’editor e clicca sulla tastiera Ctrl + barra spaziatrice, si aprirà la finestra di inserimento guidato del servizio da richiamare;
  6. Inserisci un’espressione condizionale del tipo “Quando… Allora..Altrimenti”. Sarà sufficiente cliccare il tasto destro del mouse e selezionare l’espressione;
  7. Seleziona la riga ‘Quando’ e imposta tutte le affermazioni come vere; Inserisci nuove condizioni strutturate e regole compilando i campi in modo da ottenere delle espressioni così composte:
    Quando tutte le seguenti affermazioni sono vere:
     Motivazione di NotaSpese è uguale ad Altro,
    Allora DettaglioMotivazione di NotaSpese è Visibile,
    Altrimenti DettaglioMotivazione di NotaSpese è Nascosto
  8. Inserisci un’espressione condizionale del tipo “Quando… Allora..Altrimenti”;  Seleziona la riga ‘Quando’, imposta che almeno una della affermazioni sia vera e aggiungi una ‘Condizione strutturata’ così formulata:
    Quando una delle seguenti affermazioni è vera:
    Posizione Organizzativa è Responsabile Organizzazione
    Posizione organizzativa ha come responsabile di primo livello Responsabile Organizzazione
    Unità organizzativa è Amministrazione  
    Per definire i complementi di questa espressione condizionale utilizzeremo la modalità ‘Modello/alias’ e sceglieremo alias precedentemente
     definiti.
  9. Seleziona la riga ‘Allora’ e aggiungi una ‘Validazione’, così formulata:
    Allora
    Motivazione di NotaSpese deve appartenere alla lista List(‘Anticipo trasferta’,’Rimborso trasferta’,’Altro’)
    L’espressione “List(‘AnticipoTrasferta’,’RimborsoTrasferta’,’Altro’)” va inserita manualmente, selezionando l’icona con i tre puntini a fianco all’espressione comparirà l’editor di espressione.
  10. Seleziona la riga ‘Altrimenti’ e inserisci un’ultima ‘Validazione’ che dica:
    Altrimenti
    “Motivazione di NotaSpese deve appartenere alla lista List(‘Anticipo Trasferta’, ‘Rimborso Trasferta’)
  11. Inserisci una regola di validazione che dica Richiedente di NotaSpese deve essere selezionabile dal Catalogo Collaboratori;
  12. Inserisci una regola di assegnazione che dica Richiedente assume il valore di Reference(#user);
  13. Inserisci un’ultima espressione condizionale del tipo “Quando… Allora..Altrimenti”. Compila i campi in modo da ottenere un’espressione così formulata:
    Quando tutte le informazioni sono vere:
    Unità organizzativa è Amministrazione,
    Allora Richiedente di NotaSpese è Modificabile
    Altrimenti Richiedente di NotaSpese è bloccato
  14. Qualora tu voglia nascondere l’ora e mostrare solo la data, seleziona la sezione ‘Layout’; seleziona il campo ‘Data’ e nel menù ‘Disegno’ seleziona ‘Proprietà grafiche’; clicca dunque ‘Data e ora’ e poi ‘Nascondi ora’;

Definire il comportamento del modello ‘Spesa’
Requisiti: ‘Data’ e ‘Importo’ devono essere campi obbligatori.

  1. Apri il modello ‘Spesa’, seleziona la sezione ‘Comportamento’ e inserisci una nuova regola di validazione:
    L’affermazione Data e Importo è non nullo deve essere vera .

Definire il comportamento del modello ‘Collaboratore’
Requisiti: ‘Nome’, ‘Cognome’, ‘eMail’ devono essere campi obbligatori.

  1. Apri il modello ‘Collaboratore’ e inserisci una nuova regola di validazione:
    L’affermazione Nome, Cognome e eMail è non nullo deve essere vera .
  2. Inserisci una regola di ‘Assegnazione’ che dica Name di Collaboratore assume il valore di #data.Fields[‘Nome’] + ‘ ‘ + #data.Fields[‘Cognome’] ;

Comportamento02

Definizione comportamento modello NotaSpese
 indietro
 avanti

La tua opinione è importante per noi
Questa pagina è stata utile?


WordPress Image Lightbox