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.

Nota:
  • 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 )