Il linguaggio OEL

<< Fare clic per visualizzazione il sommario >>

Percorso:  »Nessun percorso su questo livello«

Il linguaggio OEL

Il linguaggio Openwork Expression Language (OEL) è utile, per il progettista Jamio openwork, a manipolare le risorse modellate con Jamio Composer, fare deduzioni su di esse e associare ad esse comportamenti dinamici visibili nelle pagine web di Jamio on Stage oltre a permettere alle applicazioni di effettuare delle deduzioni sui dati.

Il linguaggio OEL è il risultato dell’estensione del linguaggio OGNL (Object Graph Navigation Language), nella versione fornita da Spring.NET, esteso con un set di funzioni utili a garantire un’astrazione nella programmazione della piattaforma Jamio openwork.

Il linguaggio OEL si utilizza in fase di modellazione di una soluzione Jamio openwork quando è necessario inserire un'espressione in maniera destrutturata (ovvero senza usare il Jamio Notation Editor) per effettuare delle elaborazioni sui dati. Ad esempio: si deve scrivere una regola di assegnazione che assegna ad un campo (soggetto) il valore ottenuto dalla somma dei valori riportati nella colonna di una tabella. In questo caso, inserita la regola di assegnazione, l'oggetto della regola non è disponibile in modalità Contesto (<>) perché occorre calcolarlo programmaticamente. L'oggetto va quindi riportato con la modalità Espressione f(x) e l'espressione deve essere riportata utilizzando gli opportuni metodi OEL, nel nostro esempio il metodo utile è ProjectionList. Per inserire un'espressione in OEL la piattaforma dispone del editor delle espressioni nel quale utilizzando il simbolo # si fa riferimento ad uno degli oggetti disponibili nel contesto.

 

Editor delle espressioni

Editor delle espressioni

 

I tipi modellati in Jamio composer, corrispondono ad oggetti del OEL che è possibile manipolare con i metodi resi disponibili dal linguaggio. Ad esempio un dato strutturato corrisponde ad un oggetto OEL denominato DatasetValue che può essere manipolato dal metodo RenameFields utile a rinominare i campi di un dato strutturato. Gli oggetti Jamio openwork manipolabili con OEL sono classificabili nelle seguenti categorie:

scalari: rappresentano i tipi elementari (testo breve, booleano, numerico intero, etc.) la cui quantità è descritta da un solo numero.

reference: rappresenta il tipo collegamento, caratterizzato dalle proprietà Name, Type e Url.

iList: rappresenta una lista ovvero una collezione omogenea di oggetti. Una lista di tipi Jamio openwork costruita in fase di modellazione con Jamio Composer, appartiene alla famiglia di oggetti iList e corrisponde in OEL al tipo ArrayValue. Le liste di valori costruite esternamente a Jamio openwork, ad esempio tramite la notazione .NET con il costrutto {'elemento1', 'elemento2', 'elemento3'}, appartengono alla famiglia di oggetti iList. Tutti i metodi del OEL che ricevono in input oggetti di tipo iList restituiscono (dove previsto) in output degli oggetti iList dello stesso tipo passato in input. Ad esempio se si utilizza il metodo SetListElement passando in input un oggetto di tipo ArrayValue, in output sarà restituito un tipo ArrayValue. Tutti i metodi che prevedono in input un oggetto di tipo iList possono essere applicati ad oggetti di tipo ArrayValue. Il costruttore di oggetti ArrayValue è il metodo List. Il metodo ToArrayValue consente di trasformare un oggetto generico iList in un oggetto di tipo ArrayValue.

iDataSet: rappresenta un oggetto contenente un DataSet ovvero un insieme di campi chiave - valore. Un dato strutturato di Jamio openwork costruito in fase di modellazione con Jamio Composer, appartiene alla famiglia di oggetti iDataSet e corrisponde in OEL al tipo DataSetValue. I seguenti oggetti personalizzati con Jamio Composer appartengono alla famiglia iDataSet:

oData

oIdentity

oHumanTask

oAggregation

oDocument

oFileComponent

oDocumentComponent

oUnmanagedComponent

oCustomEvent

oCatalogItem

oProcessInstance

oOrganization

oOrganizationalAssignment

oOrganizationalBlock

oOrganizationalPosition

oOrganizationalUnit

Tutti i metodi del OEL che ricevono in input oggetti di tipo iDataSet restituiscono (dove previsto) in output degli oggetti iDataSet dello stesso tipo passato in input. Ad esempio se si utilizza il metodo MergeDataSet passando in input due oggetti di tipo DataSetValue, in output sarà restituito un tipo DataSetValue. Tutti i metodi che prevedono in input un oggetto di tipo iDataSet possono essere applicati ad oggetti di tipo DataSetValue. Il costruttore di oggetti iDataSet è il metodo DataSet.