Di seguito sono riportati gli elenchi delle funzioni disponibili.
Funzioni su data e ora
Nome del campo | Descrizione e esempio |
---|---|
fn.datetostr(date, pattern) | Converte una data in un valore string .Esempio: fn.datetostr(contact.values.BIRTHDATE, 'dd/MM/yyyy') |
fn.datetostr_tz(date, pattern, timezoneId) | Converte una data in un valore string . Questa funzione viene applicata utilizzando un fuso orario specifico.Esempio: fn.datetostr_tz(contact.values.BIRTHDATE, 'dd/MM/yyyy', 'Europe/Rome') |
fn.strtodate(date, pattern) | Converte un valore string in una data.Esempio: fn.strtodate(contact.values.MYFIELD, 'dd/MM/yyyy HH:mm') |
fn.strtodate_tz(date, pattern, timezoneId) | Converte una stringa in un valore date . Questa funzione viene applicata utilizzando un fuso orario specifico.Esempio: fn.strtodate_tz(contact.values.MYFIELD, 'dd/MM/yyyy HH:mm', 'Europe/Rome') |
fn.now() | Restituisce la data e l'ora correnti. |
fn.today() | Restituisce la data odierna con l'ora impostata a 00:00:00. |
fn.today_tz(timezoneId) | Restituisce la data di oggi con l'ora impostata alle 00:00:00 nel fuso orario specificato. |
fn.midnight(date) | Restituisce la data indicata con l'ora impostata a 00:00:00. |
fn.midnight_tz(date, timezoneId) | Restituisce la data indicata con l'ora impostata a 00:00:00 nel fuso orario specificato. |
fn.dateadd(date, offset, unit) | Aggiunge un valore temporale a una data in un'unità specifica (anno, mese, giorno, ora, minuto, secondo, giorno della settimana). Esempio: fn.dateadd(contact.values.EXPIREDATE, -2, 'day') |
fn.dateadd_tz(date, offset, unit, timezoneId) | Aggiunge un valore temporale a una data in un'unità specifica (anno, mese, giorno, ora, minuto, secondo, giorno della settimana). Questa funzione viene applicata utilizzando un fuso orario specifico. Esempio: fn.dateadd_tz(contact.values.EXPIREDATE, -2, 'day', 'Europe/Rome') |
fn.datediff(date1, date2, unit) | Restituisce un int che rappresenta la differenza tra due date in un'unità specificata (anno, mese, giorno, ora, minuto, secondo, giorno della settimana).Esempio: fn.datediff(fn.now(), contact.values.EXPIREDATE, 'day') |
fn.datepart(date, unit) | Restituisce una string che rappresenta la parte di una data che corrisponde all'unità data (anno, mese, giorno, ora, minuto, secondo, giorno della settimana).Esempio: fn.datepart(contact.values.EXPIREDATE, 'mese') |
fn.datepart_tz(date, unit, timezoneId) | Restituisce una string che rappresenta la parte di una data che corrisponde all'unità data (anno, mese, giorno, ora, minuto, secondo, giorno della settimana).Questa funzione viene applicata utilizzando un fuso orario specifico. Esempio: fn.datepart_tz(contact.values.EXPIREDATE, 'month', 'Europe/Rome') |
fn.age(borndate) | Restituisce un int che rappresenta l'età basata su una data, in anni.Esempio: fn.age(contact.values.BIRTHDATE) |
fn.age_tz(borndate, timezoneId) | Restituisce un int che rappresenta l'età in base a una data, in anni. Questa funzione viene applicata utilizzando un fuso orario specifico.Esempio: fn.age(contact.values.BIRTHDATE) |
fn.anniversary(borndate) | Restituisce la data dell'anniversario (se già passata, la data del prossimo anniversario). |
fn.anniversary_tz(borndate, timezoneId) | Restituisce la data dell'anniversario (se già passata, la data del prossimo anniversario). Questa funzione viene applicata utilizzando il fuso orario indicato. |
Funzioni sulle stringhe
Nome del campo | Descrizione e esempi |
---|---|
fn.ucase(string) | Converte una stringa in MAIUSCOLO. Se applicata a un elenco, la funzione viene applicata a tutti i suoi elementi. |
fn.lcase(string) | Converte una stringa in minuscolo. Se applicata a un elenco, la funzione viene applicata a tutti i suoi elementi. |
fn.capitalcase(string) | Mette in maiuscolo la prima lettera di ogni parola e rende minuscole le altre. Se applicata a un elenco, la funzione viene applicata a tutti i suoi elementi. |
fn.trim(string) | Rimuove tutti gli spazi non necessari da una stringa. |
fn.left(value, maxchars) | Restituisce la parte sinistra di una stringa o di un elenco pari al numero di caratteri/elementi specificato. |
fn.right(value, maxchars) | Restituisce la parte destra di una stringa o di un elenco pari al numero di caratteri/elementi specificato. |
fn.mid(value, from, to) | Estrae una parte di una stringa o di un elenco (from=0 è il primo elemento, to è sempre richiesto). |
fn.len(object) | Restituisce la lunghezza di una stringa o di un elenco. |
fn.concat(var1, var2) | Concatena la rappresentazione in stringa di due variabili. I valori null sono trattati come stringhe vuote. Per i valori di data/timestamp, è meglio formattarli usandofn.strtodate_tz . |
fn.if(condition, value1, value2) | Se la condizione è vera, restituisce il valore1, altrimenti restituisce il valore2. I valori accettati per la condizione sono: true, false, 'true', 'false', '0', '1', 0, 1. |
fn.ifempty(value, defaultvalue) | Se la stringa è vuota o “”, restituisce il valore specificato, altrimenti restituisce il valore originale. |
fn.if_function(condition, truevalue, falseValue) | Funzione condizionale simile all'operatore ternario. |
fn.coalesce(var, defaultvalue) | Se var è vuoto, restituisce il valore specificato, altrimenti restituisce il valore originale. Esempio: fn.coalesce(contact.values.ORDERS, 0) |
fn.base64_encode(string) | Codifica una stringa utf-8 utilizzando la codifica base64 . |
fn.base64_decode(value) | Decodifica una stringa base64 |
fn.url_encode(string) | Codifica l'URL di una stringa |
fn.url_decode(string) | Decodifica una stringa dalla rappresentazione del parametro URL querystring , utilizzando la codifica utf-8 (java URLDecoder.decode). |
fn.url_appendparameter (url,name,value) |
Tratta un url come un URL e aggiunge alla querystring un parametro chiamato name con value dopo il simbolo “?” e prima del simbolo “#”.Il valore DEVE essere già codificato, utilizzando la funzione url_encode. |
fn.url_appendfragmentparameter(url, name, value) |
Aggiunge un parametro di frammento a un URL. Esempio: fn.url_appendfragmentparameter(page.url, "section", "comments") |
fn.replace(target, value, replacement) | Sostituisce tutte le occorrenze nella stringa indicata. |
fn.strtonumber(numer_as_string, decimal_separator) | Converte la stringa in un numero. Se il separatore_decimale è diverso da null, viene considerato per la conversione. |
fn.md5(var) | Restituisce una stringa che rappresenta il valore calcolato dall'algoritmo MD5 e stampato in base 16. |
fn.sha1(var) | Restituisce una stringa che rappresenta il valore calcolato con l'algoritmo SHA-1 e stampato in base 16. |
fn.sha256(var) | Restituisce una stringa che rappresenta il valore calcolato dall'algoritmo SHA-256 e stampato in base 16. |
fn.sha512(var) | Calcola l'hash SHA-512 di una stringa o di un array di byte. |
fn.preg_replace(regex_pattern, replacement, target) | Applica una sostituzione tramite regexp alla stringa con sostituzione. |
Funzioni sulle liste
Nome del campo | Descrizione e esempi |
---|---|
fn.strtolist(string, separator) | Converte una stringa in un elenco utilizzando il separatore specificato. Esempio: fn.strtolist('Italia,Francia,UK', ',') |
fn.listtostr(list, separator) | Converte un elenco in una stringa utilizzando il separatore specificato. Esempio: fn.listtostr(contact.values.COUNTRY, ',') |
fn.randomelement(list) | Restituisce un elemento da un insieme o da un elenco di stringhe separate da virgole. Esempio: fn.randomelement('Rosso,Giallo,Verde') |
fn.sort(list,direction) | Ordina un elenco utilizzando una funzione di ordinamento naturale (alfabetico per le stringhe). Utilizzare direction='asc' per l'ordinamento ascendente e direction='desc' per quello discendente.Qualsiasi altro valore viene trattato come asc . |
fn.sortby(list,field,direction) | Ordina un elenco di record utilizzando il valore del campo di ciascun record. Usare direction='asc' per salire e direction='desc' per scendere.Qualsiasi altro valore viene trattato come asc . |
fn.filter(list,condition) | Filtra un elenco di record in base alla “condizione” valutata su ciascun record. Per valori primitivi come stringhe o numeri, utilizzare la parola chiave speciale this per riferirsi al valore.Esempio con i record: fn.filter(myqueryresultset,'name eq “xx”') Esempio con valori primitivi: fn.filter(fn.strtolist('Italy,France,UK', ','),'this contains “tal”') |
fn.extract(list, fieldname) | Estrae ilfieldname da ciascun elemento dell'elenco e restituisce un elenco di tali valori nello stesso ordine.Esempio: fn.extract(listofperson, 'nome') |
fn.compose(list, fieldname) | Costruisce un elenco di record (coppie campo-valore), ogni elemento avrà un campo chiamato fieldname contenente il valore corrispondente dall'elenco originale (stesso ordine). |
fn.first(list) | Restituisce il primo elemento dell'elenco/collezione dato. |
fn.last(list) | Restituisce l'ultimo elemento dell'elenco/collezione dato. |
fn.elementAt(list, index) | Restituisce l'elemento in posizione index nell'elenco (l'indice inizia da 0). |
Funzioni matematiche e di conversione
Nome del campo | Descrizione e esempi |
---|---|
fn.round(var) | Restituisce un valore numerico arrotondato. |
fn.max(a,b) | Restituisce il maggiore tra due valori numerici o due date. |
fn.min(a,b) | Restituisce il minore tra due valori numerici o due date. |
fn.abs(var) | Restituisce il valore assoluto. |
fn.random(min,max) | Restituisce un numero intero compreso tra i valori minimo e massimo specificati (inclusi). |
fn.json_encode(obj) | Converte l'oggetto dato in una stringa JSON. |
fn.json_decode(string) | Converte la stringa JSON data nell'oggetto corrispondente. |
Nota: le funzioni di gestione della data utilizzano il fuso orario dei contatti per i quali viene eseguito il codice.
Funzioni mn
Le mn:function sono utilizzate nei template Giotto per valorizzare tempvar e staticvar attraverso funzioni specifiche. Si dichiarano nel markup usando l’attributo mn:function, specificando il nome della funzione. Se la funzione richiede argomenti, si utilizzano attributi mn:arg1, mn:arg2 ...
Nome funzione | Descrizione e esempi |
---|---|
svgtopng | Converte un file SVG in un’immagine PNG, sostituendo eventuali colori e impostando la dimensione. La sintassi prevede:
Esempio: <meta mn:staticvar mn:name="convertedimage" mn:function="svgtopng" mn:arg1="svgsource.svg" mn:arg2="svgdest.png" mn:arg3="#000000" mn:arg4="#ff0000" mn:arg5="32"> |