06-09-2008 8:40 AM
Hi all,
Using code (in a report1) ...i want to execute a report (report2) in background.....but at the same time i want to pass data (an internal table and a variable) to that report2.
is it possible to pass data like internal table to a executable report and at the same time pass the data to that report.
Thanks in advance.
Thanks and Regards,
Sushil.
06-09-2008 8:52 AM
If the parameter values are extensive then you'll probably need to persist them somewhere, at least for the time the job takes to run... without creating a custom table you could, for example, write them to a dataset that the background job could run... or use an INDX-type table as described in
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3c2c358411d1829f0000e829fbfe/content.htm - use the "import" equivalent in the batch job to get the value back.
Try to ensure the batch job tidies up afterwards so these parameter files don't hog space (and maybe have a tidy-up program that runs once a week to be sure that any remaining "garbage" is disposed of).
Jonathan
06-09-2008 8:59 AM
Jonathan,
you mean to say that ..... report1 will place the file on application server with all the data that is required for report2...
and after scheduling report2 in background ,...... the report 2 must read the file and then delete it,,,,,
the data is extensive,,, i want to pass on 1,00,000 records to that report ,... so passing it via a dataset,,,wont hamper performance..??
Is there any other direct way to do it,,,,,,,??
Thanks ,
Best Regards,
Sushil.
06-09-2008 10:00 AM
Hi, Try to pass required parameters to the Report 2 from Report 1 and select the data in the report 2 itself instead of sending internal table.
Regards
06-10-2008 12:32 AM
I think you may want to describe the requirement a bit more extensively - if you are identifying 1 million records in an online process then you probably already have a potential performance problem. If you muse on the way the data will have to get from the online program to the batch program, any method you choose will need to store the values somewhere until the background process can pick them up and thus the background job will "pause" while it re-reads the values. Perhaps the background process should be doing more of the work in the first place - alternatively, can the online process just finish the process of these 1 million rows of data?
Jonathan