Exemple : Spécification d'une action Script

L'action Script permet à un utilisateur de cadre d'architecture d'exécuter un script dans le noeud ou dans la cellule. Vous pouvez utiliser le script afin de créer un document de projet et l'attacher au noeud ou à la cellule.

Dans l'exemple suivant, vous allons spécifier une action dans un noeud de diagramme de cadre d'architecture qui permettra à l'utilisateur d'exécuter un script qui génère un modèle à partir d'un autre modèle. Le résultat de cet exemple est le même que celui d'une action Génération, mais le script est conçu pour démontrer les fonctionnalités que vous pouvez définir sous forme de script dans vos propres projets. Vous pouvez, par exemple, rédiger un script pour vous connecter directement à une base de données et procéder à son reverse engineering dans une cellule. Pour plus d'informations sur la rédaction de scripts à utiliser dans vos modèles et projets, voir Personnalisation et extension de PowerAMC > Fichiers d'extension > Méthodes (Profile).

Avant de spécifier une action Script, vous devez commencer par créer une méthode script sur la métaclasse FrameworkAction dans une extension, puis l'attacher à votre projet. Dans le cas présent, le script suivant s'appelle GenererModele, et va générer un MPD :

Sub %Method%(obj)

   ' Ceci est une méthode exemple qui peut être utilisée avec l'action
script
   ' Elle génère un MPD à partir d'un MCD de cellule source et
l'attache à la cellule courante
   ' Etapes :
   ' 1- Lire la cellule source : trouvée par son code "mySourceCell"
   ' 2- Lire le modèle source : premier document dans la cellule
source
   ' 3- Générer un MPD à partir du modèle source
   ' 4- Attacher le modèle généré à la cellule courante
   ' 5- Définir l'action courante comme action source pour le nouveau
document
   ' => Ceci empêchera de générer deux fois si l'action n'est pas
muliple
   
   If obj Is Nothing Then Exit Sub

   Dim sourceCell, targetCell, modelDoc, sourceModel, targetModel

   ' Le script est défini sur l'action, donc la cellule courante
   ' n'est que le parent de l'action
   Set targetCell = obj.Parent

   ' Vérifions d'abord si nous pouvons exécuter l'action sur la
   ' cellule courante
   ' Pour les action non-multiple, CanExecute ne doit renvoyer true
   ' que la première fois
   If obj.CanExecute(targetCell) Then
      ' Obtenir la cellule source
      Set sourceCell = FindCellByCode(targetCell.Parent, "mySourceCell") 
      ' voir code de fonction sous l'instruction End Sub

      ' Obtenir le modèle source (supposé être le premier dans
      ' sa liste d'artefacts)
      Set modelDoc = sourceCell.ArtifactDocuments.Item(0)
      Set sourceModel = modelDoc.TargetModelObject

      ' Générer le MPD
      Set targetModel = sourceModel.GenerateModel (Nothing, PdPDM.cls_Model)

      ' Attacher le modèle généré à la cellule courante
      Set modelDoc = targetModel.SourceModelDocument
      targetCell.AttachDocument(modelDoc)

      ' Définir l'action courante comme source pour le nouveau modèle
      obj.SetAsSource(modelDoc)
   Else
      ' Dans cet exemple, l'action est supposée être non-multiple
      ' Par conséquent, CanExecute échoue si elle est déjà une 
      ' action source pour un document existant
      output "L'action a déjà été exécutée"
   End If
End Sub


' Fonction FindCellByCode (fonction de script global) :

Function FindCellByCode (fmx, Code)
   Set FindCellByCode = Nothing
   Dim Cell
   For Each Cell In fmx.cells
      If Cell.Code = Code Then
         Set FindCellByCode = Cell
         Exit For
      End If
   Next 
End Function

>>
  1. Double-cliquez sur un noeud de cadre d'architecture pour afficher sa feuille de propriétés, puis cliquez sur l'onglet Actions
  2. Sur l'onglet Général, saisissez Script de génération de modèle dans la zone Nom.
  3. Décochez la case Multiple pour spécifier qu'un seul modèle généré peut être attaché au noeud.
  4. Cliquez sur l'onglet Détails, puis spécifiez les propriétés suivantes dans les zones (voirOnglet Détails de la feuille de propriétés d'une action de cadre d'architectur).

    Propriété

    Sélectionnez

    Type

    Script

    Méthode

    GenererModele


    scriptaction
  5. Cliquez sur OK pour fermer les feuilles de propriétés d'action et de noeud et revenir au diagramme de cadre d'architecture.

    L'action Script est maintenant disponible pour les utilisateurs du diagramme de cadre d'architecture (voir Attachement d'un document à une cellule ou à un noeud de cadre d'architecture).