Enterprise Architect:在创建实例时从初始属性值设置 运行 状态

Enterprise Architect: Setting run state from initial attribute values when creating instance

我正在使用 Enterprise Architect 13.5 创建部署图。我将我们的服务器定义为节点,并在它们上使用属性以便我可以指定它们的详细信息,例如 Disk Controller = RAID 5Disks = 4 x 80 GB.

将这些节点的实例拖到图表上时,我可以对它们 select "Set Run State" 并为我定义的所有属性设置值 - 就像在部署图中所做的一样EA示例项目:

由于我们的设计将有多个服务器使用相同的配置,我的计划是使用节点上属性定义中的 "initial value" 列来指定默认配置,以便我创建的所有实例自动出现具有合理的值,并且当默认值更改时,我只会更改原始节点上的初始值,而不必转到所有实例:

我的问题是,即使我定义了初始值,当我将它们拖到图表上时,我创建的所有实例都不会显示 任何 值。只有在每个实例上设置 运行 状态,我才能让它们显示我想要的值:

这是预期的行为吗?顺便说一句,我可以使用 类 和它们的实例重现相同的内容,所以这不仅仅是一个部署图问题。

非常感谢任何想法!如果您能描述一种使用 EA 实现相同结果的更好方法,我也非常感谢,以防我做错了。

您可以做的是编写一个脚本来协助它,或者甚至创建一个插件来实现更多的自动化。脚本更容易实现,但您需要手动 运行 脚本(但是可以为新创建的图表对象批量添加值)。如果挂钩到 EA_OnPostNewElement.

,则使用加载项可以在创建元素时执行此操作

你需要做的是先获取对象的classifier。使用

Repository.GetElementByID(object.ClassifierID)

会return那个。然后,您可以检查 class 的属性并列出具有初始值的属性。最后,您通过使用原始字符串分配 object.RunState 来添加对象的 运行 状态。例如。对于 a != 33 它将是

@VAR;Variable=a;Value=33;Op=!=;@ENDVAR;

多个 运行 个州,根据需要加入即可。