Exemple : Paramétrage d'un flux de travaux à utiliser avec le gestionnaire de traitement

La personne qui paramètre une tâche de flux de travaux dans l'écran Gestionnaire traitmnt forme ajoute une tâche avec le type tâche défini sur Démarrer un flux de travaux, spécifie des informations sur la tâche, et ensuite sélectionne l'événement de flux de travaux dans le champ Nom événement. Le champ Nom d'événement répertorie tous les événements non-framework et non-core qui sont disponibles dans CloudSuite Industrial. Vous devez créer les événements de flux de travaux qui seront listés ici.

Lorsque la personne affectée à la tâche de flux de travaux ouvre la tâche dans le Gestionnaire traitmnt, le nom de l'événement est affiché dans le champ Nom événement. La personne clique sur le bouton Initier événement pour démarrer le flux de travaux.

L'événement HR_NewHireAnnouncement et son gestionnaire d'événements, ainsi que certaines actions d'événement et un exemple de procédure enregistrée, sont fournis dans la base de données initialisée, comme exemple de flux de travaux à modifier et tester dans le Gestionnaire traitmnt. Cet exemple de flux de travaux envoie une notification à tous les employés en fournissant les détails du nom et poste de la nouvelle embauche. Vous devez modifier cet exemple comme décrit ici si vous voulez le tester dans votre système. L'exemple montre comment passer des paramètres via le script d'écran pour cet événement. La procédure enregistrée générique déclenche tout événement personnalisé donné.

Evénement, Définition

Cet exemple d'événement HR_NewHireAnnouncement a un gestionnaire et trois actions d'événement :

  • Type d'action "Définir attributs" SET(EVENTTITLE=E(EventTitle)) : Cette action d'événement écrit le RowPointer de tâche processus sur le titre de l'événement à des fins de références croisées.
  • Le type d'action "Notifier" a les paramètres suivants :
    • A : Constante commune événements "HRNewHireAnnouncementRecipients"
      Remarque : Vous devez définir la liste des utilisateurs associés pour cette constante commune événements.
    • Objet : Chaîne traduisible "Bienvenue au nouvel employé <empname>"
    • Corps : Chaîne traduisible "Je suis très heureux d'annoncer que <empname> nous rejoindra comme <empposition> à partir d'aujourd'hui".

    Cette action d'événement informe les utilisateurs qui sont associés à la constante commune événements à propos de la nouvelle embauche. EmpName et EmpPosition sont les paramètres d'entrée pour cet événement. Cette information est tirée du processus d'où provient ce flux de travaux.

  • Type d'action : Fin

Si vous voulez écrire vos propres événements, vous devez utiliser les premières et troisièmes actions d'événement, et écrire vos propres actions d'événement entre les deux, en fonction de vos besoins.

L'exemple d'événement HR_NewHireAnnouncement est fourni comme inactif. Vous devez l'activer sur l'écran Activer gestionnaire d'évnt flux de travaux afin de l'utiliser. Dans le champ Notifier utl, spécifiez les utilisateurs appropriés qui doivent recevoir la notification d'annonce de nouvelle embauche.

Scripting écran :

  • Pour tous les événements personnalisés qui doivent être pris en charge par le gestionnaire de traitement, identifiez les paramètres d'entrée qui sont requis. (L'exemple d'événement HR_NewHireAnnouncement nécessite deux paramètres d'entrée : EmpName et EmpPosition).
  • Si un événement utilise des paramètres d'entrée, déterminez si ces valeurs de paramètre d'entrée peuvent être récupérées à partir de composants, propriétés ou variables de page écran. Sinon, récupérez ces valeurs de l'écran. Affectez ces paramètres d'entrée. (Pour notre exemple, les données des paramètres d'entrée peuvent toutes deux être récupérées à partir des composants d'écran.)

    Affectez les paramètres d'entrée, comme indiqué dans notre exemple:

    
    If ThisForm.Components("MyTasksFormPageEventNameEdit").Text = "HR_NewHireAnnouncement" Then
              ThisForm.Variables("ParmName1").Value = "EmpName"
              ThisForm.Variables("ParmValue1").Value = ThisForm.Components("MyTasksFormPageEmpName1Edit").Text
              ThisForm.Variables("ParmName2").Value = "EmpPosition"
              ThisForm.Variables("ParmValue2").Value = ThisForm.Components("MyTasksFormPageJobTitleEdit").Text
    End If
    Remarque :  Si vous souhaitez exécuter des événements RH supplémentaires personnalisés du Gestionnaire de traitement, ajoutez votre propre bloc de code dans le script de l'écran Gestionnaire traitmnt pour affecter des paramètres d'entrée pour vos événements personnalisés. Nous fournissons l'exemple de code comme cadre sur lequel vous pouvez construire.
  • Exécutez la procédure enregistrée avec le nom de l'événement disponible sur l'écran, ainsi que toutes les paires nom/valeur qui sont prises en charge par la procédure enregistrée.

Procédure enreg.

Nous fournissons une procédure enregistrée générique GenericNotifyEventGlobalCsSp avec ces paramètres :

  • EVENTNAME
  • @ProcessTaskRowPointer
  • @EventStateRowPointer OUTPUT
  • @Infobar OUTPUT
  • @ParmName1
  • @ParmValue1
  • @ParmName2
  • @ParmValue2
  • €¦etc pour les noms et valeurs de paramètres 3 à 19 ...
  • @ParmName20
  • @ParmValue20

La procédure enregistrée effectue les étapes suivantes :

  • Initialiser @SessionId, @EventTrxId, @EventParmId
  • Transférer @ProcessTaskRowPointer comme paramètre d'entrée à l'événement qui est stocké dans « Titre événement ».
  • Exécuter FireEventSp en transférant @EventName, @SessionId, @EventTrxId et @EventParmId
  • WAITFOR DELAY '00:00:05'
  • Lire le pointeur ligne état événement et revenir à l'écran.
Remarque :  En fonction du paramétrage de l'option « Conserver les états événements ayant réussi » dans l'écran Valeur/défaut des traitements, il se peut qu'un enregistrement EventState ne soit pas créé si l'événement a réussi. Dans ce cas, EventStateRowPointer est NULL, ce qui n'est pas un problème, puisque vous voulez seulement obtenir tous les événements ayant échoué.

Lorsque l'exemple de code est mis à jour comme indiqué ici, et que le bouton Initier événement est cliqué dans l'écran Gestionnaire traitmnt, le RowPointer de l'enregistrement de statut d'événement créé est stocké dans process_mgr_process_task.EventStateRowPointer.  Le message de réussite est affiché comme "Evénement initié".