DXL:将对象从一个封闭模块复制到第二个封闭模块

DXL: Copy Objects from one closed module to a second closed module

我正在尝试创建一个 DXL 脚本,它将从 select 组模块中获取所有对象,并将它们组合成一个新模块,然后导出到 Excel。

我遇到的问题是我不知道如何从未打开的模块中获取对象。我对任何方法都持开放态度,但我一直在尝试使用 ModuleHandles。我见过的大多数例子都是在当前模块中移动对象。

您需要两个 Module 类型的变量,一个用于源模块(例如 mSrc),一个用于目标模块 (mTgt)。使用命令 read 打开源模块并将生成的句柄设置为 mSrc。使用 edit(或 create)打开目标模块并将生成的句柄设置为 mTgt。

然后使用 Object 类型的变量遍历 mSrc 的所有对象(for oSrc in mSrc 或可能 ... in entire mSrc,具体取决于源模块中的视图是如何设置的),在中创建对象目标模块(到对象类型的变量 oTgt)将您需要的对象属性从 oSrc 复制到 oTgt。对于后者,copyops.inc.

中有一个函数 copyAttribute_

如果您想复制源模块的层次结构,您将需要 for Object in Object 类型的循环和 create after create below 等命令。 也许 IBM 的 DXL 论坛或某些网站上已经提供了脚本,可以为您的问题提供解决方案。