Tipi di variabile

È possibile utilizzare i tipi di variabile forniti dai toolkit di sistema, come il toolkit Dati di sistema, oppure è possibile creare oggetti di business personalizzati, a seconda dei requisiti dei dati di business inclusi nel processo.

I toolkit di sistema vengono forniti in Business Automation Studio in modo che ogni automazione del flusso di lavoro e toolkit creato abbiano accesso ai dati di sistema comuni. I toolkit di sistema forniscono le seguenti categorie di variabili:

Tipi di base
I tipi di base consentono di creare tipi di variabili personalizzate denominati oggetti di business. Per un elenco di tutti i tipi di base, vedere la tabella seguente.
Tipi di sistema
I tipi di sistema sono tipi di variabili forniti che non è possibile modificare. Per un elenco di tutti i tipi di sistema, consultare l'API JavaScript nei processi e nei flussi di servizio.
Questa tabella fornisce ulteriori informazioni sugli oggetti di business di tipo base forniti nei toolkit di sistema.
Tabella 1. Tipi di base forniti
Tipi di base Descrizione
String Consente l'immissione di caratteri alfanumerici nella variabile
Integer Accetta cifre senza una posizione decimale compresa nell'intervallo tra -2147483648 e 2147483647, ad esempio 45 o 20
Decimal Accetta cifre con posizioni decimali con precisione doppia IEEE 754, ad esempio 45.3 o 20.13
Date Consente di immettere i formati di data e ora nella variabile
Time Consente di immettere i formati data nella variabile come ore. L'utente immette un'ora; prima che la variabile venga immessa nella tabella dei simboli, viene convertita in una data.
Selection Consente di fornire un elenco di voci possibili a un utente, da cui l'utente può selezionarne solo una. Una selezione è un elenco di valori differenti; ogni valore è una stringa. In fase di runtime, una variabile di selezione viene visualizzata in un modulo coach come un elenco o come pulsanti di opzione.
Boolean Accetta true o false come valori. Il valore booleano appare al runtime su un modulo coach come casella di spunta.
Structure Per utilizzare un tipo di struttura, è necessario creare un tipo di struttura personalizzata e definirne le proprietà. Una struttura raggruppa i dati di business correlati allo stesso soggetto. Ad esempio, una struttura Customer potrebbe contenere elementi come lastName, firstName, homeNumber, streetAddress.

Tipi di variabili personalizzate

I tipi di variabile personalizzati vengono definiti utilizzando gli oggetti di business. Se gli oggetti di business predefiniti forniti nei toolkit di sistema non rappresentano le proprie esigenze, è possibile creare i propri oggetti di business. Per ulteriori informazioni sugli oggetti aziendali generali forniti nel toolkit Dati di sistema, vedere Toolkit Dati di sistema.

Convalida per i tipi di variabile personalizzati
È possibile definire le impostazioni di convalida per i tipi di variabile personalizzati che utilizzano una definizione di tipo semplice. Queste regole di convalida vengono verificate nelle situazioni seguenti:
  • Quando si assegna un valore a una variabile in un processo o un servizio di tale tipo, ad esempio quando uno script assegna un valore a una variabile tw.local o a un'associazione di output in cui un risultato del servizio viene mappato in una variabile tw.local , il valore viene convalidato.
Convalida per i tipi di variabili personalizzate Integer e Decimal
Per le definizioni di oggetti di business interi e decimali, è possibile definire valori minimi e massimi per specificare un intervallo. Ad esempio, se si specificano un valore minimo pari a 0 e un valore massimo pari a 100, entrambi inclusi, si avrà un tipo che potrebbe essere utilizzato per una variabile in cui gli utenti specificano una percentuale che non può essere negativa o superiore al 100%.

Specificando la precisione e la scala, è possibile limitare il numero decimale e le posizioni decimali di un numero.

Specificare il modo in cui le impostazioni di convalida devono essere interpretate nella configurazione dell'oggetto di business della configurazione del server.

Tabella 2. Proprietà di convalida di precisione e scala
Proprietà Immettere Valore predefinito Descrizione
precision-validation-on-server-enabled Booleano No

Utilizzato per abilitare la convalida dell'impostazione di precisione quando viene impostata una variabile.

precision-validation-strip-trailing-zeros Booleano No

Utilizzato per rimuovere gli zero finali da dietro il punto decimale prima che la precisione venga convalidata

precision-validation-type enum (equals, lessOrEquals ) uguale a

Se questa proprietà è impostata su equal, la precisione del valore della variabile deve essere uguale a quella specificata nel tipo di variabile. Se la proprietà è impostata su lessOrEquals, la precisione del valore della variabile deve essere uguale o inferiore a quanto specificato nel tipo di variabile.

scale-validation-strip-trailing-zeros Booleano No

Utilizzato per rimuovere gli zeri finali da dietro il punto decimale prima che la scala venga convalidata

scale-validation-type enum (equals, lessOrEquals ) uguale a

Se questa proprietà è impostata su equals, la scala del valore della variabile deve essere uguale a quanto specificato nel tipo di variabile. Se la proprietà è impostata su lessOrEquals, la scala del valore deve essere uguale o inferiore a quanto specificato nel tipo di variabile.

Il seguente esempio mostra come impostare il valore di precisione come 5 e il valore di scala come 2 per un tipo di variabile.
Se si imposta la proprietà precision-validation-on-server-enabled su true ma si mantengono tutte le altre impostazioni sul valore predefinito, è valido il seguente valore:
  • 123.45
I seguenti valori non sono validi:
  • 1234.56 (precisione errata, 6 invece di 5)
  • 12.34 (precisione errata, 4 invece di 5)
  • 12.345 (scala errata, 3 invece di 2)
  • 1234.1 (scala errata, 1 invece di 2)

Anche la seguente espressione JavaScript causa un errore di convalida perché JavaScript rimuove gli zeri finali al runtime prima di assegnare il valore:

tw.local.variable = 123.40

La seguente espressione JavaScript non causa un errore di convalida perché la stringa viene convalidata correttamente e quindi automaticamente convertita in un numero per impostare il valore della variabile:

tw.local.variable = "123.40"

Per utilizzare le impostazioni di precisione e scala come equivalenti di schema XML totalDigits e fractionDigits, è necessario impostare gli indicatori di configurazione come mostrato nella tabella seguente:
Tabella 3. Impostazioni di convalida di precisione e scala equivalenti a totalDigits e fractionDigits classi di schema XML
Impostazione Immettere
precision-validation-on-server-enabled vero, true
precision-validation-strip-trailing-zeros vero, true
precision-validation-type lessOrEquals
scale-validation-strip-trailing-zeros vero, true
scale-validation-type lessOrEquals
Lo stesso tipo di variabile utilizzato nell'esempio precedente considera validi i seguenti valori:
  • 123.45
  • 12.34
  • 123.4
  • 123
I seguenti valori non sono ancora validi:
  • 1234.56 (precisione errata, 6 invece di un massimo di 5)
  • 12.345 (scala errata, 3 invece di un massimo di 2)

Calcoli numerici negli script

È possibile utilizzare JavaScript per programmare all'interno di un processo o fase di servizio. La precisione doppia viene utilizzata per memorizzare valori numerici per le variabili.

Quando si eseguono calcoli negli script, prestare attenzione ai limiti che possono raggiungere questa precisione. Ad esempio, quando si aggiunge 1000.06 + 0.01, il risultato matematicamente corretto è 1000.07. Tuttavia, se si sommano i numeri in JavaScript, il risultato è 1000.0699999999999

Se si richiedono calcoli matematicamente corretti, eseguire questi calcoli al di fuori del codice JavaScript . Ad esempio, è possibile utilizzare le classi BigDecimal e BigInteger per eseguire calcoli con la massima precisione in un programma Java. Se è necessario memorizzare il risultato con precisione completa in una variabile di processo o di servizio, è possibile formattare il numero come stringa e utilizzare il tipo di dati Stringa per la variabile.

Limitazione Un valore NaN o Infinity non può essere memorizzato nel database per una variabile di processo visibile in Workplace. Se si calcola il valore di tale variabile, assicurarsi che il risultato non sia NaN o Infinity; in caso contrario, viene scritto un errore nel file SystemOut.log .