Links

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
Sinon
Insère le mot clé OTHERWISE
JavaScript
Fnc()
Encapsuler la conditions dans une expression de fonction appelée immédiatement (IIFE); voir IIFE ci-dessous
&&
Insère un opérateur logique AND
||
Insère un opérateur logique OR
==
Insère un opérateur logique EQUAL TO
!=
Insère un opérateur logique NOT
null
Fonction de test permettant de savoir si la donnée est vide
getTime()
Retourne la valeur numérique d'une date en millisecondes
VBScript
( )
Isole le texte sélectionné entre parenthèses
Et
Insère un opérateur logique AND
Ou
Insère un opérateur logique OR
Pas
Insère un opérateur logique NOT
IsNull
Fonction de test permettant de savoir si la donnée est vide
DateDiff
Insère la condition DateDiff avec des paramètres vides pour permettre de régler les valeurs (voir Notifications de retard et de pré-retard)
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 :
(function(){
var myVar = <DATA>
return myVar == "Lorem ipsum"
})()

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 7mo ago