<< Fare clic per visualizzazione il sommario >> Percorso: Il linguaggio OEL > Funzioni > SelectionList |
Restituisce la selezione degli elementi di una lista ottenuta applicando l'espressione di selezione indicata.
Ad esempio, data una lista di dati strutturati che contengono campi di tipo testo breve, la funzione SelectionList restituisce, in un lista, le righe di dati strutturati che verificano un'espressione di selezione specifica. Nella figura seguente viene illustrato il risultato di una SelectionList, applicata ad una lista di dati strutturati, con espressione di selezione che verifica se la proprietà tre è uguale a w.
Esempio SelectionList
Funzione
SelectionList(IList list, String selectionExpression)
Input |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
list |
Lista di partenza. |
|
|
selectionExpression |
Espressione di selezione. |
String |
|
Output |
|||
Nome |
Descrizione |
Tipo |
Opzionale |
returnValue |
Lista ottenuta applicando l'espressione di selezione alla lista di partenza. |
ArrayValue |
|
Commenti
L'espressione di selezione selectionExpression è di tipo stringa e come variabile di contesto fa riferimento alle righe della lista list. Per utilizzare nell'espressione di selezione una funzione della libreria OEL è necessario utilizzare il contesto #oel. Per invece riferirsi all'elemento della lista in valutazione occorre utilizzare la variabile di contesto #this.
Esempio 1
Data una lista di testi brevi (campo ElencoMail), si vuole ottenere una lista di elementi unici, non vuoti e non nulli.
Le funzioni OEL da utilizzare saranno la DistinctList per ottenere gli elementi unici e la SelectionList per ottenere gli elementi non vuoti e non nulli applicando un'espressione di selezione che sfrutta la funzione OEL NotNull.
DistinctList(SelectionList(#processVariables.Fields['ElencoMail'],'#oel.NotNull(#this)'),false) |
La 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. #this serve per puntare all’elemento della lista da confrontare. #oel.NotNull serve a richiamare la funzione OEL NotNull all'interno dell'espressione di selezione.
La DistinctList con il parametro includeNull pari a false restituisce la lista di cui sopra, composta però da elementi unici, non nulli (rimuove duplicazioni e null).
Esempio 2
Data una lista di dati strutturati che contengono due campi numerici decimali denominati minimo e massimo, si vuole ottenere la lista dei dati strutturati il cui valore del campo minimo è maggiore di 1.
La funzione di OEL da utilizzare sarà la SelectionList applicando 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 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 i due volte il singolo apice ''minimo''. Se si utilizza il simbolo doppio apice il processo va in errore.
Esempio 3
Data una lista di dati strutturati che contengono un campo denominato datacanone di tipo data e orario, si vuole ottenere la lista dei dati strutturati il cui valore del campo datacanone è uguale a quello del mese corrente.
La funzione di OEL da utilizzare sarà la SelectionList applicando 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 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 delle 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 i due volte il singolo apice ''datacanone''. Se si utilizza il simbolo doppio apice il processo va in errore.