Les règles de langage d'expression

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Le langage d'expression FlowForce >

Les règles de langage d'expression

Pour éviter les erreurs dans les expressions FlowForce, suivez ces règles :

 

Utiliser uniquement des valeurs autorisées ou déclarées.
Pour utiliser un string littéralement et contenu entre des guillemets simples.
Pour intégrer une expression dans un champ de string, le contenir entre des accolades, soit les caractères { and }.
L'expression doit produire un type de données qui est significative dans le champ où l'expression a été saisie.

 

Ci-dessous vous trouverez une description de ces règles en détail.

 

Règle #1: Utiliser uniquement des valeurs autorisées ou déclarées

Les structures suivantes sont autorisées dans les expressions FlowForce :

 

Fonctions d'expression FlowForce (pour une référence complète, voir Fonctions d'expression )
Opérateurs FlowForce (voir Opérateurs )
Valeurs numériques
Valeurs de string
Variables déclarées précédemment

 

Lorsque vous saisissez un texte dans un champ qui autorise des expressions FlowForce, une vérification en temps réel de la syntaxe a lieu. Si la syntaxe n'est pas correcte, FlowForce marquera en rouge les caractères concernés. Ci-dessous, vous trouverez un exemple d'une erreur de validation de syntaxe :

expression_error01

 

L'erreur se produit parce que ni source ni target n'ont été déclarés dans la tâche ; FlowForce ne peut donc pas interpréter l'expression. Le problème peut être réglé en déclarant ces valeurs (par exemple, en tant que paramètres d'entrée de tâche) :

expression_error02

 

Règle #2: Contenir les strings dans des guillemets simples

Si vous devez utiliser un string littéralement, vous devrez l'encadrer de guillemets simples. Sinon, l'expression pourrait produire des résultats non désirés ou la validation pourrait échouer. Veuillez consulter les exemples ci-dessous :

 

Expression

Sera évaluée en tant que...

Explication

expression_in_compute01

2

Le type de donnée de la valeur est numérique.

expre_1plus1_string

1+1

Le type de donnée de la valeur est string.

expression_in_compute02

true

Le type de donnée de la valeur est booléen.

 

Si vous souhaitez convertir des valeurs d'un type de données à un autre, utilisez les fonctions d'expression FlowForce (voir aussi Règle #4).

 

Règle #3: Utiliser des accolades dans des champs string

Si vous souhaitez intégrer une expression dans un champ string, encadrer l'expression dans des accolades. Dans l'exemple ci-dessous, des accolades délimitent l'expression instance-id() (qui est une fonction d'expression FlowForce) depuis le reste du string.

expression_in_string05

 

Si le champ entier est de type "as expression", n'utilisez pas d'accolades. Par exemple, le paramètre Expression de la fonction intégrée system/compute présente ce type. Ci-dessous, vous trouverez un exemple d'une valeur correcte pour ce champ (veuillez noter qu'aucune accolade n'est utilisée) :

expression_correct

 

La saisie d'accolades dans le champ d'expression entraînerait une erreur de syntaxe :

expression_incorrect

 

Voir aussi Intégrer des expressions dans les champs de String.

 

Règle #4: Utiliser le type de données correct

Enfin, sachez que FlowForce effectue des contrôles du type de données lorsque vous enregistrez une tâche. Une erreur se produira si l'expression saisie dans un champ ne correspond pas au type de données attendu par le champ. Vous pouvez voir le type de données attendu par chaque champ dans l'affichage à droite, par exemple :

expression_field_type

 

C'est pourquoi, une expression comme 1+1 n'est pas valide dans un champ string, parce qu'elle est évaluée implicitement en tant que numérique. D'un autre côté, l'expression '1+1' est valide dans un champ string. Voir les exemples ci-dessous :

 

Expression

Sera évaluée en tant que...

Explication

1/4

0.25 (as Number)

Le type de données de la valeur est numérique.

 

Utiliser cette expression dans un champ ou un contexte qui attend une valeur numérique ; sinon, la validation de tâche échouera.

1+1==2

true (as Boolean)

Le type de données de la valeur est booléen.

 

Utiliser cette expression dans un champ ou un contexte qui attend une valeur booléenne; sinon, la validation de tâche échouera.

'apple'

apple (as String)

Le type de données de la valeur est string.

 

Utiliser cette expression dans un champ ou un contexte qui attend une valeur string ; sinon, la validation de tâche échouera.

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

123 (as String)

Le type de données de la valeur est string.

 

Utiliser cette expression dans un champ ou un contexte qui attend une valeur string ; sinon, la validation de tâche échouera.

1+'apple'

-

Cette expression n'est pas valide, et FlowForce retournera une erreur si vous tentez d'enregistrer la tâche. L'évaluation ne peut pas avoir lieu parce que deux types de données différents (string et numérique) sont comparés.

{content(stdout(result))}

[...] (as String)

 

 

Cette expression utilise deux fonctions d'expression imbriquées :

 

La fonction stdout obtient la sortie standard d'une commande shell, en tant que stream.
La fonction content convertit la valeur stream en un string.

 

Bien que l'expression soit correcte, la tâche sera validée correctement uniquement si les éléments suivants sont vrais :

 

La valeur "result" a été déclarée précédemment.
La valeur "result" contient réellement la sortie standard d'une commande shell.
L'expression est intégrée dans un champ string.

 

Voir aussi Appeler des fonctions d'expression.


© 2019 Altova GmbH