0 / 0
Volver a la versión inglesa de la documentación

Expresiones CEL y limitaciones en DataStage

Última actualización: 12 mar 2025
Expresiones y limitaciones de CEL en DataStage

Utilice expresiones para definir condiciones, valores de entrada y variables de usuario en un flujo de orquestación. Si un trabajo de secuencia migrado contiene expresiones, deben traducirse a la sintaxis CEL.

Puede acceder a las funciones incorporadas y a otros elementos de codificación a través del Creador de expresiones. El generador de expresiones utiliza CEL (Common Expression Language). Para obtener más información sobre las funciones incorporadas, consulte Funciones. Para funciones DataStage-specific, véase DataStage.

Las expresiones se evalúan en el contexto de una ejecución de trabajo determinada en un ámbito específico. El ámbito puede ser un proyecto, espacio o catálogo. Utilice el objeto ctx para hacer referencia a propiedades de contexto como, por ejemplo, el nombre y el ID del ámbito, el trabajo, el usuario y la interconexión. Ejemplo: ctx.pipeline.id.

Para hacer referencia a un nodo en la interconexión, copie el ID de nodo de las propiedades de ese nodo. También puede utilizar el objeto tasks para hacer referencia a nodos y resultados de trabajo. Los componentes con la salida estándar utilizan el objeto results para almacenar los resultados del flujo. Para salidas no estándar, también puede utilizar results para recuperar salidas personalizadas o variables establecidas como salida. Cuando se desencadena el manejo de errores, el objeto error se puede utilizar dentro del manejador de excepciones.

Cuando se crea un flujo de orquestación a partir de un trabajo de secuenciador migrado, las expresiones DataStage-specific deben traducirse a CEL. Utilice los elementos de codificación de interconexión en el Creador de expresiones para sustituir funciones y ver ejemplos de diferencias de sintaxis en la tabla siguiente.
Descripción de expresión CEL DataStage
Operadores lógicos a > b || c < 10 a > b OR c < 10
Operador ternario a > b ? 'A' : 'B' IF a > b THEN 'A' ELSE 'B'
concatenación de series "prefix-" + parameter + "-suffix" "prefix-" : parameter : "-suffix"
La serie empieza por param.startsWith('abc') Left(param,3) = 'abc'
Índice de subserie param.indexOf('abc') Index(param, 'abc', 1)
Sustitución de serie param.replace('he', 'we') Ereplace(param, "he", "we")
Serie en minúsculas param.lowerAscii() DownCase(param)
Es nulo param == null IsNull(param)