【问题标题】:Enterprise Architect: Setting run state from initial attribute values when creating instanceEnterprise Architect:在创建实例时从初始属性值设置运行状态
【发布时间】:2018-11-14 17:55:31
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我猜就是这样。脚本可能是一种解决方案。我去看看。

标签: enterprise-architect


【解决方案1】:

您可以做的是编写一个脚本来辅助它,或者甚至创建一个加载项来实现更多自动化。脚本更容易实现,但您需要手动运行脚本(但是可以为新创建的图表对象批量添加值)。如果您连接到 EA_OnPostNewElement,则使用加载项可以在创建元素时执行此操作。

你需要做的是首先得到对象的分类器。使用

Repository.GetElementByID(object.ClassifierID)

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

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

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

【讨论】:

  • 谢谢!如果我没有找到任何其他解决方案,我会尝试。但是,这不应该自动工作吗?否则,“初始值”的目的是什么?
  • 运行状态,顾名思义,就是运行状态。因此,它可以在运行时取任何值。您可以在任何给定时间在上下文中显示对象。不仅在它们被实例化时。
  • 嗯,好的 - 这可能表明我没有按预期方式使用 EA。您是否有其他想法如何实现我想要的,即定义我可以在不同图表中重用和调整的默认计算机配置?
  • 嗯,以上内容还不错。如果你有一个对象,它代表的是具体的东西。现在,您对“重用”的理解是什么?我建议您提出一个不同的问题,因为此评论并非旨在解决其他问题。
  • 如何最好地对此建模仍然是我最初的问题,但我承认我对问题进行了措辞,因此它非常关注使用属性的解决方案。我会提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多