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

时间:2018-11-14 17:55:31

标签: enterprise-architect

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

将这些节点的实例拖到图表上时,我可以在它们上选择“设置运行状态”并为我定义的所有属性设置值-就像在EAExample项目的部署图中所做的一样:

Instance with attributes defined via Set Run State

由于我们的设计将有几台服务器使用相同的配置,因此我的计划是使用节点上属性定义中的“初始值”列来指定默认配置,以便我创建的所有实例自动得出合理的值,并且当默认值更改时,我只需更改原始节点上的“初始值”,而不必转到所有实例:

Defining Initial Values on the Node

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

enter image description here

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

任何想法都将不胜感激!如果您能描述一种更好的方法来使用EA达到相同的效果,以防万一我做错了,我也很感谢。

1 个答案:

答案 0 :(得分:2)

您可以做的是写一个脚本来辅助它,或者创建一个插件来带来更多的自动化。脚本易于实现,但是您需要手动运行脚本(但是可以为新创建的图对象批量添加值)。如果您挂接到EA_OnPostNewElement,则可以在元素创建时使用外接程序。

您需要做的是首先获取对象的分类器。使用

Repository.GetElementByID(object.ClassifierID)

将返回该值。然后,您可以检查该类的属性,并列出具有初始值的那些属性。最后,通过为object.RunState分配一个粗略的字符串来添加对象的运行状态。例如。对于a != 33,它将是

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

只需加入所需的多个运行状态即可。