Definizione degli attributi di calcolo

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.

  1. Nella home page fare clic su Applicazione, quindi fare clic su Task Manager.
  2. Fare clic sulla scheda Attributi posta sulla sinistra.
  3. Fare clic su Nuovo, quindi nella scheda Proprietà completare il campo Nome per l'attributo e selezionare un Tipo di attributo.
  4. Selezionare l'opzione Calcolo.
  5. Nella scheda Calcolo selezionare un Tipo di calcolo.

È 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 è minore di zero, viene restituito il valore positivo del numero. Se il numero specificato è uguale o maggiore di zero, viene restituito il valore specificato.

    ABS(<Numero>)

  • 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(<Data inizio>, <Mesi>, <Durata>)

    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 anche nidificati in modo da supportare 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(<Valore>)

    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 di un altro numero.

    POWER(x,y) dove x=NUMERO BASE e y=ESPONENTE; x e y possono essere attributi o calcoli, ma devono necessariamente essere valori numerici.

    Esempio: POWER(3,4)=81

    Nota:

    I valori frazionari riducono il numero alla radice. Ad esempio, POWER(27, 1/3) = 3 la radice al cubo.

    I valori negativi eseguono un calcolo inverso a quello esponenziale. Ad esempio, POWER(2, -2) = 1 / (2^2) = 1 / 4 = 0,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(<Valore>)

    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.