Book a Demo

Author Topic: AddNew not working for ActivityInitial?!  (Read 3845 times)

Paulus

  • EA User
  • **
  • Posts: 152
  • Karma: +0/-0
    • View Profile
AddNew not working for ActivityInitial?!
« on: October 22, 2012, 09:23:13 pm »
I'm trying to add a startingpoint to a diagram using the VB script below, but for some reason it doesn't work the way i would expect it.

Note: the snippet works OK when adding an Action (commented line).

Is there something missing in EA or am i doing something wrong?

Paulus


Code: [Select]
' ID 1117 below belongs to an activitydiagram
sub main
      dim dgm as EA.Diagram
      set dgm = Repository.GetDiagramByID(1117)
      
      dim pck as EA.Package
      set pck = Repository.GetPackageByID(dgm.PackageID)
      
      dim elt as EA.Element
'      set elt = pck.Elements.AddNew("MyAction","Action")
      set elt = pck.Elements.AddNew("Start","ActivityInitial")
      elt.Update()
      
      dim dgmObject as EA.DiagramObject
      set dgmObject = dgm.diagramObjects.AddNew( "", "" )
      dgmObject.ElementID( elt.ElementID )
      dgmObject.Update()

end sub

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: AddNew not working for ActivityInitial?!
« Reply #1 on: October 22, 2012, 09:58:20 pm »
That's because ActivityInitial is not a valid object type.

it should be a StateNode, and you should then set it's subtype to indicate that it is an initial node.

Try this (untested)
Code: [Select]
' ID 1117 below belongs to an activitydiagram
sub main
      dim dgm as EA.Diagram
      set dgm = Repository.GetDiagramByID(1117)
      
      dim pck as EA.Package
      set pck = Repository.GetPackageByID(dgm.PackageID)
      
      dim elt as EA.Element
'      set elt = pck.Elements.AddNew("MyAction","Action")
      set elt = pck.Elements.AddNew("Start","StateNode")
        elt.Subtype = 100 'for ActivityInitial
      elt.Update()
      
      dim dgmObject as EA.DiagramObject
      set dgmObject = dgm.diagramObjects.AddNew( "", "" )
      dgmObject.ElementID( elt.ElementID )
      dgmObject.Update()

end sub

Geert

Paulus

  • EA User
  • **
  • Posts: 152
  • Karma: +0/-0
    • View Profile
Re: AddNew not working for ActivityInitial?!
« Reply #2 on: October 22, 2012, 10:21:02 pm »
That was it  :)

Thanks Geert!