Amministrazione avanzata > Adattamento di business object > Gestione di tipi e attributi > Utilizzo dell'utilità Gestione tipi e attributi > Gestione dei tipi > Pagina delle informazioni del tipo > Scheda Attributi > Creazione di un nuovo attributo > Formule degli attributi Calcolato
  
Formule degli attributi Calcolato
Gli attributi Calcolato utilizzano formule per derivare i propri valori dai valori di altri attributi Tali formule possono utilizzare sia valori di attributo che letterali per calcolare o generare un valore di attributo derivato.
È possibile immettere la formula nel campo Formula durante il passo Imposta proprietà della creazione dell'attributo calcolato o modificando il campo Formula nella pagina delle informazioni dell'attributo dopo avere creato l'attributo calcolato.
* 
Se un attributo che interessa un attributo calcolato viene modificato durante la creazione o la modifica di un oggetto, la formula non viene immediatamente rivalutata. Dopo l'elaborazione dell'azione di creazione o di modifica, la formula viene rivalutata e il valore dell'attributo Calcolato viene aggiornato.
Per informazioni su come gli attributi calcolati vengono visualizzati se inclusi in layout attributi, vedere Visualizzazione degli attributi.
La localizzazione dei risultati numerici di un attributo calcolato si basa sulle impostazioni locali del browser.
Tipi di dati nelle formule
Le formule supportano solo gli attributi dei seguenti tipi di dati: Stringa, Numero intero, Numero reale, Numero reale con unità, Collegamento ipertestuale, Data e ora e Booleano. Il risultato della formula deve corrispondere al tipo di dati specificato dell'attributo calcolato, ma gli attributi di diversi tipi di dati possono essere utilizzati all'interno della formula stessa.
Quando si utilizzano attributi di tipi di dati differenti all'interno della formula, prima di eseguire l'operazione o la funzione, il sistema converte i tipi di dati nello stesso tipo richiesto per l'operazione o per la funzione utilizzata nella formula. Il risultato della formula è espresso con lo stesso tipo di dati. La conversione del tipo di dati viene applicata nell'ordine di priorità riportato di seguito.
1. Stringa - Se almeno un argomento nella formula presenta dati di tipo Stringa, tutti gli argomenti vengono convertiti in modo da presentare dati di tipo Stringa. I tipi di dati Collegamento ipertestuale e Data e ora vengono automaticamente convertiti in Stringa.
2. Numero reale con unità - Se almeno un argomento nella formula presenta dati di tipo Numero reale con unità, tutti gli argomenti vengono convertiti in modo da presentare dati di tipo Numero reale con unità.
3. Numero reale - Se almeno un argomento nella formula presenta dati di tipo Numero reale, tutti gli argomenti vengono convertiti in modo da presentare dati di tipo Numero reale.
4. Numero intero - Se almeno un argomento nella formula presenta dati di tipo Numero intero, tutti gli argomenti vengono convertiti in modo da presentare dati di tipo Numero intero.
5. Booleano
Ad esempio, nella formula attrA + attrB, se attrA è un tipo di dati Stringa e attrB è un tipo di dati Numero reale, attrB viene convertito in un tipo di dati Stringa e concatenato con attrA. Se il valore di attrA è Risultato: e il valore di attrB è 1.5, il risultato della formula è Risultato: 1.5.
Analogamente, se attrC è un tipo di dati Numero intero e attrD è un tipo di dati Numero reale, nella formula attrC * attrD, attrC viene convertito in un tipo di dati Numero reale e il risultato della formula è un tipo di dati Numero reale.
Il sistema valuta la formula immessa quando l'attributo calcolato viene salvato. Se il tipo di dati del risultato della formula non corrisponde al tipo di dati dell'attributo calcolato, viene restituito un errore e la formula non viene salvata. Il tipo di dati del risultato di una formula può essere convertito modificando la modalità di specifica della formula. Di seguito <formula> è la formula originale di cui si sta convertendo il tipo di dati.
Per convertire una formula che restituisce un tipo di dati Booleano, Numero intero, Numero reale o Numero reale con unità in un tipo di dati Stringa, immettere quanto segue nel campo Formula:
""+(<formula>)
Per convertire una formula che restituisce un tipo di dati Booleano, Numero intero o Numero reale in un tipo di dati Numero reale con unità, immettere quanto segue nel campo Formula:
unit("1.0000000000000")*(<formula>)
(Per mantenere il risultato originale con la massima precisione sono necessari almeno tredici zero.)
Per convertire una formula che restituisce un tipo di dati Booleano o Numero intero in un tipo di dati Numero reale, immettere quanto segue nel campo Formula:
1.0*(<formula>)
Per convertire una formula che restituisce un tipo di dati Booleano in un tipo di dati Numero intero, immettere quanto segue nel campo Formula:
1*(<formula>)
Esempio: calcolo di un valore numerico
Utilizzare gli operatori e i nomi interni degli attributi per generare formule che calcolano il valore dell'attributo desiderato (è necessario utilizzare il Nome interno di un attributo nelle formule, piuttosto che il Nome visualizzato).
Ad esempio, per calcolare il valore di un attributo Costo totale che deve essere il prodotto del valore dell'attributo Quantità moltiplicato per il valore dell'attributo Costo unitario sommato al valore dell'attributo Tassa di gestione, è possibile utilizzare la seguente formula:
(quantity*unitCost)+fee
Esempio: combinazione dei valori degli attributi non numerici
Le formule possono essere utilizzate anche per combinare valori di attributi non numerici.
Se ad esempio è stato creato un attributo calcolato denominato ID, è possibile combinare i valori degli attributi Nome e Numero del tipo come valore dell'attributo ID utilizzando la formula descritta di seguito.
name+"("+number+")"
Il valore dell'attributo ID sarebbe MyDocument(0001A).
Funzioni supportate
* 
Non esistono funzioni con più valori attualmente supportate per gli attributi calcolati.
Sono supportate le funzioni riportate di seguito.
Funzione
Descrizione
isNull( )
Controllo nullo
unit( )
Convertire il tipo di dati Stringa nel tipo di dati Numero reale con unità
str( )
Convertire il numero nel tipo di dati Stringa
abs( )
Valore assoluto o grandezza
avg( )
Media di un elenco di valori
sum( )
Somma di un elenco di valori
min( )
Minimo di un elenco di valori
max( )
Massimo di un elenco di valori
arrotondamento()
Converte un numero con un numero decimale (numero reale) in un numero intero
Quando il numero decimale contiene 0,5, il numero viene arrotondato a un valore pari, ad esempio 30,5 viene arrotondato per difetto a 30 e 31,5 viene arrotondato per eccesso a 32
Quando il numero decimale contiene altri numeri, il numero viene arrotondato al valore più vicino, ad esempio 30,8 viene arrotondato per eccesso a 31 e 33,4 viene arrotondato per difetto a 33
mod()
Restituisce il resto di un numero diviso per un altro numero. (Solo tipi di dati Intero)
${}
Racchiude i nomi interni di attributo contenenti caratteri speciali per consentirne l'utilizzo nella formula. Possono essere racchiusi tutti i nomi interni di attributo, ma quelli contenenti il trattino (-), il segno del dollaro ($) o le parentesi quadre ([]) devono esserlo quando vengono utilizzati nelle formule. Gli attributi con i nomi interni my-attribute o my[very$complex]-attribute, ad esempio, possono essere utilizzati in una formula se racchiusi come riportato di seguito.
${my-attribute}
${my[very$complex]-attribute}
Se gli attributi utilizzati nella sezione Esempio: calcolo di un valore numerico avessero nomi interni contenenti caratteri speciali, la formula dell'attributo Costo totale potrebbe essere visualizzata come riportato di seguito.(${item-quantity}*${unit-cost})+${handling-fee}
Operatori supportati
Sono supportati gli operatori descritti di seguito.
Operatore
Descrizione
+
Addizione; può essere utilizzata anche per concatenare stringhe
-
Sottrazione
*
Moltiplicazione
/
Divisione
( )
Parentesi aperte e chiuse che indicano una priorità diversa nell'ordine delle operazioni (le operazioni all'interno della parentesi devono essere eseguite per prime)
" "
Virgolette doppie che indicano che il contenuto delle virgolette è una stringa letterale. Tutti i caratteri non numerici non compresi nelle virgolette doppie sono gestiti come nome attributo
>
maggiore di
<
minore di
>=
maggiore o uguale a
<=
minore o uguale a
==
uguale a
!=
Non uguale
^
Potenza o elevamento a potenza
&
AND
|
Oppure
~
Non
^*
Or esclusivo
&&
AND
||
Oppure
!
Non
? :
Operatore condizionale che indica il risultato se la condizione specificata è vera o falsa:
(condizione) ? valore se vera : valore se falsa
Si supponga ad esempio che un tipo dispone di attributi di lunghezza, larghezza e forma, in cui la forma è un attributo calcolato con la formula descritta di seguito.
(lunghezza>larghezza) ? "più lungo" : "più largo"
Se il valore dell'attributo di lunghezza è maggiore del valore dell'attributo di larghezza, all'attributo di forma viene assegnato un valore più lungo. Se il valore dell'attributo di lunghezza non è maggiore del valore dell'attributo di larghezza, all'attributo di forma viene assegnato un valore più largo.
%
Resto