Rational ClearQuest技巧集作者: pyp & http
前提:
Rational ClearQuest的版本为2002.05.00
问题一:给某些字段设置使用权限,只有相关人员才能看到某些字段而进行填写,对于一般人员使它变为不见,我该如何设置呢?
解答提示:一个比较简单的方法可以让别人看不到你设置的字段:设置一个新的组,把想看新字段的人加到这个组中,在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新版本就可以了。
问题十一: 如何将CQ 从一台SQL 服务器迁移到另一台 SQL服务器?
解答提示: 使用 ClearQuest Maintenance Tool 中
的[Move an existing schema repository]选项。注意在这之前,应在目标服务器上先建立好一个空的CQ数据库及Owner. 完成迁移后,在新的服务器上运行 ClearQuest Mantenance Tool , 选择建立一个新的连接 [New Connection]. 输入新的CQ服务器的主数据仓库的名称、服务器名和管理员名称及密码。
问题十二:将CQ从一台SQL 服务器迁移到另一台 SQL服务器后,如何迁移用户数据库?
解答提示: 当CQ主数据仓库迁移完成后,先在新的SQL服务器上建立各用户的空
数据库.然后进入CQ Designer ,选
择 [Databases ]->[Move user database], 分别迁移每个用户数据库。
问题十三:当在CQ Designer 中更新一个Schema 后,如何更新用户数据库?
解答提示: 当在CQ Designer中更新一个Schema 后 ,选
择 [Databases ]-> [Update user database properties], 可分别更新每个用户数据库。
问题十四:如何正确使用 Check Box (hook)?
解答提示:使用Check Box 有几个注意事项:
1.使用它时不能只建立一个字段而保存多个复选项,而应为每个复选项分别建立各自的字段。
2.建立 Check Box 后,在 Extended Tab 上的check 文本域中输入要选择的内容,而让uncheck 文本域为空。