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,
    Rahul

    Hi 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 Patric

    online 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...

  • Background process

    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.K

    Hi 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,
    Choksi

    Hello,
      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.
    Navin

    You 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

  • BACKGROUND PROCESSING, REPORT NOT LOADING, "OBJECT NOT SET TO INSTANCE..."

    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....
    MMS

    See  [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