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 types de gestionnaire d'événement suivants sont disponibles dans PowerAMC :
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 palette d'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 palette, 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 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 |
[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 Palette 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. |
OnLanguageChanging |
[modèles uniquement] Exécuté immédiatement avant le changement de la cible (SGBD ou langage) d'un modèle. |
OnLanguageChanged |
[modèles uniquement] Exécuté immédiatement après le changement de la cible (SGBD ou langage) d'un modèle. |
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. |