Création de correspondances entre objets (Scripting)

Vous pouvez créer des sources de données dans un modèle et à partir de là créer des correspondances entre des objets source contenus dans d'autres modèles et des objets contenus dans le premier modèle à l'aide de scripts.

Le script suivant crée un MOO et un MPD, les remplit à l'aide de classes et de tables, puis crée une source de données dans le MOO, y associe le MPD et crée des correspondances :
Dim MonMOO, MonMPD
'Création d'un MOO et d'un MPD
set MonMOO = CreateModel(PdOOM.Cls_Model, "|Language=Analysis|Diagram=ClassDiagram|Copy")
MonMOO.SetNameAndCode "MonMOO", "MOO"
set MonMPD = CreateModel(PdPDM.Cls_Model, "|DBMS=Sybase SQL Anywhere 12|Copy")
MonMPD.SetNameAndCode "MonMPD", "MPD"
 'Création des classes et des tables
 For idx = 1 to 6
   Set c=MonMOO.Classes.CreateNew()
   c.SetNameAndCode "Classe" & idx, "C" & idx
   Set t=MonMPD.Tables.CreateNew()
   t.SetNameAndCode "Table" & idx, "T" & idx
Next
'Création d'une source de données dans le MOO et ajout du MPD comme source
Dim ds, m1
Set ds = MonMOO.DataSources.CreateNew()
ds.SetNameAndCode "MonMPD", "MPD"
ds.AddSource MonMPD

'Création d'une correspondance entre C1 et T6
set m1 = ds.CreateMapping(MonMOO.FindChildByName("Classe1",cls_class))
m1.AddSource MonMPD.FindChildByName("Table6",cls_table)
' Identification des correspondances pour chaque classe du MOO
 For each c in MonMOO.Classes
   Dim m, sc
   set m = ds.GetMapping(c)
   If not m is nothing then
      Output c.Name & vbtab & "Correspond à : "
      for each sc in m.SourceClassifiers
         output vbtab & vbtab & "- " & sc.Name
      next
   Else
      Output c.Name & vbtab & "Aucune correspondance définie."
   End if
Next

Pour plus d'informations sur les correspondances d'objets, voir Guide des fonctionnalités générales > Liaison et synchronisation de modèles > Mise en correspondance d'objets.