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

How do you create a virtual document for a class within a package in Enterprise Architect?

使用 EA 虚拟文档,将包放入 ModelDocument class 的能力很棒,但在许多情况下,我想记录逻辑上属于的单个程序(由 classes 表示)在一个包裹里,还有 link 其他东西给他们。

我可以为每个带有查询的对象创建一个 ModelDocument 实例,但这并不容易,因为我需要为 select 单个项目生成一个 SQL 查询,因此我会文档中我想要的所有部分都需要一个 ModelDocument 实例,因为我无法组合它们。

似乎没有任何方法可以从项目浏览器中显示元素的 GUID 或元素 ID,所以我需要先查询模型,找到 GUID,然后保存搜索以供参考在 ModelDocument 元素中。都显得很繁琐。

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

有人有更好的方法吗?

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

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

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>'

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

您可以通过

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

  • 右键单击元素并选择 Copy / Paste | Copy node GUID to clipboard

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

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