如何在Enterprise Architect中为包中的类创建虚拟文档?

时间:2016-11-23 09:25:08

标签: enterprise-architect

使用EA虚拟文档,将包放入ModelDocument类的能力很强,但在许多情况下,我想记录逻辑上属于包的各个程序(由类表示),并将其他东西链接到它们。

我可以为每个查询创建一个ModelDocument实例,但这不是很容易,因为我需要生成一个SQL查询来选择单个项目,因此我需要一个ModelDocument实例来处理我想要的所有部分在文档中,因为我无法将它们组合在一起。

似乎没有任何方法可以从项目浏览器中显示元素的GUID或元素ID,因此我首先需要查询模型,找到GUID,然后保存搜索以引用一个ModelDocument元素。所有这些看起来都很麻烦。

鉴于EA不允许在元素下创建包(这是明智的)但只允许将包链接到ModelDocument,这似乎是对虚拟文档功能的严重限制。

有没有人有更好的方法呢?

(如果没有,我可以提交功能请求。)

1 个答案:

答案 0 :(得分:1)

我写了一个名为 ZDG_ElementsByGUID 的非常简单的搜索,其中 Z 就在那里,因为它会显示在我的搜索底部,而 DG 代表DocumentGeneration
这是搜索的SQL代码:

s

我使用元素的GUID作为参数,在我的模型文档的(标记值)中搜索。

您可以通过

获取元素的GUID
  • 打开属性视图并从“项目”部分复制

  • 右键单击元素,然后选择select c.ea_guid AS CLASSGUID,c.object_type AS CLASSTYPE,c.name AS Name, c.stereotype AS Stereotype ,package.name AS PackageName ,package_p1.name AS PackageLevel1,package_p2.name AS PackageLevel2,package_p3.name AS PackageLevel3 from ((((t_object c inner join t_package package on c.package_id = package.package_id) left join t_package package_p1 on package_p1.package_id = package.parent_id) left join t_package package_p2 on package_p2.package_id = package_p1.parent_id) left join t_package package_p3 on package_p3.package_id = package_p2.parent_id) where c.ea_guid like '<Search Term>'

  • 使用EA Navigator加载项中的复制GUID按钮

您可以在我的网站上找到一个完整的示例:Tutorial: Generate complex documents from Enterprise Architect with a two-step semi-automated approach