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.