It's all about the answers!

Ask a question

BIRT Report Authoring guidance


Paul Romanus (3355) | asked Dec 15 '09, 10:09 a.m.
Hi I've been trying to author reports using RTC and BIRT and we'll be trying to use Insight in future. However as I understand Insight will access the same datawarehouse so knowledge built up using BIRT will not be redundant?

I've got a number of issues:

1. BIRT's joint dataset functionality is not great .. you need to create a joint dataset for every JOIN you want to perform ... and with the current RTC datawarehouse schema ( projectitemid + '?' + state/priority/severity) and now 'links' it becomes unmanagable.

2. However, using BIRT the examples you generally give make use of Javascript to build the data for the reports, using Joint Datasets appears not to be encouraged - why?

3. If Joint datasets are not used then a significant set of BIRT functionality becomes that much more difficult to use - or redundant.
e.g as far as I understand Tables have to be pretty much hand crafted - instead of giving a data table a dataset and then easily grouping / filtering / aggregating the dataset using BIRT's built in functionality we have to start creating java/script variables and arrays to collect and manually aggregate values. Is this intended?

4. Where is the documentation describing RTC specific BIRT functionality? e.g. {current project area}.. the properties and usage of Jazz Parameter Datasets? etc... we've had to pick most things up from reviewing the video tutorials - which although good to have - do not provide a good way of subsequently locating information.

5. Are we all going to have to ditch BIRT for Cognos 'Lite' in an upcoming release of RTC anyway?

8 answers



permanent link
James Moody (3.3k24) | answered Dec 15 '09, 2:53 p.m.
JAZZ DEVELOPER
Hi,

I'll try to give you some answers below.

On 12/15/2009 10:23 AM, promanus wrote:
Hi I've been trying to author reports using RTC and BIRT and we'll be
trying to use Insight in future. However as I understand Insight will
access the same datawarehouse so knowledge built up using BIRT will
not be redundant?

Insight today does pull information from RTC's data warehouse. The table
layout is not identical, but the data is basically the same. So you can
create (Cognos) reports with Insight that use this data. They will not,
however, be available through the RTC Web UI nor integrated in the RTC
dashboard (in 2.0).

I've got a number of issues:

1. BIRT's joint dataset functionality is not great .. you need to
create a joint dataset for every JOIN you want to perform ... and
with the current RTC datawarehouse schema ( projectitemid + '?' +
state/priority/severity) and now 'links' it becomes unmanagable.

Yes, this isn't very good. It's hard to manage, and the performance
isn't great either due to the way BIRT processes these data sets. What
we do when we need to join more than two data sets together is basically:
1. Assume A, B and C are the data sets we want to join together.
2. In the onFetch of A, B and C, store the values that you want to join
into global Javascript variables. You can use arrays, maps, or whatever
works for the data you're joining.
3. Create a scripted data source and data set. In the fetch method, read
the values from the arrays you created in #2.

2. However, using BIRT the examples you generally give make use of
Javascript to build the data for the reports, using Joint Datasets
appears not to be encouraged - why?

Basically because if you need to join more than 2 data sets, then (1)
you need multiple joint data sets, which is just not manageable
(confusing) or maintainable, and (2) the performance issue I mention above.

3. If Joint datasets are not used then a significant set of BIRT
functionality becomes that much more difficult to use - or
redundant.
e.g as far as I understand Tables have to be pretty much hand crafted
- instead of giving a data table a dataset and then easily grouping /
filtering / aggregating the dataset using BIRT's built in
functionality we have to start creating java/script variables and
arrays to collect and manually aggregate values. Is
this intended?


If you use a scripted data set to join the data together, then you
should still be able to make use of Tables exactly as if you had a joint
data set, including the grouping/filtering/aggregating, unless I'm not
understanding what you're asking.

4. Where is the documentation describing RTC specific
BIRT functionality?
e.g. {current project area}.. the
properties and usage of Jazz Parameter Datasets? etc... we've had to
pick most things up from reviewing the video tutorials - which
although good to have - do not provide a good way of subsequently
locating information.

We have a number of pages on our wiki that talk about things like our
custom parameter handling (including the {current project area} variable
and others), how to do drill-in in RTC reports, and other topics. In
particular, check out:

https://jazz.net/wiki/bin/view/Main/ReportsParameters
https://jazz.net/wiki/bin/view/Main/ReportsLinkingAndDrillIn
https://jazz.net/wiki/bin/view/Main/ReportsMain

5. Are we all going to have to ditch BIRT for Cognos 'Lite' in an
upcoming release of RTC anyway?

First, please understand that our RTC 3.0 plans are not yet finalized,
so this isn't a feature commitment. We need to be able to view
Cognos/Insight reports in the RTC Web UI and Dashboard, the same way
that we do with BIRT reports today. And Cognos does provide some
significant advantages over BIRT in many respects. We aim to have a
flexible reporting framework (the beginnings of which are actually in
2.0) that can support a variety of reporting backends. However, it's
unlikely that our out-of-the-box support for BIRT will be completely
going away any time soon (even if our recommended engine for report
authoring becomes Cognos).

I hope this helps.

james
RTC Reports Team Lead

permanent link
Paul Romanus (3355) | answered Dec 16 '09, 8:49 a.m.
James - Apologies for the frustrated tone of the first post - it was late and I was confused ... so thankyou doubley for having the patience to analyse and respond to it.

thankyou very much for the insight, guidance and pointers to the information, it is really valuable.

permanent link
James Moody (3.3k24) | answered Dec 17 '09, 11:38 a.m.
JAZZ DEVELOPER
On 12/16/2009 8:53 AM, promanus wrote:
James - Apologies for the frustrated tone of the first post - it was
late and I was confused ... so thankyou doubley for having the
patience to analyse and respond to it.

thankyou very much for the insight, guidance and pointers to the
information, it is really valuable.


No problem. (I didn't take it as frustrated - these are all very valid
and important questions). Let me know if you have any other questions.

james
RTC Reports Team Lead

permanent link
Matt McGinn (632610) | answered Oct 06 '10, 1:31 a.m.

Yes, this isn't very good. It's hard to manage, and the performance
isn't great either due to the way BIRT processes these data sets. What
we do when we need to join more than two data sets together is basically:
1. Assume A, B and C are the data sets we want to join together.
2. In the onFetch of A, B and C, store the values that you want to join
into global Javascript variables. You can use arrays, maps, or whatever
works for the data you're joining.
3. Create a scripted data source and data set. In the fetch method, read
the values from the arrays you created in #2.

Hi James

Any chance you could post an example of this? I am trying to implement it but I am having some trouble - an example would really clear it up for me. Thanks

Matt McGinn

permanent link
James Moody (3.3k24) | answered Oct 07 '10, 3:26 p.m.
JAZZ DEVELOPER
On 10/6/2010 1:37 AM, mattm wrote:
jmoodywrote:

Yes, this isn't very good. It's hard to manage, and the performance

isn't great either due to the way BIRT processes these data sets.
What
we do when we need to join more than two data sets together is
basically:
1. Assume A, B and C are the data sets we want to join together.
2. In the onFetch of A, B and C, store the values that you want to
join
into global Javascript variables. You can use arrays, maps, or
whatever
works for the data you're joining.
3. Create a scripted data source and data set. In the fetch method,
read
the values from the arrays you created in #2.

Hi James

Any chance you could post an example of this? I am trying to implement
it but I am having some trouble - an example would really clear it up
for me. Thanks

Matt McGinn


Most of our story points reports work this way. Try Story Points, Story
Points by Iteration, or a similar out-of-the-box report. You can find
them in the plug-in directory for com.ibm.team.examples.reports.common,
and import them into your workspace to open them with the BIRT editor.

james
RTC Reports Team Lead

permanent link
Matt McGinn (632610) | answered Oct 10 '10, 8:29 p.m.
Thanks James

permanent link
Matt McGinn (632610) | answered Nov 15 '10, 12:54 a.m.
Hi

I have created a scripted dataset report but now I am having difficulty when I try to add in the parameters for the report. I can run the report in the development environment and get the results I expect but when I deploy the report I get an error message stating that 'The type of parameter "WITypeParameter" is expected as "Object[]", not "java.lang.String".'

Any assistance is greatly appreciated.

'XML for WISummary Report Using Scripted Dataset.txt' can be found at http://w3.ibm.com/connections/communities/service/html/communityview?communityUuid=4686dcb9-2d82-41c0-9a4b-6325b316c9ad#fullpageWidgetId=W68465f54b88a_4a96_b7f1_4e8ae8f6c71e&file=de2065c8-5638-4810-a564-391ade81e8e7

permanent link
Matt McGinn (632610) | answered Nov 15 '10, 1:03 a.m.
Hi

The previous post was created by mistake and can be ignored. A new topic has been created for it in the forum.

Matt McGinn

Your answer


Register or to post your answer.