Funzioni utilizzate nel Generatore di espressioni di Orchestration Pipelines
Utilizza queste funzioni negli editor di codice delle pipeline, ad esempio per definire una variabile utente o creare una condizione avanzata.
Per visualizzare le funzioni Pipelines trasferite da DataStage, vedere Funzioni DataStage utilizzate in Expression Builder per le pipeline.
- Tutti i tipi di input relativi a data, ora e timestamp vengono trattati come stringhe.
- Utilizza "//" per inserire i commenti.
L'Experssion Builder utilizza le categorie per le funzioni di codifica:
Funzioni di conversione
Converte il formato di un singolo elemento di dati in un altro.
Tabella per la conversione dei tipi di dati di base
| Tipo | Accetta | Risultati | Sintassi |
|---|---|---|---|
double |
int, uint, string |
double |
double(val) |
duration |
string |
duration |
duration(string) La durata deve terminare con "s", che sta per secondi. |
int |
int, uint, double, string, timestamp |
int |
int(val) |
timestamp |
string |
timestamp |
timestamp(string) Converte le stringhe in timestamp secondo lo standard RFC3339, ovvero ""1972-01-01T10:00:20.021-05:00". |
uint |
int, double, string |
uint |
uint(val) |
Esempio:
Ad esempio, per convertire un valore nel tipo double:
double(%val%)
Quando si esegue il doppio arrotondamento su int | uint, il risultato viene arrotondato verso lo zero e viene generato un errore se il risultato è fuori intervallo.
Funzioni standard
Funzioni esclusive di IBM Orchestration Pipelines.
sub
Sostituisce le sottostringhe di una stringa che corrispondono all'espressione regolare specificata, a partire dalla posizione offset.
Sintassi
(string).sub(substring (string), replacement (string), [occurrence (int), [offset (int)]])
restituisce: la stringa con le sottostringhe aggiornate.
Esempi
'aaabbbcccbbb'.sub('[b]+','RE')
Restituisce un oggetto di tipo ` 'aaaREcccRE' `.
formato
Formatta una stringa o un timestamp in base a un specificatore di formato e restituisce la stringa risultante.
Sintassi
format come metodo delle stringhe
(string).format(parameter 1 (string or bool or number)... parameter 10 (string or bool or number))
restituisce: la stringa contenente i valori inseriti, già formattati.
formato come metodo per i timestamp
(timestamp).format(layout(string))
restituisce: il timestamp formattato in formato stringa.
Esempi
'number=%d, text=%s'.format(1, 'str')
Restituisce la stringa « number=1, text=str».
timestamp('2020-07-24T09:07:29.000-00:00').format('%Y/%m/%d')
Restituisce la stringa «24/07/2020».
ora
Restituisce il timestamp corrente.
Sintassi
now()
restituisce: il timestamp corrente.
parseTimestamp
Restituisce il timestamp corrente in formato stringa.
Sintassi
parseTimestamp([timestamp_string(string)] [layout(string)])
Restituisce: il timestamp corrente come stringa di tipo string.
Esempi
parseTimestamp('2020-07-24T09:07:29Z')
Restituisce " '2020-07-24T09:07:29.000-00:00".
minuto
Restituisce il valore minimo presente nell'elenco.
Sintassi
(list).min()
restituisce: il valore minimo della lista.
Esempi
[1,2,3].min()
Restituisce il numero intero 1.
massimo
Restituisce il valore massimo presente nell'elenco.
Sintassi
(list).max()
restituisce: il valore massimo della lista.
Esempi
[1,2,3].max()
Restituisce il numero intero 3.
argmin
Restituisce l'indice del valore minimo nella lista.
Sintassi
(list).argmin()
restituisce: l'indice del valore minimo della lista.
Esempi
[1,2,3].argmin()
Restituisce il numero intero 0.
argmax
Restituisce l'indice del valore massimo presente nell'elenco.
Sintassi
(list).argmax()
restituisce: l'indice del valore massimo della lista.
Esempi
[1,2,3].argmax()
Restituisce il numero intero 2.
somma
Restituisce la somma dei valori presenti nell'elenco.
Sintassi
(list).sum()
restituisce: l'indice del valore massimo della lista.
Esempi
[1,2,3].argmax()
Restituisce il numero intero 2.
base64.decode
Decodifica una stringa di tipo « base64-encoded » in byte. Questa funzione restituisce un errore se la stringa immessa non è di tip base64-encoded e.
Sintassi
base64.decode(base64_encoded_string(string))
restituisce: la stringa " base64-encoded " decodificata in formato byte.
Esempi
base64.decode('aGVsbG8=')
Restituisce "hello" in byte.
base64.encode
Converte i byte in una stringa di tipo « base64-encoded ».
Sintassi
base64.encode(bytes_to_encode (bytes))
restituisce: la stringa codificata in formato « base64-encoded » del valore in byte originale.
Esempi
base64.decode(b'hello')
Restituisce un oggetto ` 'aGVsbG8=' ` in byte.
charAt
Restituisce il carattere presente nella posizione specificata. Se la posizione è negativa o superiore alla lunghezza della stringa, la funzione genera un errore.
Sintassi
(string).charAt(index (int))
Restituisce: il carattere nella posizione specificata in formato intero.
Esempi
'hello'.charAt(4)
Restituisce il carattere «o».
indexOf
Restituisce l'indice intero della prima occorrenza della stringa cercata. Se la stringa di ricerca non viene trovata, la funzione restituisce un errore di tipo « -1 ».
Sintassi
(string).indexOf(search_string (string), [offset (int)])
restituisce: l'indice della prima occorrenza del carattere dopo l'offset.
Esempi
'hello mellow'.indexOf('ello', 2)
Restituisce il numero intero 7.
lowerAscii
Restituisce una nuova stringa in cui i caratteri ASCII sono convertiti in minuscolo.
Sintassi
(string).lowerAscii()
restituisce: la nuova stringa in minuscolo.
Esempi
'TacoCat'.lowerAscii()
Restituisce la stringa «tacocat».
sostituire
Restituisce una nuova stringa basata sull'oggetto di destinazione, che sostituisce le occorrenze di una stringa di ricerca con una stringa di sostituzione, se presenti. La funzione accetta un limite facoltativo sul numero di sostituzioni di sottostringhe da effettuare.
Sintassi
(string).replace(search_string (string), replacement (string), [offset (int)])
restituisce: la nuova stringa in cui le occorrenze della stringa di ricerca sono state sostituite.
Esempi
'hello hello'.replace('he', 'we')
Restituisce la stringa «wello wello».
suddivisione
Restituisce un elenco di stringhe ottenute dividendo il testo di input in base al separatore. La funzione accetta un argomento facoltativo che specifica un limite al numero di sottostringhe risultanti dalla suddivisione.
Sintassi
(string).split(separator (string), [limit (int)])
Restituisce: la stringa suddivisa sotto forma di elenco di stringhe.
Esempi
'hello hello hello'.split(' ')
Restituisce la lista di stringhe ['ciao', 'ciao', 'ciao'].
sottostringa
Restituisce la sottostringa specificata in base a un intervallo numerico corrispondente alle posizioni dei caratteri. Se lo desideri, puoi omettere l'intervallo finale per ottenere una sottostringa che va da una determinata posizione fino alla fine della stringa.
Sintassi
(string).substring(start (int), [end (int)])
restituisce: la sottostringa all'indice specificato della stringa.
Esempi
'tacocat'.substring(4)
Restituisce la stringa «cat».
ritagliare
Restituisce una nuova stringa, eliminando gli spazi iniziali e finali dalla stringa di destinazione. La funzione trim utilizza la definizione Unicode di spazio bianco, che non include gli spazi di larghezza zero.
Sintassi
(string).trim()
restituisce: la nuova stringa senza spazi.
Esempi
' \ttrim\n '.trim()
Restituisce la stringa «trim».
upperAscii
Restituisce una nuova stringa in cui tutti i caratteri ASCII sono convertiti in maiuscolo.
Sintassi
(string).upperAscii()
restituisce: la nuova stringa con tutti i caratteri convertiti in maiuscolo.
Esempi
'TacoCat'.upperAscii()
Restituisce la stringa «TACOCAT».
Dimensione
Restituisce la lunghezza della stringa, dei byte, della lista o della mappa.
Sintassi
(string | bytes | list | map).size()
restituisce: la lunghezza della stringa, dei byte, della lista o dell'array di mappe.
Esempi
'hello'.size()
Restituisce il numero intero 5.
'hello'.size()
Restituisce il numero intero 5.
['a','b','c'].size()
Restituisce il numero intero 3.
{'key': 'value'}.size()
Restituisce il numero intero 1.
contiene
Verifica se l'operando di tipo stringa contiene la sottostringa.
Sintassi
(string).contains(substring (string))
restituisce: un valore booleano che indica se la sottostringa è presente nell'operando stringa.
Esempi
'hello'.contains('ll')
Restituisce true.
endsWith
Verifica se la stringa operando termina con il suffisso specificato.
Sintassi
(string).endsWith(suffix (string))
restituisce: un valore booleano che indica se la stringa termina con il suffisso specificato nell'operando stringa.
Esempi
'hello'.endsWith('llo')
Restituisce true.
startsWith
Verifica se l'operando stringa inizia con l'argomento prefisso.
Sintassi
(string).startsWith(prefix (string))
restituisce: un valore booleano che indica se la stringa inizia con il prefisso specificato nell'operando stringa.
Esempi
'hello'.startsWith('he')
Restituisce true.
corrisponde
Verifica se l'operando di tipo stringa corrisponde all'espressione regolare.
Sintassi
(string).matches(prefix (string))
restituisce: un valore booleano che indica se la stringa corrisponde all'espressione regolare specificata.
Esempi
'Hello'.matches('[Hh]ello')
Restituisce true.
getDate
Ottiene il giorno del mese dalla data con fuso orario (predefinito: Tempo Universale Coordinato), con indicizzazione a partire da 1.
Sintassi
(timestamp).getDate([time_zone (string)])
restituisce: il giorno del mese con indicizzazione a partire da 1.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getDate()
Resi 24.
getDayOfMonth
Ottieni il giorno del mese dalla data con il fuso orario (predefinito: Tempo Universale Coordinato), con indicizzazione a partire da zero.
Sintassi
(timestamp).getDayOfMonth([time_zone (string)])
restituisce: il giorno del mese con indicizzazione a partire da zero.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfMonth()
Resi 23.
getDayOfWeek
Ottieni il giorno della settimana dalla data con il fuso orario (predefinito: Tempo Universale Coordinato), indicizzazione a partire da zero, dove zero corrisponde alla domenica.
Sintassi
(timestamp).getDayOfWeek([time_zone (string)])
Restituisce: il giorno della settimana con indicizzazione a partire da zero.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfWeek()
Restituzioni 5.
getDayOfYear
Ottieni il giorno dell'anno a partire dalla data con fuso orario (predefinito: Tempo Universale Coordinato), con indicizzazione a partire da zero.
Sintassi
(timestamp).getDayOfYear([time_zone (string)])
restituisce: il giorno dell'anno con indicizzazione a partire da zero.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfYear()
Restituzioni 205.
getFullYear
Ottieni l'anno dalla data con il fuso orario (per impostazione predefinita, Tempo Coordinato Universale).
Sintassi
(timestamp).getFullYear([time_zone (string)])
restituisce: l'anno a partire dalla data.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getFullYear()
Resi 2020.
getMonth
Ottieni il mese della data con il fuso orario, compreso tra 0 e 11.
Sintassi
(timestamp).getMonth([time_zone (string)])
restituisce: il mese a partire dalla data.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getMonth()
Restituzioni 6.
getHours
Ottieni le ore a partire dalla data con il fuso orario, da 0 a 23.
Sintassi
(timestamp).getHours([time_zone (string)])
restituisce: l'ora della data.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getHours()
Restituzioni 9.
getMinutes
Ottieni i minuti dalla data con il fuso orario, da 0 a 59.
Sintassi
(timestamp).getMinutes([time_zone (string)])
restituisce: il minuto della data.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getMinutes()
restituisce 7.
getSeconds
Ottieni i secondi a partire dalla data con il fuso orario, da 0 a 59.
Sintassi
(timestamp).getSeconds([time_zone (string)])
restituisce: il secondo dalla data.
Esempi
timestamp('2020-07-24T09:07:29.000-00:00').getSeconds()
Resi 29.
getMilliseconds
Ottieni i millisecondi dalla data con fuso orario, da 0 a 999.
Sintassi
(timestamp).getMilliseconds([time_zone (string)])
restituisce: il numero di millisecondi trascorsi dalla data.
Esempi
timestamp('2020-07-24T09:07:29.021-00:00').getMilliseconds()
Resi 21.
Accesso agli oggetti globali avanzati
Ottieni gli output dei nodi, le variabili utente e i parametri della pipeline utilizzando il seguente codice Pipelines.
Ottieni la variabile utente
Recupera il valore più recente di una variabile utente.
Sintassi
vars.<var name>
Esempi
| Esempio: | Output |
|---|---|
vars.my_user_var |
Recupera il valore della variabile utente my_user_var |
Ottieni i parametri
Recupera i parametri del flusso.
Sintassi
params.<param name>
Esempi
| Esempio: | Output |
|---|---|
params.a |
Recupera il valore del parametro a |
Recupera i set di parametri
Recupera i set di parametri di flusso.
Sintassi
param_set.<param_set_name>.<param_name>
Esempi
| Esempio: | Output |
|---|---|
param_set.ps.a |
Recupera il valore del parametro a da un insieme di parametri ps |
param_sets.config |
Recupera i valori di configurazione della pipeline |
param_sets.config.deadline |
Recupera un oggetto data dall'insieme di parametri di configurazione |
param_sets.ps["$PARAM"] |
Recupera il valore del parametro $PARAM da un insieme di parametri ps |
Ottieni i risultati dell'attività
Recupera i risultati e altre metriche di un'attività della pipeline al termine della sua esecuzione.
Sintassi
tasks.<node id>.<output name>
Esempi
| Esempio: | Output |
|---|---|
tasks.run_datastage_job |
Recupera il dizionario dei risultati dell'output del processo |
tasks.run_datastage_job.results.score |
Recupera il valore score dell'output del processo |
tasks.run_datastage_job.results.timestamp |
Recupera il timestamp di fine dell'esecuzione del processo |
tasks.run_datastage_job.results.error |
Recupera il numero di errori dell'esecuzione del processo |
tasks.loop_task.loop.counter |
Recupera il contatore iterativo del ciclo corrente dell'esecuzione del processo |
tasks.loop_task.loop.item |
Recupera l'elemento corrente dell'iterazione del ciclo dell'esecuzione del processo |
tasks.run_datastage_job.results.status |
Restituisce lo stato di esito positivo o negativo dell'esecuzione del processo |
tasks.run_datastage_job.results.status_message |
Recupera il messaggio di stato dell'esecuzione del processo |
tasks.run_datastage_job.results.job_name |
Recupera il nome del lavoro |
tasks.run_datastage_job.results.job |
Recupera il percorso Cloud Pak for Data del processo |
tasks.run_datastage_job.results.job_run |
Recupera il percorso di esecuzione dell' Cloud Pak for Data e dell'esecuzione del processo |
Recupera gli oggetti di contesto della pipeline
Recupera i valori valutati nel contesto di una pipeline eseguita in un ambito (progetto, spazio, catalogo).
Esempi
| Esempio: | Output |
|---|---|
ctx.scope.id |
Ottiene l'ID dell'ambito |
ctx.scope.type |
Restituisce "progetto", "spazio" o "catalogo" |
ctx.scope.name |
Ottiene il nome dell'ambito |
ctx.pipeline.id |
Recupera l'ID della pipeline |
ctx.pipeline.name |
Recupera il nome della pipeline |
ctx.job.id |
Ottiene l'ID del lavoro |
ctx.run_datastage_job.id |
Ottiene l'ID dell'esecuzione del processo |
ctx.run_datastage_job.started_at |
Ottiene l'ora di inizio dell'esecuzione del processo |
ctx.user.id |
Recupera l'ID utente |
Ottieni lo stato dell'errore
Se viene attivato il gestore delle eccezioni, viene creato un oggetto di errore che è accessibile solo all'interno del gestore stesso.
Esempi
| Esempio: | Output |
|---|---|
error.status |
Restituisce lo stato di successo o di errore dell'esecuzione del processo; solitamente si verifica un errore |
error.status_message |
Recupera il messaggio di stato dell'errore |
error.job |
Recupera il percorso Cloud Pak for Data del processo |
error.run_datastage_job |
Recupera il percorso di esecuzione di Cloud Pak for Data del processo (non disponibile in watsonx ) |