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:
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):
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 |
---|---|---|
2 | El tipo de datos del valor es numérico. | |
1+1 | El tipo de datos del valor es cadena de texto. | |
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.
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):
Si introducimos llaves dentro del campo de expresión se produce un error sintáctico:
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:
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. |