Gestionnaires d'événement (Profile)

Un gestionnaire d'événement peut lancer automatiquement un script VBScript lorsqu'un événement se produit sur un objet. Vous pouvez associer un gestionnaire d'événement à une métaclasse ou à un stéréotype ; les critères ne prennent pas en charge les gestionnaires d'événement.

Les gestionnaires d'événement suivants peuvent être définis sur des éléments dans la catégorie Profile :

Gestionnaire d'événement

Description

CanCreate

[tous les objets] Met en oeuvre une règle de validation de création afin d'empêcher la création d'objets dans un contexte invalide. Par exemple, dans un MPM pour ebXML, un processus ayant le stéréotype BusinessTransaction ne peut être créé que sous un processus ayant le stéréotype BinaryCollaboration. Le script du gestionnaire d'événement CanCreate associé au processus ayant comme stéréotype BusinessTransaction se présente comme suit :

Function %CanCreate%(parent)
  if parent is Nothing or 
  parent.IsKindOf(PdBpm.Cls_Process) then
  %CanCreate% = False
  else
  %CanCreate% = True
  end if
End Function

Si ce gestionnaire d'événement est défini sur un stéréotype et que la valeur de retour de la fonction est True, vous pouvez utiliser l'outil personnalisé pour créer l'objet stéréotypé. Dans le cas contraire, l'outil personnalisé n'est pas disponible, et la liste Stéréotype n'affiche pas le stéréotype correspondant. S'il est défini sur une métaclasse et qu'il renvoie True, vous pouvez alors créer l'objet à partir de la Boîte à outils, à partir de l'Explorateur d'objets ou bien dans une liste.

Remarquez que si vous importez un modèle ou procédez à son reverse engineering, les fonctions CanCreate sont ignorées car elles pourraient modifier le modèle et y créer des divergences par rapport au modèle d'origine.

Initialize

[tous les objets] Utilisé pour instancier des objets avec des templates prédéfinis. Par exemple, dans un MPM, un processus BusinessTransaction doit être un processus composite avec un sous-graphe prédéfini. Le script du gestionnaire d'événement Initialize associé au stéréotype de processus BusinessTransaction contient toutes les fonctions nécessaires pour la création du sous-graphe. L'extrait de script suivant est un sous-ensemble du gestionnaire d'événement Initialize pour un processus BusinessTransaction.

...
' Search for an existing requesting activity 
     symbol
 Dim ReqSym  
 Set ReqSym = Nothing  
 If Not ReqBizAct is Nothing Then
  If ReqBizAct.Symbols.Count > 0 Then
   Set ReqSym = ReqBizAct.Symbols.Item(0)
  End If
 End If
 
 ' Create a requesting activity if not found
 If ReqBizAct is Nothing Then
   Set ReqBizAct =
      BizTrans.Processes.CreateNew 
   ReqBizAct.Stereotype =
     "RequestingBusinessActivity"
   ReqBizAct.Name = "Request"
 End If
...

Si le gestionnaire d'événement Initialize est défini sur un stéréotypeet que la valeur de retour de la fonction est True, le script d'initialisation sera lancé chaque fois que le stéréotype est affecté, soit à l'aide d'un outil personnalisé dans la Boîte à outils, soit à partir de la feuille de propriétés d'objet. S'il est défini sur une métaclasse et si la valeur de retour de la fonction est True, le script d'initialisation sera lancé lorsque vous créez un nouvel objet à partir de la Boîte à outils, à partir de l'Explorateur d'objets, dans une liste ou dans une feuille de propriétés.

Si le gestionnaire d'événement Initialize est défini sur la métaclasse model et renvoie True, le script d'initialisation est lancé lorsque vous affectez une cible (SGBD, langage objet, langage de processus, langage de schéma) au modèle au moment de la création, lorsque vous changez la cible du modèle ou lorsque vous affectez une extension à ce modèle.

Validate

[tous les objets] Exécuté lorsque vous changez d'onglet ou que vous cliquez sur OK ou Appliquer dans une feuille de propriétés d'objet. Utilisé pour valider les modifications des propriétés d'objet et mettre en oeuvre des modifications en cascade.

Vous pouvez définir un message d'erreur qui apparaît si la condition n'est pas satisfaite. Pour ce faire, renseignez la variable message et définissez la variable %Validate% à False.

Dans l'exemple suivant, le gestionnaire d'événement Validate vérifie qu'un commentaire est ajouté dans la définition d'un objet lorsque l'utilisateur valide dans la feuille de propriétés. Un message s'affiche pour expliquer le problème.

Function %Validate%(obj, ByRef message)
 if obj.comment = "" then 
  %Validate% = False
  message = "Comment cannot be empty"
 else
  %Validate% = True
 end if
End Function

CanLinkKind

[objets de lien uniquement] Exécuté lorsque vous créez un lien à l'aide d'un outil de la Boîte à outils ou que vous modifier les extrémités d'un lien dans une feuille de propriétés. Utiliser pour limiter le type et le stéréotype des objets pouvant être liés.

Ce gestionnaire d'événement a deux paramètres d'entrée : l'extrémité source et l'extrémité de destination du lien. Vous pouvez également utiliser les paramètres sourceStereotype et destinationStereotype qui sont facultatifs et qui permettent d'effectuer des contrôles supplémentaires sur les stéréotypes.

Dans l'exemple suivant, la source du lien étendu doit être un début :

Function %CanLinkKind%(sourceKind, 
  sourceStereotype, destinationKind,
  destinationStereotype)
 if sourceKind = cls_Start Then
 %CanLinkKind% = True
 end if
End Function

OnModelOpen

[modèles uniquement] Exécuté immédiatement après l'ouverture d'un modèle.

OnModelSave

[modèles uniquement] Exécuté immédiatement avant l'enregistrement d'un modèle.

OnModelClose

[modèles uniquement] Exécuté immédiatement avant la fermeture d'un modèle.

OnLanguageChangeRequest

[modèles uniquement] Exécuté immédiatement avant le changement de SGBD ou de fichier de définition de langage du modèle. Si ce gestionnaire d'événement renvoie false, le changement de langage est annulée.

OnLanguageChanging

[modèles uniquement] Exécuté immédiatement après le changement de SGBD ou de fichier de définition de langage du modèle, mais avant que les transformations ne soient appliquées aux objets afin de les rendre conformes à la nouvelle définition de langage.

OnLanguageChanged

[modèles uniquement] Exécuté immédiatement après le changement de SGBD ou de fichier de définition de langage du modèle et la transformation des objets.

OnNewFromTemplate

[modèles uniquement] Exécuté immédiatement après la création d'un modèle ou d'un projet à partir d'un templatre de modèle ou de projet.

BeforeDatabaseGenerate

[MPD uniquement] Exécuté immédiatement avant la génération d'une base de données.

AfterDatabaseGenerate

[MPD uniquement] Exécuté immédiatement après la génération d'une base de données.

BeforeDatabaseReverseEngineer

[MPD uniquement] Exécuté immédiatement avant le reverse-engineering d'une base de données.

AfterDatabaseReverseEngineer

[MPD uniquement] Exécuté immédiatement après le reverse-engineering d'une base de données.

GetEstimatedSize

[MPD uniquement] Exécute le mécansime d'estimation de la taille de base de données. Pour obtenir des informations détaillées, voir Modification du mécanisme d'estimation de taille de base de données.