Funciones utilizadas en el generador de expresiones de Orchestration Pipelines

Utiliza estas funciones en los editores de código de Pipelines, por ejemplo, para definir una variable de usuario o crear una condición avanzada.

Para ver las funciones de Pipelines transferidas desde DataStage,, consulta DataStage Funciones que se utilizan en el generador de expresiones de Pipelines.

Nota:
  • Todos los tipos de entrada de fecha, hora y marca de tiempo se tratan como cadenas de caracteres.
  • Utiliza «//» para indicar comentarios.

El Generador de expresiones utiliza las categorías para codificar funciones:

Funciones de conversión

Convierte el formato de un elemento de datos a otro.

Tabla de conversión de tipos de datos básicos

Tipo Acepta Devuelve Sintaxis
double int, uint, string double double(val)
duration string duration
duration(string) La duración debe terminar en «s», que significa segundos.
int int, uint, double, string, timestamp int int(val)
timestamp string timestamp
timestamp(string) Convierte cadenas de texto en marcas de tiempo según RFC3339, es decir, « "1972-01-01T10:00:20.021-05:00».
uint int, double, string uint uint(val)

Ejemplo

Por ejemplo, para convertir un valor al tipo double:

double(%val%)

Cuando se realiza una conversión de doble precisión a int | uint, el resultado se redondea hacia cero y se produce un error si el resultado está fuera de rango.

Funciones estándar

Funciones exclusivas de IBM Orchestration Pipelines.


sub

Sustituye las subcadenas de una cadena que coincidan con la expresión regular indicada y que comiencen en la posición especificada.

Sintaxis

(string).sub(substring (string), replacement (string), [occurrence (int), [offset (int)]])

devuelve: la cadena con las subcadenas actualizadas.

Ejemplos

'aaabbbcccbbb'.sub('[b]+','RE')

Devuelve 'aaaRECcRE'.

formato

Formatea una serie o indicación de fecha y hora de acuerdo con una especificación de formato y devuelve la serie resultante.

Sintaxis

format como método de series

(string).format(parameter 1 (string or bool or number)... parameter 10 (string or bool or number))

devuelve: la cadena que contiene los valores de entrada formateados.

format como método de indicaciones de fecha y hora

(timestamp).format(layout(string))

devuelve: la indicación de fecha y hora en formato de serie.

Ejemplos

'number=%d, text=%s'.format(1, 'str')

Devuelve la serie 'number=1, text=str'.

timestamp('2020-07-24T09:07:29.000-00:00').format('%Y/%m/%d')

Devuelve la serie '2020/07/24'.

ahora

Devuelve la indicación de fecha y hora actual.

Sintaxis

now()

devuelve: la indicación de fecha y hora actual.


parseTimestamp

Devuelve la marca de tiempo actual en formato de cadena.

Sintaxis

parseTimestamp([timestamp_string(string)] [layout(string)])

Devuelve: la marca de tiempo actual como una cadena de tipo «string».

Ejemplos

parseTimestamp('2020-07-24T09:07:29Z')

Devuelve '2020-07-24T09:07:29.000-00:00'.

mín.

Devuelve el valor mínimo de la lista.

Sintaxis

(list).min()

devuelve: el valor mínimo de la lista.

Ejemplos

[1,2,3].min()

Devuelve el entero 1.

máx

Devuelve el valor máximo de la lista.

Sintaxis

(list).max()

devuelve: el valor máximo de la lista.

Ejemplos

[1,2,3].max()

Devuelve el entero 3.

argmin

Devuelve el índice del valor mínimo de la lista.

Sintaxis

(list).argmin()

devuelve: el índice del valor mínimo de la lista.

Ejemplos

[1,2,3].argmin()

Devuelve el entero 0.

argmax

Devuelve el índice del valor máximo de la lista.

Sintaxis

(list).argmax()

devuelve: el índice del valor máximo de la lista.

Ejemplos

[1,2,3].argmax()

Devuelve el entero 2.

suma

Devuelve la suma de los valores de la lista.

Sintaxis

(list).sum()

devuelve: el índice del valor máximo de la lista.

Ejemplos

[1,2,3].argmax()

Devuelve el entero 2.

base64.decode

Decodifica la serie base64-encoded a bytes. Esta función devuelve un error si la cadena introducida no es « base64-encoded ».

Sintaxis

base64.decode(base64_encoded_string(string))

devuelve: la serie base64-encoded decodificada en formato de byte.

Ejemplos

base64.decode('aGVsbG8=')

Devuelve 'hello' en bytes.

base64.encode

Codifica bytes en una serie codificada en base64.

Sintaxis

base64.encode(bytes_to_encode (bytes))

devuelve: la serie codificada en base64 codificada del valor de byte original.

Ejemplos

base64.decode(b'hello')

Devuelve 'aGVsbG8=' en bytes.

charAt

Devuelve el carácter de la posición dada. Si la posición es negativa o es mayor que la longitud de la cadena, la función genera un error.

Sintaxis

(string).charAt(index (int))

devuelve: el carácter de la posición especificada en formato de entero.

Ejemplos

'hello'.charAt(4)

Devuelve el carácter 'o'.

indexOf

Devuelve el índice entero de la primera aparición de la serie de búsqueda. Si no se encuentra la serie de búsqueda, la función devuelve -1.

Sintaxis

(string).indexOf(search_string (string), [offset (int)])

devuelve: el índice de la primera aparición del carácter después del desplazamiento.

Ejemplos

'hello mellow'.indexOf('ello', 2)

Devuelve el entero 7.

lowerAscii

Devuelve una nueva cadena en la que los caracteres ASCII se han convertido a minúsculas.

Sintaxis

(string).lowerAscii()

devuelve: la nueva cadena en minúsculas.

Ejemplos

'TacoCat'.lowerAscii()

Devuelve la serie 'TACOCAT'.

sustituir

Devuelve una nueva serie basada en el destino, que sustituye las apariciones de una serie de búsqueda por una serie de sustitución si está presente. La función acepta un límite opcional en el número de sustituciones de subserie que se deben realizar.

Sintaxis

(string).replace(search_string (string), replacement (string), [offset (int)])

devuelve: la nueva serie con apariciones de una serie de búsqueda sustituida.

Ejemplos

'hello hello'.replace('he', 'we')

Devuelve la serie 'wello wello'.

división

Devuelve una lista de cadenas obtenidas al dividir la entrada mediante el separador. La función admite un argumento opcional que especifica un límite en el número de subcadenas que se generan al dividir la cadena.

Sintaxis

(string).split(separator (string), [limit (int)])

devuelve: la serie de división como una lista de series.

Ejemplos

'hello hello hello'.split(' ')

Devuelve la lista de cadenas ['hola', 'hola', 'hola'].

subserie

Devuelve la subserie dada un rango numérico que corresponde a las posiciones de caracteres. Si lo prefieres, puedes omitir el intervalo final para obtener una subcadena que vaya desde una posición determinada hasta el final de la cadena.

Sintaxis

(string).substring(start (int), [end (int)])

devuelve: la subserie en el índice especificado de la serie.

Ejemplos

'tacocat'.substring(4)

Devuelve la serie 'cat'.

recortar

Devuelve una nueva cadena en la que se eliminan los espacios en blanco al principio y al final de la cadena de destino. La función «trim» utiliza la definición de espacios en blanco de Unicode, que no incluye los espacios de ancho cero.

Sintaxis

(string).trim()

devuelve: la nueva cadena sin espacios en blanco.

Ejemplos

'  \ttrim\n    '.trim()

Devuelve la serie 'trim'.

upperAscii

Devuelve una nueva serie donde todos los caracteres ASCII están en mayúsculas.

Sintaxis

(string).upperAscii()

devuelve: la nueva serie con todos los caracteres convertidos a mayúsculas.

Ejemplos

'TacoCat'.upperAscii()

Devuelve la serie 'TACOCAT'.

tamaño

Devuelve la longitud de la cadena, los bytes, la lista o el mapa.

Sintaxis

(string | bytes | list | map).size()

devuelve: la longitud de la serie, bytes, lista o matriz de correlación.

Ejemplos

'hello'.size() 

Devuelve el entero 5.

'hello'.size() 

Devuelve el entero 5.

['a','b','c'].size() 

Devuelve el entero 3.

{'key': 'value'}.size() 

Devuelve el entero 1.

contiene

Prueba si el operando de la serie contiene la subserie.

Sintaxis

(string).contains(substring (string))

devuelve: un valor booleano de si la subserie existe en el operando de la serie.

Ejemplos

'hello'.contains('ll')

Devuelve verdadero.

endsWith

Prueba si el operando de serie termina por el sufijo especificado.

Sintaxis

(string).endsWith(suffix (string))

devuelve: un valor booleano de si la serie termina por el sufijo especificado en el operando de la serie.

Ejemplos

'hello'.endsWith('llo')

Devuelve verdadero.

startsWith

Prueba si el operando de serie empieza por el argumento de prefijo.

Sintaxis

(string).startsWith(prefix (string))

devuelve: un valor booleano que indica de si la serie empieza por el prefijo especificado en el operando de la serie.

Ejemplos

'hello'.startsWith('he')

Devuelve verdadero.

coincide con

Prueba si el operando de la serie coincide con una expresión regular.

Sintaxis

(string).matches(prefix (string))

devuelve: un valor booleano de si la serie coincide con la expresión regular especificada.

Ejemplos

'Hello'.matches('[Hh]ello')

Devuelve verdadero.

getDate

Obtiene el día del mes a partir de la fecha con zona horaria (por defecto, Tiempo Universal Coordinado), con indexación a partir de 1.

Sintaxis

(timestamp).getDate([time_zone (string)])

Devuelve: el día del mes con una numeración que comienza en 1.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getDate()

Devuelve 24.

getDayOfMonth

Obtiene el día del mes a partir de la fecha con zona horaria (por defecto, Tiempo Universal Coordinado), con indexación basada en cero.

Sintaxis

(timestamp).getDayOfMonth([time_zone (string)])

Devuelve: el día del mes con indexación desde cero.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getDayOfMonth()

Devuelve 23.

getDayOfWeek

Obtiene el día de la semana a partir de la fecha, teniendo en cuenta la zona horaria (por defecto, el Tiempo Universal Coordinado), con una indexación basada en cero, en la que el domingo es el 0.

Sintaxis

(timestamp).getDayOfWeek([time_zone (string)])

Devuelve: el día de la semana con indexación desde cero.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getDayOfWeek()

Devuelve 5.

getDayOfYear

Obtiene el día del año a partir de la fecha con zona horaria (por defecto, Tiempo Universal Coordinado), con indexación basada en cero.

Sintaxis

(timestamp).getDayOfYear([time_zone (string)])

Devuelve: el día del año con indexación basada en cero.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getDayOfYear()

Devuelve 205.

getFullYear

Obtén el año a partir de la fecha con zona horaria (por defecto, Tiempo Universal Coordinado).

Sintaxis

(timestamp).getFullYear([time_zone (string)])

returns: el año a partir de la fecha.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getFullYear()

Devuelve 2020.

getMonth

Obtén el mes a partir de la fecha con zona horaria, 0-11.

Sintaxis

(timestamp).getMonth([time_zone (string)])

devuelve: el mes a partir de la fecha.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getMonth()

Devuelve 6.

getHours

Obtén las horas a partir de la fecha con el huso horario, del 0 al 23.

Sintaxis

(timestamp).getHours([time_zone (string)])

devuelve: la hora a partir de la fecha.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getHours()

Devuelve 9.

getMinutes

Obtén los minutos de la fecha con el huso horario, de 0 a 59.

Sintaxis

(timestamp).getMinutes([time_zone (string)])

devuelve: el minuto a partir de la fecha.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getMinutes()

Devuelve 7.

getSeconds

Obtén los segundos a partir de la fecha con el huso horario, de 0 a 59.

Sintaxis

(timestamp).getSeconds([time_zone (string)])

devuelve: el segundo a partir de la fecha.

Ejemplos

timestamp('2020-07-24T09:07:29.000-00:00').getSeconds()

Devuelve 29.

getMilliseconds

Obtén los milisegundos de la fecha con zona horaria, de 0 a 999.

Sintaxis

(timestamp).getMilliseconds([time_zone (string)])

devuelve: el milisegundo a partir de la fecha.

Ejemplos

timestamp('2020-07-24T09:07:29.021-00:00').getMilliseconds()

Devuelve 21.

Acceso a objetos globales avanzados

Obtén las salidas de los nodos, las variables de usuario y los parámetros del pipeline utilizando el siguiente código de Pipelines.

Obtener variable de usuario

Obtiene el valor más reciente de una variable de usuario.

Sintaxis

vars.<var name>

Ejemplos

Ejemplo Resultado
vars.my_user_var Obtiene el valor de la variable de usuario my_user_var

Obtener parámetros

Obtiene los parámetros del flujo.

Sintaxis

params.<param name>

Ejemplos

Ejemplo Resultado
params.a Obtiene el valor del parámetro a

Obtener conjuntos de parámetros

Obtiene los conjuntos de parámetros de flujo.

Sintaxis

param_set.<param_set_name>.<param_name>

Ejemplos

Ejemplo Resultado
param_set.ps.a Obtiene el valor del parámetro a de un conjunto de parámetros ps
param_sets.config Obtiene los valores de configuración del canal
param_sets.config.deadline Obtiene un objeto de fecha a partir del conjunto de parámetros de configuración
param_sets.ps["$PARAM"] Obtiene el valor del parámetro $PARAM de un conjunto de parámetros ps

Obtener los resultados de la tarea

Obtén los resultados y otras métricas de una tarea del pipeline una vez que haya finalizado su ejecución.

Sintaxis

tasks.<node id>.<output name>

Ejemplos

Ejemplo Resultado
tasks.run_datastage_job Obtiene el diccionario de resultados de la salida del trabajo
tasks.run_datastage_job.results.score Obtiene el valor score de la salida del trabajo
tasks.run_datastage_job.results.timestamp Obtiene la marca de tiempo de finalización de la ejecución del trabajo
tasks.run_datastage_job.results.error Obtiene el número de errores de la ejecución del trabajo
tasks.loop_task.loop.counter Obtiene el contador iterativo del bucle actual de la ejecución del trabajo
tasks.loop_task.loop.item Obtiene el elemento iterativo actual del bucle de la ejecución del trabajo
tasks.run_datastage_job.results.status Obtiene el estado de éxito o fracaso de la ejecución del trabajo
tasks.run_datastage_job.results.status_message Obtiene el mensaje de estado de la ejecución del trabajo
tasks.run_datastage_job.results.job_name Obtiene el nombre del trabajo
tasks.run_datastage_job.results.job Obtiene la ruta de acceso de Cloud Pak for Data del trabajo
tasks.run_datastage_job.results.job_run Obtiene la ruta de ejecución de « Cloud Pak for Data » de la ejecución del trabajo

Obtener objetos de contexto del canal

Obtiene valores que se evalúan en el contexto de un flujo de trabajo que se ejecuta en un ámbito (proyecto, espacio, catálogo).

Ejemplos

Ejemplo Resultado
ctx.scope.id Obtiene el ID del ámbito
ctx.scope.type Devuelve «proyecto», «espacio» o «catálogo»
ctx.scope.name Obtiene el nombre del ámbito
ctx.pipeline.id Obtiene el ID del canal
ctx.pipeline.name Obtiene el nombre del canal
ctx.job.id Obtiene el ID del trabajo
ctx.run_datastage_job.id Obtiene el ID de ejecución del trabajo
ctx.run_datastage_job.started_at Obtiene la hora de inicio de la ejecución del trabajo
ctx.user.id Obtiene el ID de usuario

Obtener el estado del error

Si se activa el controlador de excepciones, se crea un objeto de error al que solo se puede acceder desde el propio controlador de excepciones.

Ejemplos

Ejemplo Resultado
error.status Obtiene el estado de éxito o fracaso de la ejecución del trabajo; normalmente falla
error.status_message Obtiene el mensaje de estado de error
error.job Obtiene la ruta de acceso de Cloud Pak for Data del trabajo
error.run_datastage_job Obtiene la ruta de ejecución de « Cloud Pak for Data » del trabajo (no disponible en « watsonx »)