If you are unable to create a new account, please email support@bspsoftware.com

 

News:

MetaManager - Administrative Tools for IBM Cognos
Pricing starting at $2,100
Download Now    Learn More

Main Menu

Passing One Prompt Page values to Multiple Reports Dynamically

Started by yeluri9, 05 Dec 2017 10:39:59 AM

Previous topic - Next topic

yeluri9

Example:
Currently we are on Cognos 11.0.5 and Oracle 12c DB in windows environment.
Scenario:
We have 5 Individual reports having same prompt page. User wants to pass the prompt values only once and all five report outputs needs to be generated as individually. Out of this five two are Excel outputs and others are pdf output formats.

The Report out has to be Suffixed with give prompt values.
Example, The names of the reports are "Apple" ,"Samsung" and the given prompt values is "2017" then generated outputs has to be Apple_2017.pdf,Samsung_2017.XLS.

Please let me know if there is any solution to achieve this. This is very urgent.

New_Guy

Hi,
First try to convice them that such a requirements need to be planned earlier in the requirements gathering stage, which is a common scenario of forgetting the report delivery requiremnts and that it can be done, if given enough time.
Option 1: Do this is by bursting and save the report output in a shared folder, which you can save with the reportname suffixed by the grouped item and they can pick them up from the shared folder. But with this option the format cannot be mix and matched and the report has to run in both the formats. you can save the report outputs in cognos connection too.
Option 2: Create a reportview for each parameter and name the reportview as desired and run them in the required format and sending the email to them, this option is quick, since you are saying it is urgent.


Good luck
New guy

venkat01

In cognos 10.2.2 we can achieve this by using report reference option in page explorer launch a new blank report and click on page explorer you can see report reference drag that 5 times and refer your 5 reprts and you can creat variables with reportoutput function such as pdf or spreadsheet and assign this variable to pages as render variable for whichever pages you want to show in pdf or spreadsheet then run this report may be helpful

Sent from my GT-N8000 using Tapatalk


yeluri9

Hi

Thanks for your reply.

1. If we do the bursting the first thing is how will we select the prompts dynamically. The requirement is User has select the prompts from the prompt page then all the reports has to run in the background and save as different files.

2. Our prompt page has cascading prompts and there are lot values in the prompts (not in 10's). So we can not create the views for each report and each prompt.

I would really appreciate , if there is any other workaround to achieve this.

Thanks
Venkata

New_Guy

Hi,
Does all the reports have same prompt values except for the phone parameter where you will select apple and samsung? If all the parameters are not same except the phone parameter then bursting is not an option and we have to do some secondary processing and to set it up, it takes some time and the knowledge of outlook vba.
Send us samples like
report 1
Param 1 = A
Param 2 = B
prmPhone = Apple
report 2
Param 1 = C
Param 2 = D
prmPhone = Samsung
One more option is to set the parameters using case statements like
Case when ?prmPhone? = 'Apple' then [columnA] = 'A' for each filter and then burst on the Phone Data item, which might be hard as your report is having too many prompts.
Passing parameters from the prompt page of a report to other reports is not possible, the work around is to have a query and a page for each report and passing the parameters as required which is like combining all 5 reports in one.
You can try Venkat01's suggestion.

Good luck
New guy

yeluri9

Hi

i think you misunderstood the requirement. The Apple and Samsung are not parameters these are two different reports having the same prompt values like Prompt1, Prompt2, prompt3 ... All the parameters has to pass to each and every report and generated the diifferent outputs for each report.

For Example :

Prompt Page:

Prompt1, Prompt2, Prompt3

Reports:

Report1, Report2, Report3

When user runs the report or job ......  First it has to ask for the above 3 prompts and once finished it should pass the parameters to all the reports and generate different output files (Not all the reports are same output format one could be Excel, others could be PDF or HTML).

Let me know if it is clear.


BigChris

To the best of my knowledge this isn't possible.

You might be able to do something where you create a stored procedure to write the prompt values to a temporary table in your database, then fire a trigger which would then make a schedule with your reports in it run.

CognosPaul

I've been mulling this over for a few days. It's not a simple request but it is possible with a bit of trickery.

You'll need to use CMS, but it will have to be with async set to manual. You'll need to ping the server every second or so to get the response.

So the request something like (get or post would both work) (note in C11 you have to reference something like /disp/ in there):
http://cognosserver/ibmcognos/cgi-bin/cognosisapi.dll/rds/outputFormat/searchPath/content/folder[@name='test']/report[@name='TEST CMS']/PDF?async=off

The response will be in XML:

<rds:receipt xmlns:rds="http://developer.cognos.com/schemas/rds/types/2">
<rds:status>working</rds:status>
<rds:url>
../../../../../../../rds/sessionOutput/conversationID/i62D5383B35FD4F57BDD8B6875864E571
</rds:url>
<rds:conversationID>i62D5383B35FD4F57BDD8B6875864E571</rds:conversationID>
</rds:receipt>


the rds:url is what you need. Take that string and append the desired name and call that.
http://cognosserver/ibmcognos/cgi-bin/cognosisapi.dll/rds/sessionOutput/conversationID/i62D5383B35FD4F57BDD8B6875864E571/my_report_name_2017_americas.pdf

I don't have the time at the moment to actually write the solution, but hopefully I will sometime within the next few weeks.

Boatsman

Why not to create a table with one row and multiple columns. Each column represents a prompt value. The table can be loaded on demand via ETL. Cognos report will read prompts from the table and make them available to all logically connected reports (ie Apple, Samsung...).

Just my 2c.

yeluri9

Thanks All ,

Finally did it .


Step 1: Created oracle Function .(Function passing values into table)

Step 2 : Created event Studio ( Passing filter to reports and ever min by event trigger)