Chapter 4 Gestion des profils


Notions de base relatives aux gestionnaires d'événement

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.

Chaque gestionnaire d'événement est doté d'une sémantique et de paramètres prédéfinis. Lorsque vous associez un gestionnaire d'événement à un stéréotype ou à une métaclasse, le script de gestionnaire d'événement est initialisé avec les fonctions à mettre en oeuvre. Par exemple, le gestionnaire d'événement CanCreate prend comme paramètre le parent dans lequel l'objet sera créé :

Function %CanCreate%(parent)
   ' Implement your creation validation rule on <parent> here
   ' and return True in case of success

   %CanCreate% = True
End Function

Vous utilisez l'onglet Script du gestionnaire d'événement pour définir la fonctionnalité du gestionnaire d'événement et l'adapter à votre modèle et à vos besoins. L'onglet Script global est utilisée pour partager les fonctions de bibliothèque et les attributs statiques dans le fichier de ressources.

Vous pouvez également utiliser l'onglet Script global pour déclarer des variables globales. Dans ce cas, n'oubliez pas que les variables globales ne sont pas réinitialisées chaque fois que le gestionnaire d'événement est exécuté. Elles conservent leurs valeur jusqu'à ce que vous modifiez le fichier de ressources, ou jusqu'à la fin de la session PowerAMC. Ce comportement peut être la source d'erreurs, tout particulièrement lorsque des variables font référence à des objets qui peuvent être modifiés, voire supprimés. N'oubliez pas d'initialiser la variable globale au début d'une méthode si vous ne souhaitez pas conserver la valeur de l'exécution précédente.

Pour plus d'informations sur la définition d'un script et l'utilisation de l'onglet Script global, reportez-vous aux sections "Définition du script d'une vérification personnalisée" et "Utilisation du script global".

WARNING! 

Attention
N'utilisez pas d'instruction telle que msgbox ou input box pour ouvrir une boîte de dialogue dans la fonction de gestionnaire d'événement

Plusieurs gestionnaires d'événement sont définis dans PowerAMC.

CanCreate

Le gestionnaire d'événement CanCreate est utilisé pour mettre en oeuvre une règle de validation de création. Certains objets ne peuvent pas être créés n'importe où dans le modèle le gestionnaire d'événement CanCreate s'assure que cette exigence est remplie. Par exemple, dans un MPM pour ebXML, un processus ayant le stéréotype BusinessTransactions doit être créé 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 CanCreate 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ée l'objet personnalisé. 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.

Si le gestionnaire d'événement CanCreate est défini sur une métaclasse et que la valeur de retour de la fonction est True, vous pouvez alors créer l'objet à partir de la palette d'outils, à partir de l'Explorateur d'objets ou bien dans une liste.

Note   Modèles importés ou obtenus par reverse engineering
Lorsque 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

Le gestionnaire d'événement Initialize est 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éotype et 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 palette, soit à partir de la feuille de propriétés d'objet.

Si le gestionnaire d'événement Initialize 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 palette d'outils, à partir de l'Explorateur d'objets, dans une liste, ou bien en utilisant l'outil Nouveau dans une feuille de propriétés.

Si gestionnaire d'événement Initialize est défini sur la métaclasse model et si la valeur de retour de la fonction est 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 définition étendue de modèle à ce modèle.

Validate

Le gestionnaire d'événement Validate permet de valider les changements effectués sur les propriétés d'objet et de mettre en oeuvre des mises à jour en cascade. Il est déclenché lorsque l'utilisateur effectue l'une des actions suivantes :

La valeur de résultat permet à l'utilisateur d'interdire des changements.

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 de définir 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 = "Le champ Commentaire ne peut pas être laissé vide"
   else
      %Validate% = True
   end if
End Function

CanLinkKind

Le gestionnaire d'événement CanLinkKind permet de limiter le type et le stéréotype des objets que vous souhaitez lier. Il est déclenché lorsque l'utilisateur :

Le gestionnaire d'événement CanLinkKind 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

 


Copyright (C) 2005. Sybase Inc. All rights reserved.