Guides:TestWF

De Wiki1000
Version du 13 mai 2008 à 14:30 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)


Sommaire

Définitions

Définition d’un processus métier ou Workflow

Un processus métier sert à la gestion des circuits de validation et est paramétrable par l’utilisateur.

« Formellement, un processus métier peut être défini comme un enchaînement d'activités incluant une interaction entre participants, dans le but de réaliser un objectif métier. Dans un processus métier, on tient compte des différents participants d'une opération, de leur rôle, de l'objectif de cette opération et des moyens mis en œuvre (messages, documents). Un processus métier décrit des activités et leur séquencement. »

Processus métier dans Sage 1000

Un processus métier est un ensemble d’activités et d’évènements reliés entre eux par des séquences et qui vont s’enchaîner. Ils sont exécutés dans des machines qui sont elles-mêmes hébergées dans des serveurs.

Dans Sage 1000, un processus métier est conçu dans le concepteur de processus métier. Quand la conception est terminée il est mis en fonctionnement dans un ou plusieurs moteurs de processus métiers indépendants du concepteur.

Lors de l’exécution d’un processus métier, des « instances » sont créés par des évènements « initiaux » du processus. Ce sont ces instances qui sont exécutées, un processus métier pouvant avoir simultanément plusieurs instances en cours d’exécution.

Un processus est « métier » s’il peut interagir avec les objets des applications métiers ; pour cela les instances du PM doivent être associées à un objet de l’application métier. Un processus métier peut réagir aux évènements se produisant dans les applications métiers par l’intermédiaire des évènements métiers. Un évènement métier est généralement déclenché par un changement d’état d’un objet métier.

Différences entre Automate et Processus métier

Les Processus Métiers présentent des analogies de modèle et de fonctionnement avec les Automates existants notamment dans Sage 1000.

Les automates

L'utilisateur définit des automates attachés à un serveur d'automate et qui s'exécutent dans un Service Ligne 1000. Un automate exécute et enchaîne des tâches techniques ou métiers.

Les processus métiers 

L'utilisateur défini des processus métiers, exercés dans un moteur s'exécutant dans un Service Ligne 1000. Un processus métier réagit à un évènement initial et crée une de processus métier Cette instance exécute et enchaîne des activités techniques ou métiers et réagit à des évènements.


Pourtant il existe des différences majeures  entre l’automate et le processus métier :

  • Un automate s'exécute, à un instant « T » et il ne peut y avoir qu'une seule exécution de l'automate. Un processus métier exécute des instances, et à un instant « T » il peut y avoir plusieurs instances du processus en cours d'exécution.
  • Un processus métier est lié au métier : une instance de processus est rattachée à une instance d'un objet métier et peut interagir avec celle-ci.

Quand utiliser des Processus métiers ?

Les Processus Métiers sont utilisés dans les cas suivants :

Pilotage et orchestration.

Les processus métier peuvent appliquer les règles métiers de l’entreprise en gérant les activités métiers liées à l’exploitation des applications métiers. Ainsi ils permettent d’automatiser l’exploitation de l’application, en substituant à l’utilisation des interfaces utilisateurs des processus interagissant directement avec les objets métiers de l’application.

Orchestration d’architecture SOA

Couplés au Web Service ils peuvent permettre de mettre en œuvre des architectures SOA (Orienté Services) en prenant en charge l’orchestration des services.

Intégration et EAI

Les processus métier peuvent faciliter l’intégration d’applications hétérogènes grâce aux possibilités offertes par les activités techniques et leur capacité d’orchestration.

Automatisation

Les processus métier peuvent remplacer l’utilisation des Automates et Séquenceurs et permettre de bénéficier de nouvelles possibilités et d’une interface utilisateurs plus sophistiquée.

Architectures

Conception et exécution des processus métiers

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

Evènements métiers : relations entre processus métiers et évènements métiers

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

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.

  1. 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.

  1. 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.

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

image14.png

  1. 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 :

  1. Lorsque l’utilisateur modifie le code d’un objet de WFClasseA, une instance du processus est déclenchée.
  1. Cette instance modifie l’attribut Etat de l’objet correspondant à la valeur « Initial ».
  1. Le processus attend ensuite que l’attribut Etat passe à la valeur « Etat3 », changement réalisé par l’utilisateur.
  1. 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 :

  1. Lorsqu’un utilisateur modifie le code d’un objet de WFClasseA, une instance du processus est déclenchée.
  1. Un email est alors envoyé à deux destinataires.
  1. Les destinataires peuvent répondre par Oui ou Non.
  1. 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



Paramétrage des processus métiers

Le modèle de processus métier

Vue simplifiée du modèle

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

Les différentes entités du modèle de processus

Les serveurs

Les serveurs sont des entités qui hébergent les machines. La fonction des serveurs est de fournir des informations stables d’adressage (serveur, services…) aux machines.

Les machines

Les machines sont les entités qui exécutent les processus métiers.

Une machine maintient :

  • une liste de points d’écoute des évènements initiaux des processus,
  • une liste d’instances de processus en cours d’exécution,
  • une liste d’évènements métiers susceptibles d’être traités.

Les processus métiers

Les entités Processus Métiers contiennent la description du processus métier. Un processus métier est identifié par son nom et sa version. Il est constitué d’un ensemble d’activités et d’évènements.

Les catégories de processus métiers

Les catégories de processus métiers servent à classer les processus métiers. Elles sont arborescentes et un processus métier peut être rattaché à zéro ou à une catégorie.


L’exécution d’un processus métier

Un processus métier est exécuté en étant placé dans une machine.

Une copie du processus métier est alors créée et maintenue dans la machine. Cette copie est conservée tant que des instances sont en cours d’exécution ou que de nouvelles instances sont susceptibles d’être créées.

Comme l’exécution utilise une copie du processus métier, les modifications apportées ultérieurement au processus métier ne sont pas prises en compte dans la version en cours d’exécution.

Pour prendre en compte les modifications d’un processus métier en cours d’exécution, il faut :

soit attendre que toutes les instances en cours soient terminées pour arrêter le processus métier et le recharger,

soit changer la version du PM et exécuter la nouvelle version. Dans ce cas, plusieurs versions du processus métier s’exécuteront simultanément.


Les instances de processus métiers

L’exécution d’un processus métier crée des instances de ce processus. A un instant donné, il peut exister aucune, une ou plusieurs instances de ce processus.

Une instance de processus métier a un état qui évolue entre l’état initial du processus métier et un des états finaux.

Les activités

Les activités sont les tâches élémentaires réalisées par un processus métier.


Les évènements

Les évènements sont des activités particulières qui permettent à un processus métier d’attendre qu’une condition soit remplie.

Trois types d’évènements sont disponibles :

  • les évènements initiaux :
  • Un processus métier doit contenir un seul évènement initial. L’évènement initial attend qu’une condition soit remplie pour créer une instance de processus métier.
  • les évènements finaux :
  • Un processus métier doit contenir au moins un évènement final. Lorsque l’état d’une instance atteint un évènement final, l’instance est terminée.
  • les évènements intermédiaires :
  • Ils sont utilisés à l’intérieur d’un processus métier pour attendre qu’une condition soit remplie.


Les gestionnaires d’exception

Les gestionnaires sont des activités particulières permettant de réagir de façon globale à des situations inattendues.


Les séquences entre évènements et activités

Les activités et les évènements sont en relation par des séquences, des liens, qui indiquent l’enchainement entre ces éléments, c'est-à-dire la façon dont l’état d’une instance peut changer.

Trois types de séquences sont disponibles:

  • Séquence Succès : enchainement si l’exécution de l’activité est un succès,
  • Séquence Echec : enchainement si l’exécution de l’activité est un échec,
  • Séquence TimeOut : enchainement si l’exécution de l’activité ne s’est pas réalisée.


Les automates à états finis

Les automates à états finis ne sont pas visibles de l’utilisateur ou du concepteur de processus métiers mais il est utile de comprendre leur fonctionnement pour la compréhension du système.

Un processus métier est traduit en description d’automates à états finis:

  • chaque élément du processus métier, c’est-à-dire activité ou évènement, correspond à un état de l’automate,
  • chaque séquence entre deux éléments correspond à une transition entre les deux états.

Lorsqu’une instance de processus métier est créée, un automate correspondant est créé dans l’état initial du processus métier. L’automate évolue ensuite suivant l’apparition d’évènement internes élémentaires générés par les activités.

Ces évènements élémentaires sont générés par l’exécution des activités et sont définis ainsi :

  • EVN_OK 
  • Une activité génère un évènement OK lorsque l’exécution de l’activité est un succès. La machine passe dans l’état défini par la transition Etat courant / Séquence OK.
  • EVN_NOK 
  • Une activité génère un évènement NOK lorsque l’exécution de l’activité est un échec. La machine passe dans l’état défini par la transition Etat courant / Séquence NOK.
  • EVN_WAIT 
  • Une activité génère un évènement WAIT lorsque l’exécution n’a pas eut lieu. La machine reste dans l’état courant.
  • EVN_TOUT
  • Cet évènement est utilisé de façon interne pour indiquer un Time out.
  • EVN_HALT
  • Cet évènement est utilisé de façon interne pour interrompre une instance.


Les branches

Généralement l’état suivant l’exécution d’une activité est unique. Mais si l’activité dispose de plusieurs séquences sortantes vers plusieurs éléments différents, il est possible d’avoir plusieurs états suivant le nombre d’éléments.

Dans ce cas la machine crée une ou plusieurs branches. Une branche est une restriction du processus métier qui est exécutée en parallèle avec la branche principale. La branche principale est la branche correspondant à la première séquence sortante.

Une instance de processus métier ne peut se terminer que si toutes ses branches sont terminées.

Les branches peuvent être synchronisées, c’est-à-dire attendre que toutes les branches rejoignent un état particulier.


Les attributs et paramètres des processus

Les instances des processus métiers maintiennent une liste d’attributs au cours de la vie de l’instance. Ces attributs peuvent être manipulés par les activités du processus métier et sont finalement archivés dans le journal.

Un attribut est défini dans les propriétés du processus. Il peut être manipulé lors de la conception du processus.

Un paramètre est ajouté lors de l’exécution d’une instance. Il n’est pas défini lors de la conception du processus.

Un paramètre  est défini par deux identifiants, un préfixe et un nom ; le préfixe n’est pas obligatoire.

Valeurs des paramètres et attributs

Pour accéder aux attributs et paramètres dans le code d’une activité :

nom_attribut

nom_paramètre_sans_préfix

Get(nom)

Get(prefix.nom)

GetParameter(prefix, nom_paramètre)

Pour définir un attribut ou un paramètre dans le code d’une activité :

nom_paramètre_sans_préfix := valeur

Set(nom, valeur)

Set(prefix.nom, valeur)

SetParameter(prefix, nom, valeur)

Les valeurs des attributs ou des paramètres peuvent aussi être substituées dans le paramétrage des activités. Utilisez pour cela une notation entre crochets [ ]. Le contenu entre crochets est une expression qui sera évaluée lors de l’exécution de l’activité.

Exemple :

image108.png


L’instance métier d’une instance de processus

Une instance de processus métier peut être rattachée à une instance d’un objet métier. Dans ce cas cet objet métier peut directement être manipulé dans le code des activités de l’instance.

Lorsque l’évènement initial du processus métier est un évènement métier déclenché par un objet métier, alors ce rattachement est automatique et implicite.


Les messages émis par les instances de processus

Les activités peuvent émettre des messages. Ceux ci sont collectés par la machine et sauvegardés dans le journal.

La fonction principale de ces messages est la mise au point et le suivi du cheminement des instances.


Le journal d’exécution

Le journal d’exécution garde trace de l’exécution des instances des processus métiers.

L’enregistrement dans le journal est réalisé lorsque l’instance est terminée.


Les évènements métiers

Les évènements métiers sont des objets d’une classe de la base de données Master. Ils permettent au processus métier de réagir à des changements d’états d’objets des applications métiers.

Le moniteur d’exécution des processus métiers

Dans le concepteur de processus métiers, ouvrez la commande Ouvrir le moniteur du menu Actions afin d’accéder au moniteur d’exécution de processus métiers.

image109.png

Le moniteur d’exécution des processus métiers a pour fonction de démarrer les processus, surveiller leur exécution et consulter le journal d’exécution.

Le concepteur de processus métiers

Le concepteur de processus métiers est accessible par le menu Fichier / Outils / Concepteur de processus métiers.

La fenêtre du concepteur de processus métiers comporte quatre parties :

image110.png

Arbre de la partie gauche de la fenêtre

L’arbre à gauche de la fenêtre affiche les différentes entités en rapport avec les processus métiers :

  • les serveurs, locaux ou distants, qui ont été enregistrés. Leur état est signalé (arrêté, suspendu, démarré) et il est possible de suivre l’exécution des processus métiers qui sont présents dans les moteurs.
  • les processus métiers, destinés à être exécutés par un service, et organisés en catégories.
  • les machines,

les processus exécutés par la machine,

les instances de processus exécutées par la machine,

  • les classes d’évènements métiers enregistrés,
  • les instances d’évènements métiers.

La palette d’outils centrale

Elle contient l’ensemble des évènements et activités disponibles pour construire un processus métier. Ces éléments sont regroupés logiquement dans des onglets.

La barre d’outils centrale

Elle contient les éléments les plus fréquemment utilisés.

La zone de droite

Elle contient la zone d’édition graphique des processus métiers.

La zone d’affichage des messages d’erreurs

La zone au bas de la fenêtre affiche les messages d’erreurs éventuels lors de la validation d’un processus métier.

Service Ligne 1000 et processus métiers

Principes

Un Service Ligne 1000 peut démarrer un seul serveur de processus métier.

  1. Le service démarre le serveur de processus métiers dont le nom et le service correspondent au nom de la machine exécutant le service et au nom du Service.
  1. Lorsque le service est démarré, le serveur de processus métiers et les machines qu’il contient sont automatiquement démarrées en mode exécution.
  1. Lorsque le service est arrêté, le serveur est arrêté et l’état des machines en cours d’exécution est sauvegardé.

Paramétrage du service

Le fichier de configuration du serveur contient différentes entrées en relation avec les processus métiers.


BP RunOnStart Valeur logique Indique si le Serveur de processus est automatiquement démarré
SMTP Host Chaîne Serveur de messagerie SMT pour l’envoi d’Email
SMTP Port Entier Port du serveur de messagerie SMTP
SMTP Login Chaîne Compte utilisateur du serveur SMTP
SMTP Password Chaîne Mot du passe du compte du serveur SMTP
SMTP From Chaîne Adresse de l’expéditeur des Email envoyés par le serveur SMTP

Arrêt et démarrage

Il est possible d’arrêter et de démarrer manuellement le serveur d’un service à partir du concepteur de processus ou du moniteur.

Sur le serveur, sélectionnez la commande Arrêter le service du menu contextuel.

image111.png


Cette action arrête l’ensemble du serveur. Lorsqu’un serveur est redémarré manuellement les machines qu’il contient ne sont pas automatiquement démarrées. Vous devez manuellement des démarrer et les placer dans l’état exécution.

Evènements métiers

Définition des évènements métiers

Les évènements métiers sont des objets d’une classe contenue dans le référentiel.

Cette classe hérite de la classe des évènements utilisée pour l’enregistrement des traces. Ainsi les évènements métiers et les évènements de trace sont unifiés dans le même modèle. De ce fait tout évènement généré par le système de trace est potentiellement utilisable comme évènement métier à l’intérieur des processus métiers.

Les évènements métiers peuvent donc être créés par :

  • le système de gestion des traces,
  • l’exécution d’une règle d’état posée dans le modèle,
  • le code métier,
  • les services du serveur Ligne 1000.

Classes d’évènements métiers

Les classes d’évènements métiers décrivent les évènements métiers pour permettre de les identifier plus facilement. Elles permettent en particulier d’associer une classe métier à un ensemble évènements.

image112.png

Sur le dossier Classe d’évènements métier enregistrer un évènement à l’aide du clic droit / Nouvel évènement.

L’évènement créé sera pris en compte uniquement après le redémarrage des services.


Evènements métiers

Les évènements métiers sont des objets du référentiel créés par différentes sources, et correspondant à un évènement généralement en rapport avec un changement d’état du métier.

image113.png

Informations liées aux évènements métiers

Les informations liées à un évènement métier sont enregistrées lors de sa création.

image114.png


Enregistrement des évènements métiers

L’enregistrement des évènements métiers permet de définir des classes d’évènements utilisables dans les processus métiers.

Sur le dossier « Classes d’évènements métiers », choisissez la commande Nouvel élément du menu contextuel.

image115.png


L’identifiant

Il est automatiquement construit à partir des constituants. C’est cet identifiant qui est utilisé par les activités pour retrouver les évènements les concernant.

Type

Type de l’évènement métier. Ce type dépend de la nature et de la source de l’évènement.

Nom utilisé

Ce champ contient la classe de l’objet métier associé. Cet attribut est utilisé uniquement pour les évènements en rapport avec une classe métier.

« Nom de l’évènement »

Ce champ contient une propriété associée à l’évènement. Cet élément est utilisé uniquement pour certains types d’évènements.


Type de l’évènement Source Attribut Classe Attribut Propriété
Création d’un objet Traces Classe de l’objet
Suppression d’un objet Traces Classes de l’objet
Mise à jour d’un objet Traces Classes de l’objet Vide ou nom d’un attribut de l’objet
Exécution d’une méthode d’un objet Traces Classes de l’objet Nom de la méthode
Exécution d’un traitement Traces Classes d’un d’objet de type processus ayant une méthode « Exécute » « Exécute »
Changement de l’état d’un objet Traces Classes de l’objet
Exécution d’une règle d’état Règles Classes de l’objet
Evènement utilisateur Code métier, Services Classe de l’objet ou vide Nom de l’évènement

Description de l’évènement

Il est possible dans cet espace de donner une description de l’évènement ou de saisir du code métier.

Pour relier un évènement métier à une classe d’évènements il faut éditer l’évènement métier puis sélectionner l’identifiant de la classe créée.

image116.png

Le bouton [+] à gauche de l’identifiant permet de créer aussi directement la classe à partir de cet écran.

Ajouter des règles d’état au modèle métier

Une règle d’état est une règle métier qui permet de créer automatiquement un évènement métier lorsque l’état d’un objet change. Une règle d’état est statique.

image117.png

Double-cliquez sur la règle pour afficher les propriétés.

image118.png

La règle est associée à une classe d’évènements métiers, cette classe étant déterminée au moment de la définition de la règle.

Le fonctionnement de la règle est le suivant :

la règle est évaluée lorsque l’objet rentre en transaction, la valeur retournée par la règle est sauvegardée.

la règle est de nouveau évaluée lors de l’évènement BeforeSave pendant la mise à jour de l’objet. Si la valeur retournée par la règle a changé, alors l’évènement associé à la règle est créé.

Il est possible d’enregistrer directement un évènement directement par la fonction Nouvel évènement du dossier « Classes d’évènements métiers ».


Les nouveaux types de trace « Changement d’un état » et « Changement d’un état ou création »

De nouveaux types d’éléments de trace ont été ajoutés pour permettre de définir des règles d’état à partir du système de gestion des traces.

Ces éléments fonctionnent comme une règle d’état, l’expression associée à l’élément constituant le code de la règle.

Le type « Changement d’un état ou création » est déclenché soit par le changement d’état soit par la création de l’objet.

image119.png

Dans le dossier « Classe d’évènements métiers », positionnez-vous sur une classe et ouvrez la fenêtre d’enregistrement d’un évènement.

image120.png

Déclenchement d’un évènement métier par le code métier

Création d’un évènement métier à partir d’une instance d’objet métier

Les objets métiers exposent une API permettant de créer un évènement utilisateur.

Procedure CreateCustomEvent(const iName :String ; iInfo1,iInfo2 :variant; iParameters:Array of variant) ;

Cette opération crée un évènement métier dont l’origine est l’instance. L’objet appelant doit être en transaction et l’évènement créé est ajouté à la transaction en cours.

Les paramètres doivent être renseignés sous forme de paire Nom, Valeur.

Créer un évènement métier indépendamment d’une instance d’objet métier.

Utiliser la méthode de classe de TbpeXEvent.

Procedure TbpeXEvent.CreatecustomEvent(const ieventName :String ; iInfo1,iInfo2 :variant ; iParameters:Array of variant) ;

Cette méthode créé un évènement métier, qui n’est pas lié à une instance, dans une transaction séparée. Après l’appel, l’évènement est enregistré en base de données.

Exemple :

unit TestSYFREWF;

interface

Type

TestAPI = Class(TitObject)

public

Caption: string;

ObjectClassLabel: string;

ObjectClassName: string;

oid: string;

Procedure CreateAnEvent;

end;

Implementation

{TestAPI}

Procedure TestAPI.CreateAnEvent;

//Procedure CreateAnEvent;

begin

TbpeXEvent.CreateXEvent('MyEvent','info1','info2',['a1',0,'a2',1]);

end;

end.

Cas d’utilisation : déclenchement d’un processus par un évènement utilisateur

Pour déclencher un processus depuis un évènement utilisateur, vous pouvez procéder de la façon suivante.

  1. Vous devez en premier lieu, sur la classe de l’évènement métier, définir l’évènement utilisateur.

image121.png

  1. Puis utilisez cet évènement lors du paramétrage d’un évènement métier (double-clic sur l’évènement métier).

image122.png

  1. Créez l’évènement dans le code métier.

image123.png

Dans le journal d’exécution, vous retrouvez les paramètres utilisés lors de la création de l’évènement.

image124.png

Les principaux attributs de la classe Evènement

EventType

Indique le type de l’évènement.

EventSourceName

Indique la source qui a créée l’évènement.

Exemple


Règle d’état Nom de la règle
Instance d’objet Nom de la classe
Instance de classe Nom du type de la classe TbpeXEvent
REST Nom du service


EventInfo1 et EventInfo2

Ces deux informations sont passées lors de la création de l’évènement. Pour une règle d’état ce sont les valeurs de l’état qui à changé et qui a déclenché la règle.

oidEventObject

OID de l’objet ayant créé l’évènement.

Pour un processus déclenché par cet évènement métier, cet objet métier devient l’objet métier rattaché à l’instance du processus

EventObjectClass

Classe de l’objet associé à l’évènement.

EventObjectProperty

Nom de la propriété associé à l’évènement.

Les paramètres.

Un évènement métier peut avoir une liste de paramètres.

Prise en compte des évènements métier par les machines

Une machine d’exécution des processus métiers maintient une date d’exécution égale à la plus petite date d’exécution des instances de processus qu’elle contient. Une machine ne peut pas prendre en compte un évènement antérieur à cette date.

Une des conséquences de cette règle est que les évènements pris en compte par une instance ne peuvent qu’être chronologiques. Ainsi, il n’est pas possible de prendre en compte un évènement antérieur à un évènement déjà pris en compte.

Service REST de création d’un évènement métier

Ce service REST est un service générique qui permet de créer un évènement en exécutant une requête HTTP GET.

Le service n’est pas identifié ce qui signifie qu’il n’est pas nécessaire d’obtenir une session serveur pour l’appeler.

L’URL du service est une URL de service REST :

http://hostname/servicename/server/rpc.l1000/rest/xevent.add?paramètre1=valeur1&paramètre2=valeur2&…

Paramètres de la requête :

Paramètre Type Défaut
Caption Chaîne Libellé associé à l’évènement
EventType Enuméré Type de l’évènement CUSTOM
EventSourceName Source de l’évènement REST
EventResult Entier Valeur entière associée à l’évènement 0
EventDataBaseURL Chaîne Base de données associée à l’évènement
EventSourceInfo1 Chaîne Valeur chaîne associée à l’évènement
EventSourceInfo2 Chaîne Valeur chaîne associée à l’évènement
InstanceOID

oidEventObject

OID Identifiant de l’objet associé à l’évènement
EventObjectClass Nom de classe Nom de la classe de l’objet associé à l’évènement
EventObjectProperty

EventName

EventId

Chaîne Identifiant de l’évènement
Autres paramètres


Tous les paramètres de la requête sont copiés dans les paramètres associés à l’évènement. Ils pourront être copiés dans les paramètres de l’instance du processus par l’activité consommant l’évènement.

La réponse du service est un flux XML contenant l’acquittement de l’enregistrement de l’évènement.

Pour créer un évènement CUSTOM , vous devez renseigner les paramètres de la façon suivante :


EventName Obligatoire Identifiant de l’évènement CUSTOM
EventSourceInfo1

EventSourceInfo2

Facultatif Des paramètres associés à l’évènement qui pourront être testés dans les activités de l’instance.
EventDataBaseURL Facultatif L’URL de la base de données si vous souhaitez qui cet évènement ne soit pris en compte que dans un certain contexte


Palette d’outils centrale : séquences, évènements et activités

Définitions

Séquences

Les séquences servent à relier les évènements et les activités et sont symbolisées par des courbes de couleurs :

Une séquence ne relie que deux « objets » entre eux : un seul évènement à une seule activité (ou deux évènements entre eux, ou deux activités entre elles).


Chaque activité et évènement est une étape du processus métier.

Les évènements

Les évènements sont des « signaux » permettant de démarrer des processus métier. Il peut s’agir de changements dans le métier (création ou modification d’objets métiers par exemple), ou d’évènements extérieurs (réception de mail, création de fichier dans un répertoire…). Ils sont symbolisés par un rond avec une couleur ou une signalétique spécifique :

Les activités

Les activités sont toutes les « actions » que peuvent faire les Processus Métier. Elles sont symbolisées par un rectangle avec une couleur et une signalétique spécifique :


Evènements et activités standards

Onglet « Evènements initiaux »

https://frp.sage.fr/wiki1000/medias/images/testwf/image125.pngEvènement initial déclenché par le métier 

Evènement initial qui est déclenché par la création d’un évènement métier.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Evènement Immédiat

Evènement initial qui est déclenché immédiatement.

Cet évènement se déclenche à chaque cycle d’exécution de la machine.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Evènement Jamais

Evènement initial qui n’est jamais déclenché.

Cet évènement est utile pour définir des processus métiers qui sont appelés par d’autres processus.

Onglet « Evènements »

https://frp.sage.fr/wiki1000/medias/images/testwf/ Evènement Toujours

Evènement intermédiaire qui est toujours vérifié.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Evènement  Terminé

Un processus doit posséder un évènement final par branche.

Onglet « Activités standards »

https://frp.sage.fr/wiki1000/medias/images/testwf/ Activité  Nulle

Activité qui n’effectue aucune opération. Elle sert principalement à mettre au point et tester un processus métier. Elle se termine toujours avec un résultat « succès ». Il est possible de lui adjoindre des notifications, contrairement à d’autres activités, ce qui peut être utile pour vérifier le fonctionnement d’un processus métier.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Activité  Appel d’un processus

Activité qui exécute un autre processus. Cette activité peut être utilisée pour :

l’intervention en simultané de plusieurs en parallèle sur un même processus,

découper un processus métier complexe et en tester facilement les branches,

créer des sous processus métiers réutilisables par plusieurs processus.


image126.png

Onglet « Général »

Processus

Identifiant du processus à exécuter. Si le processus n’est pas présent dans la machine au moment de l’exécution, il sera automatiquement chargé.

Attendre la fin d’exécution pour poursuivre

Exécution synchrone d’un processus. L’activité attendra la fin du processus exécuté pour poursuivre l’exécution.

Exécution asynchrone : l’activité n’attend pas la fin d’exécution du processus exécuté pour poursuivre.

Délai d’attente

Précise un délai au-delà duquel l’activité considèrera que le processus appelé est en Timeout.

La case Attendre la fin d’exécution pour poursuivre doit être cochée pour qu’un Timeout soit détecté.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Activité  Synchronisation de branches

Activité permettant de synchroniser plusieurs branches d’exécution.

Exemple :

image127.png


La première activité de ce processus va créer deux branches d’exécution qui seront synchronisées. Le processus ne peut se terminer que si les deux branches sont terminées.

Les gestionnaires

https://frp.sage.fr/wiki1000/medias/images/testwf/ Gestionnaire  des Time Out (expiration des délais d’attente)

Gère l’expiration des délais d’attente qui ne sont définies explicitement dans le processus métier.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Gestionnaire des Erreurs

Gère les séquences Echec qui ne sont définies explicitement dans le processus métier.

Les évènements et activités liés au métier

https://frp.sage.fr/wiki1000/medias/images/testwf/ Evènement  Métier

Evènement intermédiaire attendant l’apparition d’un évènement métier.


image128.png

Onglet « Général »

Evènement

Nom de l’évènement métier qui doit déclencher le processus.

Préfixe (évènement attente)

Préfixe utilisé pour copier les attributs de l’évènement dans les paramètres de l’instance du processus. Si ce champ n’est pas renseigné, les attributs ne seront pas copiés. Pour un évènement initial la valeur vaut toujours « initial ».

Evènement de l’instance principale (évènement attente)

L’évènement métier doit avoir été créé par l’objet associé au processus pour être pris en compte.

Tester la valeur de Info1 ou Info2 

Les valeurs des attributs EventSourceInfo1 ou EventSourceInfo2 de l’évènement doivent correspondre aux valeurs renseignées dans les champs correspondants Info1 et Info2 pour que l’évènement soit pris en compte.

Info1, et info2 :

Valeurs des attributs info1 et Info2 attendues.

Déterminé par Info1 ou Info2 (évènement attente) :

Si les valeurs des attributs Info1 ou Info2 de l’évènement correspondent aux valeurs renseignées, alors l’activité se dirige vers la séquence Succès qui sera enchainée ; dans le cas contraire elle se dirige vers la séquence Echec qui sera enchainée.

Définir comme objet de l’instance.

L’objet associé à l’évènement métier devient l’objet associé à l’instance du processus.

Onglet post-condition :

image129.png

Cet onglet permet d’ajouter une ou plusieurs conditions sur le métier pour que l’évènement soit déclenché.

Lorsqu’un évènement métier déclenche un processus métier :

  • il copie ses attributs dans les paramètres de l’instance du processus métier. La source des attributs est « initial »
  • l’objet ayant créé l’évènement devient l’objet associé à l’instance du processus métier.

Onglet Métier

https://frp.sage.fr/wiki1000/medias/images/testwf/ Exécuter un script

Cette activité exécute un script métier.

image130.png


Toutes les possibilités du langage de script sont disponibles.

La valeur de retour de l’exécution détermine la séquence qui sera enchaînée .

bprOK La séquence Succès sera enchaînée
bprNOK La séquence Echec sera enchaînée
bprWAIT L’instance reste dans l’état courant et l’activité sera ré exécutée au prochain cycle.
bprHALT L’instance est interrompue.
bprERR L’instance est interrompue. (TODO)

Une erreur de compilation est équivalente à un retour bprOK.

Attributs spécifiques aux processus métiers

Instance Référence Référence sur l’objet métier rattaché à l’instance du processus
ProcessId Chaîne Identifiant du processus
InstanceId Chaîne Identifiant de l’instance du processus

Cet identifiant est unique pour une exécution du processus, si le processus est placé dans plusieurs machines l’unicité n’est pas garantie.

InstanceGUID Chaîne GUID de l’instance du processus.

Cet identifiant est un GUID tiré par le système et garanti unique.

HostName Chaîne Nom du Serveur exécutant le processus
HostServiceName Chaîne Nom du Service exécutant le processus
HostBaseURL Chaîne Base de l’URL du serveur exécutant le processus.
HostBaseRESTURL Chaîne Base de l’URL des services REST du serveur, égale à

(BaseHostURL)rpc.l1000/rest/

PublicFolder Chaîne Répertoire publique du serveur
InstanceFolder Chaîne Un répertoire réservé à l’instance du processus
InstanceDatabaseURL Chaîne L’Url de la base de données associée à l’instance du processus.


Les méthodes spécifiques aux processus métiers sont :

function Get(const iPrefixedParameter :string) :Variant ;

function GetParameter(const iPrefix:string; const iName:string):Variant;

Ces méthodes retournent la valeur d’un paramètre.


function GetPublicFolder(const aSubFolder:string):string;

Cette méthode retourne un chemin de repertoire dans la zone publique du serveur.


procedure Set(const iPrefixedParameter :string; const value:Variant);

procedure AddParameter(const iPrefix:string; const iName:string; const value:Variant);

Ces méthodes positionnent la valeur d’un attribut, si celui-ci n’existe pas il est créé.


function uniqueID(const aPrefixedParameter :string) :variant ;

Positionne la valeur d’un attribut avec un identifiant unique. Si celui-ci n’existe pas il est créé. Un identifiant unique est un GUID (Global Unique Identifier) et invisible pour l’utilisateur, tiré sur la machine exécutant le processus.


Procedure setInstance(const iOID :TOID) ;

Cette méthode définit l’instance d’objet métier associé à l’instance du processus métier.


Procedure AddMessage(const imsg :string) ;

Cette méthode ajoute un message dans la liste des messages de l’instance du processus métier.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Exécuter une expression 

Cette activité évalue une expression. Si le résultat est positif, la séquence « Succès » est enchaînée, sinon la séquence « Echec est enchaînée.

image131.png


Exemple 

image132.png

https://frp.sage.fr/wiki1000/medias/images/testwf/ Exécuter une méthode

Cette activité permet d’encapsuler l’exécution d’une méthode métier.

image133.png

Mode

Indique le type d’exécution :

une méthode de l’objet associé à l’instance,

une méthode d’une façade.

Classe

Nom de la classe supportant la méthode. Cette classe doit être une classe non persistante.

Méthode

Nom de la méthode à exécuter. La méthode ne doit comporter que des paramètres simples, les types classes, listes ou variant ne sont pas autorisés.

Préfixe

Préfixe de copie des paramètres en sortie de la méthode. Les paramètres de sortie sont tous les paramètres de type « out » ainsi que le résultat de la méthode si celle-ci est une fonction.

Associer l’objet retourné à l’instance

Si la méthode est une fonction et si celle-ci retourne un objet, cet objet sera défini comme l’objet associé à l’instance du processus.

Grille des paramètres

Liste des valeurs à passer à la méthode lors de l’appel.

Si vous cochez la colonne « Paramètre », la valeur est une expression qui sera évaluée et substituée lors de l’exécution.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Exécuter une modification

Cette activité permet d’effectuer des modifications sur l’objet associé à l’instance ou sur les paramètres de l’instance.

image134.png

Onglet « Valeur »

Attributs à modifier

La liste des attributs de l’objet ou de l’instance à modifier.

Vous pouvez saisir un nouvel attribut qui sera créé au moment de l’exécution.

Paramètre

Lorsque cette case est cochée, une expression est saisie en valeur.

Préfixe

Utilisez cette zone lors de la création de nouveaux attributs de l’instance.

Il est impossible d’effectuer un retour en arrière (rollback) après une modification réalisé par cette activité.


Cas d’utilisation des activités d’exécution de méthode et de modification

Cet exemple utilise une méthode pour créer un objet et l’associer à l’instance du processus.

image135.png

  1. La première activité exécute une méthode d’une façade qui crée un objet métier. Cet objet est associé à l’instance du processus.

image136.png

La méthode exécutée :

unit TestSYFREWF;

interface

Type

TestAPI = Class(TitObject)

public

Function CreateAWFClasseA():WFClasseA;

end;

Implementation

{TestAPI}

Function TestAPI.CreateAWFClasseA():WFClasseA;

var inst:WFClasseA;

begin

ClassManager.beginTran;

try

inst  := WFClasseA.Create;

classmanager.InsertToTran(0,inst);

inst.unCode := 'Nouveau-'+DateTimeToStr(Now);

ClassManager.Commit;

Result := inst;

except

ClassManager.RollBack;

raise;

end;

end;

end.

  1. la seconde activité modifie les attributs de l’objet précédemment créé et crée un nouvel attribut de l’instance.

image137.png

  1. la troisième activité exécute une méthode de l’objet.

image138.png

L’activité suivante attend que l’utilisateur change la valeur de l’état.

Le résultat de l’exécution ainsi que le code exécuté sont indiqués dans les messages.

image139.png

https://frp.sage.fr/wiki1000/medias/images/testwf/ Exécuter un curseur

L’activité curseur permet d’exécuter un curseur sur une classe et de traiter tous les objets retournés par le curseur.

Le principe d’exécution du curseur est le suivant :

  • Lors de la première activation le curseur est ouvert et l’ensemble des objets qu’il retourne sont stockés dans une liste temporaire. Le premier objet est ensuite sélectionné et l’évènement « OK » est retourné.
  • A chaque activation suivante, l’objet suivant de la liste est sélectionné et un évènement « OK » est retourné. Lorsque tous les objets sont traités, un évènement « NOK » est retourné.

image140.png

Classe

Classe sur laquelle porte le curseur. Cette classe peut être différente de la classe de l’objet associé au processus métier.

Référence

Attribut de type référence du processus métier auquel sera associée l’instance du curseur.

Cas d’utilisation d’un curseur

L’exemple suivant exécute un curseur sur une classe.

image141.png


Un attribut de type référence est défini sur le processus métier:

image142.png

Le curseur est paramétré de la façon suivante :

image143.png

L’activité exécutée à chaque pas de la boucle du curseur enregistre un message.

image144.png

Le journal rappelle le résultat de l’exécution lorsque le curseur renvoie trois objets.

image145.png

Les évènements et activités temporels

Onglet « Evènements initiaux»

https://frp.sage.fr/wiki1000/medias/images/testwf/ Evènement Horloge

Cet évènement permet une planification de l’exécution d’un processus métier. Il permet de créer des instances du processus sur la base d’une planification.

Onglet « Propriétés »

image146.png

Onglet « Simulation»

image147.png


Cet onglet permet de réaliser une simulation de la planification pour vérifier que les déclenchements correspondent aux besoins.

Exécuter / Stop

Démarre et arrête la simulation.

Date et heure de départ.

Indique la date et l’heure de départ de la simulation.

Pas d’horloge.

Indique la mesure de simulation.

Date et heure de dernière exécution.

Indique la date et l’heure de la dernière exécution au moment du démarrage de la simulation.

La simulation fonctionne en accélérant le temps et en affichant les dates de déclenchement.

Onglet « Evènements »

https://frp.sage.fr/wiki1000/medias/images/testwf/ Evènement attente d’un délai

Cet évènement attend un délai avant de poursuivre l’exécution, la séquence suivante est toujours « Succès ».

image148.png


Délai d’attente

Durée en seconde de l’attente.

Le délai démarre au moment où l’instance de processus entre dans l’activité. Si le processus est interrompu puis relancé à une date supérieure à la date du début de l’activité, le délai d’attente s’ajoute et l’instance enchaîne l’exécution.

https://frp.sage.fr/wiki1000/medias/images/testwf/Evènement attente d’une date et heure

Cet évènement attend une heure précise avant de poursuivre l’exécution, la séquence suivante est toujours « Succès ».


image149.png

Date

Permet de définir une date relative à laquelle le processus continuera.

Heure

Heure à laquelle l’instance de processus continuera.

Les évènements et activités de messagerie

Onglet Messagerie

https://frp.sage.fr/wiki1000/medias/images/testwf/ Envoyer un Mail

Cette activité permet d’envoyer un email. La boîte de dialogue de propriétés ressemble à celle de vos messageries habituelles.

image150.png

Onglet « Propriétés »

Id

Identifiant de l’email. Cet identifiant est utilisé pour faire le lien avec un évènement « Attente de réponse ». Si plusieurs mails sont envoyés par le processus métier et que des traitements doivent tenir compte des mails, ils utiliseront cet identifiant pour les reconnaître.

A, CC

Adresse des destinataires.

La saisie des adresses des destinataires utilise les conventions suivantes :

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

si l’adresse contient un caractère arobase @ alors il s’agit d’une adresses 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.

De

Adresse de l’expéditeur et de réponse. Cette adresse sera l’adresse à laquelle sera envoyée la réponse à ce mail. Si vous ne renseignez pas cette valeur, l’adresse d’expéditeur paramétrée dans les paramètres SMTP sera utilisée.

Seul le provider SMTP gère cette adresse.

Objet :

Objet de l’email.

Contenu

Contenu de l’email.

Bouton d’insertion de paramètre

https://frp.sage.fr/wiki1000/medias/images/testwf/Ce bouton permet d’insérer une expression dans les champs A, CC, Objet qui sera remplacée lors de l’exécution. Le curseur doit se trouver dans un des trois champs concernés.

image151.png

Exemple

Par exemple si l’objet qui a déclenché le processus métier possède un attribut email et que le mail doit être envoyé à cette adresse, on utilisera ce bouton pour insérer le code [Instance.email]. Lors de l’exécution du processus métier ce code sera remplacé par l’attribut concerné, dans cet exemple par l’adresse email.

Barre d’outils HTML

HTML REST

image64.png

Ce menu permet d’insérer une URL de réponse (REST) ou une URL d’accès à un écran accessibles pour le destinataire.

Les liens HTML REST demandent que le destinataire ait accès au serveur Sage 1000.

Référence du mail : l’évènement qui traitera la réponse à ce mail se basera sur cette référence pour l’identifier par rapport à tous les autres mails qui pourraient se trouver dans la boîte à mail référencée par le processus métier.

Lien réponse OK / NOK : Lorsque l’utilisateur cliquera sur ces liens il sera dirigé vers un écran HTML qui permettra au serveur Sage 1000 de mémoriser cette réponse et de déclencher la suite du processus métier. Celui-ci devra plus loin être relié à un évènement d’attente de réponse mail pour gérer cette réponse et générer un résultat Succès ou Echec.

Lien vers l’écran associé : Lorsque l’utilisateur cliquera sur le lien, un écran Sage 1000 sera ouvert. L’écran associé se paramètre dans l’onglet « Avancé » de l’activité.

Seul le premier lien cliqué sera pris en compte.


POP 3

image82.png

Ce menu permet d’insérer un bloc de texte dans le corps de l’email pour gérer la réponse (POP3).

Insérer un attribut : Le programme va insérer dans le corps du message, à l’endroit du curseur, le code d’un attribut de l’objet métier. Quand le message sera envoyé, ce code sera remplacé par la valeur réelle de l’objet métier en mémoire.

Réponse standard : Le programme va insérer un texte prédéfini expliquant comment répondre avec une réponse OK ou une réponse NOK, ainsi que la référence du mail.

Réponse OK / NOK : insère un code qui sera remplacé, à l’envoi du mail, par une réponse prédéfinie pour « accepter » ([mailresponse_ok]) ou « refuser » ([mailresponse_nok]).

Pour répondre à un mail, le destinataire doit être dans un environnement avec une messagerie compatible POP3.

Si le destinataire répondant à un email POP3 laisse par erreur les deux réponses OK /NOK dans le corps du mail ce sera la première réponse, par ordre de lecture, qui sera prise en compte.

Si le destinataire a fait une erreur dans sa réponse et renvoie une nouvelle réponse, seule la première réponse sera prise en compte car le processus métier aura continué son exécution. Le fonctionnement est identique pour les réponses via lien HTML REST.

Onglet « Avancé »

image152.png

Ecran associé

Ecran provenant de Sage 1000 utilisé par le lien « Lien vers l’écran associé ». il peut être saisi manuellement ou inséré via la boîte de sélection adjacent à la zone de saisie.

Ouvrir cet écran en mode création

Permet d’ouvrir l’écran en mode insertion au lieu de l’ouvrir en mode consultation.

Paramètres passés à l’écran 

Permet de définir des paramètres de l’écran.

Onglet « Pièces jointes »

Cet onglet permet de définir les pièces à joindre à l’email.

image153.png

Si vous renseignez un chemin de fichier, le fichier doit être accessible lors de l’exécution du processus métier.

Si vous renseignez un nom de fichier sans chemin, le fichier sera recherché dans le répertoire de l’instance du processus métier. Généralement ce fichier a été généré par une autre activité du processus et le nom du fichier est contenu dans un paramètre de l’instance. Il y a un répertoire par instance.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Réponse à un mail par REST

Cet évènement attend la réception d’un évènement créé par une réponse à un email envoyé par l’instance du processus.

image154.png

Réponse à.

Identifiant de l’activité ayant envoyé l’email.

Délai d’attente

Délai au-delà duquel l’évènement génèrera un timeout qui pourra être pris en charge par un évènement Timeout.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Réponse à un Mail par POP3

Cet évènement attend la réception d’une réponse à un email envoyé par l’instance du processus.

image155.png

Onglet «Général»

Réponse à.

Identifiant de l’activité ayant envoyé l’email.

Serveur, Port, Login, Mot de passe

Paramétrage du serveur POP3 et du compte de messagerie sur le serveur.

Délai d’attente

Délai au-delà duquel l’évènement génèrera un timeout qui pourra être pris en charge par un évènement Timeout.

Onglet « Avancé »

image156.png

Action sur les réponses reçues.

Détermine le comportement de l’activité lorsqu’une réponse est reçue.

Aucune : pas d’action. l’email est laissé en place sur le serveur de messagerie

Supprimer : l’email est supprimé du serveur de messagerie

Action sur les mails qui ne sont pas des réponses reçues

Détermine le comportement de l’activité lorsqu’un mail présent dans la boîte n’est pas une réponse.

Préfixe de paramètre pour la réponse

Préfixe utilisé pour copier les attributs de l’email reçu dans les paramètres de l’instance.

Il est important que le destinataire laisse dans le corps du message la référence du mail. Dans le cas contraire le système ne pourra pas le mettre en relation avec le processus métier et l’évènement « Réponse à un Email ». Dans ce cas, l’instance du processus métier restera indéfiniment en attente sauf si un Timeout et une séquence ont été prévus.


https://frp.sage.fr/wiki1000/medias/images/testwf/Evènement réception de Mail

Les tâches métiers

Onglet « Tâches »

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

Cette activité permet d’exécuter une impression.

image157.png

Onglet Propriétés

Base de données

Base de données sur laquelle s’effectue l’édition. Renseignez cette base si elle diffère de la base de données sur laquelle l’instance du processus est exécutée.

Rapport

Nom de l’édition à réaliser.

Sortie sur

Sélectionne le type de sortie.

Imprimante

Lorsque le type de sortie est « imprimante », cette zone indique l’imprimante sur laquelle l’édition est imprimée. L’imprimante sélectionnée doit être une imprimante accessible depuis le serveur exécutant le processus. Pour cette raison, seules les imprimantes réseau sont proposées.

Type de fichier

Lorsque le type de sortie est « Fichier » cette zone indique le format de sortie.

Fichier de sortie

Si vous renseignez un nom de fichier sans chemin le fichier sera généré dans le répertoire de l’instance.

Si vous renseignez un chemin de fichier, celui-ci devra être accessible du serveur exécutant le processus.

Onglet paramètres 

image158.png

Cet onglet permet de renseigner les paramètres de la requête.

Valeur

Utilisez cette colonne si vous renseignez une valeur constante.

Expression

Utilisez cette colonne si vous renseigner une expression qui sera évaluée à l’exécution.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Import de données

Cette activité permet d’exécuter un import de données.

image159.png

Base de données

Base de données dans laquelle s’effectue l’import. Renseignez cette base si elle diffère de la base de données sur laquelle l’instance du processus est exécutée.

Fichier

Fichier de données à importer.

Si vous renseignez un nom de fichier sans chemin, ce fichier doit être présent dans le répertoire de l’instance.

Si vous renseignez un chemin de fichier celui-ci doit être accessible du serveur exécutant le processus.

Descripteur

Descripteur d’importation.

Mode d’importation

Indiquez quel mode d’importation vous souhaitez utiliser.

Options sur les erreurs

Défini les options sur les erreurs détectées.

Options sur le fichier

Défini les actions sur le fichier importé.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Export de données

Cette activité permet d’exécuter un export de données.

image160.png

Onglet Propriétés

Base de données

Base de données sur laquelle s’effectue l’exportation. Renseignez cette base si elle diffère de la base de données sur laquelle l’instance du processus est exécutée.

Fichier

Fichier de données à générer.

Si vous renseignez un nom de fichier sans chemin, ce fichier sera généré dans le répertoire de l’instance.

Si vous renseignez un chemin de fichier, celui-ci doit être accessible du serveur exécutant le processus.

Descripteur

Descripteur d’exportation.

Onglet paramètres

image161.png

Cet onglet permet de renseigner les paramètres de la requête

Valeur

Utilisez cette colonne si vous renseignez une valeur constante.

Expression

Utilisez cette colonne si vous renseigner une expression qui sera évaluée à l’exécution.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Activité : Exécuter un traitement métier

Cette activité permet d’exécuter un traitement métier. Les traitements métiers sont des traitements de l’application utilisable dans les processus métier et dans l’automate.

image162.png

Onglet Propriétés

Base de données

Base de données sur laquelle s’effectue le traitement. Renseignez cette base si elle diffère de la base de données sur laquelle l’instance du processus est exécutée.

Tâche

Sélectionner le traitement à réaliser.

Configurer la tâche

Ce bouton exécute l’écran permettant de configurer la tâche. Terminer l’écran en cliquant sur le bouton [Planifier].

Les évènements et activités techniques

Onglet « Systèmes »

https://frp.sage.fr/wiki1000/medias/images/testwf/ https://frp.sage.fr/wiki1000/medias/images/testwf/Evènement initial fichier et Evènement fichier

Ces évènements attendent qu’un fichier du système d’exploitation soit présent.

image163.png

Fichier

Chemin du fichier concerné.

Les chemins du fichier doivent être accessibles depuis le serveur exécutant le processus.

Action

Action sur le fichier détecté.

Aucune

  • Aucune action n’est effectuée.

Renommer

  • Le fichier est renommé. Le nouveau nom est l’ancien nom ajouté d’une extension numérique.

Déplacer

  • Le fichier est déplacé à l’emplacement indiqué par la zone Destination.

Supprimer

  • Le fichier est supprimé.

Préfixe des paramètres

Préfixe des paramètres copiés dans les paramètres de l’instance. Les paramètres sont :

fiename : nom du fichier destination.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Exécution d’un programme exécutable (exe)

Cette activité exécute un programme du système d’exploitation.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Exécution d’un fichier de commande (batch)

Cette activité exécute un fichier de commande du système d’exploitation.

image164.png

Onglet Propriétés

Fichier de commande 

Chemin du fichier de commande à exécuter.

Paramètres

Paramètres passé au fichier de commande. La règle de passage des paramètres est celle du système d’exploitation.

Mode d’exécution

Ne pas attendre la fin de l’exécution. Dans ce mode l’activité n’attend pas la fin de l’exécution du fichier de commande'.' 'L'a séquence '« 'Succès' »' est enchaînée.
Attendre la fin de l’exécution. Dans ce mode, l’activité attend la fin de l’exécution du fichier de commande. La séquence « Succès » est enchaînée.
Attendre la fin de l’exécution et tester la valeur de retour. Dans ce mode, l’activité attend la fin de l’exécution du fichier de commande. Elle teste ensuite la valeur de retour pour déterminer la séquence suivante. Si la valeur de retour correspond à la valeur renseignée alors la séquence est « Succès ». Dans le cas contraire, la séquence est « Echec ».

Les évènements et activité de maintenance

Onglet « Outils »

https://frp.sage.fr/wiki1000/medias/images/testwf/ Epurer le journal

Cette activité permet de supprimer les éléments contenus dans le journal

image165.png

Onglet propriétés

Epurer les enregistrements antérieurs à

Sélectionne la période d’épuration.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Epurer les évènements

Une activité particulière permet d’épurer les évènements métiers devenu obsolètes.

Les évènements obsolètes sont tous les évènements de date antérieure à la plus petite date d’exécution des machines.

Une conséquence de cette règle est que si une machine a été arrêtée à un instant T, tous les évènements de date supérieure à cet instant ne peuvent pas être épurés.

image166.png

Cette activité n’a pas de paramètres, elle épure tous les évènements inutiles.

Les évènements et activité de communication

Onglet « Communication »

https://frp.sage.fr/wiki1000/medias/images/testwf/ Transfert de fichier via FTP (Upload)

Cette activité permet de transférer un fichier vers un serveur FTP.

https://frp.sage.fr/wiki1000/medias/images/testwf/ Transfert de fichier via FTP (download) 

Cette activité permet de recevoir un fichier d’un serveur FTP.

image167.png

Serveur

Adresse du serveur FTP.

Port

Port du serveur FTP (21 pour un serveur standard).

Login

Utilisateur du serveur FTP.

Mot de passe

Mot de passe de l’utilisateur du serveur FTP.

Répertoire FTP

Répertoire FTP dans lequel il faut se positionner avant le transfert. S’il n’existe pas, il sera créé. Il est possible d’indiquer un chemin en séparant les éléments par le séparateur « \ » sous Windows.

Nom du fichier FTP

Nom du fichier dans le répertoire du le serveur FTP.

Fichier

Fichier à envoyer ou recevoir. Si le nom est relatif le fichier sera retrouvé ou placer dans le répertoire de l’instance du processus.


FAQ

Comment déclencher un PM à partir du code métier ?

L’évènement initial du processus métier doit être un évènement métier.

Le code métier crée un évènement de la classe de l’évènement initial du processus métier.

Comment déclencher un processus métier à partir d’une application externe ?

L’évènement initial du processus doit être un évènement métier.

L’application externe utilise une des méthodes suivantes :

  • Appeler le service REST des Evènements Métiers pour créer un évènement de la classe de l’évènement initial du processus métier.
  • Appeler le Web Service des Evènements Métiers pour créer un évènement de la classe de l’évènement initial du processus métier (TODO).
  • Utiliser le serveur COM pour créer un objet évènement de la classe de l’évènement initial du processus métier.

Comment passer des paramètres lors du déclenchement du processus métier ?

Vous devez au préalable définir les paramètres au niveau du processus métier.


Pour définir les paramètres du processus métier, reportez-vous au § .

Lors de la création de l’évènement initial par le code métier, vous devez ajouter à l’évènement les paramètres sous la forme de couple (nom,valeur).

Comment définir un processus métier ayant plusieurs sources de déclenchement ?

Définir le corps du processus métier dans un processus dont l’évènement déclencheur est « jamais ». Ce processus métier sera utilisé comme un sous processus.

Définissez des processus métiers déclencheurs appelant le processus métier précédent.


Pour définir des processus métier, reportez vous au § .

Comment associer un objet métier à une instance de processus métier ?

Dans les propriétés du processus, définissez la classe de l’objet. Cela permet de manipuler les attributs de sa classe lors de la conception.

Dans une activité script, appelez l’API « SetInstance ». Cette API affecte à l’instance l’objet dont l’OID est passé en paramètre.

Comment déclencher un processus métier à partir d’un Web Service ?

L’évènement initial du processus métier doit être un évènement métier.

Réalisez un Web Service dont les paramètres d’entrée correspondent aux paramètres du processus métier.

Dans le code du service, créez un évènement métier correspondant à l’évènement déclencheur du processus métier.

Outils personnels