Report Execution - Background Process
Hi Friends,
I have developed a report program.
I have also created a transaction code for executing it.
Now the user needs to execute this program as a background job.
I have tried with SM36 and SM37 transactions. Here, you need to set the variants and time for execution.
But the user has lots of selection criteria and setting the variants for this requirement is highly impossible.
Kindly let me know whether I can add any additional statements in the program so that the program executes as a background process when initiated th' the selection screen / transaction code.
Kindly provide your suggestions.
Thanks in advance.
Hi Karthik,
Looks like a wrapper ABAP program is required to meet your requirement. This program can be called in the background and in turn can submit the report program that you have created to achieve the actual functionality.
In this wrapper program, you need to create a dynamic variant using FMs (search RSVARIANT in SE37). Here you can populate the fields of the selection screen based on any complex criteria as you mentioned using ABAP statements. The dynamic variant is similar to the variants created on the selection screen.
Once you have the variant (dynamic) ready you can create a background job and submit it within this wrapper program, for which you again have to use the FMs (search createjob*, and go to the function group).
You have to release the submitted job and you can get the status of the job while it is running using the standard FMs provided for this.
Finally, you can create a spool list for the wrapper program that can detail the status of the submitted job.
It is a good idea to delete the dynamic variant once it ahs been used because if required again, it can be created again. If the dynamic variant is created daily or several times a day, it is definitely good to delete it after the use. The right place to do deletion is at the end of the wrapper program after confirming that the job submitted has completed. Or as an alternate strategy, all variants prior to a week can be deleted when the wrapper program runs today (we are using this strategy).
I have used this successfully.
Hope this helps.
Thanks
Sanjeev
Similar Messages
-
How run a report in background process ?
Hi Experts,
I wrote a code in which I am have multiple selection screens....means in first screen there will 3 radio buttons.
So, depending upon the radio button selected, the other selction screen will be displayed...
So, here i want to run a report in background process...But in menubar im not able to find 'program'.
So, please help me this to run my report in background process.. with any simple code...
Thanks,
Rocky.Hi,
Try to see this example and adapt it for your case:
constants : c_jobname like tbtcjob-jobname value 'ZRFC_CM_38',
c_jobclass like tbtcjob-jobclass value 'A',
c_x type c value 'X',
c_msgclass type arbgb value 'ZXXXSD',
c_error type bapi_mtype value 'E',
c_status type bapi_mtype value 'S',
c_msg1 type msgnr value '177',
c_msg2 type msgnr value '178'.
data : v_jobcount like tbtcjob-jobcount.
ranges:
r_auart for vbak-auart,
r_wbstk for vbuk-wbstk,
r_mtart for mara-mtart,
r_reswk for ekko-reswk,
r_vtweg for vbak-vtweg.
call function 'JOB_OPEN'
exporting
jobname = c_jobname
importing
jobcount = v_jobcount
exceptions
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
others = 4.
if sy-subrc = 0.
Assignment of Ranges
append lines of:
distribution_channel to r_vtweg,
order_type_range to r_auart,
status_range to r_wbstk,
material_type_range to r_mtart,
plant_range to r_reswk.
Submit program in background
submit z_beve_salesorder_list
with p_spart = division
with p_file = file_name
with p_land1 = country
with s_vtweg in r_vtweg
with s_auart in r_auart
with s_wbstk in r_wbstk
with s_mtart in r_mtart
with s_reswk in r_reswk
via job c_jobname
number v_jobcount
and return.
Close the Job
call function 'JOB_CLOSE'
exporting
jobcount = v_jobcount
jobname = c_jobname
strtimmed = c_x
exceptions
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
others = 9.
if sy-subrc = 0.
Status Message
return-type = c_status.
message id c_msgclass
type c_status
number c_msg1
into return-message
with c_jobname
sy-datum
sy-uzeit.
else.
Error Message
return-type = c_error.
message id c_msgclass
type c_error
number c_msg2
into return-message
with c_jobname.
endif.
endif.
Regards. -
Submit Report (Regarding Background Processing)
Hi Guru's,
I want help regarding Background Processing.
I have developed a program which is running fine in forground but in Background mode no values are comming.
All values are becomig Zero.
Plz help.
*--- Submit Report for 'COGI' (Postprocessing of Error Records from Automatic Goods Movements)
SUBMIT coruaffw USING SELECTION-SCREEN '1000'
WITH r_cumul = 'X'
EXPORTING LIST TO MEMORY
AND RETURN.
*---- Get the List
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = it_list_tab
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
*--- Convert to Ascii
CALL FUNCTION 'LIST_TO_ASCI'
TABLES
listobject = it_list_tab
listasci = it_asci_tab
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE i000 WITH 'Problem in converting LIST to ASCII'.
ENDIF.
DESCRIBE TABLE it_asci_tab LINES w_cogi.
w_cogi = w_cogi - 5.
CALL FUNCTION 'LIST_FREE_MEMORY'
TABLES
listobject = it_list_tab.Hi Arbind,
You have used return you need to add the addition with.Try this way hope it works
SUBMIT zreport EXPORTING LIST TO MEMORY
AND RETURN
WITH P_1 = P_1
WITH P_2 = P_2
WITH P_3 = P_3
WITH S_4 IN S_4
WITH S_5 IN S_5
WITH S_6 IN S_6. -
Execute MCSI report in background : process Output
Hello Folks,
I am working on Ecc 6.0 . i executed the report MCSI (RMCY9200) in background .
I need to process the output of that Job , But could not find any spool for the same job ...
Then i came to know that the Output of the job has to be seen from the Select Version option with the same Report MCSI(tcode)...
But now i have no idea, as how to process that output through an abap program...
Experts, please throw sum light, as how i can process it through an abap program ?
Thanks & regards
Sonal...Hi Rajani,
This is because of the printer specification selected while running/scheduling the job.
Please follow the below steps to get it corrected:
1) Go to SE38, enter the program name and press F8
2) Enter the selection parameters and from menu click Program -> Execute in Background
3) Now you need to select *Properties* button at below
4) Click on Format in the Next window
5) Select one which format with maximun WIDTH ot the width which works for you.
6) Save the Settings and run the job
Hope this helps!
Regards
Shital -
Data of alv report in excel file in background processing using open datas
Hi Experts,
I have developed report for purchase register . if i execute this report in background process i am not able to get the downloaded file in excel and output is also not coming properly, columns are going to overlap.
i used open dataset read dataset and close dataset but still problem is not solved. so if anyone have code with this and also which will have concatenate statement in the code send it.
Regards,
RahulHi Rahul,
Ur code shud be like below:
DATA : l_filename2 TYPE string,
v_extn.
SPLIT p_filename AT '.xls' INTO l_filename2 v_extn.
CONCATENATE l_filename2 'downloaded' INTO l_filename2 SEPARATED BY '_'.
CONCATENATE l_filename2 'txt' INTO l_filename2 SEPARATED BY '.'.
OPEN DATASET l_filename2 IN TEXT MODE FOR OUTPUT ENCODING DEFAULT.
IF sy-subrc <> 0.
MESSAGE e499(sy) WITH text-e02.
ENDIF.
LOOP AT it_order_number INTO wa_order_number.
TRANSFER wa_order_number TO l_filename2.
ENDLOOP.
CLOSE DATASET l_filename2.
Now, go to tcode AL11 and check it in the Application server itself.
Hope this helps,
Regards,
Arnab. -
Report as batch process?
Can we run a Z program or report as background process or batch process? if yes, how?
Hi,
1. Go to SE38 give the program name and then from Menu path Program->Execute->Background. You need create the variant for selection screen
2. Go to SE38 give the program name and then execute on the selection screen goto Menu path Program->Execute->Background. -
Background processing of interactive alv lists
Hi,
I have an interactive alv list which works fine with online processing. When run in background it only create spool for the first list. What can be a solution other than merging all the secondary alv list to the primary list level. Can we create alv list (for background proesiing mode) for more than one internal table. (I think normally we can have only one internal table displayed in a list using reuse_alv). Please inform me if further details has to be published.
Thanks and regards,
Rajeeve Patriconline after first display user can interact with the report and so the secondary report can be displayed....now in background mode if u run it spools out first report...Now, someone has to interact with this report so that second report can be shown...But user can't interact with the first report in background process.....so, it might be that if report is running in background then the 2 reports needs to be merged and shown in one report...
-
Hi Experts,
I have developed report for purchase register . if i execute this report in background process i am not able to get the downloaded file in excel and output is also not coming properly, columns are going to overlap.
i used the functional module SAP_CONVERT_TO_XLS_FORMAT, but it is coming without data i.e excel file is blank.So tell me How to download excel file in background process
directly? If u have reference code send me.
Regards,
Balu.KHi Bala,
Below is the sample code...
PARAMETERS: p_file TYPE fileextern DEFAULT '/sapout/xyz'.
File on Application Server
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE.
Transfer the content.
LOOP AT gt_output INTO gs_output.
TRANSFER gs_output TO p_file LENGTH 1000.
ENDLOOP.
CLOSE DATASET p_file.
Hope it will help.
About SPAD, follow the below steps.
Goto SPAD-> Full Administartion-> Device Types-> Format Types->
Check for the format X_65_1024/4.
This is the maximum allowed size format with 65 lines and 1024 charcters.
If its there you can use it.
Or create a new format with 65 lines(20000 lines are allowed without page breaks) and 1024 columns(maximum allowed) Z_65_1024.
Then copy the standard Device type to ZSAPWIN and attach the new format Z_65_1024.
Then copy the Output device LOCL to ZLOCL and assign device type ZSAPWIN.
Then while sheduling jobs in background you can use ZLOCL with the new fromat Z_65_1024.
BR/Manas -
Background processing in ALV Oops
Hi all,
I have requirement to execute a report in background processing.I have to create report using classes.
Iam using class cl_gui_alv_grid for creating report.When iam executing report in background am getting Fatal errror-GUI can not be reached.
Regards,
Srilatha.Hi,
The issue is bcz. in background screen container is not recognized.
Change the code as follows:
SET PF-STATUS 'SCREEN_100'.
SET TITLEBAR 'xxx'.
<b>*if program is run in background
CALL METHOD cl_gui_alv_grid=>offline
RECEIVING
e_offline = off.
IF off IS INITIAL.
IF container1 IS INITIAL.
CREATE OBJECT container1
EXPORTING
container_name = 'CC_ALV1' .
ENDIF.
ENDIF.
CREATE OBJECT g_grid1
EXPORTING
i_parent = container1.</b>
PERFORM prepare_field_catalog.
PERFORM exclude_button.
PERFORM display_alv.
Best regards,
Prashant -
Background process data format
Dear all,
Kindly help that when we run any report in background processing its output format not display as per excel .
Like Lines are overlapping
Kindly guide.
Regards,
ChoksiHello,
In my opinion, some specific SAP notes have to be applied. Kindly check the same.
Regards
Mahesh -
How to execute report in Background from Dialog process?
How, or what is the best way, to lauch an executable program (report) into the background from a dialog program (dynpro)?
<b>Example:</b> The SUBMIT...AND RETURN still executes the called program before it returns control to the calling program. I just want the report to be kicked off and the dialog to continue as normal. I do not want the report execution time to affect the dialog process.
Thanks in advance for your time.Hi Nablan, I'm also trying to do parallel processing and created a function module that kicks of another report program.
However, the process doesn't seem to work. The Main program runs from start to finish but the called program in the function module doesn't seem to run. When I used the option STARTING NEW TASK task name the code ran but in the foreground. I don't want to use this option as it runs in the foreground and SAP limits one to six sessions. Is there something I'm missing in the attributes of the function module I created. Currently the attributes are: Processing type Remote enable module and it's set to start immediately. I had used Normal function module initially but this did not work with the STARTING NEW TASK task name option.
Below are the codes segements I used.
In my main program I have the following code segement
CALL FUNCTION 'Z_CA_PROG_CALL'
IN BACKGROUND TASK
EXPORTING
zprogram = 'ZCA_TEST1'
EXCEPTIONS
program_call_failed = 1
invalid = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
COMMIT WORK.
In the function module I have the following code.
FUNCTION z_ca_prog_call.
""Local interface:
*" IMPORTING
*" VALUE(ZPROGRAM) LIKE ZCA_INTERFPROG-ZPROGRAM
*" EXCEPTIONS
*" PROGRAM_CALL_FAILED
*" INVALID
SUBMIT (zprogram).
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
RAISE program_call_failed.
WHEN OTHERS.
RAISE invalid.
ENDCASE.
ENDIF.
ENDFUNCTION. -
Crystal Reports VS 2008 "The request could not be submitted for background processing"
Hi,
I am going to try to explain this issue the best I can. Please let me know if you need any other information or have any ideas as I have exhausted my resources. We have an ASP.NET application that has highly formatted crystal reports in them that the users can export as PDFs. All reports export without a problem when the application is run off of our desktops. The reports use a sql server authenticated user, executing stored procedures, and each subreport is linked by the main parameter. We are using Visual Studio 2008 version 3.5 SP1 with Crystal Reports Basic for Visual Studio 2008 on Windows 7 Enterprise SP1. We have designed the reports in Crystal Reports XI Release 2 (11.5.12.1838) and imported them into the ASP.NET application. When trying to export the reports as PDFs from the development or production servers, we get the error message below for some, not all, reports:
System.Runtime.InteropServices.COMException (0x800002AD): Error in File C:\Windows\TEMP\KeyAccountProfile {9FA5C095-77A2-425D-AC6B-8BB66B435336}.rpt: The request could not be submitted for background processing. at CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(ExportOptions pExportOptions, RequestContext pRequestContext) at CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)
We have cleared the temp directory on the servers before exporting and are still receiving the error. We have installed Crystal Reports Basic Runtime for Visual Studio (10.5.2.0) on both servers. I have identified the underlying issue to one stored procedure/subreport that is causing the report to fail. The weird thing is, when we change the connection to point to development, the stored procedure/subreport runs fine for the report that generates an error when run from production, and the data is the exact same. I have tried rebuilding the subreport but the error still appears even though it runs fine for other reports.
I have been through the document below, and othe similar issues in the forums, but still have not found a resolution. I was trying to use the "modules" application put since this is an ASP.NET application I am unsure of which executable I should be looking at.
http://www.sdn.sap.com/irj/boc/go/portal/prtroot/docs/library/uuid/50a6f5e8-8164-2b10-7ca4-b5089df76b33?QuickLink=index&overridelayout=true&36837934524320
Thanks in advance for your assistance,
Brad Hood
06-26-14
OK.. I did some more investigating on this today. I have found out when I move the sub report that generates the error under another sub report, the sub report in question runs without issue. But when I try and move the sub report that produces the error above any other sub report, the error still generates. Can this get any weirder.... FYI.. there is a total of ten sub reports on this report.Hi Brad
I'm not sure that Modules would show us anything in this case, so let's try a few other things:
1) Make sure you are using SP 1 for Crystal Reports Basic Runtime for Visual Studio:
Crystal Reports for VS 2005 and VS 2008 Updates & Runtime Downloads
2) Seeing as this works on dev, this may be some db inconsistency so enabling the report option "Verify on 1st Print" will be a good idea.
3) Double check the database client and make sure the same client is used on dev and deployed systems. Actually I take back my Modules negative as this is where it may prove useful. Once you have the Modules logs, look at who is loading the crpe32.dll, then look at that process and see the client dlls.
4) Check the printer driver; see if there are any updates. Try a different printer driver.
Ten subreports is not too bad, though not that good either as you are loading the report engine with at minimum 11 simultaneous reports (each subreport is considered to be a report). If a subreport is in a details section and the details section returns a 100 records, you are running 100 + 1 reports. This may lead to memory issues, which may lead to the error.
If I was a betting man, I'd put most of my money on the printer driver (based on your last addition to your post). What ever money I had left would go to some database issue (be it actual data or client related).
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter -
ABAP Custom Report (ALV Format) in Background Processing
Hi
I am not the hardcore ABAP Person. But want to know about the detail fact of the ABAP Custome Reports. The question is can we do the background processing for the ABAP Custome Report in ALV Format.
If Yes ..do we require to have any additional Function/code to get the spool in ALV Format. I saw the comments that the output will look like the mess.
Please share your comment or any useful documenation on this. We are in ECC 6.0
Thanks in advance..and yes it will be rewared by points.
NavinYou can use alv's in background using docking containers, but the display wont be interactive. If you search the forum you will see tons of threads which talk about running ALV's in background.
For the output to be interactive, you can run the report in foreground and do the data processing in background.
Refer this link:
Displaying ALV Grid in Background Job -
Post Author: thecoffeemachine
CA Forum: .NET
I already posted this message in other Web sites, but I am almost getting crazy here and I need help:
HI:
The Web application I am testing was having several issues related to loading Crystal Reports. It was fixed and I do not know which of the 1000 things I did to fix it; but now it began, again, to have the same behavior after I had a conflict with another Web site that was in the same server.
The thing is that I had another virtual directory where resided a copy of the same Web app. for testing purposes/working with the Visual Studio. The reports were loading all fine, very fast, all perfect... And suddenly the assemblies of one Web site and the other began to "blend" together and..... well the same behaviors appeared again. I tried to copy the last stable backup and rebuild the Web app... but it did not work.
At the very first time that one requests the report, it shows without problem. At the second time it shows an error message related to "cannot submit to background processing", and sometimes "object not set to an instance.." ... and on the third time it just never shows up and the app. becomes unresponsive. I have to close the window and request the Web site again in another browser window. If I wish to see the report again I have to wait for hours until it shows it.
I am using Visual Studio 2003 and the Crystal Report version that was shipped with that Visual Studio version. I am working with Windows Server 2003 and SQL Server 2000. Below is the VB code:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.SqlConnection1.Open()
Me.SqlSelectCommand1.Parameters("@CourseCode").Value = Request.QueryString("CD") Me.SqlSelectCommandReferences.Parameters("@CourseCode").Value = Request.QueryString("CD") Me.SqlSelectCommandTextbook.Parameters("@CourseCode").Value = Request.QueryString("CD") Me.SqlSelectCommandObjectives.Parameters("@CourseCode").Value = Request.QueryString("CD") Me.SqlSelectCommandTopicData.Parameters("@CourseCode").Value = Request.QueryString("CD") Me.SqlSelectCommandCourseOutcomes.Parameters("@CourseCode").Value = Request.QueryString("CD")
Me.SqlDataAdapterMainData.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseSyllabusData") Me.SqlDataAdapterReferences.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseReferenceData") Me.SqlDataAdapterTextBook.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseTextbookData") Me.SqlDataAdapterObjectives.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseObjectivesData") Me.SqlDataAdapterTopicData.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseTopicData")
Me.SqlDataAdapterCourseOutcomes.Fill(Me.DtsSyllabusCompleteData1, "procWebSelectCourseOutcomes")
Dim myExportOptions As CrystalDecisions.Shared.ExportOptions Dim myDiskFileOptions As CrystalDecisions.Shared.DiskFileDestinationOptions Dim myExportFile As String Dim myReport As New ABETFormat myReport.SetDataSource(Me.DtsSyllabusCompleteData1)
myExportFile = "C:UNTempPDF" & Session.SessionID.ToString & ".pdf" myDiskFileOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions myDiskFileOptions.DiskFileName = myExportFile myExportOptions = myReport.ExportOptions
With myExportOptions .DestinationOptions = myDiskFileOptions .ExportDestinationType = .ExportDestinationType.DiskFile .ExportFormatType = .ExportFormatType.PortableDocFormat End With
myReport.Export()
Response.ClearContent() Response.ClearHeaders() Response.ContentType = "application/pdf"
Response.WriteFile(myExportFile) Response.Flush() Response.Close() System.IO.File.Delete(myExportFile) Me.SqlConnection1.Close()
End Sub
I already have tried moving the Crystal Reports dll´s to the bin directory. ..... I have tried calling the Garbage Collector at page unload...I also have checked, inside the report, that the database is "up to date"... ... recycling the worker process of the IIS... etc...
I see that, in debbuging mode inside the Visual Studio, when the page loads the debbuging window shows a message notifying that the symbols related to the Crystal Reports dll's could not be loaded.
Should I need to modify the default properties of the database? I checked "database is case insensitive", "use indexes or server for speed".. I have tried checking and unchecking the box "performing grouping on server"
Oh by the way, my report has about 4 subreports in it. Each report loaded shows 1 or 2 pages.
ANY HELP WILL BE EXTREMELY APPRECIATED....
MMSSee [Crystal Reports For Visual Studio 2005 Walkthroughs|https://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/2081b4d9-6864-2b10-f49d-918baefc7a23&overridelayout=true] article, page 107 and on for details on how to use Crystal reports in session.
Ludek -
Processing of OO ALV reports in background
Hello,
I am using Object Oriented ALV grid dispaly in Report, I am trying to process the report in Background
The job is cancelled issuing a message GUI screen not reached.
Can we run the OOALV Grid display in Background, if not any other way to overcome this issue.
Thanks,
Ravi.Just search the Forum, you will find the answer for your question.
Hint: cl_gui_alv_grid=>offiline search with that key word.
Maybe you are looking for
-
Sharing internet with a Dell notebook
Greetings all, I connect my Mac Pro through the ethernet port into the cable modem. My significant other has, unfortunately, a Dell notebook, and would also like to use the internet. We recently received a Linksys Wireless-G Access Point as a gift, a
-
SQL error while installing ECC5
Hi guru's We are facing database error as follow, while installing the ECC5. (DB) ERROR: db_connect rc = 256 (DB) ERROR: DbSlErrorMsg rc = 99 this error occurred in database load step. We have already set the proper environmental variables. My instal
-
Backup fail after kernel patches updated
Hello friends i have update kernel pathes. then backup is failing cont. now my patch level is 114. im getting error please suggest. Job started Step 001 started (program RSDBAJOB, variant &0000000000235, user ID BASIS1) Execute logical command BRCON
-
safari quits on reopening laptop always and sometimes while using , with this in crash report. Library/Application Support/.iWellSoftAllto.tmp google chrome continues to work.
-
Hello I wanted to know is it possible to define the approval flow in the Purchasing using AME. Actually we have a scenario when an PO notification is sent to an approver and if that approver is terminated or on a long vacation system should automatic