Ces quelques lignes de code en Visual Basic permettent d’exporter l’arborescence des dossiers/sous dossiers de votre référentiel dans un chiffrier Excel.
Compatible avec PowerDesigner/PowerAMC 16.5
'* Nom du fichier : ARBORESCENCE.vbs '* Définition : Export de l'arborescence des dossiers/sous dossiers de votre référentiel dans un chiffrier '* Objets: Dossier, Référentiel '* Auteur: Benoît Le Nabec '* URL : http://www.Powerd911.guru '* Créé: 2015-01-01 '* Version: 1.0 '*********************************************************************** Option Explicit ' Lancement de l'application Excel Dim objExcel Dim objWorkbook Set objExcel = CreateObject("Excel.Application") objExcel.Visible=True Set objWorkbook = objExcel.Workbooks.Add ' Vérification si nous avons une connexion active au référentiel Dim repository, connected Set repository = RepositoryConnection connected = repository.Connected If not connected then connected = repository.Open() End If Dim intRow ' Numéro de l'enregistrement courant intRow=1 If connected then ' On conserve le nom du référentiel sur la première ligne du chiffrier objExcel.Cells(intRow, 1)=repository.name ' On incrémente le numéro de l'enregistrement intRow=intRow+1 ' On inscrit l'arborescence du référentiel dans le chiffrier Excel ScanRepository repository, repository.name, objExcel, intRow ' Rafraichissement de la fênêtre du référentiel de PowerAMC repository.Refresh ' On sauve le résultat dans le fichier objWorkbook.SaveAs("C:\temp\Liste_Dossiers_Référéntiel.xls") ' On quitte le chiffrier Excel objExcel.Quit Else ' Message d'avertissement MsgBox "Une connexion au référentiel est nécessaire!" End If ' Procédure récursive qui permet de réaliser une lecture des dossiers du référentiel Sub ScanRepository (folder, name, objExcel, intRow) Dim subObject Dim Subfoldername ' Avons-nous une connexion au référentiel? If folder is Nothing then Exit Sub End If ' Lecture de chacun des dossiers du référentiel For Each subObject in folder.ChildObjects ' Si l'nbjet est un dossier If subObject.IsKindOf(PdRMG.Cls_RepositoryFolder) then ' On conserve le nom du dossier subfoldername=Name & "\" & subObject.name objExcel.Cells(intRow,1)=subfoldername ' On incrémente le numéro d'enregistrement intRow=intRow + 1 ' On vérifie s'il y a des sous-dossiers ScanRepository subObject, subfoldername, objExcel, intRow End If Next End Sub