Object 对象之间不一致的链接

Object 对象之间不一致的链接,object,module,attributes,ibm-doors,Object,Module,Attributes,Ibm Doors,这是DXL中的代码 输出变为: The objects for OUT links: etc...System_Req...etc -R-E- DXL: <Line:27> null Object parameter was passed into argument position 1 -I- DXL: execution halted 输出链接的对象: 系统需求等 -R-E-DXL:null对象参数已传递到参数位置1 -I-DXL:执行已停止 有什么问题吗?不应该是这样的。这

这是DXL中的代码

输出变为:

The objects for OUT links:
etc...System_Req...etc
-R-E- DXL: <Line:27> null Object parameter was passed into argument position 1
-I- DXL: execution halted
输出链接的对象:
系统需求等
-R-E-DXL:null对象参数已传递到参数位置1
-I-DXL:执行已停止

有什么问题吗?不应该是这样的。

这种行为的原因是为了访问对象,您需要打开包含此对象的模块

当您循环外链接时,您只能访问链接本身的属性,例如目标(对象类型)、模块(模块类型)。 因此,您需要在访问目标对象之前打开目标模块

对于inlinks,它甚至有点复杂,因为模块只存储out链接。In链接不存储在模块中。相反,您可以使用LinkRefs,也可以使用它打开源模块,然后您可以访问链接和源对象

我建议使用链接分析向导创建两个DXL布局列,一个用于传入链接,一个用于传出链接。向导生成的代码向您展示了如何访问这些属性

请记住,以下到基线的链接更为复杂,因为您必须打开(“加载”)正确的基线(请参阅DXL手册中的“版本链接”)


在Rational DXL论坛上也有很多关于链接的帖子,搜索LinkRef、shoout、showIn等术语从我测试的内容来看,似乎使用分析向导确实帮助我输出了正确的值。
The objects for IN links:

The objects for OUT links:
-R-E- DXL: <Line:25> null Object parameter was passed into argument position 1
-I- DXL: execution halted
print "\nThe objects for OUT links:\n";
for lnk_out in obj -> "*" do
{
    nameObject = target(lnk_out);
    objectObject = target(lnk_out);
    //print identifier(objectObject) " ";
    print nameObject "\n";
    print nameObject "_" objectObject."Absolute Number" "\n";
}
The objects for OUT links:
etc...System_Req...etc
-R-E- DXL: <Line:27> null Object parameter was passed into argument position 1
-I- DXL: execution halted