Gestionnaires d'événement (Profile)

Les gestionnaires d'événement définissent des règles de validation ou d'autres scripts à exécuter lorsqu'un événement se produit sur un objet. La logique du gestionnaire d'événement est définie avec VBScript. Les critères ne prennent pas en charge les gestionnaires d'événement.

  1. Pointez sur une métaclasse, un stéréotype ou un critère dans la catégorie Profile, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Gestionnaire d'événement pour afficher une boîte de sélection, qui répertorie les types de gestionnaire d'événement disponibles :

    Gestionnaire d'événement

    Description

    CanCreate

    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 le gestionnaire d'événement renvoie True sur un stéréotype, vous pouvez utiliser l'outil personnalisé pour créer l'objet stéréotypé et le stéréotype est disponible dans la liste Stéréotype de la feuille de propriétés d'objet. S'il renvoie True sur une métaclasse, vous pouvez alors créer l'objet à partir de la Boîte à outils, à partir de l'Explorateur d'objets ou bien dans une liste.

    Remarque : Les gestionnaires d'événement CanCreate sont ignorés lors d'une importation de modèle ou d'un reverse engineering, car ils pourraient modifier le modèle et y créer des divergences par rapport au modèle d'origine.

    Initialize

    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.
    ...
    ' Recherche d'une requesting activity existante
         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
     
     ' Création d'une requesting activity si aucune n'a été trouvée
     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éotype, l'initialisation sera lancée 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 renvoie True sur une métaclasse, elle sera lancée 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. S'il renvoie True sur un modèle, elle sera lancée 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

    Valide les modifications apportées aux propriétés d'objet ou déclenche des mises à jour en cascade lorsque vous changez d'onglet ou que vous cliquez sur OK ou sur Appliquer dans une feuille de propriétés d'objet. Vous pouvez définir un message d'erreur qui apparaît si la condition n'est pas satisfaite en renseignant la variable de message et en définissant la variable %Validate% à False.

    Dans l'exemple suivant, le gestionnaire d'événement vérifie qu'un commentaire est ajouté dans la définition d'un objet :
    Function %Validate%(obj, ByRef message)
     if obj.comment = "" then 
      %Validate% = False
      message = "Le commentaire ne doit pas être vide"
     else
      %Validate% = True
     end if
    End Function

    CanLinkKind

    [objets de lien] Valide le type et le stéréotype des objets qui peuvent être liés comme extrémités source et destination lorsque vous créez un lien à l'aide d'un outil de la Boîte à outils ou que vous modifiez les extrémités de ligne dans une feuille de propriétés. Les paramètres sourceStereotype et destinationStereotype sont facultatifs.

    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, OnModelSave et OnModelClose

    [modèles] Exécuté immédiatement après l'ouverture, l'enregistrement ou la fermeture d'un modèle.

    OnLanguageChangeRequest, OnLanguageChanging et OnLanguageChanged

    [modèles] 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é.
    • Après après le changement de langage, mais avant que les transformations ne soient appliquées aux objets afin de les rendre conformes à la nouvelle définition de langage.
    • 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] Exécuté immédiatement après la création d'un modèle ou d'un projet à partir d'un template de modèle ou de projet.

    BeforeDatabaseGenerate, AfterDatabaseGenerate, BeforeDatabaseReverseEngineer et AfterDatabaseReverseEngineer

    [MPD] Exécuté immédiatement avant ou après la génération ou le reverse engineering d'une base de données (voir Ajout de scripts avant ou après la génération ou le reverse engineering).

    GetEstimatedSize

    [MPD uniquement] Exécuté lorsque le mécanisme d'estimation de la taille de base de données est appelé (voir Modification du mécanisme d'estimation de taille de base de données).

  2. Sélectionnez un plusieurs gestionnaires d'événement, puis cliquez sur OK pour les ajouter.
  3. Saisissez un nom et un commentaire pour identifier et document le gestionnaire d'événement.
  4. Cliquez sur l'onglet Script du gestionnaire d'événement et saisissez un script pour définir le gestionnaire d'événement. Vous pouvez accéder à des fonctions de bibliothèques partagées et à des attributs statiques définis pour réutilisation dans le fichier de ressource depuis l'onglet Script global (voir Script global (Profile)).


  5. Cliquez sur Appliquer pour enregistrer vos modifications.