Espressioni di selezione

<< Fare clic per visualizzazione il sommario >>

Percorso:  Il linguaggio OEL >

Espressioni di selezione

Le espressioni di selezione forniscono un metodo utile a definire un sottoinsieme di una lista di elementi. Possono essere utilizzate per valorizzare i parametri di selezione in input a diverse funzioni OEL.

 

L'espressione di selezione è costituita da una stringa per la quale il contesto di esecuzione è definito dalle righe della lista in valutazione.

Per utilizzare le funzioni del OEL nell'espressione è necessario utilizzare il contesto #oel all'interno dell'espressione

Per riferirsi all'elemento della lista in valutazione si deve utilizzare il contesto #this.

 

Nelle espressioni di selezione è possibile fare riferimento solo a valori costanti. Qualora sia necessario utilizzare variabili del contesto di processo o del contesto utente, è possibile definire una variabile di processo di tipo testo breve, contenente l'espressione di selezione, in cui tali variabili sono sostituite da placeholder. Successivamente questa variabile di processo dovrà essere rielaborata, mediante le funzioni di sostituzione dei placeholder, in maniera tale da comporre l'espressione di selezione desiderata, come illustrato qui.

 

Seguono alcuni esempi.

 

Esempio 1

Data una lista di testi brevi ElencoMail, si vuole ottenere una lista di elementi non vuoti e non nulli.

Si utilizza la funzione SelectionList valorizzando il parametro selectionExpression con un'espressione di selezione che sfrutta la funzione OEL NotNull.

 

SelectionList(#processVariables.Fields['ElencoMail'],'#oel.NotNull(#this)'),false)

 

La funzione SelectionList estrae dalla lista di testi brevi ElencoMail tutti gli elementi vuoti, mediante l'espressione di selezione racchiusa tra singoli apici '#oel.NotNull(#this)', restituendo quindi una lista priva di tali elementi. Nell'espressione:

- #oel.NotNull serve a richiamare la funzione OEL NotNull all'interno dell'espressione di selezione;

- #this serve per puntare all’elemento della lista da confrontare.

 

Esempio 2

Data una lista di dati strutturati lista_ds che contengono due campi numerici denominati minimo e massimo, si vuole ottenere la lista dei dati strutturati il cui valore del campo minimo è maggiore di 1.

Si utilizza la funzione SelectionList valorizzando il parametro selectionExpression con un'espressione di selezione che sfrutta la funzione OEL GreaterThan, per verificare che il valore del campo del dato strutturato sia maggiore di 1.

 

SelectionList(#data.Fields['lista_ds'],'#oel.GreaterThan(Fields[''minimo''],1)')

 

La funzione SelectionList estrae dalla lista di dati strutturati lista_ds, tutti i dati strutturati il cui campo minimo (Fields[''minimo'']) è maggiore di 1. Il contesto di validazione dell'espressione di selezione è la riga della lista, che è un dato strutturato. Per riferirsi al campo specifico del dato strutturato si deve scrivere direttamente Fields e tra parentesi quadre il nome del campo. Tipicamente, il nome del campo è specificato tra due apici (ad esempio Fields['minimo']); nella espressione di selezione, che a sua volta è una stringa, è necessario aggiungere un escape per ogni apice previsto e quindi il nome del campo è racchiuso tra quattro singoli apici ''minimo''. Se si utilizza il simbolo doppio apice il processo va in errore.

 

Esempio 3

Data una lista di dati strutturati lista_ds che contengono un campo denominato datacanone di tipo data e orario, si vuole ottenere la lista dei dati strutturati per i quali il valore del campo datacanone è uguale a quello del mese corrente.

Si utilizza la funzione SelectionList valorizzando il parametro selectionExpression con un'espressione di selezione che sfrutta la funzione OEL EqualsTo per verificare che il valore del campo del dato strutturato sia uguale ad un valore specifico. Per riferirsi alla data corrente sarà utilizzata la funaionze OEL Now.

 

SelectionList(#data.Fields['lista_ds'],'#oel.EqualsTo(Fields[''datacanone''].Month,#oel.Now().Month)')

 

La funzione SelectionList estrae dalla lista di dati strutturati lista_ds, tutti i dati strutturati il cui il mese del campo datacanone (Fields[''datacanone''].Month) è uguale a mese della data corrente (#oel.Now().Month). Il contesto di validazione dell'espressione di selezione è la riga della lista, che è un dato strutturato. Per riferirsi al campo specifico del dato strutturato si deve scrivere direttamente Fields e tra parentesi quadre il nome del campo. Tipicamente il nome del campo è specificato tra due apici (ad esempio Fields['datacanone']); nella espressione di selezione, che a sua volta è una stringa, è necessario aggiungere un escape per ogni apice previsto e quindi il nome del campo è racchiuso tra quattro singoli apici ''datacanone''. Se si utilizza il simbolo doppio apice il processo va in errore.

 

Esempio 4

Dato un modello di tipo Dati con un campo di tipo lista di numerici ListaNum, si vuole ottenere la media matematica di tutti i valori riportati nella lista con valore superiore a 10.

Si utilizza la funzione Avg valorizzando il parametro selectionExpression con un'espressione di selezione che sfrutta la funzione OEL:

Avg(#data.Fields['ListaNum'],null, '#this>10')

 

La funzione Avg restituisce la media di tutti i valori della lista ListaNum individuati mediante l'espressione di selezione racchiusa tra singoli apici '#this>10', #this serve per puntare all’elemento della lista da confrontare.