【问题标题】:How do you create a virtual document for a class within a package in Enterprise Architect?如何在 Enterprise Architect 中为包中的类创建虚拟文档?
【发布时间】:2016-11-25 20:35:24
【问题描述】:

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

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

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

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

有没有人有更好的方法来做到这一点?

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

【问题讨论】:

    标签: enterprise-architect


    【解决方案1】:

    我编写了一个名为 ZDG_ElementsByGUID 的非常简单的搜索,其中 Z 在那里,因为它会显示在我的搜索底部,并且 DG 代表文档生成
    这是搜索的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多