Making Sure that Entity Properties Are Set Before an Entity Comes into Focus

It is common practice to set entity properties (such as IsVisible, IsRequired, and List) when creating or modifying a new entity (New or FieldChanged). When writing ALM workflow scripts, it is also important to set entity properties when the entity comes into focus (meaning, when the user navigates to that entity in the ALM graphical user interface). When an entity comes into focus, the MoveTo event is called.

If entity values are not set in the MoveTo event, the end user experience is unpredictable—for example, incorrect values might be displayed in drop-down lists.

Recommendations

To avoid unpredictable results, such as a drop-down list not containing the most up-to-date set of values:

  • Make sure that all entity properties are set in the MoveTo event—not just in the New or FieldChanged events.

  • Isolate entity properties customization code into a separate routine and call that routine from all relevant events.

The following table provides an example of how to make sure that properties of a defect are set appropriately when the defect is in focus—and not just when it is modified or added.

Example:

Sub SetupBugFields(Context1, Context2)
    ' Code for customizing defect properties is entered here,
    ' such as set IsVisible, IsRequired, IsReadonly, Label, List...
    If Context1="Focus" Then
          ' Code for handling the focus event is entered here
    ElseIf Context1="FieldChange" Then
            If Context2="RQ_USER_01" Then
                ' Code for handling the FieldChange event 
		 ' is entered here
            ElseIf Context2="RQ_REQ_STATUS" Then
                ' ... Enter your code here
            Else
                ' ... Enter your code here
            End If
  End If
End Sub
Sub Req_FieldChange(FieldName)
    If FieldName = "RQ_REQ_STATUS" Then
        SetupBugFields("FieldChange", FieldName)
    Else
        '  ...Enter your code here
    End If
End Sub
Sub Req_MoveTo
        SetupBugFields("Focus")
End Sub