Closing the Background report engine

I use a menu that can call several reports, and when they open, the Reports Background Engine runs. I understand why it is useful to keep this open while the main app is on, but it does not close out automatically when the app closes. Is there a command that will do this?
Thanks,
Sara

I Guess,
Add_Parameter(pl_id, 'ORACLE_SHUTDOWN', TEXT_PARAMETER, 'YES') will do (pl_id is the parameter list that you must have created to run each individual report)

Similar Messages

  • Is it possible to use the JAVA Report Engine SDK to modify DESKI reports?

    Post Author: Nadine
    CA Forum: JAVA
    Hi, is it possible to add a complex filter to a DESKI report using the JAVA report engine sdk?
    In the developer tutorials for this API, I've only found references to WEBI in terms of modifying reports, though it seems to be possible to view DESKI reports with this sdk.
    I am a bit confused in terms of the scope of this API and how I would use it in regard to DESKI.
    Many thanks for any suggestions!
    Nadine

    Post Author: Ted Ueda
    CA Forum: JAVA
    Current (XI R2) version of ReportEngine API only supports refreshing/viewing functionality for Desktop Intelligence documents.  Document modification/creation is only supported with Web Intelligence documents.  Queries aren't modifiable for Deski using ReportEngine API - you can only do so using Desktop Intelligence Reporter SDK, which is COM based.Sincerely,Ted Ueda

  • Report Engine API 4.0 (upgrade to 4.1)

    Hi,
    In the incoming days we will face the upgarde of our current SAP BI Platform (4.0 SP8) to next minor release (4.1). One of most challenging points is to ensure the proper behaviour of existing SDK customizations based on Report Engine API available at 4.0. I know that SAP is promoting use of Restful Web Services as a way to implement functionality previously delivered by JAVA API but my question is. Will current Report Engine API based developments work under in 4.1 release? In other words, has SAP planned an smooth transition from Report Engine API to restful Web Services scenario (compatibility scenario ) or code will have to be completely rewriten ?
    Thanks,

    Hi Alfons,
    As per the current situations Report Engines SDKs are still the same in BI 4.1 likewise in BI 4.0 all patches. You can perform the below functionalities with BI 4.x Report Engines SDK :
    - Export Webi Report to some other format.
    - View a Webi Report.
    - Partial drilling.
    - Save prompts in Webi reports etc.(Most of the functionalities are deprecated like schedule with prompts etc.)
    On the other hand with Webi Raylight REST SDKs you can leverage the workflow of legacy functional parity of BusinessObjects XI 3.1 Report Engines SDKs.
    By seeing as a future, it looks like most of the new development & enhancement are happens in the Webi REST world. So planning to rewrite the code in terms of REST SDKs is beneficial.
    As you are talking about the compatability, Report Engines Java SDKs are same upto BI 4.1 Patch 4 release. But it might be possible that in future Report Engines Java SDKs are totally deprecated. You can also refer the Object Model Digram of Report Engines SDKs which gives you list of deprecated interfaces, classes & methods.
    Hope it helps.
    Thanks,
    Shailendra

  • Problem while sending Abap list to mail in the background

    Hi all,
    I am sending abap list to email in the background.
    My code as folllows:
    DATA: so_ali LIKE solisti1 OCCURS 100 WITH HEADER LINE.
      DATA: listobject LIKE abaplist OCCURS 0 WITH HEADER LINE.
      DATA: objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.
      DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
      DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.
      DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.
      DATA: doc_chng LIKE sodocchgi1.
      DATA: tab_lines LIKE sy-tabix.
      DATA: lt_user TYPE soud3 OCCURS 0 WITH HEADER LINE.
    *Start of modification Tix 14411 for transport request D82K929044
      DATA: it_user like SODLIENTI1 occurs 0 with header line.
    *End of modification for Tix 14411 for transport request D82K929044
    CLEAR: listobject, so_ali, objpack, objhead, objtxt, reclist, doc_chng.
      REFRESH :
         listobject, so_ali, objpack, objhead, objtxt, reclist.
    creation of the document to be sent
      doc_chng-obj_name = 'BOFAREPORT'.
      WRITE sy-datum TO doc_chng-obj_descr.
      CONCATENATE 'Bank Activity Report for :'(025)
              company_itab_tr-company_code '-' doc_chng-obj_descr INTO
              doc_chng-obj_descr.                               "AN052799
      objtxt = 'This is the bank activity report received for'(026).
      APPEND objtxt.
      CONCATENATE company_itab_tr-company_code '-'
                  company_itab_tr-company_name '-'
                  company_itab_tr-company_city INTO
                  objtxt.
      APPEND objtxt.
      WRITE sy-datum TO objtxt.
      CONCATENATE 'Date Received : '(027) objtxt INTO objtxt.
      APPEND objtxt.
      WRITE sy-uzeit TO objtxt.
      CONCATENATE 'Time Received : '(028) objtxt INTO objtxt.
      APPEND objtxt.
      DESCRIBE TABLE objtxt LINES tab_lines.
      READ TABLE objtxt INDEX tab_lines.
      doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
    Creation of the entry for the compressed document
      CLEAR objpack-transf_bin.
      objpack-head_start = 1.
      objpack-head_num = 0.
      objpack-body_start = 1.
      objpack-body_num = tab_lines.
      objpack-doc_type = 'RAW'.
      APPEND objpack.
    Creation of the document attachment
      CALL FUNCTION 'SAVE_LIST'
        EXPORTING
          list_index         = '0'
        TABLES
          listobject         = listobject
        EXCEPTIONS
          list_index_invalid = 1
          OTHERS             = 2.
      CALL FUNCTION 'TABLE_COMPRESS'       "Schneller Tabellencopy
           TABLES
                in         = listobject
                out        = so_ali.
      DESCRIBE TABLE so_ali LINES tab_lines. "objbin
      objhead = 'BOFA-REPORT'. APPEND objhead.
    Creation of the entry for the compressed attachment
      objpack-transf_bin = 'X'.
      objpack-head_start = 1.
      objpack-head_num = 1.
      objpack-body_start = 1.
      objpack-body_num = tab_lines.
      objpack-doc_type = 'ALI'.
      objpack-obj_name = 'BOFAREPORT'.
      objpack-obj_descr = 'Bank Activity Report'.
      objpack-doc_size = tab_lines * 255.
      APPEND objpack.
    Completing the recipient list
      SELECT * FROM zwfi_yefap_paypr WHERE
                           bukrs = company_itab_tr-company_code.
        IF NOT  ( zwfi_yefap_paypr-list1 IS INITIAL ).
          clear it_user[].
          CALL FUNCTION 'SO_DLI_READ_API1'
           EXPORTING
             DLI_NAME                         = zwfi_yefap_paypr-list1
          DLI_ID                           = ' '
             SHARED_DLI                       = 'X'
        IMPORTING
          DLI_DATA                         =
           TABLES
             DLI_ENTRIES                      = it_user
           EXCEPTIONS
             DLI_NOT_EXIST                    = 1
             OPERATION_NO_AUTHORIZATION       = 2
             PARAMETER_ERROR                  = 3
             X_ERROR                          = 4
             OTHERS                           = 5
          IF SY-SUBRC = 0.
            loop at it_user.
              if it_user-member_typ = 'A'.
                reclist-receiver = it_user-member_adr.
                reclist-rec_type = 'U'.
                reclist-com_type = 'INT'.
                reclist-notif_del = 'X'.
                reclist-notif_ndel = 'X'.
                append reclist.
              elseif it_user-member_typ = ''.
                reclist-receiver = it_user-member_nam.
                reclist-rec_type = 'B'.
                reclist-express = 'X'.
                append reclist.
              Endif.
            endloop.
          ENDIF.
        ENDIF.
        IF NOT ( zwfi_yefap_paypr-list2 IS INITIAL ).
          clear it_user[].
          CALL FUNCTION 'SO_DLI_READ_API1'
           EXPORTING
             DLI_NAME                         = zwfi_yefap_paypr-list2
          DLI_ID                           = ' '
             SHARED_DLI                       = 'X'
        IMPORTING
          DLI_DATA                         =
           TABLES
             DLI_ENTRIES                      = it_user
           EXCEPTIONS
             DLI_NOT_EXIST                    = 1
             OPERATION_NO_AUTHORIZATION       = 2
             PARAMETER_ERROR                  = 3
             X_ERROR                          = 4
             OTHERS                           = 5
          IF SY-SUBRC = 0.
            loop at it_user.
              if it_user-member_typ = 'A'.
                reclist-receiver = it_user-member_adr.
                reclist-rec_type = 'U'.
                reclist-com_type = 'INT'.
                reclist-notif_del = 'X'.
                reclist-notif_ndel = 'X'.
                append reclist.
              elseif it_user-member_typ = ''.
                reclist-receiver = it_user-member_nam.
                reclist-rec_type = 'B'.
                reclist-express = 'X'.
                append reclist.
              Endif.
            endloop.
          ENDIF.
        endif.
      ENDSELECT.
      CLEAR error_text.
    Sending the document
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          document_data              = doc_chng
          put_in_outbox              = 'X'
          COMMIT_WORK                = 'X'
       TABLES
          packing_list               = objpack
          object_header              = objhead
          contents_bin               = so_ali  "objbin
          contents_txt               = objtxt
          receivers                  = reclist
        EXCEPTIONS
          too_many_receivers         = 1
          document_not_sent          = 2
          operation_no_authorization = 4
          OTHERS                     = 99.
      CASE sy-subrc.
        WHEN 0.
          write: / 'Result of the send process:'.
          LOOP AT reclist.
            write: / reclist-receiver(48), ':'.
            IF reclist-retrn_code <> 0.
              write 'The document was sent'.
            else.
              CONCATENATE 'The document could not be sent to : '(029)
                         reclist-receiver(48) INTO error_text.
            ENDIF.
          ENDLOOP.
        WHEN 1.
          error_text = text-030.
        WHEN 2.
          error_text = 'Document could not be sent to any recipient'(031).
        WHEN 4.
          error_text = 'No send authorization'(032).
        WHEN OTHERS.
          error_text = 'Error occurred while sending'(033).
      ENDCASE.
      IF NOT ( error_text IS INITIAL ).
        CONCATENATE 'Mail send Error : '(034) error_text INTO error_text.
       PERFORM WRITE_LOG(YEFAP_APERAK) USING ERROR_TEXT.
        PERFORM write_log(zwfi_yefap_bank_report) USING error_text.
      ENDIF.
      CALL FUNCTION 'LIST_FREE_MEMORY'
        TABLES
          listobject = listobject
        EXCEPTIONS
          OTHERS     = 1.
    When I excute the same program in the foreground, Attachment in the mail is showing all the pages of the report output.
    But when I excute the same program in the background only last page is shown in the mail attachemnt.
    I think the problem is with the function module SAVE_LIST function module.
    I replaced the SAVE_LIST function module with  LIST_TO_MEMORY and LIST_FROM_MEMORY function modules.
    It is also giving the same result.
    In the foreground excution email attachemnt showing all the pages and in the background excution only last page is shown in the attachemnt.
    I want all the pages dispalyed in the background mode excution in the email attachment.
    How to slove this issue.
    Thanks in advance.
    Raja

    I have seen this problem before.   Please have a look at this example program.  This works very well when ran in background as well as foreground
    * This program works in the background,
    report zrich_0003 .
    data: maildata like sodocchgi1.
    data: mailtxt like solisti1 occurs 10 with header line.
    data: mailrec like somlrec90 occurs 0 with header line.
    data: list type table of abaplist with header line.
    data: ascilines(1024) type c occurs 0 with header line.
    data: htmllines type table of w3html with header line.
    parameters: p_check.
    start-of-selection.
      submit zrich_0004 exporting list to memory and return.
      call function 'LIST_FROM_MEMORY'
           tables
                listobject = list
           exceptions
                not_found  = 1
                others     = 2.
      call function 'LIST_TO_ASCI'
           tables
                listobject         = list
                listasci           = ascilines
           exceptions
                empty_list         = 1
                list_index_invalid = 2
                others             = 3.
      call function 'WWW_HTML_FROM_LISTOBJECT'
           tables
                html       = htmllines
                listobject = list.
      clear: maildata, mailtxt, mailrec.
      refresh: mailtxt, mailrec.
      maildata-obj_name = 'TEST'.
      maildata-obj_descr = 'Test Subject'.
      loop at htmllines.
        mailtxt = htmllines.
        append mailtxt.
      endloop.
      mailrec-receiver = '[email protected]'.
      mailrec-rec_type = 'U'.
      append mailrec.
      call function 'SO_NEW_DOCUMENT_SEND_API1'
           exporting
                document_data              = maildata
                document_type              = 'HTM'
                put_in_outbox              = 'X'
           tables
                object_header              = mailtxt
                object_content             = mailtxt
                receivers                  = mailrec
           exceptions
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                others                     = 8.
      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.
      wait up to 2 seconds.
      submit rsconn01 with mode = 'INT'
                   with output = 'X'
                              and return.
    Regards,
    Rich Heilman

  • Closing the report background engine

    hi friends,
    i have tried using add_parameter function with ORACLE_SHUTDOWN=YES
    BUT THE Engine doesn't close in fact it shows the first report as in prview and the another report which I am trying to run in forms as waiting.
    is there any particular sequence for this syntax?
    manoj

    Manoj,
    you didn't mention a release version. ORACLE_SHUTDOWN=YES was filed as a bug for Forms 6.0 and was fixed for Forms 6i (6.0.8). Using Run_Reports_Object() instead of Run_Product and passing ORACLE_SHUTDOWN=YES as an argument of REPORT_OTHER will work even before.
    Frank

  • Closing the report generating engine automatically

    how can i close the report generating engine after displaying a report automatically ie when closing the report window the report generating engine also need to be closed. now i have to manually close the report background window also and it becomes annoying to users . i am using the rdf files and not rep files.

    There is a parameter ORACLE_SHUTDOWN. Set it to YES.
    When you have large, complex reports, the Reports Background engine sometimes eats lots of memory and leads to GPF. If you have lots of GPF when running a report, you should use this parameter.
    null

  • Closing Oracle Background Engine Window.

    Hello,
    I am working on Oracle Reports 6.0. When I run any report Oracle Background Engine Window opens & show which report is running. But after closing report still that window remains as it is. It there any way to close that window onces I complited report.
    null

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Vijay ([email protected]):
    Hello,
    I am working on Oracle Reports 6.0. When I run any report Oracle Background Engine Window opens & show which report is running. But after closing report still that window remains as it is. It there any way to close that window onces I complited report.
    <HR></BLOCKQUOTE>
    I guess it's designed so that it does not have to reload the Background Engine everytime you run the next report.
    Maybe in your case you do not run reports frequently, but in our office report runs are quite often so it's a feature that is quite welcomed.
    null

  • Closing the Report Viewer causes the application to hang

    Hi,
    Since a few days we are experiencing some problems with the Crystal Reports viewer. When closing a report viewer in our application, the application hangs for a few minutes. The strange thing is, that it only seems to happen on Windows 7 and Windows 2008 R2 Server.
    Our application with the integrated Crystal Report Viewer is running on 2 application servers :
    - Windows 2008 Server, versie 6.0 Build 6002, Service Pack 2
    - Windows 2008 R2 Server versie 6.1, Build 7600
    Crystal Reports version installed on both servers : 12.01.0007.1144
    On the 2008 Server, the application works correctly.
    On the 2008 R2 server, the application hangs for about 5 minutes while closing the report preview window.
    Both server have exactly the same version of Crystal Reports and the same application version.
    I'm having the same issue on a Windows 7 x64 (6.1 Build 7600).
    I've installed all updates and hotfixes up to SP3 Fix Pack (12.3.3.812 / 12.3.2003.812) but I'm still having the same problem.
    We didn't have this problem until a few days ago, so I assume it has something to do with a windows update which only affects Windows 7 and Windows 2008 R2.
    Please advice us with a possible workaround, because our application is distributed to a few thousand users ...
    Some more debug info :
    This is the call of from the main thread when the application hangs :
         [Managed to Native Transition]     
    >     mscorlib.dll!System.__ComObject.ReleaseSelf() + 0x5 bytes     
         mscorlib.dll!System.Runtime.InteropServices.Marshal.ReleaseComObject(object o) + 0x8b bytes     
         CrystalDecisions.Shared.dll!CrystalDecisions.Shared.SharedUtils.ReleaseComObject(object obj = {CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass}) + 0x75 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_EventProvider.Dispose(bool bDisposeManaged = true) + 0x1a2 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ISCDClientDocumentEvents_EventProvider.Dispose() + 0x32 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.DisconnectEventRelay() + 0xfc bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.InternalClose(bool bSetupForNextReport = false, bool bAutoClose = true) + 0x10e bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Dispose(bool bDisposeManaged = true) + 0xad bytes     
         System.dll!System.ComponentModel.Component.Dispose() + 0x12 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.ClearCache(bool clearDocument = true) + 0x9d bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.InternalClose(bool bSetupForNextReport = true) + 0x81 bytes     
         CrystalDecisions.CrystalReports.Engine.dll!CrystalDecisions.CrystalReports.Engine.ReportDocument.Close() + 0x3f bytes     
         SyDelSoftControlLibCrystalReports.dll!SyDelSoft.ControlLib.CrystalReports.cReportForm.Dispose(bool disposing = true) + 0x55 bytes     
         SDProjects.exe!SDProjects.GUI.ReportForm.Dispose(bool disposing) + 0x38 bytes     
    SharedUtils.ReleaseComObject
    Kind regards,
    Frederic Hoornaert

    CrystalReportsDisposeIssue.crpe.Diagnostics.0.log
    --> Form3 closed
    ..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:39:17"
    N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:17"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"7"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"6"
    N/A:-1,Closing engine,Elapsed Time,"2"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:17"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"6"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"5"
    N/A:-1,Closing engine,Elapsed Time,"2"
    --> Form2 closed
    ..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:39:52"
    N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:39:52"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"4"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"3"
    N/A:-1,Closing engine,Elapsed Time,"2"
    --> Form1 closed..\..\src\print\datasource\datasrc2.cpp:535,Releasing subreport data sources,Start Time,"17:40:29"
    N/A:-1,Releasing subreport data sources,Elapsed Time,"1"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:40:29"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"2"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"1"
    N/A:-1,Closing engine,Elapsed Time,"2"
    ..\..\src\crpe\crpe.cpp:791,Closing engine,Start Time,"17:40:29"
    ..\..\src\crpe\crpe.cpp:833,Closing engine,Before close engine use count,"1"
    ..\..\src\crpe\crpe.cpp:858,Closing engine,After close engine use count,"0"
    N/A:-1,Closing engine,Elapsed Time,"100017"
    CrystalReportsDisposeIssue.crpe.functions.0.log
    0xfb8     17:39:17.871          0     PESetUserSessionInfo               0     PEUserSessionInfoW:<StructSize:262><userName:><requestID:22>     IN          21     <==
    0xfb8     17:39:17.871     0     0     PESetUserSessionInfo               0     OUT     PEUserSessionInfoW:<StructSize:262><userName:><requestID:22>          21     <==
    0xfb8     17:39:17.874          3     PEClosePrintJob     report {657D0ECA-BC6A-4EC6-9476-02B77376E07C}.rpt          0     jobN:3     IN          22     <==
    0xfb8     17:39:17.874     36     3     PEClosePrintJob     report {657D0ECA-BC6A-4EC6-9476-02B77376E07C}.rpt          0     OUT     jobN:3          22     <==
    0xfb8     17:39:17.913          0     PECloseEngine               0     void     IN          22     <==
    0xfb8     17:39:17.913     3     0     PECloseEngine               0     OUT     void          22     <==
    0xfb8     17:39:17.923          0     PECloseEngine               0     void     IN          0     <==
    0xfb8     17:39:17.923     3     0     PECloseEngine               0     OUT     void          0     <==
    0xfb8     17:39:52.421          0     PESetUserSessionInfo               0     PEUserSessionInfoW:<StructSize:262><userName:><requestID:23>     IN          0     <==
    0xfb8     17:39:52.421     0     0     PESetUserSessionInfo               1032     OUT     PEUserSessionInfoW:<StructSize:262><userName:><requestID:23>          0     <==
    0xfb8     17:39:52.423          1     PEClosePrintJob     report {F2574C5C-00BC-4627-9A05-B8133D6E6F7D}.rpt          0     jobN:1     IN          0     <==
    0xfb8     17:39:52.423     15     1     PEClosePrintJob     report {F2574C5C-00BC-4627-9A05-B8133D6E6F7D}.rpt          0     OUT     jobN:1          0     <==
    0xfb8     17:39:52.441          0     PECloseEngine               0     void     IN          0     <==
    0xfb8     17:39:52.441     3     0     PECloseEngine               1032     OUT     void          0     <==
    0xfb8     17:40:29.281          0     PESetUserSessionInfo               0     PEUserSessionInfoW:<StructSize:262><userName:><requestID:24>     IN          0     <==
    0xfb8     17:40:29.281     0     0     PESetUserSessionInfo               1032     OUT     PEUserSessionInfoW:<StructSize:262><userName:><requestID:24>          0     <==
    0xfb8     17:40:29.283          2     PEClosePrintJob     report {C78FE11F-6465-478F-83AB-49D8F0C6D64A}.rpt          0     jobN:2     IN          0     <==
    0xfb8     17:40:29.283     24     2     PEClosePrintJob     report {C78FE11F-6465-478F-83AB-49D8F0C6D64A}.rpt          0     OUT     jobN:2          0     <==
    0xfb8     17:40:29.310          0     PECloseEngine               0     void     IN          0     <==
    0xfb8     17:40:29.310     2     0     PECloseEngine               1032     OUT     void          0     <==
    0x1568     17:40:29.315          0     PECloseEngine               0     void     IN          0     <==
    0x1568     17:40:29.315     100018     0     PECloseEngine               0     OUT     void          0     <==

  • Running the alv report  in  background and sending it thro email

    hi,
          i have to run the  alv report in background and send the output through email

    Hi
    Many a times there is a requirement to display ALV Grid (not ALV List) in the background Job. I have checked the SDN Forum for the same and it has been mentioned that ALV Grid cannot be displayed in Background, but the list output of ALV is possible. So user won’t have the actual Grid interface but the List interface.
    There is a workaround to display ALV Grid in Background Job. The only restriction is you can’t schedule the job through SM36. You need to execute the transaction of the report program, fill in the selection screen data and hit Execute.
    The job would be executed in background. User will be able to see the Job Log and Job Status after executing the program. User doesn’t have to go to SM37 to view the job status/log. Once the Job Status is changed to “COMPLETED”, user can click on “DISPLAY SPOOL” to view the ALV Grid.
    Limitations:
    Can’t schedulea background job
    The session should be active until the background job is completed. If the session is closed, then user won’t be able to check the output in ALV Grid. User would be able to check the output through spool or SM37
    Advantages:
    If the spool width is greater than 255 characters, then the entire width could be seen in the output because the output is directed to an ALV Grid and not to spool
    Interface of ALV Grid is available instead of ALV List even though it’s a background job.
    Program won’t give the TIME OUT error
    Steps Required:
    1. Once you execute the program, the following screen would be displayed
    2. Click “Display Job Status” to check the Status of the Background Job
    3. Click on “Display the Job Log” to check the Log
    4. Click on “Display Job Status” to check the Job Status
    5. Click on “DISPLAY SPOOL” to check the spool content once the Job Status is changed to “COMPLETED”. Output is displayed in ALV Grid
    Programs:
    1.  Two different programs needs to be created
    ZPROGRAM_ONE: This is the 1st program, where the selection screen and all the data validations would be done. Error handling for invalid data should be done in this program.
    Once the data validation is done, this program would call the 2nd program ZPROGEAM_TWO. Build the logic to display ALV Grid in this program. The logic will only display ALV in foreground and it won’t be reflected in the spool.
    ZPROGRAM_TWO: This program would fetch all the data and do all the processing. If you want the spool output along with ALV Grid output, then build the logic in this program to display ALV Grid.
    *& Report  ZPROGRAM_ONE                                                *
    REPORT  zprogram_one                            .
    PRASHANT PATIL
    TABLES : mara,
             tsp01.
    type-pools:slis.
    TYPES : BEGIN OF t_mara,
              matnr   TYPE mara-matnr,
              ersda   TYPE mara-ersda,
              ernam   TYPE mara-ernam,
              laeda   TYPE mara-laeda,
            END OF t_mara.
    DATA : i_mara       TYPE STANDARD TABLE OF t_mara,
           wa_mara      TYPE t_mara,
           wa_index     TYPE indx,        " For Index details
           wa_index_key TYPE indx-srtfd VALUE 'PRG_ONE',
           i_jobsteplist     TYPE STANDARD TABLE OF tbtcstep, " For spool number
           wa_params         TYPE pri_params,  " To Get Print Parameters
           wa_jobhead        TYPE tbtcjob,     " To know the status of job
           wa_jobsteplist    TYPE tbtcstep,    " To know the spool
           w_jobname         TYPE tbtco-jobname,  " Job name for bckgrnd job
           w_jobcount        TYPE tbtco-jobcount, " Unique id for bckgrd job
           w_path            TYPE string,         " Upload path
           w_lsind           TYPE sy-lsind,       " Index
           wa_seltab         TYPE rsparams,
           i_seltab          TYPE STANDARD TABLE OF rsparams,
           wa_index1         TYPE indx,        " For Index details
           wa_index_key1     TYPE indx-srtfd VALUE 'PRG_TWO',
           i_fieldcat        TYPE slis_t_fieldcat_alv,
           wa_fieldcat       LIKE LINE OF i_fieldcat.
            CONSTANTS DECLARATION                                        *
    CONSTANTS :
             c_a(1) TYPE c VALUE 'A',
             c_m(1) TYPE c VALUE 'M',
             c_l(1) TYPE c VALUE 'L',
             c_c(1) TYPE c VALUE 'C',
             c_zfdr(4) TYPE c VALUE 'ZFDR',
             c_x(1)    TYPE c VALUE 'X',
             c_locl(4) TYPE c VALUE 'LOCL', " Destination is LOCAL
             c_f(1)    TYPE c VALUE 'F',   " Job Status - Failed
             c_s(1)    TYPE c VALUE 'S',
             c_p(1)    TYPE c VALUE 'P'.
    SELECTION SCREEN PARAMETERS
    SELECT-OPTIONS : s_matnr FOR mara-matnr.
    START-OF-SELECTION.
    Before the export, fill the data fields before CLUSTR
      wa_index-aedat = sy-datum.
      wa_index-usera = sy-uname.
      EXPORT s_matnr
           TO DATABASE indx(st) FROM wa_index ID wa_index_key.
    To Open the Job for background processing
      PERFORM open_job.
    To get the print parameters
      PERFORM get_print_parameters.
    Submit the job in background
      PERFORM job_submit.
    Close the background job
      PERFORM job_close.
    This is the output screen with the buttons ********
    Create 3 buttons DISPLAY SPOOL, STATUS, JOBLOG
      SET PF-STATUS 'ZS001'.
      WRITE: / 'The program is submitted in Background'.
      WRITE: / 'Press DISPLAY SPOOL to see the spool'.
      WRITE: / 'Press STATUS to see the status of the background'.
    AT USER-COMMAND.
    If user presses the 'BACK' button
      IF sy-ucomm = 'BAK'.
        IF  wa_jobhead-status = c_f OR
            wa_jobhead-status = c_a.
          LEAVE TO SCREEN 0.
        ENDIF.
      ENDIF.
    If the user presses the 'DISPLAY SPOOL' Button
      IF sy-ucomm = 'DISPLAY'.
        PERFORM display_spool.
      ENDIF.
    If the user presses the 'JOB STATUS' Button
      IF sy-ucomm = 'STATUS'.
        PERFORM display_status.
      ENDIF.
    If the user presses the 'JOB LOG' Button
      IF sy-ucomm = 'JOBLOG'.
        PERFORM display_job_log.
      ENDIF.
    *&      Form  open_job
          text
    -->  p1        text
    <--  p2        text
    FORM open_job .
    This is to Create a new job which is to be submitted in background to
    process sales order/delivery/invoice
    Here we would get a unique id ( Jobcount ) which identifies our job
    along with the job name which we have assigned to our job
      CONCATENATE sy-uname
                  sy-datum
                  sy-uzeit
                          INTO w_jobname .  " Assign unique jobname
      CALL FUNCTION 'JOB_OPEN'
       EXPORTING
      DELANFREP              = ' '
      JOBGROUP               = ' '
        jobname                = w_jobname
      SDLSTRTDT              = NO_DATE
      SDLSTRTTM              = NO_TIME
      JOBCLASS               =
      IMPORTING
       jobcount                = w_jobcount
    CHANGING
      RET                    =
    EXCEPTIONS
       cant_create_job        = 1
       invalid_job_data       = 2
       jobname_missing        = 3
       OTHERS                 = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " open_job
    *&      Form  get_print_parameters
          text
    -->  p1        text
    <--  p2        text
    FORM get_print_parameters .
      DATA : l_valid TYPE c.
    This is to get the Print Parameters for the job which is to be
    submitted in background to process sales order/delivery/invoice
      CALL FUNCTION 'GET_PRINT_PARAMETERS'
       EXPORTING
      ARCHIVE_ID                   = C_CHAR_UNKNOWN
      ARCHIVE_INFO                 = C_CHAR_UNKNOWN
      ARCHIVE_MODE                 = C_CHAR_UNKNOWN
      ARCHIVE_TEXT                 = C_CHAR_UNKNOWN
      AR_OBJECT                    = C_CHAR_UNKNOWN
      ARCHIVE_REPORT               = C_CHAR_UNKNOWN
      AUTHORITY                    = C_CHAR_UNKNOWN
      COPIES                       = C_NUM3_UNKNOWN
      COVER_PAGE                   = C_CHAR_UNKNOWN
      DATA_SET                     = C_CHAR_UNKNOWN
      DEPARTMENT                   = C_CHAR_UNKNOWN
          destination                  = c_locl " LOCL
      EXPIRATION                   = C_NUM1_UNKNOWN
          immediately                  = space
      IN_ARCHIVE_PARAMETERS        = ' '
      IN_PARAMETERS                = ' '
      LAYOUT                       = C_CHAR_UNKNOWN
      LINE_COUNT                   = C_INT_UNKNOWN
      LINE_SIZE                    = C_INT_UNKNOWN
      LIST_NAME                    = C_CHAR_UNKNOWN
      LIST_TEXT                    = C_CHAR_UNKNOWN
      MODE                         = ' '
          new_list_id                  = c_x
      PROTECT_LIST                 = C_CHAR_UNKNOWN
          no_dialog                    = c_x
      RECEIVER                     = C_CHAR_UNKNOWN
      RELEASE                      = C_CHAR_UNKNOWN
      REPORT                       = C_CHAR_UNKNOWN
      SAP_COVER_PAGE               = C_CHAR_UNKNOWN
      HOST_COVER_PAGE              = C_CHAR_UNKNOWN
      PRIORITY                     = C_NUM1_UNKNOWN
      SAP_OBJECT                   = C_CHAR_UNKNOWN
      TYPE                         = C_CHAR_UNKNOWN
          user                         = sy-uname
      USE_OLD_LAYOUT               = ' '
      UC_DISPLAY_MODE              = C_CHAR_UNKNOWN
      DRAFT                        = C_CHAR_UNKNOWN
      ABAP_LIST                    = ' '
      USE_ARCHIVENAME_DEF          = ' '
      DEFAULT_SPOOL_SIZE           = C_CHAR_UNKNOWN
      PO_FAX_STORE                 = ' '
      NO_FRAMES                    = C_CHAR_UNKNOWN
       IMPORTING
      OUT_ARCHIVE_PARAMETERS       =
          out_parameters               = wa_params
       valid                        = l_valid
       EXCEPTIONS
         archive_info_not_found       = 1
         invalid_print_params         = 2
         invalid_archive_params       = 3
         OTHERS                       = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " get_print_parameters
    *&      Form  job_submit
          text
    -->  p1        text
    <--  p2        text
    FORM job_submit .
    The job which we have created & the unique id ( jobcount ) which we
    have got identifies our job. Hence those parameters are passed along
    with the name of the background program "ZPROGRAM_TWO"
    The job is submitted in background.
      CALL FUNCTION 'JOB_SUBMIT'
        EXPORTING
      ARCPARAMS                         =
        authcknam                         = sy-uname
      COMMANDNAME                       = ' '
      OPERATINGSYSTEM                   = ' '
      EXTPGM_NAME                       = ' '
      EXTPGM_PARAM                      = ' '
      EXTPGM_SET_TRACE_ON               = ' '
      EXTPGM_STDERR_IN_JOBLOG           = 'X'
      EXTPGM_STDOUT_IN_JOBLOG           = 'X'
      EXTPGM_SYSTEM                     = ' '
      EXTPGM_RFCDEST                    = ' '
      EXTPGM_WAIT_FOR_TERMINATION       = 'X'
        jobcount                          = w_jobcount
        jobname                           = w_jobname
      LANGUAGE                          = SY-LANGU
        priparams                         = wa_params
        report                            = 'ZPROGRAM_TWO'
      VARIANT                           = ' '
    IMPORTING
      STEP_NUMBER                       =
       EXCEPTIONS
         bad_priparams                     = 1
         bad_xpgflags                      = 2
         invalid_jobdata                   = 3
         jobname_missing                   = 4
         job_notex                         = 5
         job_submit_failed                 = 6
         lock_failed                       = 7
         program_missing                   = 8
         prog_abap_and_extpg_set           = 9
         OTHERS                            = 10
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " job_submit
    *&      Form  job_close
          text
    -->  p1        text
    <--  p2        text
    FORM job_close .
    Once the job is submitted in background then the job is closed
      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
      AT_OPMODE                         = ' '
      AT_OPMODE_PERIODIC                = ' '
      CALENDAR_ID                       = ' '
      EVENT_ID                          = ' '
      EVENT_PARAM                       = ' '
      EVENT_PERIODIC                    = ' '
        jobcount                          = w_jobcount
        jobname                           = w_jobname
      LASTSTRTDT                        = NO_DATE
      LASTSTRTTM                        = NO_TIME
      PRDDAYS                           = 0
      PRDHOURS                          = 0
      PRDMINS                           = 0
      PRDMONTHS                         = 0
      PRDWEEKS                          = 0
      PREDJOB_CHECKSTAT                 = ' '
      PRED_JOBCOUNT                     = ' '
      PRED_JOBNAME                      = ' '
      SDLSTRTDT                         = NO_DATE
      SDLSTRTTM                         = NO_TIME
      STARTDATE_RESTRICTION             = BTC_PROCESS_ALWAYS
        strtimmed                         = c_x
      TARGETSYSTEM                      = ' '
      START_ON_WORKDAY_NOT_BEFORE       = SY-DATUM
      START_ON_WORKDAY_NR               = 0
      WORKDAY_COUNT_DIRECTION           = 0
      RECIPIENT_OBJ                     =
      TARGETSERVER                      = ' '
      DONT_RELEASE                      = ' '
      TARGETGROUP                       = ' '
      DIRECT_START                      =
    IMPORTING
      JOB_WAS_RELEASED                  =
    CHANGING
      RET                               =
       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.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " job_close
    *&      Form  display_spool
          text
    -->  p1        text
    <--  p2        text
    FORM display_spool .
    To Read the Job to get the spool details
      DATA : l_rqident TYPE tsp01-rqident, " Spool Number
             l_spoolno TYPE tsp01_sp0r-rqid_char.
      CLEAR : l_rqident,
              w_lsind,
              wa_jobsteplist.
      REFRESH : i_jobsteplist.
      SET PF-STATUS 'ZAR02'.
    Get the Spool Number
      CALL FUNCTION 'BP_JOB_READ'
        EXPORTING
          job_read_jobcount           = w_jobcount
          job_read_jobname            = w_jobname
          job_read_opcode             = '20'
        JOB_STEP_NUMBER             =
       IMPORTING
         job_read_jobhead            = wa_jobhead
       TABLES
         job_read_steplist           = i_jobsteplist
    CHANGING
       RET                         =
       EXCEPTIONS
         invalid_opcode              = 1
         job_doesnt_exist            = 2
         job_doesnt_have_steps       = 3
         OTHERS                      = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Read the Job Step list to get the spool number
      READ TABLE i_jobsteplist INTO wa_jobsteplist INDEX 1.
      CHECK wa_jobsteplist-listident <> space.
    Spool Number
      l_rqident = wa_jobsteplist-listident.
      MOVE l_rqident TO l_spoolno.
    Check the spool in TSP01
      SELECT SINGLE * FROM tsp01 WHERE rqident = l_rqident.
      IF  sy-subrc = 0.
        LEAVE TO LIST-PROCESSING.
        CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
          EXPORTING
            spoolid       = l_spoolno
        IMPORTING
          RC            =
          STATUS        =
        PERFORM show_alv.
      ENDIF.
      w_lsind = sy-lsind.
      IF sy-lsind GE 19.
        sy-lsind = 1.
      ENDIF.
    ENDFORM.                    " display_spool
    *&      Form  show_alv
          text
    -->  p1        text
    <--  p2        text
    FORM show_alv .
    Before the import, fill the data fields before CLUSTR.
      wa_index1-aedat = sy-datum.
      wa_index1-usera = sy-uname.
    To Import the selection screen data from Calling Program
      IMPORT i_mara
      FROM DATABASE indx(st) ID wa_index_key1 TO wa_index1.
      FREE MEMORY ID wa_index_key1.
    This prepares the field-catalog for ALV.
      PERFORM prepare_fieldcatalog.
    This displays the output in  ALV format .
      PERFORM display_alv.
    ENDFORM.                    " show_alv
    *&      Form  display_status
          text
    -->  p1        text
    <--  p2        text
    FORM display_status .
    To Display the STATUS of the JOB which is exectued in background
      CLEAR : wa_jobsteplist.
      REFRESH : i_jobsteplist.
      WRITE:/ 'DISPLAYING JOB STATUS'.
      CALL FUNCTION 'BP_JOB_READ'
        EXPORTING
          job_read_jobcount           = w_jobcount
          job_read_jobname            = w_jobname
          job_read_opcode             = '20'
        JOB_STEP_NUMBER             =
       IMPORTING
         job_read_jobhead            = wa_jobhead
       TABLES
         job_read_steplist           = i_jobsteplist
    CHANGING
       RET                         =
       EXCEPTIONS
         invalid_opcode              = 1
         job_doesnt_exist            = 2
         job_doesnt_have_steps       = 3
         OTHERS                      = 4
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    To Display the status text as per the status type
      CASE wa_jobhead-status.
        WHEN 'S'. WRITE: / 'Scheduled'.
        WHEN 'R'. WRITE: / 'Released'.
        WHEN 'F'. WRITE: / 'Completed'.
        WHEN 'A'. WRITE: / 'Cancelled'.
        WHEN OTHERS.
      ENDCASE.
      IF sy-lsind GE 19.
        sy-lsind = 1.
      ENDIF.
    ENDFORM.                    " display_status
    *&      Form  display_job_log
          text
    -->  p1        text
    <--  p2        text
    FORM display_job_log .
    To display the log of the background program
      LEAVE TO LIST-PROCESSING.
      CALL FUNCTION 'BP_JOBLOG_SHOW_SM37B'
        EXPORTING
          client                    = sy-mandt
          jobcount                  = w_jobcount
          joblogid                  = ' '
          jobname                   = w_jobname
        EXCEPTIONS
          error_reading_jobdata     = 1
          error_reading_joblog_data = 2
          jobcount_missing          = 3
          joblog_does_not_exist     = 4
          joblog_is_empty           = 5
          joblog_show_canceled      = 6
          jobname_missing           = 7
          job_does_not_exist        = 8
          no_joblog_there_yet       = 9
          no_show_privilege_given   = 10
          OTHERS                    = 11.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " display_job_log
    *&      Form  prepare_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    FORM prepare_fieldcatalog .
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'MATNR'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = 'Material no.'.
      wa_fieldcat-outputlen    = '18'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERSDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = 'Creation date'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERNAM'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = 'Name of Person'.
      wa_fieldcat-outputlen    = '10'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'LAEDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-reptext_ddic = ' Last Change'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
    ENDFORM.                    " prepare_fieldcatalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
    Call ABAP List Viewer (ALV)
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          it_fieldcat  = i_fieldcat
        tables
          t_outtab     = i_mara.
    ENDFORM.                    " display_alv
    •     ZPROGRAM_TWO: This is the 2nd program which would be called from program ZPROGRAM_ONE.
    *& Report  ZPROGRAM_TWO                                                *
    REPORT  zprogram_two                            .
    PRASHANT PATIL
    TABLES : mara.
    TYPE-POOLS:slis.
    TYPES : BEGIN OF t_mara,
              matnr   TYPE mara-matnr,
              ersda   TYPE mara-ersda,
              ernam   TYPE mara-ernam,
              laeda   TYPE mara-laeda,
            END OF t_mara.
    DATA : i_mara        TYPE STANDARD TABLE OF t_mara,
           wa_mara       TYPE t_mara,
           wa_index      TYPE indx,        " For Index details
           wa_index_key  TYPE indx-srtfd VALUE 'PRG_ONE',
           wa_index1     TYPE indx,        " For Index details
           wa_index_key1 TYPE indx-srtfd VALUE 'PRG_TWO',
           i_fieldcat        TYPE slis_t_fieldcat_alv,
           wa_fieldcat       LIKE LINE OF i_fieldcat.
    SELECT-OPTIONS : s_matnr FOR mara-matnr.
    Before the import, fill the data fields before CLUSTR.
    wa_index-aedat = sy-datum.
    wa_index-usera = sy-uname.
    To Import the selection screen data from Calling Program
    IMPORT s_matnr
    FROM DATABASE indx(st) ID wa_index_key TO wa_index.
    FREE MEMORY ID wa_index_key.
    SELECT matnr
           ersda
           ernam
           laeda
           FROM mara
           INTO TABLE i_mara
           WHERE matnr IN s_matnr.
    PERFORM prepare_fieldcatalog.
    PERFORM display_alv.
    Before the export, fill the data fields before CLUSTR
    wa_index1-aedat = sy-datum.
    wa_index1-usera = sy-uname.
    EXPORT i_mara
    TO DATABASE indx(st) FROM wa_index1 ID wa_index_key1.
    *&      Form  prepare_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    FORM prepare_fieldcatalog .
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'MATNR'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '18'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERSDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'ERNAM'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '10'.
      APPEND wa_fieldcat TO i_fieldcat.
      CLEAR wa_fieldcat.
      wa_fieldcat-fieldname    = 'LAEDA'.
      wa_fieldcat-tabname      = 'I_MARA'.
      wa_fieldcat-outputlen    = '10'.
      APPEND  wa_fieldcat TO i_fieldcat.
    ENDFORM.                    " prepare_fieldcatalog
    *&      Form  display_alv
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
    Call ABAP List Viewer (ALV)
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat = i_fieldcat
        TABLES
          t_outtab    = i_mara.
    ENDFORM.                    " display_alv
    its possible to display ALV Grid using OO ALV. Following code can be used instead of FM.
    In the PBO, add following code
    SET PF-STATUS 'ZSTAT'.
    If program is executed 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.
    CALL METHOD g_grid1->set_table_for_first_display
    EXPORTING
    I_BUFFER_ACTIVE =
    I_BYPASSING_BUFFER =
    I_CONSISTENCY_CHECK =
    I_STRUCTURE_NAME =
    IS_VARIANT =
    i_save = 'A'
    i_default = ' '
    is_layout =
    is_print =
    IT_SPECIAL_GROUPS =
    it_toolbar_excluding =
    IT_HYPERLINK =
    IT_ALV_GRAPHICS =
    IT_EXCEPT_QINFO =
    CHANGING
    it_outtab = i_output
    it_fieldcatalog = i_fieldcatalog
    IT_SORT =
    IT_FILTER =
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 3
    OTHERS = 4
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    Reward points if useful
    Regards
    Anji

  • Audio from flash sources is playing in the background, even though the sources of these have been closed.

    Audio from flash sources are still playing in the background after their sources have been closed; audio also starts playing when I start the browser. Closing plugin-container.exe in task manager solves this, but I do not want to do this every time I have audio in the background that should not be there. Not a good move to launch a browser where the kinks haven't been worked out. Have tried to inactivate addons etc. This problem is related to FF5, but have also happened earlier, with FF4. Solved that time by moving to Chrome instead.

    Sounds that the plugin-container process isn't closing properly.<br />
    See http://kb.mozillazine.org/Plugin-container_and_out-of-process_plugins
    There are other things that need attention.<br />
    You have a corrupted Firefox 3.6.13 user agent: Firefox/2.0.0.14;MEGAUPLOAD 1.0
    See:
    * [[Web sites or add-ons incorrectly report incompatible browser]]
    * http://kb.mozillazine.org/Resetting_your_useragent_string_to_its_compiled-in_default

  • CR4E report(s) (using JRC 2.0) seem to still be running in the background

    I enabled cr4j logging and am seeing that I am getting log output from reports on our dev system, when no user is still logged on to run the reports.  I'm sure this is not good for performance, etc. Does anyone have any ideas?
    We are running WebLogic 9.2.
    Our properties files look like this:
    CRConfig.xml
    <?xml version="1.0" encoding="utf-8"?>
    <CrystalReportEngine-configuration>
        <!--<reportlocation>../..</reportlocation>-->
        <timeout>10</timeout>
        <ExternalFunctionLibraryClassNames>
             <classname></classname>
        </ExternalFunctionLibraryClassNames>
    </CrystalReportEngine-configuration>
    log4j.properties looks much like this - the only difference from the one currently running is that I've changed the name of the logfile and changed the logging levels from DEBUG to INFO, except that the one for formulas is now ERROR.
    # log4j.properties
    # Default log location
    # crystal.logs.home=${user.home}
    crystal.logs.home=.
    log4j.appender.jpeAppender=org.apache.log4j.RollingFileAppender
    # log4j.appender.jpeAppender.file=${crystal.logs.home}/jpe.log
    log4j.appender.jpeAppender.file=./ReportViewer.log
    log4j.appender.jpeAppender.ImmediateFlush=false
    # number of log files to keep before deleting the oldest one
    log4j.appender.jpeAppender.MaxBackupIndex=50  
    log4j.appender.jpeAppender.MaxFileSize=2500KB
    # Log message layout: date-time [thread] priority category - message lineTerminator
    log4j.appender.jpeAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.jpeAppender.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} [%t] %-5p %c - %m%n
    log4j.rootLogger=INFO
    # Covers all of the reporting engine
    log4j.logger.com.crystaldecisions.reports=INFO, jpeAppender
    log4j.logger.com.crystaldecisions.threedg=INFO, jpeAppender
    log4j.logger.com.crystaldecisions.common=INFO, jpeAppender
    # ---> More specific loggers can go here
    # Log levels used by Log4j in ascending order are:
    # debug, info, warn, error, and fatal
    # Examples
    log4j.logger.com.crystaldecisions.reports.formulas=ERROR
    A snippet of the log looks like this; I don't know what "STUCK" means but it's probably not good?
    Edited by: William Goss on Sep 23, 2009 11:54 PM

    Ted,
    You said...
    When you see those entries, do you observe issues with report processing, or all reports processed ok?
    Since we're still in dev mode, we've been running reports one at a time, so the main issue we've seen is that sometimes they're very slow. 
    That line snippet suggests it's merely in the process of processing the report.
    What I want to see is what's triggering the report request, since the engine triggers only on report request.
    I'll post the jsp code at the end of this reply.
    Also, you'd need to clarify what you mean by "the jsp that kicked it off has been closed" - how do you "close" a jsp?
    Good question.  I suppose more accurately, I should have said, I close the DHTML viewer (browser window).
    jsp code follows (in upcoming post; I temporarily am unable to access the dev system where the code resides).  It is handed off an HTML request from Maximo that contains the report name, parameters entered by the user or generated by Maximo, and other information.  The jsp then invokes the viewer.

  • Report execution in the background

    I execute a query in Bex, I recieve some warning messages and when I click 'OK' it formats and then gives me the results. But when the same query is executed in the background it fails due to rool over memory. How can this be solved?

    Hi,
    Find teh Message no in report and goto RSRT and give the report name and click on Messages button and then Supress the Message and execute the report, you get any message.
    Just Tick the message in RSRT.
    Thanks
    Reddy

  • Closing the Forms Background Page closes the Java-Window as well

    Hi,
    we are running Forms 10g and start the Applet in an separate window. This cannot be changed, because otherwise we lose some size of the Window and the Look and Feel is to different as with Client-Server mode.
    If a User closes the Background-Window or starts a different URL in the Background-Window, the Java Applet is closed directly without any warning.
    This isn't nice for the Users, but they have to live with it.
    But if I'm running a couple of Forms-Sessions in the Applet maybe with Database-Locks as well, and somebody closes the BG-Window, those Forms-Sessions (frmweb.exe) keep running for ~ 5-10 Minutes and the Locks are kept as well.
    Is this behaviour intentional or can it be changed ?
    Any comments are welcome.
    Mark

    Hi Craig,
    in principle I agree that it might be a training issue, but ...
    the default setup for the IE at this customer-site is that Links don't open in a new window. We may change that, but who knows.
    With this setting, the following happens quite normally.
    Forms is started which leeds to the "Background-Window" and the Java-Applet.
    If i minimize all windows and start f.e. Citrix or any other URL-Link, that link is opened in the Background-Window and the Forms-Java-Applet dies.
    In theory this can be avoided by training, but I do not agree, that it is a reasonable behaviour to check all open windows before I start a new URL.
    It just doesn't make sense in my opinion. It might be difficult to solve, but it still doesn't make sense.
    But we've found a solution ourself at least for the accidential closing of the Backgrund-Window :
    In formswegh.cfg we had a line like :
    =======
    HTMLbeforeForm=<_p align=center><_b>nicht schliessen</_b></_p><_p align=center><_b>sonst wird die</_b></_p><_p align=center><_b>Anwendung abgebrochen !</_b></_p>"
    =======
    we added an onBeforeUnload so that it looks like :
    =======
    HTMLbeforeForm=<_BODY onBeforeUnload="return ' Achtung Anwendung wird geschlossen !'"><_p align=center><_b>nicht schliessen</_b></_p><_p align=center><_b>sonst wird die</_b></_p><_p align=center><_b>Anwendung abgebrochen !</_b></_p>
    =======
    This leads to an "Is it OK"-question as soon as the BG-Windows is closed or another URL is called. This prohibits the Users of accident closing. If they still do it, it's their fault and than it is a training question.
    Thanks for your input and maybe this help some others as well.
    Mark
    P.S.
    the underlines before the p's and b's need to be deleted. Just because they are interpreted as HTML otherwise

  • Why do I get a status of 'waiting' when I run a report in the background

    Happy new Year Experts!!
    I am working with Ad-hoc query and I run reports in the background.  When I go to System > Own Spool Requests the status is always waiting.  When I go to SM37 the status is complete.  I can open the report from my own spools requests and it is completed.
    Thanks.
    Regards,
    Jeanette

    Go to SM36-> Own jobs - double click the job - Select Edit-Steps - DOuble click the step and check print specifications.
    Moreover, if you wanna make the job printed on finish, make sure that there is a default printer defined in SU3 - Defaults - Output device field.
    Regards,
    Dilek

  • Can the width of a report that has been run in the background be increased?

    Hello Experts,
    How can I increase the width of a report that I have run in the background so that it does not wrap text to the next line?
    I have been running the same HR report successfully in the background for many months.  Today I ran it with the same parameters that I've always used and when I retrieve it from my Own Job Spool - System | Own Spool Request | Display Contents the last field is wrapped to the next line.
    Thanks.
    Regards,
    Jeanette

    Jeanette,
    Thereu2019s another possibility if Tedu2019s suggestion doesnu2019t work. When you look at your spool requests, thereu2019s an icon on the toolbar next to the eyeglasses that looks like a yellow rectangular callout. Itu2019s called u201CDisplay in Maximum Widthu201D. Select the Spool no. to display and then press this icon. Shift + F4 is the shortcut.
    Regards,
    Howard

Maybe you are looking for

  • MRP Run in an excluded Storage Location

    Hello all. I have this situation. I have material X with two storage locations: SL01 and SL02. Storage location SL01 has 15 pieces and SL02 has 5 pieces. In MD04, I can see a total of 20 pieces under the "Stock" MRP Element. Material X also has five

  • Invoice from a Blanket PO

    Hi, I have created a Blanket PO for general office supplies with Account Assignment as K and Item Category as B i.e. limit. Now, i am creating a invoice for this PO - wherein i have 2 issues - 1.  The validity period of the PO is given as 1st July to

  • ITunes match subscription error

    I am trying to subscribe to iTunes match from my Hungarian appleID but the "iTunes store is temporary available". is iTunes match actually available from the Hungarian iTunes store??

  • How to automate the build of CompositeApplication for different environment

    Hi, I have a scenerio where i have to automate the build process of composite application. For Example : I have a Composite application currently configured for my DEV Environment. I have two more environments UAT, and IST on which the same Composite

  • Enable Purchase Order checkbox in Sales Order window

    How do I enable the Purchase Order checkbox in Sales Order window when the form load?