Powerd911 – Numéro #1 au Canada

Comment conserver globallement des informations

Cet article à pour objectif de vous démontrez trois (3) façons de procéder afin de conserver des données globalement dans PowerAMC afin que l’on puisse utiliser ces données d’un script VB à l’autre.

La première méthode consiste à sauvegarder les données dans un dictionnaire de données à l’aide d’identifiant formé de clefs unique. À titre d’exemple le script ci-dessous créer la donnée « 2 » identifié par la clef « ‘Ma clef d’identification et liste toute les clefs et données contenu dans le dictionnaire de données global courant.

Compatible avec PowerDesigner/PowerAMC 16.5

'Propriétés globale
 
'UserDataDictionary As Object
'Cette propriété retourne une chaîne en provenance d'un dictionnaire de données. Cette chaine est conservée globalement
'et n'est pas persisté. Chaque chaine est associée à une clé unique.

'Exemple :

Option Explicit
' Créer et assigner ma clef
UserDataDictionary.Add "Ma clef d'identification", 1

' Assigne mes données ou modifie mes données existantes
If UserDataDictionary.Exists("Ma clef d'identification") Then
UserDataDictionary("Ma clef d'identification") = 2
End If

' NOTE: Une donnée doit être assignée à une clef (.Add) avant qu'elle
' puisse être accédée avec la syntaxe UserDataDictionary(clef).

' Il n'est pas recommandé d'énuméré toute les données contenu dans le
' dictionnaire de données compte tenu que d'autres scripts on
' peut-être crées des données pour leurs propres besoins.

Output "Nous avons trouvé " & UserDataDictionary.Count & " donnée(s) dans le dictionnaire"

Dim key
For Each key In UserDataDictionary.Keys
Output " Clef => " & key & " Donnée => " & CStr(UserDataDictionary(key))
Next

' Énuméré les valeurs
Dim value,   I
I = 0

For Each value In UserDataDictionary
I = I + 1
Output "[Enregistrement " & CStr(I) & "]: Donnée => " & CStr(value)
Next

' Supression des données de la clef sélectionnée
If UserDataDictionary.Exists("Ma clef d'identification") Then
UserDataDictionary.Remove "Ma clef d'identification"
End If

If UserDataDictionary.Exists("Ma clef d'identification") Then
Output "Hum! les données auraient dû être supprimées!"
Else
Output "La suppression des données à été complétée"
End If


Le code ci-dessous permet de supprimer toute les données contenu dans le dictionnaire de données de la session courante ayant cours.

' Suppression de toute les données
' AVERTISSEMENT : Cette suppression pourrait rendre inopérant les autres scripts en cours qui utilisent le dictionnaire de données
UserDataDictionary.RemoveAll

Il existe deux autres façon de procéder. Vous pouvez :

  1. définir une variable globale (dim) dans un fichier xem ou xdb afin d’utiliser cette variable lors de l’exécution subséquente de scripts VB ;
  2. créer (à l’aide d’un script VB) un objet “PdCommon/ExtendedObject” afin de conserver l’information au sein de tous les processus qui seront exécuté par vos multiples scripts VB.
Dim Modl1, Obj1, Obj2

' Création d'un modèle de type Libre
Set Modl1 = CreateModel(PdFrm.Cls_Model)

' Création d'un objet étendu
Set Obj1 = Modl1.ExtendedObjects.CreateNew()
' Assignation de son Nom et de son Code
obj1.SetNameAndCode "Identification de l'object", "ObjectID"

' Création d'un objet étendu
Set Obj2 = Modl1.ExtendedObjects.CreateNew()
' Assignation de son Nom et de son Code
obj2.SetNameAndCode "Global Unique Identifier Definition", "GUID"

A noter que si vous ne désirez pas conserver ces données dans le modèle lors de sa sauvegarde. Vous pouvez supprimer les objets étendu à l’aide de la méthode ci-dessous.

' Suppression de l'objet ObjectID
Modl1.ExtendedObjects.Remove(obj1)

' Suppression de l'objet GUID
Modl1.ExtendedObjects.Remove(obj2)

Laisser un commentaire

Contacter nous
300 characters left