在企业架构师中移动项目之间的图表

5
我有一个项目,其中包含几个图表(带元素)。我想关闭这个特定的项目并将图表移动到其他更合适的项目中。
移动图表很简单。问题是现在我必须手动查找所有与此特定图表相关的元素,并逐个将它们移动到另一个项目中。由于原始项目中所有图表都有相当多的元素,所以这非常繁琐。
我想知道在EA中是否有更容易处理重构的方法?
4个回答

5

在开箱即用的EA中,没有更简单的方法。但是有志者事竟成。

首先,复制您的项目。我描述的解决方案将破坏其结构。

其次,创建一个空包并将图表放入其中。

第三,在“浏览器脚本”组(工具-脚本)中创建一个VBScript。将其命名为“收集图表元素”。在编辑器中,用以下内容替换已注释的otDiagram case:

case otDiagram
    ' Code for when a diagram is selected
    dim theDiagram as EA.Diagram
    set theDiagram = Repository.GetTreeSelectedObject()
    dim dObj as EA.DiagramObject
    dim element as EA.Element
    for each dObj in theDiagram.DiagramObjects
        set element = Repository.GetElementByID(dObj.ElementID)
        element.PackageID = theDiagram.PackageID
        element.Update()
    next

该脚本将遍历图表中显示的所有元素,并将它们移动到所在包中。您可以通过在包浏览器中右键单击图表并选择“脚本 - 收集图表元素”来运行该脚本。脚本运行结束后,您可能需要重新加载包(在包浏览器中右键单击包,选择“内容 - 重新加载当前包”)。最后,将包导出为XMI文件(在包浏览器中右键单击,选择“导入/导出 - 导出包到XMI文件”),然后将其导入到目标项目中。

结论是,将图表及其元素放置在单独的包中是一个好的实践。这将使得它们易于导出和导入。 - rideronthestorm

0

您也可以尝试将您的图表放入一个包中,然后将其导出为XML文件,并从目标项目中导入。


-1

这可能会有所帮助:

EA版本15

项目1 - 你想要复制图表的位置

  1. 在你的图表上按Ctrl+A(全选)。
  2. 发布 -> 保存 -> 保存到剪贴板。

项目2 - 图表将被粘贴到哪里

  1. 创建一个空白图表。
  2. 右键单击(空白图表上) -> 粘贴 -> 来自剪贴板的图像

EA版本10

项目1 - 你想要复制图表的位置

  1. 在你的图表上按Ctrl+A(全选)。
  2. 编辑 -> 项目剪贴板 -> 添加到项目剪贴板。

项目2 - 图表将被粘贴到哪里

  1. 创建一个空白图表。
  2. 编辑 -> 从剪贴板粘贴图像。

这将作为整个图像(单一组件)复制该图,并且我认为一旦粘贴到新项目中,您将无法更改图表的实际组件。


1
今天还有人在使用EA版本10吗?那个版本发布已经将近十年了。 - Geert Bellekens
是的,一些组织仍在使用它。这就是为什么我特别将其作为第一件事提到的原因。此外,相同的功能也存在于EA 15版本中。无论如何,我将把它添加到我的解决方案中。 - Vaishakh
这只是复制了图表的图像,而没有实际的图表或其中的元素。这就像将文档的截图粘贴到Word中一样。 - Geert Bellekens

-2
  1. 在您想要在其他项目中复制的图表上单击右键
  2. 复制 / 粘贴
  3. 复制到剪贴板
  4. 复制完整结构以进行复制

当您导航到其他项目中的正确文件夹或模型时,可以将其粘贴。


1
在图表的上下文菜单中没有“复制到剪贴板”或“完整结构复制”选项。 - Geert Bellekens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接