Modélisation de retards, d'escalades et de temporisations à l'aide des événements de temporisateur

Pour indiquer qu'une activité se produit ou qu'une autre procédure est requise, vous devez utilisez des événements limite de type temporisateur.

Pourquoi et quand exécuter cette tâche

Pour contrôler le moment auquel les activités se produisent au sein d'un flux de processus ou le moment auquel un flux de processus emprunte un chemin particulier dans un processus, utilisez des événements de temporisation. Vous trouverez ci-dessous quelques situations dans lesquelles vous pouvez faire appel à des événements de temporisateur :
  • Créer un retard afin d'empêcher le déclenchement immédiat d'un événement ou d'une activité.
  • Créer une escalade afin de traiter rapidement l'échec d'une activité.
  • Créer une temporisation afin d'empêcher un flux d'attendre indéfiniment.
Chaque événement de temporisateur est associé à un temporisateur. L'intervalle de temps associé au temporisateur est calculé en fonction de la configuration que vous indiquez dans les propriétés d'implémentation de l'événement de temporisation. En règle générale, lorsque l'intervalle de temps spécifié est atteint, l'événement de temporisateur se déclenche et le flux de séquences passe de l'événement temporel vers le noeud suivant. Toutefois, lorsqu'une instance de processus est interrompue, les événements de temporisateur ne sont pas déclenchées. Tous les temporisateurs associés à ces événements continuent à contrôler le temps qui s'écoule. Si un temporisateur arrive à expiration alors que l'instance est suspendue, l'événement de temporisateur associé patiente jusqu'à la reprise de l'instance de processus avant de se déclencher.

Pour modéliser des retards, utilisez des événements de temporisation intermédiaires dotés de lignes de flux de séquences entrantes et sortantes.

Evénement de temporisation intermédiaire connecté à un noeud de début et à une activité par le biais de lignes de flux de séquences
Le processus attend que le temporisateur associé à l'événement arrive à expiration avant de passer au noeud suivant. Par exemple, votre processus comprend une activité qui consiste à envoyer des offres par courrier électronique à des clients et une autre activité qui demande à l'équipe de ventes de prendre contact avec ces clients deux jours après l'envoi. Dans ce cas, vous modélisez un retard via un événement de temporisation placé entre les deux activités. Ce retard garantit un délai de deux jours entre le moment où les courriers électroniques sont envoyés et celui où l'équipe de ventes commence à contacter les clients.

Pour modéliser des escalades, utilisez des événements limite de temporisateur. Les événements limite de temporisateur sont associés à une activité dans un processus.

Activités associées à un événement intermédiaire limite de temporisateur. Une ligne de flux de séquences connecte l'événement limite à une activité pour créer une procédure d'escalade.
Lorsqu'une instance de processus en cours d'exécution atteint une activité incluant un événement limite de temporisation, un temporisateur démarre. Lorsque le temporisateur arrive à expiration, le processus suit le flux de séquences entre l'événement limite de temporisation et l'activité suivante. Pour un exemple, voir Add a timer intermediate event dans le tutoriel de recrutement ou reportez-vous à l'exemple de recrutement.

Pour modéliser des temporisations, utilisez des événements intermédiaires de temporisation inclus dans les passerelles d'événement. Si les autres événements intermédiaires du groupe de la passerelle d'événements ne se déclenchent pas avant l'écoulement du délai, c'est l'événement intermédiaire qui se déclenche à la place. Lorsque vous ajoutez une passerelle d'événement, Process Designer ajoute automatiquement un événement intermédiaire de temporisation et un événement de message au groupe de la passerelle d'événement. Vous définissez l'événement intermédiaire de temporisation de manière à spécifier le délai d'attente.

Passerelle d'événement incluant un événement de message et un événement intermédiaire de temporisation
Pour en savoir plus sur la création d'une passerelle d'événement, voir Modélisation de passerelles d'événements.

Procédure

Pour modéliser un retard, une escalade ou une temporisation, procédez comme suit :

  1. Ouvrez un processus dans la vue Designer.
  2. Faites glisser un événement intermédiaire icône depuis la palette.
    • Pour créer un retard, déposez l'événement intermédiaire sur une zone vide de la grille.
    • Pour créer une escalade, déposez l'événement intermédiaire sur une activité. Cette action associe l'événement intermédiaire en tant qu'événement limite. Pour vérifier que vous avez créé un événement limite, sélectionnez l'activité et contrôlez que le contour de l'activité inclut l'icône de l'événement.

      Pour créer plusieurs escalades, associez plusieurs événements intermédiaires à l'activité. Chaque événement limite déclenche une procédure d'escalade différente.

    • Pour créer une temporisation, déposez l'événement intermédiaire dans un groupe de passerelles d'événements.
  3. Sélectionnez l'événement intermédiaire et ouvrez ses propriétés Implémentation.
  4. Dans la liste des types d'événements intermédiaires, sélectionnez Temporisateur.
  5. Si vous créez une escalade et que vous voulez que l'activité reste ouverte après le déclenchement du temporisateur, dans la section Détails de l'événement limite, décochez la case Interrompre l'activité. Par exemple, supposons que vous créez un événement limite de temporisateur pour une tâche utilisateur. Le service utilisateur associé à la tâche possède des coaches. Si vous souhaitez que les utilisateurs terminent les coaches même après que le temporisateur soit écoulé, décochez la case Interrompre l'activité. Si vous décochez la case Interrompre l'activité, vous pouvez choisir d'appliquer une seule fois l'escalade en décochant la case Reproductible.
  6. Définissez la date de début du temporisateur de l'événement dans les propriétés Temporisateur :
    1. Définissez l'élément déclencheur du temporisateur dans la zone Déclencher. Par exemple, pour démarrer le temporisateur lorsque la date d'échéance d'une activité est atteinte, sélectionnez Après la date d'échéance. La date d'échéance est déterminée en fonction de la planification du travail pour la définition de processus métier et des paramètres de priorité de l'activité. Pour plus d'informations, voir Définition de la planification du travail d'un processus.
      Remarque : Pour déclencher l'événement de temporisateur avant ou après une date personnalisée, entrez le JavaScript permettant de déterminer la date de votre choix dans la zone Date personnalisée. Votre JavaScript doit renvoyer un objet Date, qui indique la date de début du temporisateur.
    2. Pour modifier le temporisateur, utilisez la zone Avant ou après la différence. Par exemple, si vous souhaitez démarrer le temporisateur un jour après la date d'échéance de l'activité, entrez 1 dans la zone et sélectionnez la valeur Jours dans la liste correspondante.
      Remarque : si vous choisissez d'exécuter l'événement de temporisateur régulièrement, veillez à définir une valeur d'au moins 1 minute dans la zone Avant ou après la différence. Lorsque le temporisateur a pour valeur Reproductible, un avis d'escalade est envoyé à chaque fois que l'intervalle spécifié est écoulé, et ce jusqu'à la fin de l'activité. Un intervalle de 0 entraîne une charge d'unité centrale élevée car les avis d'escalade sont envoyés continuellement, sans intervalle, jusqu'à la fin de l'activité.
    3. Facultatif : Pour modifier davantage le déclencheur, utilisez la zone Intervalle de tolérance. Par exemple, indiquez un niveau de tolérance d'une heure si vous voulez que l'escalade se produise au bout d'un jour et d'une heure après la date d'échéance de l'activité.
  7. Si vous créez une escalade ou un temporisateur, créez le flux utilisé par le processus une fois le temporisateur écoulé. La logique utilisée par le processus en cas d'expiration du temporisateur avant que l'activité associée ne soit terminée est l'escalade. De la même manière, la logique utilisée par le processus en cas d'expiration du temporisateur avant qu'un autre événement du groupe de passerelles d'événements ne se déclenche est la temporisation.
  8. Connectez l'événement de temporisateur :
    • Pour un retard, connectez l'événement de temporisateur au reste du processus.
    • Pour une escalade ou une temporisation, connectez l'événement de temporisateur à la procédure correspondante.
  9. Cliquez sur Sauvegarderou sur IBM BPM version 8570, groupe de
correctifs 2017.03Terminer l'édition.