最近有一些朋友,问了我一些关于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新版本就可以了。