Articles

Utilisation avancée des scripts VBS dans Power AMC : liste objets du référentiel

Le très complet logiciel de modélisation Power AMC offre une fonctionnalité plutôt méconnue, la possibilité d’exécuter des scripts vbs au sein même du logiciel. Le modèle Objet de Power AMC est alors disponible dans l’exécution du script VBS. On peut donc ainsi manipuler à peu près toutes les fonctionnalités offertes par le logiciel, et en masse (intérêt des scripts). La série de 3 tutoriels qui s’annoncent va permettre d’effectuer les tâches suivantes :

  1. faire une liste Excel de tous les Objects contenus dans le référentiel Power AMC,
  2. à partir de la liste précédente, téléchargement de tous les objets de la liste (avec possibilité de cocher les objets requis) dans un répertoire déterminé,
  3. construction sous Excel d’un dictionnaire de données Power AMC à partir de tous les modèles physiques (*.mpd) Power AMC.

A noter, le point 3/ est évidemment le plus important. Toutes les entreprises ne travaillent pas avec le référentiel Power AMC, et donc, on pourra construire le dictionnaire de données directement à partir des fichiers mpd.

Pour exécuter un script sous Power AMC, aller dans le menu « outils – exécuter des commandes – Editer / Exécuter le script »

Dans la fenêtre d’édition des scripts, on peut ouvrir un script existant, Power AMC étant livré avec quelques scripts bien utiles, à titre d’exemples. Le répertoire par défaut des scripts est :

C:\Program Files\Sybase\PowerAMC xx\VB Scripts

On peut en ouvrir un et on retourne dans la fenêtre d’édition. Pour l’exécuter on clique sur « Exécuter », et pour la précieuse mais complexe aide en ligne sur le modèle objet, on clique sur le bouton « aide en ligne ».

La fenêtre d’aide en ligne (description du modèle objet de Power AMC) est la suivante :

Un script que nous pouvons proposer à titre d’exemple pour faire une liste Excel du contenu du référentiel Power AMC est le suivant (créer un fichier texte à partir ce code, le nommer en « liste_referentiel_vers_excel.vbs », et le placer dans le répertoire par défaut des scripts. Attention, les informations de connexion au référentiel doivent être stockées dans Power AMC !

 '******************************************************************************
'* Fichier: Liste_Referentiel_vers_Excel.vbs
'******************************************************************************
 Option explicit
'CREATION INITIALISATION FICHIER EXCEL
Dim nb, i
Dim XLS_APP
Set XLS_APP = CreateObject("Excel.Application")
XLS_APP.Visible = True
XLS_APP.Application.ScreenUpdating = False
XLS_APP.DisplayAlerts = False
XLS_APP.Workbooks.Add
Dim XLS
Set XLS = XLS_APP.ActiveWorkbook
XLS.sheets.Add
XLS.sheets(1).name = "referentiel"
nb = XLS.Sheets.Count
For i = 2 To (nb)
XLS.Sheets(2).Delete
Next
Dim referentiel
Set referentiel = XLS.Sheets("referentiel")
referentiel.Cells.ClearContents
referentiel.Cells(1, 1).Value = "Nom"
referentiel.Cells(1, 2).Value = "Type"
referentiel.Cells(1, 3).Value = "Version"
referentiel.Cells(1, 4).Value = "Emplacement"
referentiel.Cells(1, 5).Value = "Date création"
referentiel.Cells(1, 6).Value = "Date modification"
referentiel.Cells(1, 7).Value = "Identifiant"
referentiel.Cells(1, 8).Value = "Nom étendu"
referentiel.Cells(1, 9).Value = "Class ID"
referentiel.Cells(1, 10).Value = "Emplacement dans referentiel"
referentiel.Cells(1, 11).Value = "Top Export"
Dim ligne_referentiel
ligne_referentiel = 2
'VERIFICATION CONNEXION REFERENTIEL
 
Dim referentiel_AMC, connexion
Set referentiel_AMC = RepositoryConnection
connexion = referentiel_AMC.Connected
If connexion = false then
connexion = referentiel_AMC.Open()
End If
If connexion = true then
EXPLORATION referentiel_AMC
Else
MsgBox "La connexion au référentiel n'est pas valide, veuillez la configurer."
End If
 
'MISE EN FORME DU FICHIER EXCEL
Dim feuille
For Each feuille in XLS.Sheets
feuille.Select
With feuille.Rows("1:1").Interior
.Pattern = 1
.PatternColorIndex = -4105
.ThemeColor = 10
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
With feuille.Rows("1:1").Font
.ThemeColor = 1
.TintAndShade = 0
End With
feuille.Rows("1:1").Font.Bold = True
feuille.Rows("1:1").AutoFilter
With XLS_APP.ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
XLS_APP.ActiveWindow.FreezePanes = True
XLS_APP.Cells.Select
XLS_APP.Cells.EntireColumn.AutoFit
Next
XLS_APP.Application.ScreenUpdating = True
'ENREGISTREMENT DU FICHIER XLS, FERMER AUTRE FICHIER DU MEME NOM AU PREALABLE
 
Dim NomFichier, NomCourt
NomCourt = "Liste_Referentiel_vers_Excel.xls"
NomFichier = XLS_APP.GetSaveAsFileName(NomCourt)
If NomFichier <> False then
XLS_APP.ActiveWorkBook.SaveAs NomFichier
End If
Sub EXPLORATION (folder)
 
Dim repertoire
If folder is Nothing then
Exit Sub
End If
repertoire = folder.Name
Dim objet
For Each objet in folder.ChildObjects
If objet.IsKindOf(PdRMG.Cls_RepositoryFolder) then
'RECCURSIVITE
EXPLORATION objet
else
If objet.IsKindOf(PdRMG.Cls_RepositoryDocument) or objet.IsKindOf(PdRMG.Cls_RepositoryModel) then
output "écriture liste Excel objet " & objet.Name
referentiel.Cells(ligne_referentiel,1).Value = objet.Name
referentiel.Cells(ligne_referentiel,2).Value = objet.ClassName
referentiel.Cells(ligne_referentiel,3).Value = objet.Version
referentiel.Cells(ligne_referentiel,4).Value = objet.ExtractionName
referentiel.Cells(ligne_referentiel,5).Value = objet.CreationDateInRepository
referentiel.Cells(ligne_referentiel,6).Value = objet.ModificationDateInRepository
referentiel.Cells(ligne_referentiel,7).Value = objet.ObjectIdentifier
referentiel.Cells(ligne_referentiel,8).Value = objet.DisplayName
referentiel.Cells(ligne_referentiel,9).Value = objet.ClassID
referentiel.Cells(ligne_referentiel,10).Value = objet.UOL
ligne_referentiel = ligne_referentiel + 1
end if
End If
Next
 
End Sub
Top

Laisser un commentaire

Required fields are marked *.


 

Top

Contactez-nous contact@expert-data.fr

EXPERT data, solutions pour TPE/PME et grands comptes