【问题标题】:Enterprise Architect scripting with java - activitydiagram entry point initial使用 java 编写 Enterprise Architect 脚本 - activitydiagram 入口点初始
【发布时间】:2014-05-19 11:11:27
【问题描述】:

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

//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)

有人可以帮助我吗?我的另一个问题是,集合的 ElementTypes 是否有任何枚举? 因为我只找到了集合类的以下信息..

AddNew (string Name, string Type)

但是Type的信息只告诉“Type: String (up to 30 characters long)”。

这里是 Collection 类的链接: http://www.sparxsystems.com/enterprise_architect_user_guide/9.2/automation/collection.html

问候

编辑

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

  • 原名:“行动”;类型:“行动”;子类型:0;
  • 原名:“活动”;类型:“活动”;子类型:0;
  • 原名:“结构化活动”(Other->Simple Composite);类型:“活动”;亚型:8;
  • 原名:“首字母”;类型:“状态节点”;子类型:100;
  • 原名:“决赛”;类型:“状态节点”;子类型:101;
  • 原名:“Flow Final”;类型:“状态节点”;亚型:102;
  • 原名:《决定》;类型:“决定”;子类型:0;
  • 原名:“合并”;类型:“合并节点”;子类型:0;
  • 原名:《决定》;类型:“决定”;子类型:0;
  • 原名:“Fork/Join”(横向);类型:“同步”;子类型:0;
  • 原始名称:“Fork/Join”(垂直);类型:“同步”;子类型:1;
  • 原名:“图例”;类型:“文本”;亚型:76;
  • 原名:“同步”;类型:“状态节点”;亚型:6;

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

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

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

【问题讨论】:

    标签: scripting uml enterprise-architect activity-diagram


    【解决方案1】:

    没有元素类型枚举,元素被简单地指定为字符串。有效字符串在帮助文件中列出,特别是在Element 类的Type 属性中(自动化和脚本--Enterprise Architect 对象模型--参考--元素包--元素类)。

    对于 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'
    

    【讨论】:

    • 嗨,非常感谢您快速而好的解释:)我将编辑一些活动图组件的子类型和类型
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    相关资源
    最近更新 更多