cancel
Showing results for 
Search instead for 
Did you mean: 

Jasper Reports From SAP IDM 7.1 Workflow Interface

Former Member
0 Kudos

Hi All,

Has anybody generated Jasper Reports from SAP Netweaver Identity Management ver 7.1 workflow interface? Am trying to simulate an example described in the document found in the following link. The document explains the example with respect to IDM 7.0. Unlike as shown in the document, the "Submit" and "Back" buttons do not show up upon clicking the "Request Report" task. Does anything more or different needs to be done than what is described in this document to generate Jasper Report from IDM workflow interface. Thanks in advance for suggestions and guidance.

https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f039c41f-40aa-2a10-72ad-aea37e26...

Thanks & Regards,

Vijaykumar Ganesan

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

I was under the impression that Jasper reports was no longer supported in version 7.1.

Even if it is supported, it was never very effective.

My suggestion, though I understand it does not solve your current issue, is to look at something like Crystal Reports, BW, or MSSRS.

Former Member
0 Kudos

Hi Geoff,

Thanks for responding and making suggestions. Jasper Reports is supported in SAP IDM 7.1. I have been able to generate Jasper Reports using regular jobs (not meant for provisioning). When I got started on reporting, I learnt that Crystal reports

is also an option but got started on experimenting with Jasper. Could you please elaborate on why you feel Jasper is as

effective as Crystal Reports even if it is supported in the latest IDM version. Have you generated Crystal Reports in SAP IDM 7.1? Can Crystal Report option be adopted without an expenditure? I mean without having to buy a licensed software. In the experimentations carried out with Jasper option, it has been possible to work without having to buy a software.

Thanks in advance for your forthcoming views, suggestions and guidance.

Thanks & Regards,

Vijaykumar Ganesan

Former Member
0 Kudos

Vijaykumar,

We went live with version 7.0 last year and one of our biggest issues was reporting - in fact we had SAP resources in house who could not get Jasper reports working - I'm afraid it's so long ago I don't remember the exact reason.

Additionally, I believe the Jasper reports rely on the Windows Dispatcher which SAP warns is 'deprecated,' in other words they are moving away from the use of the Windows Dispatcher (they didn't give us a timetable on this).

So my impressions of Jasper are simply based on our experience with it, and the fact that we had vendor resources here who recommended against us using it.

You would most certainly have to pay for any other enterprise level reporting application, but I'd be surprised if your organization doesn't have some licensing agreement for a reporting tool in place already.

Again I acknowledge I haven't actually provided any technical help on your issue - I just wanted to share our experience in this area.

Good luck,

-Geoff

oliver_nocon
Participant
0 Kudos

Hi,

please refer to following thread for getting the Jasper report generation running

[|]

Jasper Reports comes with Java libraries and therefore runs on the Java Runtime and is therefore not deprecated.

Yes, the UI looks different with 7.1 compared to 7.0 but you can maintain the text of the buttons on the Display tab of your task configuration.

Is that your problem? I guess you get a button "safe" right? This should do the job as well

Best regards,

Oliver

Former Member
0 Kudos

Hi Oliver,

Thanks for responding. I came across the thread you have referred a couple of weeks back and have been able to generate Jasper Reports from IDM 7.1 both using standard jobs and workflow tasks. Learnt that "Save" button can be used like the "Submit" button of IDM 7.0. Upon clicking on the "Save" button the report gets generated and then the "Close" button is to be clicked to close the new browser window that opens up upon clicking on the "Save" button.

Do you mean the button text can be changed or customized from the "presentation" tab. I haven't tried that yet.

BTW could you clarify or confirm one of my observations. I have been able to create a custom Jasper Report from IDM 7.1. What I have done is, I designed a totally new report using iReport 1.3.1. Then created a standard job using the "Entry Report" template configured it just as what was done for generating template reports. Now, in case of template report generation using standard jobs, it is observed that the SQL written into the u201CSourceu201D tab returns a list of values and each of them perhaps is passed one at a time to the Jasper file. However I notice that despite mimicking the same thing for custom reports, all the values returned by the SQL configured in the u201CSourceu201D tab doesnu2019t get passed to the Jasper file. Instead even if the SQL is not configured in the u201CSourceu201D tab but the report SQL not parameterized then the custom report generated contains records for all the key values. Find below sample SQLs used.

Report SQL for Custom Report

SELECT DISTINCT

(SELECT avalue

FROM MXIV_ENTRIES b

WHERE b.mskey = a.mskey

AND b.attrname = 'displayname') AS name,

(SELECT avalue

FROM MXIV_ENTRIES b

WHERE b.mskey = a.mskey

AND b.attrname = 'employee_status') AS empStatus

FROM MXIV_ENTRIES a

WHERE a.MSKEY IN (SELECT DISTINCT MSKEY FROM MXIV_ENTRIES WHERE ATTRNAME = 'MX_ENTRYTYPE'

AND SEARCHVALUE = 'MX_PERSON')

SQL in Source tab

SELECT DISTINCT MSKEY FROM MXIV_ENTRIES WHERE ATTRNAME = 'MX_ENTRYTYPE'

AND SEARCHVALUE = 'MX_PERSON'

__Report SQL for parameterized Custom Report__

SELECT DISTINCT

(SELECT avalue

FROM MXIV_ENTRIES b

WHERE b.mskey = a.mskey

AND b.attrname = 'displayname') AS name,

(SELECT avalue

FROM MXIV_ENTRIES b

WHERE b.mskey = a.mskey

AND b.attrname = 'employee_status') AS empStatus

FROM MXIV_ENTRIES a

WHERE a.MSKEY = $P

Thanks & Regards,

Vijaykumar Ganesan

oliver_nocon
Participant
0 Kudos

Hi,

You can typically neglect the SQL query in the source tab since your report SQL query is always maintained in the report itself.

For a task you anyway cannnot configure a sql statement on a source tab since a task is always executed for a specific entry.

In case you want to pass information to the report this is done using report parameters which are filled in the pass.

You can see this for example in the entry report task:

- in the target tab the attribute MSKEY is passed through to the report

If you want to create multiple entry reports based on a specific SQL query I would suggest you to create a job where you execute your report task (using the function uProvision) for every query result item.

The usage of the uProvision you can for example see in the "initial provisioning" jobs of the provisioning framework.

best regards,

Oliver

Former Member
0 Kudos

Hi Oliver,

Have quoted your reply and inserted my comments inline and have marked them bold.

"You can typically neglect the SQL query in the source tab since your report SQL query is always maintained in the report itself" - *Understood this and found this to be true while creating custom Jasper Reports (not the template ones but newly created ones with a unique design. No reuse of template report .jrxml I mean) *

"For a task you anyway cannnot configure a sql statement on a source tab since a task is always executed for a specific entry" - Have observed this.

"In case you want to pass information to the report this is done using report parameters which are filled in the pass.

You can see this for example in the entry report task:- in the target tab the attribute MSKEY is passed through to the report" -

Have noted this as well but then the example discussed in the SDN document describing Jasper report creation using IDM 7.0, a SQL is written into the source tab for generating Jasper report using a standard or regular job. It is the list of values returned that seem to be getting passed to the parameterized entry report template. Without the SQL in source tab, at runtime how would values get passed to the parameter.

"If you want to create multiple entry reports based on a specific SQL query I would suggest you to create a job where you execute your report task (using the function uProvision) for every query result item.

The usage of the uProvision you can for example see in the "initial provisioning" jobs of the provisioning framework" -

Will check this. By the way, what I was asking is can the template entry report and other templates be used to create a job for generating custom designed Jasper Report

Thanks & Regards,

Vijaykumar Ganesan

oliver_nocon
Participant
0 Kudos

Hi,

the example in the guide (you refer to) executes the report generation pass for every mskey in the SQL result.

you see a "select distinct mskey" in the SQL and an MSKEY <-> %mskey% in the destination.

This is the mapping to the report parameter.

Best regards,

Oliver

Former Member
0 Kudos

Hi,

My understanding matches your explanation. This interlinking between the values returned by the SQL configured in the source tab and the parameter in the destination tab is what I am not able to observe in case of customized Jasper Reports. By customized Jasper Reports, I mean brand new Jasper reports designed using iReport and which bear no relation to any of the template Jasper reports supplied with SAP IDM installation. In one of my earlier replies, I have posted a SQL. Using that SQL, I created a new report but the report wouldn't get generated for all the values returned by the SQL in source tab. Upon de-parameterizing the report and not relying on the SQL in the source tab is how I could generate a complete report (for all the qualifying entries). Can you please confirm my observation if possible.

Vijay

oliver_nocon
Participant
0 Kudos

Hi Vijay,

if you want to use the passed parameter you have to set up your custom report similar to the entry report delivered with the product. The report must contain a parameter which is filled by the toJasper pass. For the entry report this would be mskey.

-> this is done in iReport through Library - Add... - Parameter.

Maintain it as java.lang.string and check "Use as a prompt".

Now you can use the parameter in a SQL query like "where MSKEY=$P"

In order to proceed I would suggest you try out your report

- first in iReport where you fill the parameter in the popup

- then using a task.

- and once the template works correctly in a task where always only one entry is passed then you should also be able to use it within a job.

Best regards,

Oliver