Getting started with document generation from Design Manager

Updated 2015.10.22: select configuration changes for DM 6.0. See bullet #7 in the “Find the DM schema” section.

I’m writing this article to document my own experience learning how to setup and perform document generation from Design Manager.

This is a TL;DR article and once you get past it I recommend Kevin Cornell’s  excellent DM Reporting Tutorial to get a better grasp of the concepts involved. I also recommend going through Integrating Design Management with Rational Publishing Engine.

dm_document

Software used:

  1. CLM 5.0.2 – no fixpacks
  2. Rhapsody Design Manager 5.0.2 – no fixpacks
  3. RPE 2.0 – latest fixpack
  4. Windows 7 64 bit

Continue reading “Getting started with document generation from Design Manager”

Advertisements

How to follow links from DM to DNG

In this article I describe how to generate a document with RPE that contains DM resources and their linked DNG requirements. While the example uses DNG as a target the technique is applicable to other CLM sources or even DOORS 9 with slight changes.

Credit: thanks to Kevin Cornell for his excellent DM Reporting Tutorial .

How it works

Unlike other Rational data sources links are not stored in the representation of a DM resource. This means that if you request the Reportable REST representation of a Package there will be no links inside it. The links are stored separately and access via the the “collaboration/links” Reportable REST URI.

So in order to build a document that contains DM resources and linked requirements you have to perform these 3 steps:

  1. retrieve the DM resource.
  2. retrieve the links for the DM resource
  3. access the linked artifacts

The anatomy of the template reflects these 3 steps:

DM_Links

I will skip step 1 and describe step 2 and 3

#2 Retrieve the links for a DM resource

The links for a DM resource are retrieved from the the collaboration/Link service. The dmResourceID and the dmContextID properties are available in the resource you’ve got at step 1.

https://server:port/dm/reporting/collaboration/Link?referencingId=<dmResourceID>&rmps.context=<dmContextID>

#3 Access the linked artifacts

Now that you have the link href all you need to do is access the information. Assuming all the links are for DNG text artifacts all you need is to convert the OSLC URL stored in DM to a Reportable REST form using a script like this and then access the DNG data through a Dynamic Data Source.

href.replace("resources/","publish/text?resourceURI=")

Reusing the template

The template is available on the Modelling Templates Page of the RPE DevWorks Wiki and is provided also as a reusable snippet. See the attachments section for:

  • DM Links for Package Diagrams Example
  • DM Links Snippet

Once imported in your template you connect your code to the snippet by adding code to set the baseURL, dmResourceID and dmContextID in the “add code here” Java Script block.

Easy selection of the report starting point – a Rhapsody example

When running a report the end user must provide a number of inputs. Some cannot be avoided but most can and even better you can replace manual typing with value selection.

A simple scenario is choosing to print the content of a Rhapsody package. You do not know a priori what that package is so you design the template to accept the package name as a variable. To make things very efficient you can use a native filter on the predefined “AllPackages” query as shown below.

rhp_configurationMetadataTemplateDesign
Native filter to select the desired package

Now “all” the end user has to do is type the right package name and he’ll get the report he wants.

rhp_manualInput
Manually configuring the variable

But typing is error prone so you need to switch to Rhapsody to make sure you get the right value.  The alternative is to equip the variable with knowledge at design time to allow RPE to assist the user in picking the right value. This is known as the RPE Configuration Layer.

In this example the scope for the packageName variable is the list of package names from the current model and the “knowledge” looks like this:

rhp_configurationMetadataDesign
Configuration metadata at design time

This information enables the end user to use the “Configure using Metadata” action from the context menu of the “packageName” variable and select the package name from the displayed list.

rhp_configurationMetadataRuntime
Configuration metadata at runtime

The example template is available for download here.

 

 

How to report from multiple data sources selected dynamically

The example uses DOORS 9 modules but it is applicable to any data source RPE supports.

The problem: create a document from multiple DOORS 9 modules.

The static solution: use the same template multiple times in a docspec with a different module each time. This is what is used in most cases and it’s the simplest solution when you have a fixed list of modules you want to report on.

The dynamic solution:

  • create a list of the DOORS 9 modules you want included
  • iterate the list and reconfigure the template data source with the information read from the list

The list can be kept in a DOORS 9 module or in a separate XML file. The list can generated/altered right before you start the document generation.

Continue reading “How to report from multiple data sources selected dynamically”

Generate PowerPoint ready documents with RPE

RPE does not generate PowerPoint natively. However Word can export a document in PowerPoint and PowerPoint can load Word documents as presentations. This means that you can get the CLM/DOORS 9/Rhapsody data in PowerPoint format via Microsoft Word with RPE.

output_powerpoint
A PowerPoint presentation from a Word document

Continue reading “Generate PowerPoint ready documents with RPE”

Creating traceability documents with RPE and JRS

If you have ever had to generate a document that contains Requirements, the Test Cases that validate them and the related work items you’ve most likely ended up using (at least) 3 different data sources and you’ve had to use Java Script to switch between APIs.

Aside from a complex design, the performance of the report wasn’t that great as RPE had to crawl over all the data sources to fetch the required data.

JRS_Selecting_Data

Continue reading “Creating traceability documents with RPE and JRS”

Automating DOORS 9 Document Generation with RPE

There are 3 IBM provided ways of producing documents from DOORS 9 using RPE:

  1. RPE Launcher
  2. DOORS Publish Wizard
  3. RRDG based File->Export

NOTE: I have listed only solutions provided by IBM. There are other RPE based solutions provided by IBM partners such as GebsReporting, Baselines Inc, River North Solutions and more.

Continue reading “Automating DOORS 9 Document Generation with RPE”