It's all about the answers!

Ask a question

RTC: how to make mandatory the "Duplicate Of" link?

Luca Martinucci (1.0k289110) | asked Jan 20 '15, 11:22 a.m.
I need to enable this behavior in RTC (version 4.0.6):
  • when a work item is closed with the action Duplicate (and the resolution Duplicate), the Duplicated Of link must be mandatory, and the work item save must fail if such a link is not provided
I know that this is an out-of-the-box behavior in RTC, and I have seen it working in the past, but now I have made some changes to the project area (to the workflows and to the presentations), and it doesn't work any more, allowing users to close a record as a duplicate without linking it to another.
Can this feature be re-activated?

Accepted answer

permanent link
Luis Peregrina (18114) | answered Mar 03 '15, 10:22 p.m.
Luca, since the validation is still hard-coded I found that changing the state id to that of the original workflow forces the check to happen ("r2" if I remember correctly).
Luca Martinucci selected this answer as the correct answer

Luca Martinucci commented Mar 04 '15, 4:57 a.m.

Luis, are you saying that I should change the state id of the "Closed" state to "r2"? (it currently "s5" in the bugzilla workflow I am using for Defects).
Also, is there any way to enable this behavior for the other workflows (so that I can enable it for Change Requests, Tasks, ...)?

Luis Peregrina commented Mar 04 '15, 8:27 a.m.

I meant to say the resolution id. "r2" is the resolution id for state Closed - Duplicate.

Luis Peregrina commented Mar 05 '15, 1:28 p.m.

 It seems there is a previous check too, the workflowid must match the defect workflow id or "bugzillaWorkflow"

Luis Peregrina commented Mar 09 '15, 1:26 p.m.

About enabling this in other item types, they would need the same workflowDefeinition id, so only "bugzillaWorkflow" or the same id of the defect type.

2 other answers

permanent link
Susan Hanson (1.6k2192194) | answered Jan 20 '15, 12:43 p.m.
We have never been able to get this to work for anything that we have customized and therefore, have written a custom Validator to check for this.

Donna Thomas commented Mar 04 '15, 12:02 p.m.

Hi there - can you share what that validator looks like? Script or ?

Susan Hanson commented Mar 04 '15, 12:08 p.m.

Our resolution for duplicate all end with ".duplicate" in our configuration, so the validator does this:
if (wi.getResolution2().getStringIdentifier().endsWith(".duplicate")) {
  if (!hasDuplicateOfLink(saveParameter.getNewReferences())) {
     IAdvisorInfo createProblemInfo = collector.createProblemInfo("DuplicateOf Link Required", "To mark the work item as Duplicate, you must have a DuplicateOf link.","error");

And the hasDuplicateOfLink method is:
private boolean hasDuplicateOfLink(IWorkItemReferences references) throws TeamRepositoryException {
    List<IReference> duplicateOfLinks = references.getReferences(WorkItemEndPoints.DUPLICATE_OF_WORK_ITEM);

    if (duplicateOfLinks == null) return false;
    if (duplicateOfLinks.size() < 1) return false;

    return true;

permanent link
sam detweiler (12.5k6189201) | answered Jan 20 '15, 1:17 p.m.
the check for this is hard coded to the IBM workitem type ID.

I opened enhancement 242467 to move this function to an external function

Luca Martinucci commented Jan 21 '15, 3:19 a.m.

Sam, are you saying that this behavior is "inherent" to a workitem type?
So, I wonder how it could suddenly "disappear" from that workitem type.
According to this enhancement request , it is hard-coded in these workflows: EclipseWayWorkflow.ID and InternalWorkflowKeys.DEFECT_WORKFLOW_ID.
Anyway, I have a project area where Defects, which use the Default Workflow (id: bugzillaWorkflow) have this desired behavior on Duplicate.
In another project area (on a different RTC server, but with the same RTC version), Defects using the same workflow do not have this behavior.

Your answer

Register or to post your answer.