Processus Métiers (bp)

De Wiki1000
(Différences entre les versions)
(Processus métiers utilisant les fonctions de messagerie)
(Le concepteur de processus métiers)
Ligne 294 : Ligne 294 :
 
==Le concepteur de processus métiers==
 
==Le concepteur de processus métiers==
  
Le concepteur de processus métiers est accessible par le menu ''Fichier / Outils / Concepteur de processus métiers''.
+
*[[Le concepteur de processus métiers (bp)|Le concepteur de processus métiers]]
 
+
La fenêtre du concepteur de processus métiers comporte quatre parties :
+
 
+
{{#images:image110.png|Guide_-_Processus_métiers}}
+
 
+
====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.
+
 
+
#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.
+
 
+
#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.
+
 
+
#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.
+
 
+
 
+
{| class="wikitable"
+
|-
+
|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.
+
 
+
{{#images:image111.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
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.
+
 
+
{{#images:image112.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
{{#images:image113.png|Guide_-_Processus_métiers}}
+
 
+
====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.
+
 
+
{{#images:image114.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
===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.
+
 
+
{{#images:image115.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
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.
+
 
+
 
+
{| class="wikitable"
+
|-
+
|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.
+
 
+
{{#images:image116.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
{{#images:image117.png|Guide_-_Processus_métiers}}
+
 
+
Double-cliquez sur la règle pour afficher les propriétés.
+
 
+
{{#images:image118.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
{{#images:image119.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
{{#images:image120.png|Guide_-_Processus_métiers}}
+
 
+
===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.
+
 
+
<font face="courrier new">Procedure CreateCustomEvent(const iName :String ; iInfo1,iInfo2 :variant;  iParameters:Array of variant) ;</font>
+
 
+
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.
+
 
+
<font face="courrier new">Procedure TbpeXEvent.CreatecustomEvent(const ieventName :String ; iInfo1,iInfo2 :variant ; iParameters:Array of variant) ;</font>
+
 
+
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 :
+
 
+
<font face="courrier new">unit TestSYFREWF;</font>
+
 
+
<font face="courrier new">interface</font>
+
 
+
<font face="courrier new">Type</font>
+
 
+
<font face="courrier new">  TestAPI = Class(TitObject)</font>
+
 
+
<font face="courrier new">  public</font>
+
 
+
<font face="courrier new">    Caption: string;</font>
+
 
+
<font face="courrier new">    ObjectClassLabel: string;</font>
+
 
+
<font face="courrier new">    ObjectClassName: string;</font>
+
 
+
<font face="courrier new">    oid: string;</font>
+
 
+
<font face="courrier new">    Procedure CreateAnEvent;</font>
+
 
+
<font face="courrier new">  end;</font>
+
 
+
<font face="courrier new">Implementation</font>
+
 
+
<font face="courrier new">{TestAPI}</font>
+
 
+
<font face="courrier new">Procedure TestAPI.CreateAnEvent;</font>
+
 
+
<font face="courrier new">//Procedure CreateAnEvent;</font>
+
 
+
<font face="courrier new">begin</font>
+
 
+
<font face="courrier new">  TbpeXEvent.CreateXEvent('MyEvent','info1','info2',['a1',0,'a2',1]);</font>
+
 
+
<font face="courrier new">end;</font>
+
 
+
<font face="courrier new">end.</font>
+
 
+
<font face="verdana">Cas d’utilisation : déclenchement d’un processus par un évènement utilisateur</font>
+
 
+
Pour déclencher un processus depuis un évènement utilisateur, vous pouvez procéder de la façon suivante.
+
 
+
#Vous devez en premier lieu, sur la classe de l’évènement métier, définir l’évènement utilisateur.
+
 
+
{{#images:image121.png|Guide_-_Processus_métiers}}
+
 
+
#Puis utilisez cet évènement lors du paramétrage d’un évènement métier (double-clic sur l’évènement métier).
+
 
+
{{#images:image122.png|Guide_-_Processus_métiers}}
+
 
+
#Créez l’évènement dans le code métier.
+
 
+
{{#images:image123.png|Guide_-_Processus_métiers}}
+
 
+
Dans le journal d’exécution, vous retrouvez les paramètres utilisés lors de la création de l’évènement.
+
 
+
{{#images:image124.png|Guide_-_Processus_métiers}}
+
 
+
===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.
+
 
+
<font face="verdana">Exemple</font>
+
 
+
 
+
{| class="wikitable"
+
|-
+
|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 :
+
{| class="wikitable"
+
|-
+
|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 :
+
 
+
 
+
{| class="wikitable"
+
|-
+
|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 »====
+
 
+
===={{#images:image125.png|Guide_-_Processus_métiers}}Evè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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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 »====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Evènement Toujours====
+
 
+
Evènement intermédiaire qui est toujours vérifié.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Evènement  Terminé====
+
 
+
Un processus doit posséder un évènement final par branche.
+
 
+
====Onglet « Activités standards »====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
 
+
 
+
{{#images:image126.png|Guide_-_Processus_métiers}}
+
 
+
====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é.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Activité  Synchronisation de branches====
+
 
+
Activité permettant de synchroniser plusieurs branches d’exécution.
+
 
+
<font face="verdana">Exemple :</font>
+
 
+
{{#images:image127.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
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===
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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===
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Evènement  Métier====
+
 
+
Evènement intermédiaire attendant l’apparition d’un évènement métier.
+
 
+
 
+
 
+
{{#images:image128.png|Guide_-_Processus_métiers}}
+
 
+
====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 : ====
+
 
+
{{#images:image129.png|Guide_-_Processus_métiers}}
+
 
+
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====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Exécuter un script ====
+
 
+
Cette activité exécute un script métier.
+
 
+
{{#images:image130.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
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 .
+
{| class="wikitable"
+
|-
+
|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====
+
{| class="wikitable"
+
|-
+
|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 :
+
 
+
<font face="courrier new">function Get(const iPrefixedParameter :string) :Variant ;</font>
+
 
+
<font face="courrier new">function GetParameter(const iPrefix:string; const iName:string):Variant;</font>
+
 
+
Ces méthodes retournent la valeur d’un paramètre.
+
 
+
 
+
 
+
<font face="courrier new">function GetPublicFolder(const aSubFolder:string):string;</font>
+
 
+
Cette méthode retourne un chemin de repertoire dans la zone publique du serveur.
+
 
+
 
+
 
+
<font face="courrier new">procedure Set(const iPrefixedParameter :string; const value:Variant);</font>
+
 
+
<font face="courrier new">procedure AddParameter(const iPrefix:string; const iName:string; const value:Variant);</font>
+
 
+
Ces méthodes positionnent la valeur d’un attribut, si celui-ci n’existe pas il est créé.
+
 
+
 
+
 
+
<font face="courrier new">function uniqueID(const aPrefixedParameter :string) :variant ;</font>
+
 
+
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.
+
 
+
 
+
 
+
<font face="courrier new">Procedure setInstance(const iOID :TOID) ;</font>
+
 
+
Cette méthode définit l’instance d’objet métier associé à l’instance du processus métier.
+
 
+
 
+
 
+
<font face="courrier new">Procedure AddMessage(const imsg :string) ;</font>
+
 
+
Cette méthode ajoute un message dans la liste des messages de l’instance du processus métier.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
{{#images:image131.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
<font face="verdana">Exemple </font>
+
 
+
{{#images:image132.png|Guide_-_Processus_métiers}}
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Exécuter une méthode====
+
 
+
Cette activité permet d’encapsuler l’exécution d’une méthode métier.
+
 
+
{{#images:image133.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
{{#images:image134.png|Guide_-_Processus_métiers}}
+
 
+
====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.
+
 
+
{{#images:image135.png|Guide_-_Processus_métiers}}
+
 
+
#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.
+
 
+
{{#images:image136.png|Guide_-_Processus_métiers}}
+
 
+
La méthode exécutée :
+
 
+
<font face="courrier new">unit TestSYFREWF;</font>
+
 
+
<font face="courrier new">interface</font>
+
 
+
<font face="courrier new">Type</font>
+
 
+
<font face="courrier new">  TestAPI = Class(TitObject)</font>
+
 
+
<font face="courrier new">  public</font>
+
 
+
<font face="courrier new">    Function CreateAWFClasseA():WFClasseA;</font>
+
 
+
<font face="courrier new">  end;</font>
+
 
+
<font face="courrier new">Implementation</font>
+
 
+
<font face="courrier new">{TestAPI}</font>
+
 
+
<font face="courrier new">Function TestAPI.CreateAWFClasseA():WFClasseA;</font>
+
 
+
<font face="courrier new">var inst:WFClasseA;</font>
+
 
+
<font face="courrier new">begin</font>
+
 
+
<font face="courrier new">  ClassManager.beginTran;</font>
+
 
+
<font face="courrier new">  try</font>
+
 
+
<font face="courrier new">    inst  := WFClasseA.Create;</font>
+
 
+
<font face="courrier new">    classmanager.InsertToTran(0,inst);</font>
+
 
+
<font face="courrier new">    inst.unCode := 'Nouveau-'+DateTimeToStr(Now);</font>
+
 
+
<font face="courrier new">    ClassManager.Commit;</font>
+
 
+
<font face="courrier new">    Result := inst;</font>
+
 
+
<font face="courrier new">  except</font>
+
 
+
<font face="courrier new">    ClassManager.RollBack;</font>
+
 
+
<font face="courrier new">    raise;</font>
+
 
+
<font face="courrier new">  end;</font>
+
 
+
<font face="courrier new">end;</font>
+
 
+
<font face="courrier new">end.</font>
+
 
+
#la seconde activité modifie les attributs de l’objet précédemment créé et crée un nouvel attribut de l’instance.
+
 
+
{{#images:image137.png|Guide_-_Processus_métiers}}
+
 
+
#la troisième activité exécute une méthode de l’objet.
+
 
+
{{#images:image138.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
{{#images:image139.png|Guide_-_Processus_métiers}}
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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é.
+
 
+
{{#images:image140.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
{{#images:image141.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
Un attribut de type référence est défini sur le processus métier:
+
 
+
{{#images:image142.png|Guide_-_Processus_métiers}}
+
 
+
Le curseur est paramétré de la façon suivante :
+
 
+
{{#images:image143.png|Guide_-_Processus_métiers}}
+
 
+
L’activité exécutée à chaque pas de la boucle du curseur enregistre un message.
+
 
+
{{#images:image144.png|Guide_-_Processus_métiers}}
+
 
+
Le journal rappelle le résultat de l’exécution lorsque le curseur renvoie trois objets.
+
 
+
{{#images:image145.png|Guide_-_Processus_métiers}}
+
 
+
===Les évènements et activités temporels===
+
 
+
====Onglet « Evènements initiaux»====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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 »====
+
 
+
{{#images:image146.png|Guide_-_Processus_métiers}}
+
 
+
====Onglet « Simulation»====
+
 
+
{{#images:image147.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
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 »====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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 ».
+
 
+
{{#images:image148.png|Guide_-_Processus_métiers}}
+
 
+
 
+
 
+
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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}}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 ».
+
 
+
 
+
 
+
{{#images:image149.png|Guide_-_Processus_métiers}}
+
 
+
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====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
{{#images:image150.png|Guide_-_Processus_métiers}}
+
 
+
====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
+
 
+
{{#images:|Guide_-_Processus_métiers}}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.
+
 
+
{{#images:image151.png|Guide_-_Processus_métiers}}
+
 
+
<font face="verdana">Exemple</font>
+
 
+
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====
+
 
+
{{#images:image64.png|Guide_-_Processus_métiers}}
+
 
+
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====
+
 
+
{{#images:image82.png|Guide_-_Processus_métiers}}
+
 
+
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é » ====
+
 
+
{{#images:image152.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
{{#images:image153.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
{{#images:image154.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
{{#images:image155.png|Guide_-_Processus_métiers}}
+
 
+
====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é »====
+
 
+
{{#images:image156.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
 
+
 
+
===={{#images:|Guide_-_Processus_métiers}}Evènement réception de Mail====
+
 
+
===Les tâches métiers===
+
 
+
====Onglet « Tâches »====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Impression====
+
 
+
Cette activité permet d’exécuter une impression.
+
 
+
{{#images:image157.png|Guide_-_Processus_métiers}}
+
 
+
====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 ====
+
 
+
{{#images:image158.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Import de données====
+
 
+
Cette activité permet d’exécuter un import de données.
+
 
+
{{#images:image159.png|Guide_-_Processus_métiers}}
+
 
+
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é.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Export de données====
+
 
+
Cette activité permet d’exécuter un export de données.
+
 
+
{{#images:image160.png|Guide_-_Processus_métiers}}
+
 
+
====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====
+
 
+
{{#images:image161.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
{{#images:image162.png|Guide_-_Processus_métiers}}
+
 
+
====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 »====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} {{#images:|Guide_-_Processus_métiers}}Evènement initial fichier et Evènement fichier====
+
 
+
Ces évènements attendent qu’un fichier du système d’exploitation soit présent.
+
 
+
{{#images:image163.png|Guide_-_Processus_métiers}}
+
 
+
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.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Exécution d’un programme exécutable (exe)====
+
 
+
Cette activité exécute un programme du système d’exploitation.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Exécution d’un fichier de commande (batch)====
+
 
+
Cette activité exécute un fichier de commande du système d’exploitation.
+
 
+
{{#images:image164.png|Guide_-_Processus_métiers}}
+
 
+
====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
+
{| class="wikitable"
+
|-
+
|'''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 »====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Epurer le journal====
+
 
+
Cette activité permet de supprimer les éléments contenus dans le journal
+
 
+
{{#images:image165.png|Guide_-_Processus_métiers}}
+
 
+
====Onglet propriétés====
+
 
+
Epurer les enregistrements antérieurs à
+
 
+
Sélectionne la période d’épuration.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} 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.
+
 
+
{{#images:image166.png|Guide_-_Processus_métiers}}
+
 
+
Cette activité n’a pas de paramètres, elle épure tous les évènements inutiles.
+
 
+
===Les évènements et activité de communication===
+
 
+
====Onglet « Communication »====
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Transfert de fichier via FTP (Upload)====
+
 
+
Cette activité permet de transférer un fichier vers un serveur FTP.
+
 
+
===={{#images:|Guide_-_Processus_métiers}} Transfert de fichier via FTP (download) ====
+
 
+
Cette activité permet de recevoir un fichier d’un serveur FTP.
+
 
+
{{#images:image167.png|Guide_-_Processus_métiers}}
+
 
+
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==
 
==FAQ==

Version du 19 août 2009 à 09:24

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/guide_-_processus_metiers/

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

https://frp.sage.fr/wiki1000/medias/images/guide_-_processus_metiers/

Guide d’utilisation des processus métiers

Création d’un processus métier

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

Processus métiers utilisant les fonctions de messagerie

Paramétrage des processus métiers

Le modèle de processus métier

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

Le concepteur de processus métiers

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