Action 对象

可以使用 Action 对象验证按钮或命令是否启用、选中或可见。还可以用它执行操作。

例如,要将“缺陷详细信息”对话框设置成用户在“缺陷网格”中从一个缺陷移动到另一个时自动打开,请在 Bug_MoveTo 事件过程中放置以下代码:

Set NewDefectAction=Actions.Action("Defects.DefectDetails")
NewDefectAction.Execute

要获取操作的名称,将以下行添加到 ActionCanExecute 事件过程,执行操作,并记下消息中打印的操作名称:

Sub ActionCanExecute(ActionName)
        On Error Resume Next
        MsgBox "You have performed an action named: " & ActionName
        On Error GoTo 0
End Sub

此对象有以下属性:

属性

读/写

类型

描述

Checked

读/写

布尔值

表示操作是否签入 ALM

Enabled

读/写

布尔值

表示是否启用操作。已禁用的操作无法由用户调用,但可以从工作流脚本调用。

Visible

读/写

布尔值

表示在 ALM 中操作是否可见。

Action 对象包括以下方法:

方法

描述

Execute

执行操作。

工作流脚本使用 Action 对象的 Execute 方法调用操作时,用户从对话框启动操作会触发的工作流事件在默认情况下不触发。因此,使用 Action.Execute 时,必须确保没有绕过用工作流事件强制实施的站点策略。

要允许工作流事件从对话框内触发,请将 AllowReentrancy 标志的值设置为 true。要恢复默认设置以便不触发这些事件,将 AllowReentrancy 标志的值设置为 false。例如,要将“添加缺陷”对话框设置为用户进入“缺陷”模块时自动打开,在 EnterModule 事件过程中放置以下代码:

AllowReentrancy=true
Set NewDefectAction=Actions.Action("Defects.DefectDetails")
NewDefectAction.Execute
AllowReentrancy=false

如果 AllowReentrancy 标志的值设置为 false,对话框照常打开,但工作流自定义在对话框中不运行,因为不触发对话框的工作流事件。

警告: 仔细考虑将此标志的设置为 true 的后果。如果将该标志的值设置为 true,将允许函数调用另一个函数,后者又可以调用原函数。这可能导致无限循环。函数调用内部函数,后者又调用原函数时,也可能发生这种情况。