企业架构师API中的“ea_本地化”值是如何分布的?

2024-10-02 16:24:28 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用EnterpriseArchitectAPI时,我注意到当您将EA项目导出到XMI时,几种不同类型的元素都会得到一个名为ea_localid的属性。这意味着您将在XMI中找到一个以ea_localid作为属性的标记。该属性似乎用于引用连接元素的源和目标(至少对于“转换”是有效的,因为我们正在使用状态机图)

到目前为止,一切顺利。现在,我的预期用途的问题是,每次导入和导出时,这些值似乎都是新分发的。编辑:我不太清楚在这个过程中具体是什么时候。EDIT#2这似乎是在导入时发生的

这意味着在导出项目后,重新导入它,不做任何更改,然后再次导出它,将为生成的XMI文档提供一组不同的ea_localid值。此外,似乎以前属于一个元素的一些值现在可以用于完全不同的元素

有人知道分配机制吗?或者,更好的办法是模仿它?还是重置所有计数器的方法

就我所见,通常似乎有不同的元素类,在这些类中,下一个元素的新ea_localid是通过计数+1生成的。第一个值为1,下一个值为2,依此类推

我的目标是进行“往返”(XMI-->;project-->;XMI…),并始终获得相同的ea_localid值,可能是在导出后编辑XMI文档。如有任何帮助或建议,将不胜感激。干杯


Tags: 项目文档标记gt元素编辑类型目标
2条回答

ea_localid表示元素的elementID(或者AttributeID表示属性等)

在EA中,每个“东西”都有两个ID。数字标识和GUID

在大多数关系中,数字ID(例如t_object.object_ID)用作键,但这并不稳定

导入XMI文件之类的操作可以重置数字ID。这解释了ea_localID发生变化的原因

如果要查找稳定的ID,则应使用GUID。即使在导出和导入到其他模型后,此模型也保证保持不变。(只要在导入时不设置标志Strip GUIDs

在xmi文件中,您将在attribtexmi.id中找到那些稳定的id e、 g

<UML:Class name="Aannemer" xmi.id="EAID_04A526DF_7F07_4475_8E65_16D2D88CEECD" visibility="public" namespace="EAPK_0345C8A9_9E8F_42c5_9931_CB842233B11B" isRoot="false" isLeaf="false" isAbstract="false" isActive="false">

此值对应于每个表中的ea_guid

因此,经过一些测试后,我发现对于前面提到的往返目标(xmi>;import to EA>;xmi)和始终获得完全相同的文档,最简单的解决方案是

在xmi上运行筛选器,该筛选器只删除包含ea_localidea_sourceID(原文如此!)和ea_targetID值的所有节点

在重新导入时,EA将只为它们分配新值。有关“转换”的源和目标以及其他连接元素的信息也与GUID一起存储,因此不会丢失信息

相关问题 更多 >