【问题标题】:Where are package relations stored?包关系存储在哪里?
【发布时间】:2016-08-09 03:03:24
【问题描述】:

我想测量我的 EA 包在模型中其他包中的依赖量。

因此,我循环t_connector 以识别记录,其中我的包中的元素是源,目标是其他包中的元素。

元素之间的关系一切正常,但包之间的关系不同:
我的包中的子包有时依赖于模型中的外部包。 很遗憾,t_connector 不存储这些数据!
那么,包关系存储在哪里呢?

【问题讨论】:

  • 外部包是什么意思?
  • @Uffe,外部包是模型中的其他包,不属于所选包的层次结构。

标签: dependencies relationship packages enterprise-architect


【解决方案1】:

它们存储在层次结构中。 t_package.parent_id 将子包链接到它们的父包。仅当您显式创建连接器时才会创建连接器。如果是这样,连接器源/目标链接包元素的 id。

【讨论】:

    【解决方案2】:

    所有连接器都存储在t_connector 表中。但是,t_connector.Start_Object_IDt_connector.End_Object_ID 中的引用指的是t_object.Object_ID——而不是t_package.Package_ID

    在 EA 数据模型中,UML 包具有双重表示:t_package 中的一行和 t_object 中的一行,t_object.Object_Type = 'Package't_object.PDATA1 = t_package.Package_ID。 (请注意,t_object.PDATA 列是字符串。)

    所以严格来说,在 EA 中只有元素有连接器。但是 API 中的 Package 类隐藏了这一点,并允许您使用 Package.Connectors 集合遍历包 element 的连接器,就好像它们属于包本身一样——但如果你看在Connector.ClientIDConnector.SupplierID,你会看到没有一个匹配你正在循环的连接器包的Package.PackageID

    如果一个连接器从当前包运行到某个其他包,为了检索连接器的另一端,您需要做的是查询存储库中的 元素——而不是package -- 带有连接器的客户端 ID,如

    connectedPackageElement = Repository.GetElementByID(connector.ClientID)
    

    好消息是包本身和它的包元素都具有相同的名称。但是,如果您需要从包中提取更多信息,则需要发出另一个调用,例如

    connectedPackage = Repository.GetPackageByID(connectedPackageElement.MiscData(0)
    

    由于您说您正在“循环”连接器,因此我假设您正在使用 API 而不是发出 SQL 查询。但是结构是一样的; t_object 对应于Element 类,t_package 对应于Package 类,t_connector 对应于Connector 类。

    【讨论】:

    • 谢谢!澄清一下:有 2 个选项可以检索包关系信息:通过 t_connector(内部加入 t_package)。或:通过 package.connectors(内部连接到 t_object)。对吗?
    • 不,你不能直接加入t_package。你必须去 t_connector.Start/End_Object_ID => t_object.Object_ID => t_object.PDATA1 => t_package.Package_ID。如果 t_object.Object_Type = 'Package',你只能做最后两个。
    • 我有点困惑:我手头有一个包裹。首先,我从 t_object (使用 PDATA)中获取其对应的元素。然后我搜索引用此元素的 t_connectors。有意义吗?
    • 是的。并且这些连接器的另一端也引用了 t_object 行,这些行可能有也可能没有 Object_Type = 'Package',在这种情况下,您会按照说明找到包。
    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多