当前位置: 首页 > 知识库问答 >
问题:

使用java-activitydiagram入口点initial编写Enterprise Architect脚本

梁丘招
2023-03-14

我想用我的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();

所以我认为它对初始点(或入口点)的工作方式相同:

Element initElement = elements.AddNew("Start...","EntryPoint");
java.lang.Exception: Invalid parent for EntryPoint (Package)
AddNew (string Name, string Type)

以下是指向Collection类的链接:http://www.sparxsystems.com/enterprise_architect_user_guide/9.2/Automation/Collection.html

问候

编辑

  • 原名:“action”;类型:“行动”;子类型:0;
  • 原名:“活动”;类型:“活动”;子类型:0;
  • 原名:“结构化活动”(其他->简单复合);类型:“活动”;亚型:8;
  • 原名:“initial”;类型:“StateNode”;亚型:100;
  • 原名:“final”;类型:“StateNode”;亚型:101;
  • 原名:“流终”;类型:“StateNode”;亚型:102;
  • 原名:“决定”;类型:“决定”;子类型:0;
  • 原名:“merge”;类型:“Mergenode”;子类型:0;
  • 原名:“决定”;类型:“决定”;子类型:0;
  • 原名:“fork/join”(水平);类型:“同步”;子类型:0;
  • 原名:“fork/join”(垂直);类型:“同步”;亚型:1;
  • 原名:“图解图例”;类型:“文本”;亚型:76;
  • 原名:“synch”;类型:“StateNode”;亚型:6;

乌菲在回答中已经解释过了。首先创建具有type参数的元素,然后设置特定的子类型。不要忘记在此之后的update()。

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

在此示例中再次感谢Uffe:)

共有1个答案

皮景龙
2023-03-14

没有元素类型枚举,元素只是被指定为字符串。有效字符串列在帮助文件中,特别是列在Element类(Automation and Scripting--Enterprise Architect Object Model--Reference-Element Package-Element class)的type属性中。

EA支持的每种元素类型都没有唯一的元素类型字符串。相反,许多元素都有一个子类型。这个子类型被表示为一个整数(element.subtype),并且大多数都没有文档化--但是活动图的初始活动恰好是为数不多的一个。

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

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

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

select Object_Type, NType from t_object where Name = 'MyTestElement'
 类似资料:
  • 重写程序入口点 _start 我们在第一章中,曾自己重写了一个入口点 _start,在那里我们仅仅只是让它死循环。但是现在,类似 C 语言运行时环境,我们希望这个函数可以为我们设置内核的运行环境。随后,我们才真正开始执行内核的代码。 但是具体而言我们需要设置怎样的运行环境呢? [info] 第一条指令 在 CPU 加电或 Reset 后,它首先会进行自检(POST, Power-On Self-T

  • 编写HTTP/1.1和HTTP/2.0脚本 有时,我们希望编写一个快速的脚本而不会遇到创建类的麻烦。addons机制具有一种速记方式,可以将模块作为一个整体视为一个addon对象。这使我们可以将事件处理程序函数放在模块作用域中。例如,下面是一个完整的脚本,它向每个请求添加标头。 def request(flow): flow.request.headers["myheader"] = "v

  • 问题内容: 例如在redis官方图片中: https://github.com/docker-library/redis/blob/master/2.8/docker- entrypoint.sh 为什么不像往常一样在没有exec的情况下运行命令呢? 问题答案: 正如@Peter Lyons所说,使用exec将替换父进程,而不是运行两个进程。 这对于在Docker中正确代理信号很重要。例如,如果R

  • 入口脚本是应用启动流程中的第一环, 一个应用(不管是网页应用还是控制台应用)只有一个入口脚本。 终端用户的请求通过入口脚本实例化应用并将请求转发到应用。 Web 应用的入口脚本必须放在终端用户能够访问的目录下, 通常命名为 index.php, 也可以使用 Web 服务器能定位到的其他名称。 控制台应用的入口脚本一般在应用根目录下命名为 yii(后缀为.php), 该文件需要有执行权限, 这样用户

  • 我想在我的活动图中添加一个图例,它将由java和EA-API编程生成。我已经知道如何创建legend元素并在图中显示它(类型:“text”和子类型:76): 但这只是一个空洞的传说。所以我的问题是,如何向CustomProperties添加一个CustomProperties。我的第一种方法是下面的代码: 但这不起作用,传说还是空的:( 你好,菲尔 在Geert Bellekens的帮助下,我已经

  • 本文向大家介绍PowerShell入门教程之编写和使用脚本模块实例,包括了PowerShell入门教程之编写和使用脚本模块实例的使用技巧和注意事项,需要的朋友参考一下 现在通过编写模块就可以在PowerShell命令行或者脚本中管理大型、分布式软件系统,就像Exchange Server和SharePoint Server正在做的那样。你有这样的需求吗? 模块、脚本模块   模块是PowerShe