Exemples de fichiers VBScript

PowerAMC est fourni avec un jeu d'exemples de script, que vous pouvez utiliser comme base pour créer vos propres scripts, et qui sont situés dans le dossier VB Scripts du répertoire d'installation de PowerAMC. Ces scripts sont destinés à vous montrer la variété des tâches que vous pouvez réaliser sur des modèles PowerAMC en utilisant VBScript.

Avertissement !  Vous devez toujours réaliser une copie de sauvegarde des exemples de script avant de les modifier.

Exemple de balayage d'un modèle

Le script suivant parcourt n'importe quel modèle, en bouclant sur les packages et répertoriant les objets qu'ils contiennent :

Option Explicit ' Force la déclaration de chaque variable 
'avant affectation
InteractiveMode = im_Batch ' Supprime l'affichage de boîtes de dialogue
' Identifie le modèle actif courant
Dim diag
Set diag = ActiveDiagram ' le diagramme courant
If (diag Is Nothing) Then
 MsgBox "Il n'y a pas de diagramme actif"
Else
 Dim fldr
 Set Fldr = diag.Parent
 ListObjects(fldr)
End If
' Sous-procédures pour parcourir le package courant et imprimer 
' des infos sur les objets du package courant et rappeler  
' la même sous-procédure sur tous les packages enfant
Private Sub ListObjects(fldr)
 output "Balayage de " & fldr.code
 Dim obj ' objet concerné
 For Each obj In fldr.children
  ' Appel de sous-procédure pour imprimer des infos sur l'objet
  DescribeObject obj
 Next
 ' parcourir les sous-packages
 Dim f ' dossier concerné
 For Each f In fldr.Packages
  'Appel de sous-procédure pour parcourir le package enfant
  ListObjects f
 Next
End Sub
' Sous-procédure pour imprimer des infos sur l'objet courant
Private Sub DescribeObject(CurrentObject)
 if CurrentObject.ClassName ="Association-Class link" then exit sub
 'output "Trouvé "+CurrentObject.ClassName
 output "Trouvé "+CurrentObject.ClassName+" """+CurrentObject.Name+""", Créé par "+CurrentObject.Creator+" le "+Cstr(CurrentObject.CreationDate) 
End Sub

Exemple de création d'un modèle

Le script suivant crée un nouveau MOO, puis crée une classe avec des attributs et des opérations :

ValidationMode = True 'Force PowerAMC à valider des
' actions et renvoyer des erreurs en cas d'action interdite
InteractiveMode = im_Batch ' Supprime des boîtes de dialogue PowerAMC
' Fonction princpale
' Crée un MOO avec un diagramme de classes
Dim Model
Set model = CreateModel(PdOOM.cls_Model, "|Diagram=ClassDiagram")
model.Name = "Gestion clients"
model.Code = "GestionClients"
' Récupère de la diagramme de classes
Dim diagram
Set diagram = model.ClassDiagrams.Item(0)
' Crée les classes
CreateClasses model, diagram
' Fonction de création des classes
Function CreateClasses(model, diagram)
 ' Crée une classe
 Dim cls
 Set cls = model.CreateObject(PdOOM.cls_Class)
 cls.Name = "Client"
 cls.Code = "Client"
 cls.Comment = "Classe client"
 cls.Stereotype = "Class"
 cls.Description = "La classe client définit les attributs et comportements d'un client."
 ' Création des attributs
 CreateAttributes cls
 ' Création des méthodes
 CreateOperations cls
 ' Création d'un symbole pour la classe
 Dim sym
 Set sym = diagram.AttachObject(cls)
 CreateClasses = True
End Function
' Fonction de création d'attributs
Function CreateAttributes(cls)
 Dim attr
 Set attr = cls.CreateObject(PdOOM.cls_Attribute)
 attr.Name = "ID"
 attr.Code = "ID"
 attr.DataType = "int"
 attr.Persistent = True
 attr.PersistentCode = "ID"
 attr.PersistentDataType = "I"
 attr.PrimaryIdentifier = True
 Set attr = cls.CreateObject(PdOOM.cls_Attribute)
 attr.Name = "Nom"
 attr.Code = "Nom"
 attr.DataType = "String"
 attr.Persistent = True
 attr.PersistentCode = "NOM"
 attr.PersistentDataType = "A30"
 Set attr = cls.CreateObject(PdOOM.cls_Attribute)
 attr.Name = "Téléphone"
 attr.Code = "Telephone"
 attr.DataType = "String"
 attr.Persistent = True
 attr.PersistentCode = "TELEPHONE"
 attr.PersistentDataType = "A20"
 Set attr = cls.CreateObject(PdOOM.cls_Attribute)
 attr.Name = "Email"
 attr.Code = "Email"
 attr.DataType = "String"
 attr.Persistent = True
 attr.PersistentCode = "EMAIL"
 attr.PersistentDataType = "A30"
 CreateAttributes = True
End Function
' Fonction de création des opérations
Function CreateOperations(cls)
 Dim oper
 Set oper = cls.CreateObject(PdOOM.cls_Operation)
 oper.Name = "GetName"
 oper.Code = "GetName"
 oper.ReturnType = "String"
 Dim body
 body = "{" + vbCrLf
 body = body + " return Name;" + vbCrLf
 body = body + "}"
 oper.Body = body
 Set oper = cls.CreateObject(PdOOM.cls_Operation)
 oper.Name = "SetName"
 oper.Code = "SetName"
 oper.ReturnType = "void"
 Dim param
 Set param = oper.CreateObject(PdOOM.cls_Parameter)
 param.Name = "nouvNom"
 param.Code = "nouvNom"
 param.DataType = "String"
 body = "{" + vbCrLf
 body = body + " Name = nouvNom;" + vbCrLf
 body = body + "}"
 oper.Body = body
 CreateOperations = True
End Function