Guides:TestWF -2

De Wiki1000

Sommaire

Guide d’utilisation des processus métiers

Création d’un processus métier

La création d’un processus métier passe d’abord par la création d’une catégorie.

Création d’une catégorie

Une catégorie a une fonction de classement. Sur le dossier « Processus métier », créez une nouvelle catégorie pour ranger le processus 

image1.png

La fenêtre de propriété du processus permet de donner un nom à la catégorie.

image2.png

Création d’un processus

Sur la catégorie, créez un processus.

image3.png

Dans la fenêtre de dialogue de propriété, renseignez le nom du processus.

image4.png

Le processus apparaît dans l’arbre avec un indicateur spécifiant que le processus est incorrect. A ce stade de l’élaboration du processus ceci est normal.

image5.png

Insérer des activités et évènements

Une fois le nœud sélectionné, il est possible d’ajouter des activités et des évènements. Le processus métier doit obligatoirement contenir un début et une fin.

Pour ajouter un élément ouvrez la palette correspondante (ici Evènements initiaux) et sélectionnez l’élément. Cliquez à l’intérieur du diagramme pour placer l’élément. Par exemple ajoutez l’évènement initial « Immédiat », l’activité « Ok » et l’évènement « Terminé »..

image6.png


Relier les évènements et activités par des séquences

Après avoir placé les activités et évènements désirés il est nécessaire de les relier par des séquences.

Pour cela sélectionnez la séquence dans la barre d’outils. Puis cliquez sur la première activité et relâchez la souris sur la seconde.

https://frp.sage.fr/wiki1000/medias/images/testwf/

https://frp.sage.fr/wiki1000/medias/images/testwf/ Vous pouvez valider le processus à l’aide du bouton [Valider] de la barre d’outils supérieure. L’icône signalant le processus devient bleu. Si le processus ne comporte pas d’erreurs, la zone en bas du concepteur affichera l message « Pas d’erreurs ».


Une fois le processus terminé, il peut être sauvegardé.

image7.png

Glissez votre processus dans la machine. Puis démarrez et exécutez la machine par le menu contextuel.

https://frp.sage.fr/wiki1000/medias/images/testwf/

Dès que la condition de déclenchement du processus est remplie, le processus métier s’exécute.

Paramétrage des évènements et activités

Toutes les activités et évènements possèdent un dialogue de propriété accessible en double cliquant sur l’élément.

image8.png

Toutes les activités disposent d’un onglet « Notifications » qui permet de renseigner un message qui sera stocké dans l’historique du processus, de personnaliser les traces et de vérifier l’exécution de l’activité.

image9.png

Une fois le processus métier exécuté, son activité peut être vérifiée via les traces auxquelles on accède par l’arborescence au niveau du processus.

Exécution dans une machine locale

Vous allez maintenant exécuter ce processus dans une machine locale. Une machine locale est une machine exécutée par l’application Desktop.

Mise en place du serveur

Créez tout d’abord un serveur. Sur le dossier « Serveurs de processus métier », sélectionnez la commande Nouveau serveur du menu contextuel.

image10.png

Par défaut le serveur est configuré sur l’adresse locale de la machine (localhost) ce qui l’identifie au serveur local.

Mise en place du moteur

Ajoutez ensuite une machine à l’aide de la fonction Nouvelle machine du menu contextuel du serveur..

image11.png

Donnez un nom à la machine dans la fenêtre de propriété du moteur.

image12.png

Pour exécuter votre processus placez-le dans la machine, pour cela glissez le nœud du Processus dans le nœud de la machine.

image13.png

A ce stade le processus sera exécuté lorsque la machine sera démarrée.

Suivi de l’exécution

Le Concepteur de processus métier permet aussi de suivre l’activité des machines en temps réel.

Activez l’option de suivi à partir du menu contextuel du nœud de la machine :

image14.png

Puis démarrez la machine à l’aide de la commande Démarrer du menu contextuel.

image15.png

Lorsque l’on démarre une machine manuellement, celle-ci est placée dans un état « Suspendu ». Trois états sont possibles pour une machine :

Arrêté,

Démarré et suspendu,

Exécution.

Pour passer dans l’état « Exécution », vous devez utiliser l’option « Reprendre» :

image16.png

https://frp.sage.fr/wiki1000/medias/images/testwf/ La machine est alors en exécution et une instance du processus est créée. Elle apparait dans l’arbre.

image17.png

Une fois l’exécution de l’instance terminée, le processus est automatiquement supprimé de la machine.

Ce comportement dépend de la façon dont est paramétré le processus :

lorsque vous avez créé le processus et conservé les valeurs par défaut, le nombre maximum d’exécution de « 1 » indique qu’une seule instance du processus sera exécutée. Une fois cette instance exécutée, le processus n’est plus susceptible de créer une nouvelle instance et il est retiré de la machine.

image18.png

si on modifie ce paramètre en plaçant -1 de la façon suivante, et que le processus est replacé dans la machine en cours d’exécution

image19.png

Plusieurs instances du processus s’exécutent alors simultanément. Dans cet exemple le nombre d’instances dépend du nombre d’états du processus. Deux instances sont susceptibles de s’exécuter simultanément.

image20.png

Arrêt du processus

Tel qu’il est défini le processus va s’exécuter sans s’arrêter..Pour le stopper, utilisez la commande « Arrêter » du menu contextuel du processus en exécution.

image21.png

Cette action demande l’arrêt du processus mais n’interrompt pas d’elle-même l’exécution des instances. Le processus est marqué « A arrêter »:

image22.png

Dans cet état aucune nouvelle instance ne pourra être créée. Lorsque toutes les instances en cours seront terminées le processus sera supprimé.

Arrêt d’une instance

Pour arrêter une instance, vous devez procéder de la même manière.

Consultation du journal

L’exécution de votre processus à généré des entrées dans le Journal d’exécution. Il est possible de consulter ce journal directement dans l’arbre de conception à partir du dossier du processus.

image23.png

Le détail du journal affiche toutes les informations concernant l’exécution.

image24.png

Fenêtres de propriétés associées au processus métiers

Propriétés d’un serveur de processus

Pour afficher la fenêtre de propriétés d’un serveur de processus, sélectionnez la commande Propriétés du menu contextuel du serveur de processus métier.

Onglet « Propriétés »

image25.png

Nom du serveur 

C’est le nom du serveur de Processus Métier. Lorsque le serveur de processus est exécuté sur un Service Ligne 1000 ce nom doit correspondre au nom de la machine physique qui exécute le Service ligne 1000.

Nom du service

Il s’agit du nom du Service Ligne 1000.

Si le nom du serveur est localhost le serveur est considéré comme étant un serveur local. Un serveur local est utile lors de la phase de mise au point pour exécuter des machines à l’intérieur de l’application Desktop.

image26.png

Onglet « informations »

L’onglet « Informations » donne des informations sur la configuration du serveur et l’état de celui-ci.

Propriétés d’une machine

Pour afficher la fenêtre de propriétés d’une machine, sélectionnez la commande Propriétés du menu contextuel de la machine.

Onglet Propriétés

image27.png

Nom du moteur

Identifie le moteur.

Base de données

Les évènements métiers pris en compte par la machine sont filtrés sur cette base de données. Si la base de données n’est pas renseignée, toutes les bases de données enregistrées dans le framework lors de l’exécution sont prises en comptes.

Délai de Cycle

Délai en millisecondes entre chaque étape de la machine.

Synchronisation

Intervalle en nombre de cycles entre deux synchronisations des évènements métiers. La synchronisation des évènements métiers consiste à lire la table des évènements métiers pour prendre en compte les nouveaux évènements. Couplé au paramètre « Délai de Cycle », ce paramètre conditionne la fréquence des requêtes effectuées par la machine dans la table des évènements.

Exemple

Avec un délai de cycle de 1 seconde et un pas de 1 seconde la machine exécutera une requête par seconde. Avec un pas de 10 la machine exécutera une requête toutes les 10 secondes.

Renseignez 0 pour indiquer aucune synchronisation. Ce cas est utile pour une machine hébergeant des processus techniques n’ayant aucune interaction avec les évènements métiers.

Sauvegarde toutes les

Indique le délai minimum entre deux sauvegardes.

En cours d’exécution la machine effectue une sauvegarde de son état si un état a changé au cours d’un cycle et si le délai avec la dernière sauvegarde est supérieur à cette valeur.

Date de synchronisation

Cette date indique la date de synchronisation de la machine. La date de synchronisation est la date au delà de laquelle les évènements sont pris en compte.

Séquence d’évènement

Cette information indique le numéro de séquence du dernier évènement pris en compte.

Onglet « Commentaire »

Dans l’onglet « Commentaire » vous ajoutez des informations utiles à la compréhension du moteur.

Onglet « XML contenu »

Cet onglet affiche le script xml.

Propriétés d’un processus métier

Pour afficher la fenêtre de propriétés d’un processus métier, sélectionnez la commande Propriétés du menu contextuel du processus.

image28.png

Cette boîte de dialogue concerne les processus en cours de conception et non les Processus en cours d’exécution. Lorsqu’un processus métier est exécuté, les copies exécutées ne sont pas impactées par ce dialogue.

Voir le § « ».

Onglet propriétés

image29.png

Nom du processus

Nom identifiant le processus.

Version du processus

Un processus est identifié par la combinaison de son nom et de sa version.

Il est possible d’exécuter simultanément plusieurs versions de processus.

Ce processus métier est désactivé

Un processus métier désactivé ne démarre plus de nouvelle instance.

Enregistrer dans journal

L’enregistrement de l’exécution d’une instance s’effectue lorsque l’instance ce termine. Décochez cette option si vous ne voulez pas garder trace de l’exécution.

Nombre maximum d’exécution

Indique le nombre d’instance que peut démarrer le processus. Si le nombre est à -1, le nombre d’exécutions est illimité. Les exécutions devront être stoppées au niveau du processus.

Nombre maximum d’instances simultanées

Indique le nombre maximum d’instances du processus pouvant s’exécuter simultanément. Lorsque ce nombre est atteint, le démarrage de nouvelles instances est temporisé.

Délai d’attente maximal

Indique le délai d’attente maximal par défaut pour toutes les activités. Une valeur « 0 » indique qu’aucun délai d’attente n’est pris en compte. Il est possible de définir ce délai au niveau de chaque activité.

Onglet « Commentaire »

Dans l’onglet « Commentaire » vous ajoutez des informations utiles à la compréhension du processus.

Onglet « Attributs »

image30.png

Cet onglet permet de définir les attributs du processus.

Les attributs sont des variables pouvant être manipulés dans les activités du processus. Il est aussi possible de définir dynamiquement de nouveaux attributs lors de l’exécution des instances. L’intérêt de prédéfinir les attributs à ce niveau est d’avoir ensuite la possibilité de les manipuler dans les interfaces de conception. En effet, si les attributs sont définis dynamiquement il ne sera pas possible de les utiliser par la suite dans es activités.

Onglet « Avancés »

image31.png

Il est possible d’associer une classe métier au processus métier. Cette classe pourra être utilisée par certaines activités.

Créer un objet et Base de données : Ces propriétés servent à créer automatiquement un objet métier (persistant) lorsqu’une instance du processus est démarrée. L’objet est associé à l’instance du processus.

Onglet « XML contenu »

Cet onglet affiche le script xml.

Propriétés d’un processus en cours d’exécution

Pour afficher la fenêtre de propriétés d’un processus en cours d’exécution, sélectionnez la commande Propriétés du menu contextuel du processus.

image32.png

Les informations modifiables dans cette boîte de dialogue sont identiques à celles de la fenêtre de propriétés d’un processus.

image33.png

Propriétés d’une instance en cours d’exécution

Pour afficher la fenêtre de propriétés d’une instance en cours d’exécution, sélectionnez la commande Propriétés du menu contextuel de l’instance.

image34.png

Onglet Propriétés

image35.png

Identifiant :

Nom de l’instance.

Etat en cours :

Etat en cours d’exécution. L’état correspond à une activité.

Date de changement :

Date à laquelle cet état a été atteint.

Expire-le :

Date d’expiration de l’état quand un délai d’expiration est défini. « zéro » indique aucune expiration.

Onglet Messages

image36.png

Cet onglet affiche tous les messages collectés par l’instance.

Onglet Paramètres

image37.png

Cet onglet affiche toutes les valeurs des paramètres de l’instance.

Propriétés d’une activité ou d’un évènement

Toutes les activités ont une fenêtre de dialogue de propriétés. Celui-ci dépend de l’activité. En général ces dialogues incluent les pages suivantes.

Pour afficher la fenêtre de propriétés d’une activité ou d’un évènement, double-cliquez sur l’activité ou l’évènement concerné.

Pour plus de détails sur la fenêtre de propriétés d’un évènement métier, reportez-vous au § .

Processus métier en interaction avec le métier

Principe de fonctionnement

L’intérêt des processus métiers est de pouvoir interagir avec les applications métiers. Cela entend :

Etre déclenché par un évènement issu d’un objet métier,

Pouvoir manipuler des informations d’un objet métier,

Pourvoir modifier l’état d’un objet métier.

Pour réaliser un processus interagissant avec un objet métier vous devez utiliser la démarche suivante.


Ajouter une règle d’état au modèle métier qui détectera le changement d’état de l’objet.


Utilisez l’évènement initial « Evènement métier » pour déclencher votre processus.


Utilisez l’activité «Exécuter une expression » pour conditionner votre processus suivant l’état de l’objet.


Utilisez l’activité « Exécutez du code métier » pour modifier l’état de l’objet métier.



Lorsque vous déclenchez un processus par un évènement métier, l’instance du processus est automatiquement liée à l’instance de l’objet métier ayant déclenché l’évènement. Vous pouvez alors manipuler cette instance dans les activités du processus à travers l’attribut « Instance ».

Il n’y a qu’une seule classe d’évènement métier par type de modification pour un même objet métier, mais elle peut servir à déclencher plusieurs évènements de processus métier.

Quand la classe est déclenchée par le métier tous les évènements métiers qui y sont reliés sont déclenchés.


Un évènement métier peut déclencher plusieurs instances.

Exemple d’utilisation

La classe WFClasseA possède un Code (attribut unCode) et un état (attribut unEtat). Deux règles d’état sont définies :

La règle RegleEtat_unCode détecte le changement de l’attribut code.

image41.png

La règle RegleEtat_unEtat détecte le changement de l’attribut unEtat :

image42.png


Le processus va réaliser les opérations suivantes :

Lorsque l’utilisateur modifie le code d’un objet de WFClasseA, une instance du processus est déclenchée.

Cette instance modifie l’attribut Etat de l’objet correspondant à la valeur « Initial ».

Le processus attend ensuite que l’attribut Etat passe à la valeur « Etat3 », changement réalisé par l’utilisateur.

L’instance du processus change alors la valeur de l’attribut Etat à « Final » et se termine.

Le processus métier correspondant est défini.

image43.png


L’évènement initial est l’évènement métier généré par la règle d’état de changement de code.

image44.png

Le changement du code d’un objet de cette classe va donc créer une instance du processus.

L’activité suivante est une activité script qui modifie la valeur de l’attribut « Etat » de l’objet.

image45.png

La classe de l’objet métier est connue par le processus. Ainsi les outils d’aide à l’édition de code fonctionnent.

image46.png

Le corps du code modifie l’attribut de l’instance dans une transaction.

https://frp.sage.fr/wiki1000/medias/images/testwf/image47.pngLe processus attend ensuite la modification de l’état de l’objet. Pour cela il utilise un évènement « Attente » d’Evènement métier.

image48.png

Lorsque la case « Evènement de l’instance principale » est cochée, l’évènement doit provenir de la même instance d’objet métier que celle qui a déclenchée le processus.

Sur l’onglet « Post-Condition », la condition est la suivante : l’objet métier doit être dans l’état 3.Cette condition sera testée par l’activité. Si elle n’est pas remplie, l’activité sera toujours en attente.

image49.png

Lorsque l’objet a été changé, ici par l’utilisateur, le processus enchaine l’activité suivante qui modifie de nouveau l’état de l’objet, puis se termine.

image50.png

Procédure

Une interface utilisateur simple est utilisée pour modifier les objets. Le processus est en cours d’exécution dans une machine locale.

image51.png

La modification du code entraine la création d’une instance. Les différentes activités du processus sont exécutées jusqu'à l’attente d’un nouvel évènement métier:

image52.png

Si on rafraichit l’interface utilisateur, on constate que l’état de l‘objet a été changé.

image53.png

Passez l’objet dans l’état Etat3.

image54.png

L’instance du processus enchaîne les dernières activités puis se termine. En rafraichissant l’interface utilisateur, on constate que l’objet est dans l’état final.

image55.png


Vous remarquez dans cet exemple que :

La création d’un nouvel objet de la classe ne déclenche pas d’instance de processus, cela parce que les règles d’état ne sont évaluées qu’en mode modification.

La modification de l’objet dans un autre état que l’état 3 n’a pas d’influence sur le processus.

Base de données d’une instance de Processus Métier

Par défaut un Processus Métier n’est pas rattaché à une base de données particulière, toutefois dans certain cas il est souhaitable qu’un Processus s’exécute dans un contexte de base de données particulier.

Pour cela il est possible de définir la base de données privilégié par un Processus à deux niveaux :

Au niveau de la machine qui contient le processus.

image56.png

Une autre conséquence de définir une base de données au niveau de la machine est que cette base devient un filtre pour les évènements métiers pris en compte par la machine.

Au niveau du Processus lui même.

image57.png


Cette base de données privilégiée sera utilisée :

Par les activités de type Tâche métier qui possède un paramétrage de base de données : si vous ne renseignez pas la base de données au niveau de l’activité Tâche la base de données privilégiée du Processus sera utilisé.

Lors de la création de l’instance associé au Processus Métier si vous avez utilisez l’option permettant de créée automatiquement une instance lors du démarrage d’une instance de Processus Métier.

La priorité de prise en compte des différentes possibilités de paramètrage est la suivante :

La base de données définie au niveau de l‘activité si elle existe.

La base de données définie au niveau de la machine

La base de données définie au niveau du Processus.



Processus métiers utilisant les fonctions de messagerie

Activités de messagerie

Les activités disponibles pour gérer les messageries sont les suivantes :

Envoyer un Email (SMTP)
Attendre la réponse d’un Email (REST)
Attendre la réponse d’un Email (POP3)
Attente de réception d’Email dans une boîte à lettre (POP3)

Les activités de messageries fonctionnent sur les protocoles standards Internet. Trois scénarios sont possibles :

envoyer un mail,

recevoir un mail,

déclencher une activité dès réception d’un mail.


Deux possibilités sont offertes pour recueillir la réponse d’un Email :

REST : l’utilisateur clique sur un lien http correspondant au service d’un Serveur 1000 permettant de créer des évènements métiers. Cette possibilité suppose que l’utilisateur ait accès au domaine hébergeant le Serveur 1000 (Solution Intranet).

POP3 : l’utilisateur répond au message reçu en en modifiant son contenu. L’activité scrute la boîte aux lettres de retour pour recueillir la réponse (Solution Internet).

Exemple d’utilisation d’une réponse REST

Déroulement du processus :

Lorsqu’un utilisateur modifie le code d’un objet de WFClasseA, une instance du processus est déclenchée.

Un email est alors envoyé à deux destinataires.

Les destinataires peuvent répondre par Oui ou Non.

Le processus attend la réponse, et en fonction du choix de l’utilisateur, exécute l’une ou l’autre des activités.


image62.png


Comme précédemment le déclenchement du processus utilise un évènement métier, l’activité suivante est l’envoi de l’email.

Onglet « Mail »

image63.png

Onglet « Mail »

Identifiant

L’identifiant du mail est un identifiant arbitraire utilisé pour réaliser le lien avec l’activité qui va gérer la réponse.

Adresse

La saisie des adresses des destinataires utilise la convention suivante :

les adresses sont séparées par des points-virgules,

si l’adresse contient un caractère arobase @ alors il s’agit d’une adresse externe Internet

si l’adresse ne contient pas de caractère arobase @ alors il s’agit d’une adresses interne d’une boîte à message de l’application.

Le corps du message est rédigé en HTML. Il contient les URL qui permettent à l’utilisateur de répondre. Pour placer ces URL, sélectionnez une zone de texte qui constituera le texte associée à l’URL puis utilisez la fonction URL de la barre d’outils.

image64.png

Le corps du message contient aussi des valeurs d’attributs du processus qui seront substituées à l’exécution : [Instance.unCode] la valeur entre les crochets est une expression qui sera évaluée par l’activité lors de l’exécution.

Onglet « Avancé »

Le lien vers l’écran associé fonctionne si vous renseignez le nom de l’écran dans l’onglet « Avancé ».

image65.png

Il permet à l’utilisateur d’accéder directement à une interface en rapport avec l’objet métier associé à l’instance du processus.

L’attente de la réponse à l’email est paramétrée de la façon suivante :

image66.png

Il suffit de reprendre l’identifiant de l’activité mail pour effectuer le lien avec l’email envoyé.

L’enchainement du processus en fonction de la réponse du destinataire est réalisé ainsi :

Si le destinataire répond OK la séquence Succès suivante est exécutée.

Si le destinataire répond NOK la séquence Echec suivante est exécutée.

Les activités qui suivront ne feront qu’écrire un message dans l’historique de l’instance.

image67.png


Exécutez cet exemple en utilisant une machine locale.

Tout d’abord ce processus envoi un Email à travers le protocole SMTP, il faut donc fournir les informations sur le serveur de messagerie utilisé. Avec l’application Desktop cela s’effectue dans le panneau de configuration du menu Fichier.

image68.png


Si nous avions utilisé un Service 1000 comme Serveur du processus ces informations seraient renseignées dans son fichier de configuration.

Ensuite le processus attend une réponse renvoyée à travers un service du Serveur 1000, il faut donc exécuter un Serveur 1000 pour récupérer cette réponse.

image69.png

Utilisez une machine locale. Cette machine n’étant pas le Serveur 1000 qui récupérera la réponse, il est nécessaire de renseigner l’adresse de ce serveur. Cela s’effectue sur les propriétés des « Serveurs de processus métiers ».

image70.png


Démarrez une instance du processus en modifiant un objet de la classe métier.

image71.png


L’instance a démarré.

image72.png

Vérifiez que les emails ont été envoyés. Tout d’abord dans la boîte à message de l’utilisateur  vous retrouvez le message de départ.

image73.png


Il est possible de répondre à partir de la boîte à messages accessible depuis la barre Outlook, la barre d’outils de votre application Desktop ou le menu Fichier de votre application web.

image74.png

Puis dans le compte de votre messagerie.

image75.png

L’adresse du destinataire provient du paramètre situé dans les préférences de l’utilisateur (TODO).

Consultez l’écran associé au message en cliquant sur le lien du message, le navigateur est ouvert par le logiciel de messagerie. A cet instant l’utilisateur n’a pas de session ouverte sur le Serveur 1000, la page de connexion est donc tout d’abord proposée.

image76.png


Après avoir renseigné les informations de connexion, l’utilisateur est redirigé sur l’écran.


image77.png

Répondez maintenant « Répondre à l’email » en cliquant sur le lien Réponse NOK. Comme il s’agit d’un lien, le navigateur est ouvert par le logiciel de messagerie.

image78.png

L’exécution du service a été réalisée et sa réponse est un fragment XML indiquant que l’évènement a bien été créé. (TODO)


Concernant le processus, on constate que l’instance s’est terminée, et il est possible de visualiser le le journal  de ce processus.

image79.png

La réponse reçue est bien NOK.

Vous pouvez aussi consulter les deux évènements métiers utilisés par ce processus : le changement d’état initial de l’objet métier et l’évènement créé par la réponse  de l’utilisateur.

image80.png


Exemple utilisant une réponse POP3

Ce second exemple est identique au précédent, excepté la réponse de l’utilisateur qui est retrouvée dans sa réponse à l’email. C’est la référence du mail qui fait le lien.

L’envoi de l’email a été modifié pour permettre une réponse par messagerie.


image81.png


Les fragments entre crochet seront substitués à l’exécution ; ils ont été insérés avec la fonction suivante de la barre d’outils.

image82.png

Pour que la réponse de l’utilisateur soit reconnue, il est important qu’elle contienne la référence de l’email , le reste du texte n’a pas d’importance.

Si la réponse contient le fragment correspondant à [mailreponse_ok] la réponse sera considérée comme positive.

Pour paramétrer l’attente d’une réponse POP3, il faut paramétrer les informations nécessaires à la connexion sur le serveur de messagerie POP3.

image83.png

Exemple

image84.png


L’email est reçu dans le logiciel de messagerie.


image85.png

Répondez en acceptant la réponse, pour cela supprimez la clause de refus.

image86.png


L’envoi de la réponse est détecté par l’instance du processus qui se termine. Vous retrouvez la trace dans le journal.


image87.png


Cas d’utilisation déclenchant un processus par la réception d’un email

Dans cet exemple vous allez réaliser un processus déclenché par la réception d’un email dans une boîte de messagerie. Le processus répond ensuite à l’email puis se termine.


image88.png


Evènement initial

L’évènement initial est la réception d’un email par le protocole POP3. En double-cliquant sur l’activité « Réception d’un Email dans une boîte à lettre », vous la paramétrez avec les informations de connexion du compte POP3.

image89.png

Le préfixe des paramètres sera utilisé pour copier les informations de l’email déclencheur dans les paramètres de l’instance.

Activité

L’activité envoyant la réponse est paramétrée dans la boîte de dialogue des propriétés de l’activité « Envoyer un email »..


image90.png

L’activité utilise les informations copiées lors de la création de l’instance pour :

déterminer l’adresse du destinataire : [GetParameter(‘inbox’,’ReplyTo’) ],

déterminer l’objet de l’Email : [Get(‘inbox.Subject’) ],

déterminer le corps de l’Email : [Get(‘inbox.Content’)].

Les deux formes GetParameter et Get sont équivalentes dans cet exemple.

Exécutez ce processus en utilisant le logiciel de messagerie d’envoi d’email dans la boîte à lettre utilisée par le processus.


image91.png


La réception de l’Email a créé une instance, celle-ci a répondu puis s’est terminée. Vous en trouvez la trace dans le journal.


image92.png


Vous pouvez aussi consulter les paramètres de l’email.

image93.png


Consultez la boîte à lettre de l’expéditeur pour retrouver la réponse.

image94.png

Cas d’utilisation faisant appel à un formulaire

Dans cet exemple vous allez envoyer un mail en demandant au destinataire de remplir un formulaire.

Le scénario est le suivant :

un processus est déclenché immédiatement,

l’instance du processus envoi un email à l’utilisateur,

l’instance du processus attend la création de saisie du formulaire.

Le modèle du processus est le suivant :

image95.png

Le formulaire

Le formulaire lui-même est un écran Sage 1000 qui stockera le contenu de la saisie dans une classe persistante. Le modèle de cette classe contient un champ InstanceId qui stockera l’identifiant de l’instance du processus. Ce champ constitue aussi une clé unique qui évitera la double saisie.

image96.png

L’écran de saisie du formulaire est un écran simple sur lequel les options de navigation ont été supprimées.

image97.png

L’écran possède un argument qui va permettre de renseigner automatiquement l’instance du processus.

image98.png

L’envoi du mail

Dans les propriétés du processus (onglet « Avancés »), associez la classe métier du formulaire, ceci permettra de configurer les activités plus facilement.

image99.png

L’activité email est paramétrée.

image100.png

Le contenu du message est un lien vers l’écran de saisi, l’onglet avancé paramètre ce dernier.

image101.png

L’écran de saisie est ouvert en mode création. Ainsi l’utilisateur n’a plus qu’à remplir les champs et valider. L’argument de l’écran ArgInstanceId sera automatiquement renseigné avec l’identifiant de l’instance du processus.

Dans cet exemple utilisez InstanceGUID comme identifiant d’instance.

La réception de la réponse au formulaire

Pour retrouver la réponse vous avez enregistré un évènement métier déclenché par la création d’un objet de la classe formulaire.

image102.png

L’activité « Attente d’un évènement métier » est utilisée et paramétrée de la façon suivante.

image103.png

Lors de l’exécution de l’activité, le processus n’a pas encore d’objet métier associé, l’attribut « Instance » du processus n’est donc pas globalement défini. Cependant, dans le contexte de cette activité il représente l’objet associé à l’évènement.

Il est possible de tester dans les Post-Conditions que l’objet correspond bien à l’instance de processus.

image104.png

En cochant la case« Définir comme objet de l’instance » de l’onglet « Général », vous associez l’objet de l’évènement à l’instance du processus. Cette association sera effective uniquement pour les activités qui suivront.

Exécutez le processus

https://frp.sage.fr/wiki1000/medias/images/testwf/

Lorsque l’utilisateur clique sur le lien, il accède à l’écran du formulaire.

image105.png


Lorsque l’utilisateur valide sa saisie, l’instance du processus peut évoluer.


image106.png




Outils personnels