Reglas del lenguaje de expresiones

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Lenguaje de expresiones de FlowForce >

Reglas del lenguaje de expresiones

Para evitar errores en expresiones de FlowForce es necesario conocer estas reglas:

 

Utilice solamente valores permitidos o declarados.
Para usar una cadena de texto de forma literal póngala entre comillas simples.
Para incrustar una expresión en un campo de cadena de texto póngala entre llaves ( { } ).
La expresión debe producir un tipo de datos que sea significativo en el campo donde se introdujo la expresión.

 

Regla nº1: utilice solamente valores permitidos o declarados

Estas son las construcciones permitidas en expresiones de FlowForce:

 

Funciones de expresión de FlowForce (véase Funciones de expresión)
Operadores de FlowForce (véase Operadores)
Valores numéricos
Valores de cadena
Variables declaradas con anterioridad

 

Cuando se escribe texto en un campo que admite expresiones de FlowForce, se produce una revisión sintáctica en tiempo real. Si la sintaxis no es correcta, FlowForce resalta en rojo los caracteres infractores. Aquí puede ver un ejemplo de error de validación sintáctica:

expression_error01

 

El error se debe a que ni origen ni destino se declararon en el trabajo, por lo que FlowForce no puede interpretar la expresión. El problema se resuelve con solo declarar estos valores (p. ej. como parámetros de entrada del trabajo):

expression_error02

 

Regla nº2: cadenas de texto entre comillas simples

Si necesita usar una cadena de forma literal, póngala entre comillas simples. De lo contrario, la expresión podría producir resultados no deseados o causar un error de validación. Aquí puede ver algunos ejemplos:

 

Expresión

Se obtendrá este resultado

Explicación

expression_in_compute01

2

El tipo de datos del valor es numérico.

expre_1plus1_string

1+1

El tipo de datos del valor es cadena de texto.

expression_in_compute02

true

El tipo de datos del valor es booleano.

 

Recuerde que para convertir un tipo de datos en otro puede usar las funciones de expresión de FlowForce (consulte la regla nº4).

 

Regla nº3: utilice llaves en los campos de cadena

Si tiene pensado incrustar una expresión dentro de un campo de cadena, recuerde que debe ponerla entre comillas. Por ejemplo, en la siguiente imagen la expresión instance-id() va entre comillas para separarla del resto de la cadena. La expresión instance-id() es una función de expresión de FlowForce.

expression_in_string05

 

Si el campo entero es de tipo como expresión, no hace falta usar las llaves. Por ejemplo, el parámetro Expresión de la función integrada system/compute tiene este tipo. En esta imagen puede ver un ejemplo donde se usa un valor correcto para este campo (observe que no se usaron llaves):

expression_correct

 

Si introducimos llaves dentro del campo de expresión se produce un error sintáctico:

expression_incorrect

 

Para más información consulte el apartado Incrustar expresiones en campos de cadena.

 

Regla nº4: utilice el tipo de datos correcto

Por último, no olvide que FlowForce comprueba los tipos de datos antes de guardar un trabajo. Si la expresión introducida en un campo no coincide con el tipo de datos que se esperaba, FlowForce emite un error. Por ejemplo, en esta imagen puede ver que a la derecha del campo aparece el tipo de datos que se esperaba:

expression_field_type

 

Por tanto, una expresión como 1+1 no será válida en un campo de cadena porque se evalúa de forma implícita como de tipo numérico. Sin embargo, la expresión '1+1' sí es válida en un campo de cadena. Aquí puede ver algunos ejemplos:

 

Expresión

Se obtendrá este resultado

Explicación

1/4

0.25 (como número)

El tipo de datos del valor es numérico.

 

Use esta expresión en un campo o contexto donde se espere un valor numérico. De lo contrario, se producirá un error de validación del trabajo.

1+1==2

true (como booleano)

El tipo de datos del valor es booleano.

 

Use esta expresión en un campo o contexto donde se espere un valor booleano. De lo contrario, se producirá un error de validación del trabajo.

'manzana'

manzana (como cadena)

El tipo de datos del valor es cadena de texto.

 

Use esta expresión en un campo o contexto donde se espere un valor de cadena. De lo contrario, se producirá un error de validación del trabajo.

concat('1','2','3')

123 (como cadena)

El tipo de datos del valor es cadena de texto.

 

Use esta expresión en un campo o contexto donde se espere un valor de cadena. De lo contrario, se producirá un error de validación del trabajo.

1+'manzana'

-

Esta expresión no es válida y FlowForce devolverá un error cuando se intente guardar el trabajo. No se puede llevar a cabo la evaluación porque se comparan dos tipos de datos diferentes: cadena de texto y numérico.

{content(stdout(resultado))}

[...] (como cadena)

 

 

Esta expresión utiliza dos funciones de expresión anidadas:

 

La función stdout obtiene el resultado estándar de un comando shell como secuencia de datos.
La función content convierte la secuencia de datos en una cadena de texto.

 

Aunque la expresión es correcta, el trabajo solamente será válido si se cumplen todas estas condiciones:

 

El valor "resultado" se declaró con anterioridad.
El valor "resultado" contiene el resultado estándar de un comando shell.
La expresión está incrustada en un campo de cadena de texto.

 

Consulte el apartado Llamar a funciones de expresión para obtener más información.

 


© 2019 Altova GmbH