Conditions et exceptions
Édition d’une condition
Cet écran permet l’édition de la condition qui sera évaluée lors de la transition vers l’action suivante. Le bandeau situé au-dessus de la zone de saisie permet l’édition rapide et fiable de la syntaxe de l’expression de la condition. N’importe quelle expression JavaScript ou VBScript avec une syntaxe correcte peut être insérée en tant que condition (choisissez JavaScript ou VBScript à côté de Langue). La syntaxe est vérifiée lors de l’enregistrement ou en cliquant le bouton Vérifier la syntaxe.
Cette implémentation de JavaScript est basée sur ECMAScript 3.5.
Dans JavaScript, les unités de temps sont exprimées en millisecondes :
1 minute = 60 000 millisecondes (
1 * 60 * 1000 = 60000
)1 heure = 3 600 000 millisecondes (
1 * 60 * 60 * 1000 = 3600000
)1 jour = 86 400 000 millisecondes (
1 * 24 * 60 * 60 * 1000 = 86400000
)
Dans les conditions, vous pouvez diviser par l’équivalent en millisecondes de l’unité de temps et l’utiliser dans les comparaisons. Par exemple, une notification envoyée lorsqu’une demande est en retard de 12 heures ou plus pourrait ressembler à ceci :
<WF_SYSTEM_DATETIME> - <WF_ACTIVITY_INST_LIMIT_DATETIME>) / 3600000 >= 12
.
Fonctions
Champs | Remarques |
Données | Liste des données qui peuvent être utilisées dans la condition |
Macros | Liste des macros qui peuvent être utilisées dans la condition |
| Insère le mot clé |
JavaScript | |
| Encapsuler la conditions dans une expression de fonction appelée immédiatement (IIFE); voir IIFE ci-dessous |
| Insère un opérateur logique |
| Insère un opérateur logique |
| Insère un opérateur logique |
| Insère un opérateur logique |
| Fonction de test permettant de savoir si la donnée est vide |
| Retourne la valeur numérique d'une date en millisecondes |
VBScript | |
| Isole le texte sélectionné entre parenthèses |
| Insère un opérateur logique |
| Insère un opérateur logique |
| Insère un opérateur logique |
| Fonction de test permettant de savoir si la donnée est vide |
| Insère la condition |
Note : Vous pouvez appuyer sur Ctrl+Espace
ou Alt+Espace
directement dans l'éditeur pour afficher une liste déroulante depuis laquelle vous pouvez insérer des données de processus et des macros WorkflowGen, au lieu de les choisir depuis les listes déroulantes Données et Macros en haut de l'éditeur.
IIFE
En mode JavaScript, utilisez le bouton Fnc()
pour encapsuler la condition dans une expression de fonction appelée immédiatement (IIFE). Par exemple :
Exemples
Donnée de processus égal à
Lorem ipsum
:JavaScript :
<DATA> == "Lorem ipsum"
VBScript :
<DATA> = "Lorem ipsum"
Donnée de processus supérieure à
5
:JavaScript :
<DATA> > 5
VBScript :
<DATA> > 5
Comparer les dates des données de processus :
JavaScript :
<DATE1> > <DATE2>
VBScript :
DateDiff("s",<DATE1>,<DATE2>) > 0
Plus de 5 heures se sont écoulées :
JavaScript :
(<WF_SYSTEM_DATETIME> - <DATE1>) * 360000 > 5
VBScript :
DateDiff("h",<WF_SYSTEM_DATETIME>, <DATE1>) > 5
Combinaison de différentes comparaisons :
JavaScript :
<DATA1> == "Lorem ipsum" || (<DATA2> > 10000 && <DATA3> == "Director")
VBScript :
<DATA1> = "Lorem ipsum" Or (<DATA2> > 10000 And <DATA3> = "Director")
Fichier de données de processus n'a pas été défini :
JavaScript :
<FILE_DATA> == null
VBScript :
IsNull(<FILE_DATA>)
Fichier de données de processus a une taille spécifique (moins de 1 Mo) et un nom de fichier spécifique :
JavaScript :
<FILE_DATA.SIZE> < 1024000 && <FILE_DATA.NAME>.indexOf("report") > -1
VBScript :
<FILE_DATA.SIZE> < 1024000 And InStr(1,<FILE_DATA.NAME>,"report") > 0
Règles des conditions
Vous ne pouvez créer qu’une seule condition par transition. Pour créer des conditions additionnelles entre les mêmes actions, créez des transitions additionnelles entre les actions et placez-y les conditions additionnelles.
Vous ne pouvez pas créer plus d’une condition ou exception sur une transition.
Chaque condition est évaluée individuellement. Par exemple, s’il y a deux conditions sur des transitions séparées entre actions, et les deux sont
TRUE
, la prochaine action sera créée deux fois.
Édition d’exceptions
Type d’exception | Remarques |
Retard d’une action | Exception lancée par le système lorsqu’une action est en retard |
Annulation d’une action | Exception lancée lorsqu’un utilisateur annule une action ou un sous-processus en cours Pour empêcher les utilisateurs et/ou les superviseurs d'annuler l'action, décochez Utilisateurs et/ou Superviseurs. Sinon, Utilisateurs, Superviseurs, Administrateurs et Système sont cochés par défaut et peuvent tous annuler les actions. Note : Administrateur et Système ne peuvent pas être décochés et pourront toujours annuler les actions. |
Erreur d’assignation | Exception lancée lorsqu’une action est affectée à un utilisateur qui n’est pas associé avec le participant |
Erreur d’exécution | Exception lancée par le système lorsqu’une erreur se produit lors de l’exécution automatique d’une application |
Par défaut | Exception lancée par défaut |
Règles d’exception
Vous ne pouvez créer qu’une seule exception par transition. Pour créer des exceptions additionnelles entre les mêmes actions, créez des transitions additionnelles entre les actions et placez-y les exceptions additionnelles.
Vous ne pouvez pas créer plus d’une exception ou condition sur une transition.
Chaque exception est évaluée individuellement. Par exemple, s’il y a deux exceptions sur des transitions séparées entre actions, et les deux exceptions interviennent, la prochaine action sera créée deux fois.
Lorsqu’une exception intervient à l’exécution, l’exécution par défaut est lancée si aucune exception d’un autre type n’est présente dans la définition du processus.
Si une exception conduit à la fin du processus et que cette exception se produise lors de l’exécution, toutes les actions en cours sont annulées et la demande est clôturée avec le statut Clôturée – Annulée.
Dernière mise à jour