preload

Workflow Scripts (HP ALM/QC)

Posted by Albert Gareev on May 12, 2015 | Categories: HP ALM / QC

This is a technical entry with my research-and-experiment notes. Feel free to add or argue. Try at your own risk.

I continue my study journal figuring out HP ALM configuration. This entry is about issue-specific calls.

Overview

While creating or editing issue entries, users trigger internal ‘events’ in the ALM engine. Each event has a corresponding VBScript function or sub-routine called when the event is triggered. 10 events are available (see 1-10 on the picture):

  • Bug_New – Called when a “New Issue” dialog has been opened.
  • Bug_MoveTo – Called when “Issue Details” dialog has been opened.
  • Bug_FieldCanChange – Called after user provided input and before changing the value of the field.
  • Bug_FieldChange – Called after value of the field has been changed.
  • Bug_CanPost – Called after user submitted the data with Bug_New or Bug_MoveTo dialog.
  • Bug_CanDelete – Called before deleting an issue from the server.
  • Bug_AfterPost – Called after the data have been saved to the server.
  • WizardFieldCust_Details – Called to execute customization for Issue Details with Script Generator.
  • WizardFieldCust_Add – Called to execute customization for Add Issue with Script Generator.
  • SetFieldApp – is not an event handler but a generic function used by other handlers to set data field properties.

Note that function names are hard-coded. Regardless of bug name (bug, issue, defect, etc.) event names and function names stay the same. However, for template project, the respective prefix is added.

HPALM-WF-S

Data Objects

The following main Data Objects are available in the namespace of the functions.

Bug_Fields(“-reference by DB name-“)  object – provides read/write access to the properties of the Issue.

Assorted examples.


Bug_Fields("BG_STATUS").Value = "New"

If (FieldName = "BG_USER_TEMPLATE_11") Then
    Template_Bug_FieldCanChange = False
End If

If Bug_Fields("BG_STATUS").Value = "Open" Then
  'Resolution
   Bug_Fields("BG_USER_TEMPLATE_14").Value = "To Be Reviewed"
   Bug_Fields("BG_USER_TEMPLATE_14").List = Lists("lstResolution_TBR")
   Bug_Fields("BG_USER_TEMPLATE_14").IsRequired = True
End If

User object – provides read access to the properties of the User Account currently operating the Issue.

Assorted examples.


  If User.IsInGroup("Support") Then
       Bug_Fields("BG_STATUS").Value = "New"
       Bug_Fields("BG_STATUS").List = Lists("lstBugStatus_New")

       Bug_Fields("BG_USER_TEMPLATE_14").Value = "To Be Reviewed"
       Bug_Fields("BG_USER_TEMPLATE_14").List = Lists("lstResolution_Support")
  End If


Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by Albert Gareev is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.