dependencies - 包关系存储在哪里?

标签 dependencies relationship package enterprise-architect

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

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

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

最佳答案

所有连接器都存储在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.package 本身的包一样。 Connectors 集合 - 但如果您查看 Connector.ClientIDConnector.SupplierID,您会发现两者都不匹配 Package.PackageID<您要循环其连接器的包的/code> 。

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

connectedPackageElement = Repository.GetElementByID(connector.ClientID)

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

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

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

关于dependencies - 包关系存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675960/

相关文章:

c# - 将 C# 项目引用放在子文件夹中

maven - Maven 中的存储库和依赖项有什么区别?

apache - 我可以使用ivy.xml文件中的属性来避免重复依赖性的版本号吗?

delphi - 向包中添加表单和框架

rust - 如何修复我的 Cargo 文件中不匹配的依赖项以解决 native 库冲突?

vb.net - 在 Access 中创建关系

symfony - 奏鸣曲一对多关系

ios - 如何避免获取关系中的子实体

package - Atom CSS 预览色包

Python嵌套包问题