UML软件工程组织

 

 


ClearQuest Field Hook 和 Action Hook的 执行顺序
 
作者:旺旺仙贝 来源:spaces.live.com
 

使用HOOK定制Schema是ClearQuest的最强大之处,了解Field and Action Hooks的执行顺序,才能正确的使用Field Hook和Action Hook。以下根据ClearQuest的Administrator's Guide中相关章节总结。

ClearQuest 按预定的时间和顺序运行action hooks。当打开一个record时,将有四个hook执行时机。

  • 当触发Action时
  • 当设定Field值时
  • 当校验Record时
  • 当提交Record时

当触发Action时

当用户触发一个Action时,ClearQuest按如下顺序运行以下hooks:

1. Action Access Control hook

在这里可检查用户的访问权限。当用户无权触发action时,中止action的处理。这种情况下,剩下的hooks将不再被处理。

2. Field Permission hook

这里决定各filed的行为,是必填,可选还是只读。

3. Action Initialization hook

这里可执行一些初始化任务,比如在ClearQuest正式执行action之前设定各field取值。

4. Field Default Value hook

为各自field设定初值(只对Submit action有效)

5. Field Validation hook

可在这里校验各field的内容。

6. Field Choice List hook

当某个field的Choice List中hook设定为Recalculate Choice List选项时将运行该hook。

当设定Field值时

当用户编辑一个record时,ClearQuest按如下顺序运行hooks:

1. Field Value Changed hook

当field取值改变时运行该hook

2. Field Validation hook

3. Field Choice List hook

当校验Record时

在提交变更到数据库之前,ClearQuest通过如下hooks来校验record。Hooks运行顺序如下:

1. Field Validation hook

2. Action Validation hook

当某Action 执行之后运行该hook

当提交Record时

提交阶段的hook的执行时机是在数据库根据当前record的变化更新之后,而非更新之前。所以我们不能使用提交阶段的hook来修改当前的record;这样的修改是无效的。

一般提交阶段hook用来处理当某action与另一个record属于同一数据库事务的情况。比如,当父级defect被处理后,把与之关联的duplicate defect也处理完。

当ClearQuest校验完一个record,它把record提交至数据库,并按如下顺序执行hooks:

1. Action Commit hook

2. Action Notification hook 执行。例如,ClearQuest可能根据你设定的email规则发送email消息到某用户。

 

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

京公海网安备110108001071号