Use Case:

Users tend to start a new run opposed to continuing a run that was previously started. The workflow needs to Continue the run if it previously exists. For people who count steps completed vs steps not run this will help in the reporting process.


Solution:

In ActionCanExecute:

 

 

If ActionName = "act_run" Then
         'Capture the test status
         strRunStatus = TestSetTest_Fields("TC_STATUS").Value
         'If the status of the test is Manual Then check to see if it has any previous runs
         If TestSetTest_Fields("TC_SUBTYPE_ID").Value = "MANUAL" Then
               'If the Test Instance has any value OTHER than No Run, then execute
               If Not(strRunStatus = "No Run" or strRunStatus = "") Then
                   'strInput = msgbox("Do you want to continue a previous run?", 3)
                   'If strInput = 6 Then
                   '  'Set to false, so the run_act action will not finish
                     Template_ActionCanExecute = False
                     'Call action to continue previous run
                     Actions.Action("act_continue_man_run").Execute
               Else
                   Template_ActionCanExecute = DefaultRes
               End If
         End If
ElseIf ActionName = "UserDefinedActions.NewRun" Then
         'Capture the test status
         strRunStatus = TestSetTest_Fields("TC_STATUS").Value
         'If the status of the test is Manual Then check to see if it has any previous runs
         If TestSetTest_Fields("TC_SUBTYPE_ID").Value = "MANUAL" Then
              'If the Test Instance has any value OTHER than No Run, then execute
              If Not(strRunStatus = "No Run" or strRunStatus = "") Then
                   'Display a message box asking if the user is sure they don't want to continue the previous run.
                   strInput = msgbox("The test case you have selected has previous runs.  Do you want to continue a previous run? " & vbcrlf & "hint: 99% of the time you will want to click the 'Yes' button", 3)
                  If strInput = 6 Then
                     'Set to false, so the run_act action will not finish
                      Template_ActionCanExecute = False
                     'Call action to continue previous run
                      Actions.Action("act_continue_man_run").Execute
                  ElseIf strInput = 7 Then 'Start new run
                    Actions.ACtion("act_run_manually").Execute
                    'Template_ActionCanExecute = DefaultRes
                  ElseIf strInput = 2 Then
                  '  'Then they canceled and do nothing.
                       Template_ActionCanExecute = False
              Else
                     Template_ActionCanExecute = DefaultRes
              End If
          End If
      Else
          Template_ActionCanExecute = DefaultRes
      End If
ElseIf ActionName = "act_run_manually" Then
         strRunStatus = TestSetTest_Fields("TC_STATUS").Value
         'If the Test Instance has any value OTHER than No Run, then execute
         If Not(strRunStatus = "No Run" or strRunStatus = "") Then
              'Is there is a test status that means there is already a run.
              'So we cancel the action, and trigger the right action.
              Template_ActionCanExecute = False
              Actions.Action("act_continue_man_run").Execute
         Else
              Template_ActionCanExecute = Template_DefaultRes
         End If
End If