Articles

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

Dans le référentiel Power AMC peuvent être stockés divers type d’objets. Des modèles physiques, modèles conceptuels, modèles objets, scripts, fichiers Word, etc. A partir de la liste des objets du référentiel (voir tutoriel liste des objets du référentiel), liste précédemment créée, si nous mettons un petit « x » dans la colonne 11, alors le scripts proposé ci-dessous va télécharger cet objet dans le répertoire demandé.

De toute façon, quand on consulte un objet stocké dans le référentiel, la première chose que fait Power AMC, c’est le télécharger. Mais ça peut être effroyablement long… Alors quand on a 50 composants à consulter, ce script prend toute sa valeur. On le lance et on peut faire autre chose (mais pas travailler sous Power AMC, car les scripts vbs ne laissent pas la main…).

Voici le script. Comme le précédent, les informations de connexion au référentiel doivent être stockées dans Power AMC !

'******************************************************************************
'* Fichier: liste_referentiel_vers_excel.vbs
'******************************************************************************
 
Option explicit
 
'VERIFICATION CONNEXION REFERENTIEL + ATTENTION PAS DE VERIF EXISTENCE REPRTOIRE
Dim referentiel_AMC, connexion
Dim top_recherche
Dim repertoire_export
repertoire_export = InputBox ("Répertoire d'export des composants ?", "Choix du répertoire" )
If Right(repertoire_export, 1) <> "\" Then
repertoire_export = repertoire_export & "\"
End If
InteractiveMode = im_Batch
Set referentiel_AMC = RepositoryConnection
connexion = referentiel_AMC.Connected
If connexion = false then
connexion = referentiel_AMC.Open()
End If
 
'TRAITEMENT SI REFERENTIEL OUVERT
If connexion = true then
Dim repertoire
 
top_recherche = false
 
'OUVERTURE EXCEL
Dim XLS_APP
Set XLS_APP = CreateObject("Excel.Application")
XLS_APP.Visible = True
XLS_APP.DisplayAlerts = False
 
'OUVERTURE FICHIER EXCEL CREE AVEC SCRIPT "liste_referentiel_vers_excel.vbs"
Dim NomFichier
Dim filtre
filtre = "Classeur 97/2003 (*.xls), *.xls"
NomFichier = XLS_APP.GetOpenFileName(filtre,, "Ouvrir", ,False)
If NomFichier <> False then
XLS_APP.Workbooks.Open NomFichier
End If
Dim XLS
Set XLS = XLS_APP.ActiveWorkbook
Dim referentiel
Set referentiel = XLS.Sheets("referentiel")
 
'LECTURE REFERENTIEL
EXPLORATION referentiel_AMC
 
'FIN TRAITEMENT
End If
 
Sub EXPLORATION (folder)
Dim repertoire, nom_fichier
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
RECHERCHE_EXCEL (objet.UOL)
If top_recherche = TRUE then
top_recherche = FALSE
output "Extraction de " & objet.Name & " vers " & repertoire_export & nom_fichier
nom_fichier = Right(objet.ExtractionName, Len(objet.ExtractionName) - InStrRev (objet.ExtractionName, "\"))
objet.ExtractToFile repertoire_export & nom_fichier, 1
End If
End If
End If
Next
End Sub
 
Sub RECHERCHE_EXCEL (emplacement)
 
top_recherche = FALSE
 
'LECTURE DU FICHIER EXCEL
Dim ligne, emplacement_xls
ligne = 2
Dim top_recup
Do while referentiel.Cells(ligne,1).value <> "" and top_recherche = FALSE
emplacement_xls = referentiel.Cells(ligne,10).value
top_recup = referentiel.Cells(ligne,11).value
If emplacement_xls = emplacement and top_recup = "x" Then
top_recherche = TRUE
End If
ligne = ligne + 1
Loop
 
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