ClearQuest 二次开发总结

来源:互联网 发布:上海铭悦软件 编辑:程序博客网 时间:2024/04/26 05:14

[IBM Rational ClearQuest]
[CQ]

经过了这么长时间CQ的二次开发,也来点总结吧  :)

1、字段命名、考量
   [便于form设计中拖动,便于hook中代码书写,避免不必要的问题,比如hook中定义的变量名不能和数据库表字段名相同]
   比如CQ字段命名全部用f_信息分类_字段名,通过这种方式在设计form时可快速找到要拖到form上的字段;hook变量全部以h_开头这样也可避免不必要的问题。

2、尽量在form初始化之前已经设置好各个字段的访问控制,尽量避免出现诸如A form打开后,A1 字段选择值1则A2为必填字段,A1字段选择值为2则A2为只读字段。这种情况下之后通过在validation中去控制,这样用户界面很不友好。
    我们期待CQ在新版本中能够提供控制的途径

3、比如在测试数据库中建立很多的文件夹、公共查询,可通过bk_tool导出备份,日后再导入产品库
    注意目前CQ中通过bk_tool导出的公共文件夹会丢失掉文件夹许可权信息。

4、hook中经常只能将state、action硬编码,所以定义之前一定要慎重再慎重,便于以后流程中再加入state、action,保证在命名上不会出现词不达意,降低debug的复杂度
    我们期望能看到CQ在新的版本中能够给state、action赋予多层次的含义,比如对于最终使用客户来说的显示层、对于开发者来说的控制层可以有不同的表达方式,但是在CQ的数据层中都会特指某个state、action

5、在CQ客户端出现任何错误都会弹出错误提示框,但是在CQWEB中出现错误基本只能靠猜,所以关键流程跳转、使用其它外部模块/组件处加入log记录,便于问题定位,提高解决bug的效率,记录log代码可参看HOOK代码示例

6、    User信息扩展问题
    由于user记录类型处于保护状态,如果项目中有特殊需要需要加入用户的一些附加信息,可新加入一个无状态的记录类型R,refer到user,然后再加一个反refer,可达到通过user的记录查找其在R中对应的信息,如果预期扩展不多,也可以考虑将附加信息全部放入miscInfo,通过特定字符分隔,需要装入时再自行解析

7、    使用7.0.1的LEVEL6特性控制公共查询的访问许可权
        对schem必须升级到LEVEL6

8、创建组的策略。
    由于多次升级产品数据库而且还必须在所有用户下线在进行升级,深受其苦。强烈建议如果有n个操作,就定义n个基本组,每个操作都有对应的操作组,日后某个角色用户需要或者不需要该操作权限,只需要简单的从用户管理中将其角色组移入或者移出该操作组升级即可,尽量避免去升级产品库。
    如果再次基于CQ平台二次开发的话,我将会定义三种不同用途的角色:
    用途1:按操作划分组A
    用途2:按角色划分组B
    用途3:按部门划分组C
   
    A类分组内之内移入B类分组,通过用户管理即可设置功能操作权限;C类分组主要用来实现 Security Context。

9、以下字段无效值问题
    在开发已经进行了较长时间,某日进行了多处修改,在测试工作中提交记录时突然提示以上信息,这个真让人吐血,尤其字段叫多时,比较难找问题所在,这时建议用最笨的办法,再加一个tab页,将所有字段都拖入到该tab页面一次,然后再次进行提交操作,那个字段为红说明那个字段的值有问题。

10、Websphere插件频繁停掉
    曾经有一段时间遇到这个问题,经过多次查找,发现我们打开了服务器的远程连接功能,在远程连接退出的时候没有正常退出,经常导致连接已经占满不能正常登上去,所以设置了会话的自动断开时间,将这个设置关闭之后马上正常。

11、使用bkt_tool导入导出查询文件夹
bkt_tool -e -dbset cqs -us "admin" -password "admin" -db "cqte" -director "F:/tool/20071206/exp"
bkt_tool -i -dbset cqs -us "admin" -password "admin" -db "cqhb" -director "F:/tool/20071206/exp"
截止到7.0.1版本为止bkt_tool工具导出的文件夹均会丢失LEVEL6的文件夹许可权信息,7.0.1.1还没有试过是否解决这个问题。

 

原帖:http://blog.chinaunix.net/u1/54706/showart_491111.html

原创粉丝点击