将元素从一个包装移动到另一个包装

时间:2016-09-20 11:50:31

标签: enterprise-architect

我们有Package-A,其中我们有10个class元素。我们有另一个Package-B。现在我们想要通过Addin将Package-A中的元素移动到Package-B。这可以通过EA实现插件

即使将子包从包A移动到包-B也是一样的

2 个答案:

答案 0 :(得分:1)

使用PackageB ID为所有类元素设置PackageID属性。

示例代码

foreach(EA.Element classElement in PackageA.elements)
{
    classElement.PackageID = packageb.PackageID : 
    classElement.Update();
}  

答案 1 :(得分:0)

这是一种通过SQL在没有任何脚本的情况下立即执行此操作的方法。 在EA的SQL Scratchpad中执行此操作。

enter image description here

复制目标包的GUID在剪贴板中,例如{61068DDF-335B-4b29-89F8-C54A7000EF6F})

Copy GUID

它的包ID如下:

select Package_ID from t_package where ea_guid='{61068DDF-335B-4b29-89F8-C54A7000EF6F}'

复制剪贴板中源包的GUID,例如{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}。

它的包ID如下:

select Package_ID from t_package where ea_guid='{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}'

因此,源包中的元素是:

select * from t_object where Package_ID=(select Package_ID from t_package where ea_guid='{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}')

所以,让我们去那个目标。

update t_object 
set Package_ID=(select Package_ID from t_package where ea_guid='{61068DDF-335B-4b29-89F8-C54A7000EF6F}'
where Package_ID=(
select Package_ID from t_package where ea_guid='{F3B52DA0-D9E9-4606-BCA0-5D211B73FBE6}'
)

应该做的伎俩。

首先备份您的模型。

对于加载项,只需要获取两个GUID和Repository.Execute(theSQLString)。

Repository.Execute不在doc中,但有效。

相关问题