企业架构师脚本与java -活动图入口点初始



我想用我的java代码生成一个活动图。它的工作是创建一个actionelement:

//Add the actionElement to the package
Element actionElement = elements.AddNew("MyFirstAction", "Action");
elements.Refresh();
//Add the element to the activity diagram
DiagramObject dob = dobs.AddNew("", "");       
dobs.Refresh();
//reference the DiagramObject to the before created element
dob.SetElementID(element.GetElementID());
dob.Update();
dobs.Refresh();

所以我认为它将以同样的方式为Initial(或EntryPoint)工作:

Element initElement = elements.AddNew("Start...","EntryPoint");

但是出现了以下异常:

java.lang.Exception: Invalid parent for EntryPoint (Package)

有人能帮帮我吗?我的另一个问题是,如果有任何枚举的元素类型的集合?因为我只找到了集合类的以下信息..

AddNew (string Name, string Type)

但是Type的信息只告诉我们"Type: String(最多30个字符长)"。

下面是一个指向集合类的链接:http://www.sparxsystems.com/enterprise_architect_user_guide/9.2/automation/collection.html

编辑

在Uffe的帮助下,我得到了一些活动图组件的子类型和类型信息。"原始名称"是当您想要添加"新元素或连接器"时在企业架构师的GUI中看到的名称:

  • 原名称:"Action";类型:"行动";亚型:0;
  • 原名称:"Activity";类型:"活动";亚型:0;
  • 原名:"结构化活动"(Other->Simple Composite);类型:"活动";亚型:8;
  • 原名:"Initial";类型:"StateNode";亚型:100;
  • 原名称:"Final";类型:"StateNode";亚型:101;
  • 原名称:"Flow Final";类型:"StateNode";亚型:102;
  • 原名称:"Decision";类型:"决定";亚型:0;
  • 原名称:"Merge";类型:"MergeNode";亚型:0;
  • 原名称:"Decision";类型:"决定";亚型:0;
  • 原名称:"Fork/Join"(水平);类型:"同步";亚型:0;
  • 原名称:"Fork/Join"(垂直);类型:"同步";亚型:1,
  • 原名称:"图解图例";类型:"文本";亚型:76;
  • 原名:"Synch";类型:"StateNode";亚型:6;

他已经在回答中解释过了。首先使用类型参数创建Element,然后设置特定的子类型。在此之后不要忘记update()。

Element element = elements.AddNew("StartHere", "StateNode");
element.Subtype = 100;
element.Update();
elements.Refresh();

再次感谢Uffe提供的示例:)

没有元素类型枚举,只是将元素指定为字符串。有效的字符串在帮助文件中列出,特别是在Element类的Type属性中(自动化和脚本—企业架构师对象模型—参考—元素包—元素类)。

对于EA支持的每种类型的元素,并没有一个唯一的元素类型字符串。相反,许多元素都有子类型。这个子类型被表示为一个整数(Element.Subtype),它们中的大多数都没有被记录下来——但是活动图的初始活动恰好是少数几个被记录下来的活动之一。

因此,为了创建一个ActivityInitial元素(在GUI中众所周知),您只需创建指定类型的元素,然后设置它的子类型并更新它。

Element element = elements.AddNew("StartHere", "StateNode");
element.Subtype = 100;
element.Update();
elements.Refresh();

为了找出其他元素的正确类型/子类型组合,最简单的方法是在GUI中创建相应类型的元素,然后在数据库中查找:

select Object_Type, NType from t_object where Name = 'MyTestElement'

相关内容

  • 没有找到相关文章

最新更新