It's all about the answers!

Ask a question

How to get RRC "implements" links from RTC using RPE?

Joe Gariano (8813137) | asked Aug 15 '13, 8:54 p.m.
edited Aug 15 '13, 8:55 p.m.
We're using CLM 4.0.2.  We have RTC stories linked to RRC requirements using the "implements" link.  I'm trying to write an RPE template that parses through a set of RTC stories, outputs some basic info about each story, and then outputs the RRC requirement(s) linked to each story.

I know how to query a list of RTC stories and output their basic info.  For example, I can query a data source like:

However, I don't know what field in the work item type exposes the RRC requirement link.  I found a type in the Reportable REST API called "auditableLink" which looks promising in terms of a link to an RRC requirement, but it doesn't have the basic info about the story.

Note that I have experience writing RPE templates for RRC and RQM, but this is the first time I've written one for RTC, so any guidance would be appreciated.


2 answers

permanent link
James Moody (3.3k24) | answered Aug 20 '13, 11:41 a.m.
Your inclination is correct. Find an auditableLink object where the source (or the target) is the work item, and which is of the type you're looking for (whatever the ID for "implementsRequirement" is). The other end of that link will point to the RRC requirement, which you will probabaly need to fetch to get the information you're looking for.

permanent link
Joe Gariano (8813137) | answered Aug 20 '13, 6:56 p.m.
edited Aug 20 '13, 7:11 p.m.
Thanks James.  I worked out a solution, and it is in line with your comment.  Here are the specifics of what I did, in case anyone wants to do the same...

I declare two RPE data sources based on the RTC workitem schema (which are added in RPE using the following schema URL: https://myserver:9443/ccm/rpt/repository/workitem?metadata=schema)

The first data source I call "CCM Work Items", and it gets me the ID, summary, description, target iteration, and type of all the work items in my RTC project called "CCM_Sandbox".  The URL address I supply in the RPE document specification for this data source is:

The second data source I call "CCM Links", and it gets me the sourceRef and targetRef of all the RTC links of type "implements requirements".  The URL address I supply in the document specification for this data source is:

In the RPE template, I start by querying all the work items in "CCM Work Items".  I provide an external variable to let the user specify the iteration name they want to use to filter the work items, and so in the template I only handle those work items where workitem/workitem/target/name equals the value of that external variable.  For each work item found in this query, I query "CCM Links" for a link where the ID of the work item from "CCM Work Items" appears at the start of workitem/auditableLink/sourceRef/comment, followed by a colon.  You can perform that check with the following javascript snippet: if(comment.indexOf(id+":") == 0)

Finally, for each link that matches the above check, I dynamically configure an RRC data source called "RM Text" (based on the schema: https://myserver:9443/rm/publish/text?metadata=schema).  For the dynamic configuration URI of "RM Text", you need to use workitem/auditableLink/targetRef/uri from the "CCM Links" query.  However, that raw value is not in the correct format for an RRC data source.  To get it in the right format, you have to do the following javascript string replacement on workitem/auditableLink/targetRef/uri: uri.replace("/resources/", "/publish/text?resourceURI="), and use that newly updated string as the dynamic configuration URI.

Once you've hit this point, you are home free... "RM Text" is now the requirement that is implemented by the work item.  The approach I've described above is the most efficient way I've found to write the RPE script I was trying to write.


Your answer

Register or to post your answer.