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 dedicated to customization of “Project Lists” mentioned yesterday – these are enumeration data objects you need to create when declaring a List data type.
Project Lists (1) can be customized directly or from the data field referring to a particular List. There are pre-defined lists that administrator cannot rename / delete (2), but customize their contents to some extent. And new lists (3) can be added to substitute or replace hard-coded ones.
Unfortunately, the pre-defined connection is also hard-coded, so by default Defect Status is always linked to hard-coded Bug Status (4) list. However, Workflow customization allows altering of that list “on the fly” with custom rules defined in VBScript (see follow up post dedicated to Workflow customization).
Altering of the original list is done through declaration of additional lists (5) containing sub-sets of the full enumeration. For example, a closed issue/defect might be transitioned only to Reopen state, hence the list for Status dropdown should contain only current and possible states, i.e. Closed and Reopen. Enforcement of state transitioning is implemented through assigning different pre-declared Lists to dropdowns and validation of user input during the issue management workflow.
List items (6) come hard-coded – those cannot be changed or removed, and customizable – added by administrator. Custom items can be added, removed, and renamed. QC also allows creation of hierarchical lists by adding sib-items (I didn’t try this feature though).
There are also a few tricks:
- Project Lists data declarations are not in sync with Data Object field values. I.e. if you declare a list item “Reviewed” for Issue Status field, and have some issues created with this status, but later rename the same item to “Triaged”, all existing Issue objects will still retain Status as Reviewed.
- Same goes for Reporting – data declaration is not in sync with the actual data, so your filters need to accommodate to that.
- Even when Data Fields are declared as a particular List type, there’s an option to allow users to input custom text instead of dropdown values.
- Even when Data Fields are declared as a particular List type, and input is restricted to list items only, through VBScript in Workflow customization you may still assign some custom text – make sure to keep item values in the code consistent with item declarations in Project Lists.