在将更改落实到数据库之前,或收到来自 ClearQuest Web 或 RCP 客户机的验证请求时,Rational ClearQuest 软件将按以下顺序运行挂钩来验证记录:
可以修改对操作(包括可通过应用程序包添加到模式的操作)的访问控制。 然而,对基本操作的任何访问控制限制也适用于所有其他操作。 对于嵌套操作,不会运行访问控制挂钩。
如果“字段值已更改”挂钩调用 Entity 对象的 SetFieldValue 方法,那么该字段的 VALUE_CHANGED 挂钩会在 SetFieldValue 调用时运行。
当正在执行嵌套操作时,某些挂钩不会运行,包括访问控制挂钩和所有通知挂钩的执行。 有关更多信息,请参阅 IBM Rational ClearQuest API Reference 中的操作和访问控制和嵌套操作中的挂钩。
如果设置了限于列表选项而用户输入了不允许的值,那么该字段就会标记为无效。仅当用户输入有效值时,才运行下一个挂钩。
如果“字段值已更改”挂钩调用 SetFieldValue 方法来更改另一个字段的值,那么另一个字段的“字段值已更改”挂钩会立即运行。
如果将有依赖关系的字段与重新计算选项列表选项一起使用, 那么会先运行“字段验证”挂钩,然后会运行每个字段的“字段选项列表”挂钩,直到设置并验证了所有已更改的字段为止。
字段挂钩仅在用户启动“提交”操作时运行,除非字段被标记为包含有依赖关系的字段。 请参阅使用挂钩来检测 Web 会话。
“落实”挂钩在用对当前记录的更改更新数据库之后但在更新事务落实到数据库之前运行。 不能使用“落实”挂钩来修改当前记录(例如,不能通过“落实”挂钩来更改字段)。
尽管数据库中存在锁定而且这些锁定可能会阻止其他用户运行查询、创建新记录或修改现有记录, 但“落实”挂钩中的任务还是会完成。出于性能考虑,应该尽量减少“落实”挂钩中执行的任务。
“落实”挂钩仅用于针对其他记录执行的以下操作:您希望这些操作成为主操作所在的数据库事务的一部分(例如,在解决父缺陷后解决重复的缺陷)。 必须确保在正确的上下文中发出适当的调用。例如,请勿从“落实”挂钩调用还原,也不要从除“落实”挂钩外的任何操作调用落实。
有关更多信息,请参阅 IBM Rational ClearQuest API Reference 中的编辑现有记录。