Expressions Visual Basic

Les expressions VB sont utilisées pour calculer les valeurs des métadonnées, pour évaluer les conditions d’activation des traitements et pour passer les valeurs aux paramètres du workflow.

Une zone de saisie avec le bouton à droite indique une zone de type Expression VB. Clic sur le bouton va ouvrir l’éditeur des expressions :

 

L’éditeur des expressions VB facilite la saisie des expressions et aussi fait la validation de la syntaxe. En cas d’erreur, un message va s’afficher avec le détail de l’erreur.

Toute expression VB renvoi un résultat d’un certain type : texte, booléen, numérique ou date. Une expression VB accepte des opérateurs arithmétiques et logiques. Le compilateur VB ne permet pas la conversion implicite des variables et demande toujours que l’expression comporte des variables du même type.

Par exemple 5 + « 6 » n’est pas autorisé, puisque la conversion implicite des nombres en texte n’est pas autorisée.

Une chaine de caractères est comprise entre les «  ». Pour concaténer 2 chaines de caractères il faut utiliser l’opérateur &. On peut concaténer par exemple un texte avec une variable de type texte : « Facture n° » & ${NumFacture}.

Comme variables on peut utiliser une métadonnée, un paramètre saisi par l’utilisateur au moment du traitement, soit une variable système (comme this ou DocumentName).

On peut utiliser la notation {@NomVariable} dans une chaine de caractères qui sera remplacé pendant le traitement avec la valeur de la variable : « Facture n° {@NumFacture} »

Une expression VB sur plusieurs lignes doit contenir le symbole de rupture de ligne _ :

« {@NumFacture} » <> « AB00001 » _

And « {@NumFacture} » <> « AB00005 »

On peut utiliser des variables dans une expression VB via la notation ${NomVariable}. Souvent les variables sont utilisées pour passer les valeurs dans les paramètres des fonctions. Pour insérer une fonction dans une expression VB il faut faire double clic sur le nom de la fonction dans l’éditeur.

Il y a plusieurs catégories de fonctions autorisées dans l’éditeur :

 

1. Fonctions de type texte

ExtractText – extrait une chaine de caractères à partir d’une position. On peut aussi indiquer le nombre des caractères à extraire.

Exemple : VbExtensions.ExtractText(${NumFacture},0,3) -> extrait les 3 premiers caractères du n°facture

 

 

Right – extrait les caractères à droite d’une expression. On peut indiquer le nombre d’occurrences de l’expression et aussi on peut limiter le nombre des caractères à extraire.

Exemple : VbExtensions.Right(${DateFacture}, « / »,2,4) – > extrait l’année depuis la date de la facture (4 caractères après la 2ième occurrence du symbole /)

 

 

Left – extrait les caractères à gauche d’une expression. Cette fonction est similaire à la fonction Right, sauf que l’extraction se fait à gauche et non pas à droite de l’expression.

Exemple : VbExtensions.Left(${DateFacture}, « / »,1,2) -> extrait les jours depuis la date de la facture (2 caractères à gauche de la 1ère occurrence du symbole /)

 

Match – extrait les caractères en utilisant une expression régulière. Si l’expression régulière n’est pas matchée, la fonction va retourner une valeur nulle. Il est possible de remplacer le texte capturé par une autre expression régulière.

Exemple : VbExtensions.Match(${DateFacture}, « ( ?<jour>\d{2})[/]( ?<mois>\d{2})[/]( ?<an>\d{4}) ,  «$3-$2 ») -> capture la date de la facture et retourne l’année et le mois mise en forme comme suit « 2014-06 »

 

 

Pour plus d’infos sur l’utilisation des expressions régulières veuillez consulter l’article suivant : http://msdn.microsoft.com/fr-fr/library/az24scfc(v=vs.110).aspx

 

2. Fonctions logiques

IF – vérifie une condition et renvoie une valeur si le résultat est VRAI, sinon renvoie une autre valeur.

Exemple : IF(${MontantNet} > 0, « F », « A ») -> si le montant net est positif la fonction renvoie « F », sinon « A »

 

 

Contains – vérifie si la valeur du paramètre contient une expression.

Exemple : VbExtensions.Contains(${NumFacture}, « 999 ») -> renvoi VRAI, si le n°facture contient 999

 

 

StartsWith – vérifie si la valeur du paramètre commence par une expression.

Exemple : VbExtensions.StartsWith(${NumFacture}, « FAD ») -> renvoi VRAI si le n°facture commence par FAD

 

 

IsMatch – compare la valeur du paramètre avec une expression régulière et renvoi VRAI si matchée avec succès.

Exemple – VbExtensions.IsMatch(${NumFacture}, « FAD\d{5} »,true) -> renvoi VRAI si le n°facture contient FAD suivi de 5 chiffres

 

 

Compare - compare les valeurs des paramètres et renvoie 0 si les valeurs sont égaux, un nombre négatif si la valeur du 1er paramètre est inférieure à la valeur du 2ème paramètre, sinon un nombre positif.

Exemple : VbExtensions.Compare(${DateFacture}, « 01/01/2014 ») -> renvoie 0 si la date de la facture est égale à 01/01/2014, renvoi -1 si la date de la facture est inférieure à 01/01/2014, sinon renvoi 1

 

 

IsNull – test si la valeur du paramètre est NULL ou un texte vide.

Exemple : IsNull(${NumCde})-> renvoi VRAI si la métadonnée NumCde n’existe pas dans le document, soit elle est une chaine vide.

 

 

3. Fonctions pour faire la conversion des données

ConvertToBoolean – convertir la valeur du paramètre dans une valeur booléenne VRAI/FAUX

ConvertToDecimal – convertir la chaine de caractères dans un nombre décimal

ConvertToInt32 – convertir la chaine de caractères dans un nombre entier 32 bits (max=2 147 483 647)

ConvertToInt64 – convertir la chaine de caractères dans un nombre entier 64bits

ConvertToDateTime – convertir la chaine de caractères dans une date

ConvertToText – convertir la valeur du paramètre dans une chaine de caractères avec la mise en forme si besoin.

Exemple : VbExtensions.ConvertToText(${DateFacture}, « yyyy-MMM ») -> renvoie l’année et le mois de la date de la facture (2014-juin)

 

Pour plus d’infos sur les formats possibles consulter l’article : http://www.cheat-sheets.org/saved-copy/msnet-formatting-strings.pdf

 

4. Fonctions date et heure

Now – renvoie la date et l’heure du jour sous la forme d’une chaine de caractères