Showing posts with label DNG. Show all posts
Showing posts with label DNG. Show all posts

Friday, 5 February 2016

CLM 6.0.2 M2 Jazz Reporting Service and DOORS 9

I'm really excited about incoming release of CLM 6.0.2. and this post tells you why;

If you didn't look at it yet you might see following announcement from CLM 6.0.2 M2 Jazz Reporting Service New & Noteworthy:

"Getting report data from Rational DOORS (in technical preview)

DCC can now pull data from Rational DOORS by using the new resource group type named Rational DOORS. In Report Builder you can see DOORS requirements by using a the DOORS Database project area. This new functionality is currently in technical preview because it needs further refinement and validation. "
CLM 6.0.2 M2 announcement



Please mind it is a Technical Preview so it is not yet supported and should not be taken into account when making any financial decisions.

Data Collection Component Configuration

Once you installed and configured CLM 6.0.2 M2 navigate to https://yourserver:9443/dcc/web and select Resource Group Configuration.

There is a new DOORS resource group in M2:
Data Collection Configuration
Data Collection Configuration

Once you hit Add button you can provide your DOORS Web Access link, username and password:
DOORS Resource Group in DCC

URL (PublicUriRoot) should be a of the form: https://yourDWAserver:8443/dwa-rrtranslator/  (assuming your DWA port is 8443). 

Verify your connection before saving. If there will be a NullPointerException shown during test, make sure you provide Version field ;)

Run all the DCC jobs and you should be ready to start generating reports with DOORS data!
Just make sure your IBM DOORS has configured Working Sets.

Jazz Report Builder

The Report Builder is accessible from CLM menu.
CLM menu
CLM Menu -> Reports

When you open it you will see layout similar to Bluemix.
Blumix like layout of Report Builder
Blumix like layout of Report Builder

Go to Data Sources and select "Rational Data Warehouse"
Data Sources configuration in JRS

Refresh Data Source, so the new metadata is loaded
Data source configuration

And now you can simply start generating reports!
Narrow scope of Data
Limit Data scope to DOORS

Save and run
Simple report
Really quick report

Conclusions

With CLM 6.0.2 M2 generating reports from DOORS 9 data is extremely easy!
You do not need to configure hundreds of options, and it works out of the box...

Note:

If you need proper documentation have a look at Collecting data with the Data Collection Component in IBM Knowledge Center.


Monday, 14 September 2015

TRS in DOORS Next Generation

DOORS Next Generation has two TRS specifications implemented TRS and TRS 2.
With very small changes to the my previous posts you can read TRS1 feed from DNG.

Well if you remember my first post you will notice that my dwaOauth.js works just fine with DNG. So that little module gives you not only access to DWA protected resources but you can reuse it with DNG or other CLM servers.
Remember there were small changes done in order to make it working with most recent Node.js. You can read about those changes in my OSLC TRS listener.

DNG setup

You will need to prepare your DNG to provide TRS. Have a look at Register applications as TRS providers for the Lifecycle Query Engine in IBM Knowledge Center.

Usually DNG is ready to provide TRS feed, all you need is to assign a license to user who would be used to read it.

Also you will need to check permissions on /lqe/web/admin/permissions

Now yow are ready to rad TRS from DOORS Next Generation.

Changes in trs.js

There are very little changes in function getChangelogFromDWA
> var previous = '/rm/trs';
var previous = '/dwa/rm/trs/changelogs'

and
> if (previous == '/rm/trs') {
if (previous == '/dwa/rm/trs/changelog') {

So we just changes the starting point for triple feed.

You probably will notice the difference in TRS changelog id in DNG feed. It ses uuid and it looks something like:
urn:uuid:cdaf9dae-ad2d-4434-87a7-aea2488182d6

Thus we need to modify parseChangeLogs function parser:

async.whilst(
  function () { return rest != trs.nil && order > iLastOrder},
  // get ordered list or changes
  function (next) {
      var o = store.find(rest, trs.first, null)[0];
      if (typeof o !='undefined') {
        
        var timearr = o.object.split(':');
        if (timearr[0] == 'urn') {
            // update order
            order = parseInt(n3.Util.getLiteralValue( store.find(o.object, trs.order, null)[0].object) );
            idx++;
            //
            //  DO SOMETHING USEFUL HERE
            //
        }
        
          rest = store.find(rest, trs.rest, null)[0].object;
      } else {
          rest = trs.nil;
      }
      next();
  },
  function (err) {
    console.log("read " + idx + " changelog items");
      last(changes);
  });

DWA has change id has a useful format so one doesn't need further requests to gets some basic details of the change occurred but it is easy enough to write some callback functions getting changes from DNG. Of course one should not relay on format of the id as it is not standardized, defined nor promised not to change. 

Conclusion

Well TRS is TRS ;) with little changes to my inital TRS posts you can consume DWA, DNG or even Bugzilla TRS feed. In near future I will explain how to modify this parser for TRS 2.0.
Stay tuned!