UML软件工程组织

 

 

ClearQuest技巧集
 
作者:不详 来源:51tesing
 

最近有一些朋友,问了我一些关于ClearQuest的问题。我想其中的一些,大家可能也会遇到。于是综合一些平时我遇到的问题,写了这个问题集锦。问题的回答未必正确,但我想至少会给大家提供一个思路,希望能给其他的人一些帮助。

我使用的是2002.05.00版本,如果是2003版的问题,我会说明。

问题一:给某些字段设置使用权限,只有相关人员才能看到某些字段而进行填写,对于一般人员使它变为不见,我该如何设置呢?

解答提示:一个比较简单的方法可以让别人看不到你设置的字段:设置一个新的组,把想看新字段的人加到这个组中,在Designer中,设置Forms的时候,加一个Tab页,把只想让一部分人看到的字段都加到这个页中,鼠标右击这个字段,在属性页中,有“User Group Access”这个选择,选择你想要看的组加到列表中就可以了。在使用的过程中,只有相关的组成员才能看到这个tab页,也就间接的等于别人看不到这些字段了。

问题二:在Web端访问的时候,只能看到提示“Restricted Query Not Defined”。

解答:一般是因为没有注册的缘故,使用CQ的过程中,必须对Web服务器进行License注册。

问题三:如何让一些Database不显示在客户端和Web端的使用列表中。

解答:在使用CQ的过程中,必须选择Database才可以进入客户端或Web端。而Database的内容,与选择的Schema Repository(s)有关,下面就是如何让部分Database不显示在列表中。

在Designer中,选择菜单中的Database->Update User Database Properties…,选择不需要显示的Logical Database Name,点击“Properties”按钮,进入配置页面。在配置页面中,把“Production Database”选择为“Test Database”,点击“Update”,则此Database将不会显示在列表中。如果将来想要恢复,只要把“Test Database”再选择成“Production Database”即可。

问题四:在project的Forms下,我为项目经理设计了一个下拉列表框,请问:如何将users下面的field:login_name、fullname下面的记录值自动在这个下拉列表框里显示。格式就是:login_name(fullname)。

解答提示:这个我并不清楚你要做什么,是在下拉框中显示所有用户的登陆名和全称,还是显示一个组的,或者是显示当前登陆用户的?

①如果显示当前用户的 ,则比较的简单。直login_name=session.GetUserLoginName,full_name=login_name.fullname,把login_name和full_name拼成一个字符串显示出来就可以了。

②如果是在组中的,你可以查看安装目录ClearQuest\apihelp\index.htm中Session Object,User Object,Group Object,Groups Object几章。我的想法是:在field的Choice List中,使用程序进行列表内容的控制,建立一个session,使用session.GetUserGroups取到用户组,再for each user in 用户组,在里面choices.additem(user),但是我试验了一个上午,不知道什么原因,一直都没有成功过,你不妨再仔细的看看Rational ClearQuest API Reference里面的东西吧。如果能解决,最好告诉我解决的办法,我也学习学习。

问题五:对于特定的字段,强制要求用户每次Action的时候,都必须填写。

解答提示:在字段的Permission中,用下面的代码控制:

SetFieldValue Field1,"" '把字段的值设置为空

Field_Permission=AD_MANDATORY '让字段必填

在Behaviors中把需要必填的字段状态设置成Hook就可以了。

问题六:在Clearquest Designer里设置Field时那些Type都代表什么意思?比如,Type里的REFERENCE,REFERENCE_LIST都是什么类型,设置成这个类型后,会出现什么结果?您能给我详细说一下吗?

解答提示:在ClearQuest Designer Help中的Selecting a field data type中有相应的说明。

ClearQuest supports the following field data types:

Data Description/Comments

ATTACHMENT_LIST Allows records to store files related to the record.

DATE_TIME SQL date and time.

INT SQL integer.

MULTILINE_STRING A variable-length string of unlimited size.

REFERENCE A reference to a unique key in a record type.For REFERENCE type fields, you must select a state-based or stateless record type to refer to. You can also enter an optional back-reference field to create a link from the referenced record back to this field's record and can specify that the referenced record type is under security control.

REFERENCE_LIST Multiple references to unique keys in record types. Reference-list fields allow you to reference multiple records within a field. You can use reference-list fields with a parent/child control to link related records.For REFERENCE_LIST type fields, you must select a state-based or stateless record type to refer to. You can also enter an optional back-reference field to create a link from the referenced record back to this field's record.Note: You cannot use the REFERENCE_LIST type when creating a report. Multiple record references within a field will return a report error.

SHORT_STRING A variable-length character string with a 254-character maximum. You set the length in the Properties dialog box when defining the field. Enter a value between 1 and 254 in the Maximum Length field.

DBID Reserved for system fields

ID Reserved for system fields

JOURNAL Reserved for system fields

STATE Reserved for system fields

Note: You cannot modify the data type or the DB Column Name of a field after you check in the schema. To change the data type, delete the existing field and create a new field with the data type you want.

我感觉,REFERENCE和REFERENCE_LIST都是一种对象类型,也就是说,他并不指代某种具体的概念,比如int或string等,而是一种集合,使用的时候,可以取集合的某个属性内容。比如在例子中有Owner字段就对应Users集合。

选择REFERENCE就会出现reference to,其中对应的就是左侧树中Record Types和Record Types -Stateless下面的各种类型,比如最常用的Defect就是一个集合,你建立的字段可以指向这个集合。 这些是我自己的一些看法,不一定正确,因为我没有用过,

问题七:在设置Action时,可不可以源状态和目的状态是同一个的状态?即:虽然作了那个动作,但是不改变他的状态!

解答:从CQ的操作来看,是不支持源状态和目标状态一致的,因为没有这个必要(修改除外,修改的时候,状态不改变)。在建立Action时,Action的属性中,可以设定源状态和目标状态,在源状态选定的时候,就无法选择相同的目标状态了。Rational的CQ主要是变更管理,一个通过Action流转State的过程,自建Action的Type为Modify并无多大的意义。

问题八:怎样实现输入project和subsystem后就让他自动定位到某个人,也就是通过输入那个人所属的那个项目和模块,就能够自动定位到某人!

解答提示:可以使用代码控制,但是只对客户端有效,对于Web端仍然必须手工选择人员。

使用case,把字段内容添入里面就可以了。如果是两个字段控制一个,可以使用If。比如:

   if  project="工程1" then

       a=GetFieldValue(subsystem).GetValue  ‘取subsystem的内容

        Select case a '判断subsystem的取值
      
        case "subsystem1"

        SetFieldValue people,"tester1"   '填写subsystem1对应的人员内容

        case "subsystem2"

        SetFieldValue people,"tester2"   '填写subsystem2对应的人员内容
    
        …………

        case "subsystemn"

        SetFieldValue people,"testern"   '填写subsystemn对应的人员内容

        End Select

    End if

    if  project="工程2" then

      Select case b

      …………

     End Select

   End if

   …………

问题九:如何使用邮件规则(E-mail rule)?

解答提示:邮件规则的设置,不是在Designer中,而是在客户端。在客户端中,选择菜单中View->E-mail Options设置邮件服务器;Actions->New->Email_Rule设置在什么条件下把缺陷发给什么人。具体的设置,自己查看帮助。

Designer中的Email rule,是设置客户端中的显示界面内容的,可以根据需要修改。但是一般我觉得不用管这里,因为通常情况下都是测试人员建立邮件规则,开发人员通常看不到邮件规则的界面。而且建立好后,一般就不做改动了,所以是否好看、是否有冗余字段等都可以不在考虑的范围之内。

问题十:在clearquest designer中改了提交界面和处理界面后,在clearquest client中提交bug时,界面怎么没有变化

解答:Designer设计后,没有变化,那是因为你没有Update数据库。在Designer中设计完成后,点击菜单中的File->Check In保存修改,再选择菜单中的Database->Upgrade Database,在里面选择你修改完毕的数据库,一般会有新的版本,upgrade新版本就可以了。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号