在DXL中返回过滤模块

时间:2016-05-04 14:29:54

标签: ibm-doors

我需要在某个模块中创建一个过滤器并获取过滤后的项目并循环它们并进行某种操作。 问题是过滤没有完成,有些问题如下:

Filter SwTest = includes(attribute "aVerificationStrategy" ,"SwTest") 
Filter Implemented = (attribute "aObjectStatus" < "inReview")
Filter SwTestReqsCASTLE = SwTest && Implemented
Module m = srs_doc
set(m, SwTestReqsCASTLE, accepted , rejected)
filtering on  OR ApplyFiltering(m) , i tried each as don't know difference !

那有什么不对?

1 个答案:

答案 0 :(得分:0)

在我回答您的主要问题之前,首先请允许我回答您关于&#34;过滤&#34;之间差异的隐含问题。和&#34; ApplyFiltering(m)&#34;。区别在于&#34;过滤&#34;在模块窗口中显示当前过滤器,这意味着根据过滤器显示或隐藏对象。 &#34; ApplyFiltering(M)&#34;将当前过滤器设置应用于模块资源管理器(对象左侧显示层次结构的区域)。 &#34;过滤&#34;显示和隐藏对象和&#34; ApplyFiltering(m)&#34;反映模块资源管理器中这些对象的状态。

至于为什么没有应用过滤器,可能有以下几个原因:

  1. 最好在开始设置过滤器之前关闭过滤功能。添加线&#34;过滤&#34;在你的其余代码之前。
  2. 你的&#34;已实施&#34;过滤器未正确定义。 DOORS将看到&#34; inReview&#34;作为一个字符串,它将与你的&#34; aObjectStatus&#34;的字符串值进行直接比较。属性以确定对象是被接受还是被拒绝。这是你的意图吗?
  3. 什么类型的变量是srs_doc?如果它是一个字符串,那么你需要 调用read(),share()或edit()以实际打开 模块。如果它是模块变量,那么该行是正确的。
  4. 我假设&#34;接受&#34;并且&#34;拒绝&#34;是整数,但如果它们之前没有被声明,则需要它们。
  5. 根据我评论中的第一段,您的最后一行应为&#34;过滤&#34;
  6. 是否显示要过滤的模块?我意识到这可能是显而易见的,但我之前犯过这个错误,所以我想我应该提一下。过滤器无法应用于当前未显示的模块。
  7. 作为旁注,您可以复合SwTest和Implemented过滤器,而无需创建额外的Filter变量,如下所示:

    Filter SwTestReqsCASTLE = includes(attribute "aVerificationStrategy", "SwTest") && (attribute "aObjectStatus" < "inReview")
    

    我希望其中一些有帮助!祝你好运,如果以上都不能解决你的问题,请告诉我。