2017-04-15 7 views
0

VBSを使用して、ダイアグラム内の要素をダイアグラムの存在する親パッケージに移動します。 Enterprise Architectのリソースごとに、ダイアグラムオブジェクトから要素IDを取得します。 elementObjectを使用する親パッケージを取得しようとすると、私には未定義の値が与えられるので、diagramObjectのelementIDは要素のelementIDと等価ではないようです。図オブジェクトから要素オブジェクトのパッケージIDを取得

ダイアグラムオブジェクトから要素の親パッケージに到達する方法はありますか?

編集:私は

特定の部分を使用していますコードを追加しました():

 dim diagObject 
     set diagObject = package.Diagrams.GetAt(i).DiagramObjects.GetAt(j) 
     'add element to list and track its origin 
     dim elementID 
     elementID = diagobject.ElementID 
     dim element 
     set element = Repository.GetElementByID(elementID) 
     Session.Prompt elementID, promptOK 
     Session.Prompt "Test: " & element.PackageID, promptOK 

全体の機能:ここで

Function prepare(package) 
'define parent package id 
dim parentID 
parentID = package.PackageID 
'iterate through diagrams 
Dim i 
For i = 0 to Package.Diagrams.Count-1 
    'iterate through diagram objects 
    Session.Prompt "iterate through diagram objects", promptOK 
    Dim j 
    For j = 0 to package.Diagrams.GetAt(i).DiagramObjects.Count-1 
     'Check if the object is a element 
     Session.Prompt package.Diagrams.GetAt(i).DiagramObjects.GetAt(j).ObjectType, promptOK 
     If (19 = package.Diagrams.GetAt(i).DiagramObjects.GetAt(j).ObjectType) Then 
      Session.Prompt "IS A element", promptOK 
      dim diagObject 
      set diagObject = package.Diagrams.GetAt(i).DiagramObjects.GetAt(j) 
      'add element to list and track its origin 
      dim elementID 
      elementID = diagobject.ElementID 
      dim element 
      set element = Repository.GetElementByID(elementID) 
      Session.Prompt elementID, promptOK 
      Session.Prompt "Test: " & element.PackageID, promptOK 

      originList.Add elementID, element.PackageID 
      Session.Prompt PackageID, promptOK 
      'move element to currently selected package 
      element.PackageID = parentID 
      Session.Prompt "Moved", promptOK 
     End If 
    Next 
Next 
+0

使用しているコードを投稿してください。 Esp。親パッケージを取得する方法。 –

+0

私は使用しているコードを含むように質問を更新しました。 – Cgrillo

答えて

2

ではありません。一度それをすれば、すべてがうまくいくはずです。

+0

ありがとう、これはそれを解決しました! – Cgrillo

1

あなたはObject Model Reference

へのリンクですDiagramObjectから最初に要素を取得する必要があります。 CTはあなたは、そのPackageIDを変更した後elementを更新されることはありません要素

element=Repository.GetElementByID(yourDiagramObject.ElementID) 
packageID=element.PackageID 
関連する問題