Triggering a task with the destination state

To apply some conditional logic, you can determine the destination state of the record currently undergoing an action. Here are some examples:

The following action notification hook gets the destination state and sends an e-mail if the current record is being closed.

Note: This action notification hook uses a base action. A base action is an action that occurs with every action. A base action is convenient if you want a hook to fire with more than one action, such as an e-mail notification hook that fires with every action.

VBScript

Sub Defect_Notification(actionname, actiontype)

   Dim cqSes ' a Session object

   Dim entDef ' an EntityDef object

   Dim actionname ' a String

   Dim actiontype ' a Long

   ' action = test_base

   set cqSes = GetSession
   ' NOTE: You can also have conditional logic based on the
   ' current action

    set entDef = cqSes.GetEntityDef(GetEntityDefName)

    if entDef.GetActionDestStateName(actionName) = "Closed" then

       ' put send notification message code here

    end if

End Sub 

Perl

sub Defect_Notification {

    my($actionName, $actiontype) = @_;  

    # $actionName as string scalar

    # $actiontype as long scalar

    # action is test_base

   $actionName = $entity->GetActionName();
    # NOTE: You can also have conditional logic based on the
    # current action

  # You can use the $session variable that Rational ClearQuest provides. 

    $entDef = session->GetEntityDef($entitiy->GetEntityDefName());

    if ($entDef->GetActionDestStateName($actionName) eq "Closed") 
      {# put send notification message code here}

} 

Feedback