Summary
Question
In some cases it might be desirable to prevent selection of an expire Release or Cycle in Defect Target Release, Target Cycle.
This can be solved through the use of workflow in ALM
Answer
Function Bug_FieldCanChange(FieldName, NewValue)
If FieldName = "BG_DETECTED_IN_REL" Then
If RetrieveTR(NewValue) = True Then 'pass the name of the release
Bug_FieldCanChange = DefaultRes
Else
msgbox "Release End Date has passed" & vbcrlf & vbcrlf & "Select a valid Release"
Bug_FieldCanChange = False
End If
ElseIf FieldName = "BG_DETECTED_IN_RCYC" Then
If RetrieveTC(NewValue) = True Then 'pass the name of the release
Bug_FieldCanChange = DefaultRes
Else
msgbox "ReleaseCycle End Date has passed" & vbcrlf & vbcrlf & "Select a valid ReleaseCycle"
Bug_FieldCanChange = False
End If
Else
Bug_FieldCanChange = DefaultRes
End If
End Function
Function RetrieveTR(RelName)
Set relFactory = TDConnection.ReleaseFactory
set RelFilter= relFactory.filter
RelFilter.filter("REL_NAME")="""" & RelName & """"
Set listOfReleases = RelFilter.NewList
Set ReleaseItem= listOfReleases.item(1)
If ReleaseItem.DaysLeft > 0 Then
bolAllowed = True
Else
bolAllowed = False
End If
RetrieveTR=bolAllowed
End Function
Function RetrieveTC(CycleName)
Set cycFactory =TDConnection.CycleFactory
Set cycFilter = cycFactory.Filter
CycFilter.Filter("RCYC_NAME" ) = """" & CycleName & """"
Set listOfCycles = CycFilter.NewList
Set CycleItem= listOfCycles.item(1)
If CycleItem.DaysLeft > 0 Then
bolAllowed = True
Else
bolAllowed = False
End If
RetrieveTC=bolAllowed
End Function