Gli attributi calcolo consentono di aggiungere funzioni logiche e matematiche per derivare i valori degli attributi. Possono essere incorporati all'interno di altri attributi calcolati per generare funzioni complesse. Gli attributi calcolati sono di sola lettura. Possono inoltre essere confrontati solo con le programmazioni.
Programmazioni: è possibile aggiungere qualsiasi calcolo, che verrà valutato a prescindere dall'assegnazione esplicita al task.
Template: non è possibile aggiungere come colonna o attributo filtrabile un attributo customizzato in cui è selezionata l'opzione Calcolo.
Quando gli amministratori aggiungono attributi alle sezioni Attributi nelle finestre di dialogo Azioni, tali attributi sono visibili agli utenti del flusso di lavoro. Gli amministratori possono limitare l'accesso a determinati ruoli impostandolo su Non visualizzare. Ad esempio, per l'attributo calcolato XYZ un amministratore può impostare l'accesso su Visualizzatore: Non visualizzare
in modo che l'attributo XYZ non venga visualizzato per gli utenti associati solo al ruolo Visualizzatore.
Qualsiasi ruolo utente può aggiungere attributi calcolati come colonne nelle viste e nei portlet. Possono anche essere aggiunti come attributi filtrabili nel pannello di filtri.
Per definire un attributo di calcolo, procedere come segue.
È possibile selezionare uno dei seguenti tipi di calcolo. I tipi disponibili sono determinati dal valore Tipo dell'attributo, ad esempio Testo, Numero intero e così via.
Assegna valore a elenco: consente di assegnare valori customizzati a un attributo di tipo Elenco.
Assegna elenco a valore: consente di assegnare valori di elenco customizzati ai valori di un altro attributo. Disponibile solo per gli attributi di tipo Elenco.
Condizionale: un calcolo condizionale (If - Then - Else).
Con script: un calcolo con script in formato libero. Disponibile solo per attributi di tipo Numero intero, Testo su più righe, Numero o Testo.
Nella seguente tabella sono elencati i tipi di calcolo disponibili per ogni tipo di attributo.
Tipo di attributo | Assegna valore a elenco | Condizionale | Con script | Assegna elenco a valore |
---|---|---|---|---|
Data | ||||
Data e ora | ||||
Numero intero | X | X | X | |
Elenco | X | X | ||
Testo su più righe | X | X | X | |
Numero | X | X | X | |
Testo | X | X | X | |
Vero/Falso | X | |||
Utente | ||||
Sì/No | X |
Definizione calcolo
Il tipo di calcolo Con script consente di immettere un'equazione di calcolo in formato libero. È possibile utilizzare Aggiungi attributo e Aggiungi funzione.
Aggiungi attributo: selezionare un attributo e inserirlo nella casella Definizione calcolo nella posizione del cursore. Se il cursore si trova a metà di una parola o di un attributo, questi verranno sostituiti nella definizione. Il formato di script racchiude mediante parentesi graffe {} il nome del nuovo attributo.
Gli unici attributi disponibili sono gli attributi pianificazione.
Aggiungi funzione: selezionare una funzione e aggiungerla alla definizione del calcolo. La funzione viene aggiunta con segnaposto per ogni parametro.
Esempio: inserimento della funzione DATE_DIFF nella definizione del calcolo.
DATE_DIFF(<Data1>, <Data2>, <Tipo>)
Sostituire quindi i segnaposto con gli attributi.
DATE_DIFF( {Start Date}, {End Date}, 'DAYS')
Funzioni numeriche e funzioni data
Valore assoluto: restituisce il valore assoluto di un numero specificato. Se un numero è inferiore a zero, viene restituito il valore positivo del numero. Se il numero specificato è maggiore o uguale a zero, viene restituito il numero specificato.
ABS(<Number>)
Aggiungi mese: restituisce una data con un offset di un numero specificato di mesi rispetto alla data iniziale. La data rientrerà sempre nell'offset mese specificato. Se la data iniziale ha un valore giorno che supera il mese di offset, viene utilizzato l'ultimo giorno del mese di offset. Ad esempio, EDate (31-gen-2017, 1) restituisce (28-feb-2017). Per Mesi, immettere il numero di mesi prima o dopo la data iniziale. Un valore positivo per i mesi restituisce una data futura. Un valore negativo restituisce una data passata.
ADD_MONTH(<Start Date>, <Months>, <Length>)
Esempio: ADD_MONTH(DATE(2017, 2, 15) 3)
Data: restituisce un valore di data basato sui valori interi specificati per l'anno, il mese e il giorno.
DATE(<Anno>, <Mese>, <Giorno>)
Differenza di data: restituisce la differenza in anni, mesi, giorni, ore, minuti o secondi tra due date. Per DATE 1 e DATE 2, si possono utilizzare i valori TODAY e NOW, a indicare rispettivamente la data corrente (senza il componente orario) e la data/ora.
DATE_DIFF(<Data1>, <Data2>, <Tipo>)
Esempio: DATE_DIFF( {Start Date}, 'TODAY', 'DAYS')
DAY: restituisce il valore del giorno di una data sotto forma di numero intero
DAY(<DATE>)
Estrai testo:: restituisce la sottostringa con il valore delle posizioni specificate.
SUBSTRING(<Valore>, <Posizione>, <Lunghezza>)
Esempio: SUBSTRING( {Name}, 4, 10)
If Then Else: consente di inserire un calcolo condizionale nel calcolo con script. I calcoli IF_THEN_ELSE possono essere nidificati in modo da supportare anche i calcoli di tipo ELSE IF.
IF_THEN_ELSE(<Condition>, <Value1>, <Value2>)
Esempio: IF_THEN_ELSE( ( {Priority} = 'Low'), 1,IF_THEN_ELSE( ( {Priority} = 'Medium'), 2, IF_THEN_ELSE( ( {Priority} = 'High'), 3, 0)))
Esempio: IF_THEN_ELSE( ( {Priority} = 'Low'), 'Good' IF_THEN_ELSE( ( {Priority} = 'Medium'), 'Better'. 'Best') )
Instring: restituisce l'indice della sottostringa all'interno del valore.
INSTRING(<Valore1>, <Valore da cercare>)
Esempio: INSTRING({Name}, 'a')
Length: accetta un valore di testo come parametro e restituisce un numero intero che indica il numero di caratteri nel testo. Se il valore è vuoto o nullo, il calcolo restituirà 0.
Length ({<attribute>})
Esempio: LENGTH("Value")
restituirebbe 5, mentre LENGTH({Name})
restituirebbe il numero di caratteri nel nome dell'oggetto.
Utilizzare il calcolo con SUBSTRING per estrarre gli ultimi quattro caratteri di un valore di testo.
SUBSTRING( {MyString}, LENGTH ({MyString}) - 4
Minuscolo: restituisce il valore in minuscolo
LOWERCASE(<Value>)
Esempio: LOWERCASE ({Task Code})
Massimo: restituisce il valore massimo da un elenco di attributi. Può esservi un numero qualsiasi di parametri.
MAX <Valore1>, <Valore2>, <ValoreN>)
Esempio: MAX( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )
Minimo: restituisce il valore minimo da un elenco di attributi. Può esservi un numero qualsiasi di parametri.
MIN <Valore1>, <Valore2>, <ValoreN>)
Esempio: MIN( {Scripted Substring Loc a}, {Scripted Substring Loc s}, {Scripted Substring Loc t} )
Mese: restituisce il valore del mese di una data sotto forma di numero intero (1-12)
MONTH (<DATE>)
Potenza: eleva un numero alla potenza esponenziale di un altro.
POWER(x,y) in cui x=BASE NUMBER e y=EXPONENT
e x e y possono essere attributi o calcoli purché siano numerici.
Esempio: POWER(3,4)=81
Nota:
I numeri frazionari ridurranno il numero alla sua radice. Ad esempio, POWER(27, 1/3) = 3
la radice del cubo.
I valori negativi eseguiranno un'operazione inversa a quella del calcolo esponenziale. Ad esempio, POWER(2, -2) = 1 / (2^2) = 1 / 4 = .25
.
Arrotonda: restituisce il valore arrotondato al numero specificato di posizioni decimali
ROUND <Attributo>, <Posizioni decimali>)
Esempio: ROUND( ({Scripted Substring Loc t} / 7), '4')
Posizione testo: restituisce l'indice della sottostringa all'interno del valore, partendo da 1 come prima posizione.
INSTRING(<Valore>, <Valore da cercare>)
Esempio: INSTRING( UPPERCASE( {Name} ), 'TAX' )
Maiuscolo: restituisce il valore in maiuscolo.
UPPERCASE(<Value>)
Esempio: UPPERCASE( {Name} )
Anno: restituisce il valore dell'anno di una data sotto forma di numero intero.
YEAR (<DATE>)
Convalida del calcolo
Quando il calcolo viene salvato, vengono effettuati i seguenti controlli di convalida.
La sintassi del calcolo è corretta.
Le funzioni e gli attributi specificati nel calcolo esistono effettivamente.
I parametri per le funzioni sono corretti.
Non esistono loop circolari.