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.
- 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 ») |