Evènements métiers (bp)

De Wiki1000
Version du 19 août 2009 à 10:41 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Sommaire

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.

Outils personnels