Abap parameters to perform program in background service

Hi Guys,
we created a Z program, where into it we call a standard function module.
This Z program is executed by user in DIALOG process, in a Z screen created. When user clicks on button, it starts this standard function module XXX. We need that this XXX standard function module to be executed as BACKGROUND process.
Follow the ABAP code running the function module:
CALL FUNCTION 'xxx' IN BACKGROUND TASK
We though that this would run the task as BACKGROUND process, however, the SM50 transaction shows that this FM is running on DIALOG service. We guess the reason for that is because the program is using the same DIALOG process as button that triggers the function module.
Someone knows other parameter to force the FM to be performed in background even it we already set it in the program. Is there other call type to force it? I mean, we want to disassociate the Z execution using dialog service for FM can be performed as background.
Thanks in advance

Is the Function Module remote enable function module or Normal Function Module?
For executing in Backgorund Task it should be Remote enabled.

Similar Messages

  • How do we call smartforms in abap program or web services

    how do we call smartforms in abap program or web services
    How many types of smartforms are there?
    points will be rewarded

    Hi
    See this sample program
    Using the fun module smartform is called from the program
    Calling SMARTFORMS from your ABAP program
    REPORT ZSMARTFORM.
    Calling SMARTFORMS from your ABAP program.
    Collecting all the table data in your program, and pass once to SMARTFORMS
    SMARTFORMS
    Declare your table type in :-
    Global Settings -> Form Interface
    Global Definintions -> Global Data
    Main Window -> Table -> DATA
    http://sapr3.tripod.com
    TABLES: MKPF.
    DATA: FM_NAME TYPE RS38L_FNAM.
    DATA: BEGIN OF INT_MKPF OCCURS 0.
    INCLUDE STRUCTURE MKPF.
    DATA: END OF INT_MKPF.
    SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
    SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
    MOVE-CORRESPONDING MKPF TO INT_MKPF.
    APPEND INT_MKPF.
    ENDSELECT.
    At the end of your program.
    Passing data to SMARTFORMS
    <b>call function 'SSF_FUNCTION_MODULE_NAME'
    exporting
    formname = 'ZSMARTFORM'</b>
    VARIANT = ' '
    DIRECT_CALL = ' '
    IMPORTING
    FM_NAME = FM_NAME
    EXCEPTIONS
    NO_FORM = 1
    NO_FUNCTION_MODULE = 2
    OTHERS = 3.
    if sy-subrc <> 0.
    WRITE: / 'ERROR 1'.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    call function <b>FM_NAME</b>
    EXPORTING
    ARCHIVE_INDEX =
    ARCHIVE_INDEX_TAB =
    ARCHIVE_PARAMETERS =
    CONTROL_PARAMETERS =
    MAIL_APPL_OBJ =
    MAIL_RECIPIENT =
    MAIL_SENDER =
    OUTPUT_OPTIONS =
    USER_SETTINGS = 'X'
    IMPORTING
    DOCUMENT_OUTPUT_INFO =
    JOB_OUTPUT_INFO =
    JOB_OUTPUT_OPTIONS =
    TABLES
    GS_MKPF = INT_MKPF
    EXCEPTIONS
    FORMATTING_ERROR = 1
    INTERNAL_ERROR = 2
    SEND_ERROR = 3
    USER_CANCELED = 4
    OTHERS = 5.
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • Can We Run a ABAP Program in Background

    Hi,
    How to run an ABAP Program in Background.
    Points willbe awarded.
    Regards,
    Jayasimha

    Hi,
    <b>Please see this document also
    http://help.sap.com/saphelp_nw04/helpdata/en/fa/096ccb543b11d1898e0000e8322d00/content.htm
    Easy Job Scheduling Using BP_JOBVARIANT_SCHEDULE</b>
    To schedule a job from within a program using the express method, you need only call the BP_JOBVARIANT_SCHEDULE function module.
    The express method has the following characteristics:
    Simplified job structure: The function module schedules a job that includes only a single job step.
    The function module uses default values for most job-processing options. You cannot, for example, specify a target printer as part of the call to the function module. Instead, the job step uses the print defaults of the scheduling user.
    Only ABAP reports can be scheduled. You must use the "full-control" method to start external programs.
    The range of start-time options is restricted. Event-based scheduling is not supported.
    The function module works as follows:
    You name the report that is to be scheduled in your call to the function module.
    The function module displays a list of variants to the user. The user must select a variant for the report.
    You must ensure that the variants required by your users have already been defined.
    The user picks either "immediate start" or enters a start date and start time. Optionally, the user can also make the job restart periodically. The job is then scheduled.
    Example
    You could use the following code to let users schedule report RSTWGZS2 for checking on the status of online documentation:
    call function 'BP_JOBVARIANT_SCHEDULE'
    exporting
    title_name = 'Documentation Check' " Displayed as title of
    " of scheduling screens
    job_name = 'DocuCheck' " Name of background
    " processing job
    prog_name = 'RSTWGZS2' " Name of ABAP
    " report that is to be
    " run -- used also to
    " select variants
    exceptions
    no_such_report = 01. " PROG_NAME program
    " not found.
    call function 'BP_JOBVARIANT_OVERVIEW' " List the jobs that
    exporting " have been scheduled
    title_name = 'Documentation Check' " Displayed as title
    " of overview screen
    job_name = 'DokuCheck' " Jobs with this name
    " are listed
    prog_name = 'RSTWGZS2'
    exceptions
    no_such_job = 01.
    Regards, ABY

  • Creative Cloud background service constantly uses high-performance graphics card on MacBook Pro

    On my MacBook Pro mid-2010, I recently noticed that the high-performance graphics card for some reason was constantly on. In MacBooks as of 2009, there are two graphics cards that can be used, one integrated, one PCIe. The integrated one is less powerful, but is used to preserve battery. The other one is enabled when there is a high demand for graphics power.
    I saw that when the Creative Cloud service (with this I mean the general software package that tracks for updates and syncs fonts and files) was loaded into the system, the MacBook automatically starts using this high-performance graphics card, even without any other software running, just freshly from boot. This, of course, drains battery and I don't think that much power is needed to run a background service. The only way to stop the high-performance graphics card from kicking in, is by terminating the complete Creative Cloud service, which is of course not very useful when you use the sync feature a lot.
    Is there a solution for this problem, or can you release an update of the software that addressess this issue?
    If I need to provide you with logs or other relevant information, please let me know.
    Thanks in advance, it's kind of annoying as it is now.
    Ruben Delil

    Same here. Macbook Retina 15", purchased earlier this year.
    Nice (and free) utility to monitor GPU-usage is:
    gfxCardStatus from http://gfx.io/
    Helped me to notice that it's better to quit Photoshop if not using it because it still uses the nVidia GPU if Photoshop is not even the active application (eg. running in the background).
    But still, sometimes after closing Photoshop, gfxCardStatus says that nVidia GPU is in use for process 'Creative Cloud'.
    I'm mostly running on battery and nVidia GPU consumes much, much more battery than the integrated, Intel HD Graphics 4000 so this is a big issue for me.

  • 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

  • Regarding SUBMIT statement - to process a program in background

    Hi All,
    I have issue of submitting a program in background and also i need to process the no of records come from program by splitting them by 1000(n).
    First of all i have program whose code is like following:
    <b>REPORT  z_update_material_master.</b>
    TYPES: BEGIN OF t_marc,
              matnr LIKE marc-matnr,   "Material Number
              werks LIKE marc-werks,   "Plant
              beskz LIKE marc-beskz,   "Procurement Type
              sobsl LIKE marc-sobsl,   "Special procurement type
              fhori LIKE marc-fhori,   "Scheduling Margin Key for Floats
              dzeit LIKE marc-dzeit,   "In-house production time
              plifz LIKE marc-plifz,   "Planned delivery time in days
              webaz LIKE marc-webaz,   "Goods rcpt processing time
              pwwrk LIKE t460a-wrk02,  "Production plant in planned order
              erhor LIKE t436a-erhor,  "Opening periodr
              zlt   TYPE p DECIMALS 3, "Total replenishment lead time
              ztlt  TYPE p DECIMALS 3, "Total replenishment lead time
              wzeit TYPE p DECIMALS 3, "Total replenishment lead time
              upd(1) TYPE c,            "UPDATE INDICATER
              ind    TYPE c,
         END OF t_marc.
    DATA: i_marc  TYPE SORTED TABLE OF t_marc INITIAL SIZE 0
                   WITH HEADER LINE
                   WITH NON-UNIQUE KEY matnr werks,
          i_marc_rpt LIKE i_marc OCCURS 0 WITH HEADER LINE.
    DATA: l_plantdata  LIKE bapi_marc,
          l_headdata   LIKE bapimathead,
          l_plantdatax LIKE bapi_marcx,
          l_tabix      LIKE sy-tabix.
    CONSTANTS: c_s TYPE c VALUE 'S',
               c_x TYPE c VALUE 'X'.
    DATA i_temp_bapi_return LIKE bapi_matreturn2
                            OCCURS 0 WITH HEADER LINE.
    DATA BEGIN OF i_temp_zppe0091_01 OCCURS 0.
            INCLUDE STRUCTURE zppe0091_01.
    DATA: END OF i_temp_zppe0091_01.
    DATA: l_tab_nam LIKE rstable-tabname VALUE 'ZPPE0091_01'.
    SELECT * FROM zppe0091_01
             INTO CORRESPONDING FIELDS OF TABLE i_temp_zppe0091_01.
    IF sy-subrc EQ 0.
      LOOP AT i_temp_zppe0091_01 WHERE upd = c_x.
        l_tabix = sy-tabix.
        l_headdata-material     = i_temp_zppe0091_01-matnr.
        l_plantdata-plant       = i_temp_zppe0091_01-werks.
        l_plantdata-replentime  = i_temp_zppe0091_01-wzeit.
        l_plantdatax-replentime = c_x.
        CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
          EXPORTING
            headdata       = l_headdata
            plantdata      = l_plantdata
            plantdatax     = l_plantdatax
          TABLES
            returnmessages = i_temp_bapi_return.
        IF NOT i_temp_bapi_return[] IS INITIAL.
          READ TABLE i_temp_bapi_return WITH KEY type = c_s.
          IF sy-subrc EQ 0.
            i_marc_rpt-matnr = i_temp_zppe0091_01-matnr.
            i_marc_rpt-werks = i_temp_zppe0091_01-werks.
            APPEND i_marc_rpt. CLEAR i_marc_rpt.
          ELSE.
            i_temp_zppe0091_01-upd = space.
            MODIFY i_temp_zppe0091_01 INDEX l_tabix TRANSPORTING upd.
          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDIF.
    Now i want to call this program from another program that is already exists by using <b>SUBMIT</b>
    statement in background and i need to process this program by dividing records by <b>1000</b> into seperate session.
    how can i do it. Can any body tell me the solution with syntax.
    I might get lot of records from above program so i want to split them into diffrent sessions based on number of records(1000).
    can any body give me the solution.
    Thanks in advance.
    Thanks & Regards,
    Rayeez.

    Try implementing the following code. Use the code accordingly...
      MOVE 100 TO c_recs_b4_split.
      IF num_src_trans > c_recs_b4_split.
        target_break = num_src_trans / p_thread.
      ELSE.
        target_break = num_src_trans + 1.
      ENDIF.
      wa_subbch  = 1.
      last_index = 1.
    No batch split required if total recrods less than 100
      IF num_src_trans < c_recs_b4_split.
        CLEAR  : range_btch.
        REFRESH: range_btch.
        IF wa_subbch = p_thread.
          target_break = num_src_trans.
        ENDIF.
        MOVE 'S_SRCTRN' TO range_wa-selname.
        MOVE 'S'        TO range_wa-kind   .
        MOVE 'I'        TO range_wa-sign   .
        MOVE 'EQ'       TO range_wa-option .
        LOOP AT itab_src_trans INTO st_src_trans.
          MOVE st_src_trans-src_tran_id TO range_wa-low.
          APPEND range_wa TO range_btch.
        ENDLOOP.
    Step 3 Submit the batch.
        v_job_no = v_job_no + 1.
        PERFORM submit_tp_jobs.
      ELSE.
        DO.
    Step 1 Collect data for the target count
          CLEAR  : range_btch.
          REFRESH: range_btch.
         IF wa_subbch = p_thread.
           target_break = num_src_trans.
         ENDIF.
          MOVE 'S_SRCTRN' TO range_wa-selname.
          MOVE 'S'        TO range_wa-kind   .
          MOVE 'I'        TO range_wa-sign   .
          MOVE 'EQ'       TO range_wa-option .
          IF wa_subbch = p_thread.
            target_break = num_src_trans - v_cnt .
          ENDIF.
          LOOP AT itab_src_trans INTO st_src_trans FROM last_index.
            last_index = sy-tabix.
            batch_total = batch_total + 1.
            IF batch_total <= target_break.
              MOVE st_src_trans-src_tran_id TO range_wa-low.
              APPEND range_wa TO range_btch.
            ELSE.
              EXIT.
            ENDIF.
            v_cnt = v_cnt + 1.
          ENDLOOP.
          CLEAR batch_total.
    Step 2 Submit the batch.
          v_job_no = v_job_no + 1.
          PERFORM submit_tp_jobs.
          ADD 1 TO wa_subbch.
          IF wa_subbch > p_thread.
            EXIT.
          ENDIF.
        ENDDO.
      ENDIF.
    FORM submit_tp_jobs .
      DATA : l_jobcount LIKE tbtcjob-jobcount,
             l_jobrelease LIKE btch0000-char1,
             w_job_flag VALUE 'X',
             w_process_mode,
             w_user_print_params  LIKE pri_params.
      l_jobname = p_batch.
      CONCATENATE 'TP_'  l_jobname '_' v_job_no INTO l_jobname.
      CONDENSE l_jobname NO-GAPS.
      w_process_mode = ' '.
      IF NOT range_btch[] IS INITIAL.
        PERFORM create_post_ctrl.
        CALL FUNCTION 'JOB_OPEN'
          EXPORTING
            jobname  = l_jobname
          IMPORTING
            jobcount = l_jobcount.
        SUBMIT zfi_pc_tran_proc
          AND RETURN
               WITH p_batch  = p_batch
               WITH p_jobid  = p_jobid
               WITH p_mode   = w_process_mode
               WITH p_subbch = wa_subbch
               WITH p_jobq   = p_jobid
               WITH p_cntlmt = p_cntlmt
               WITH p_tpiop  = p_iop
               WITH SELECTION-TABLE range_btch
               USER sy-uname
               VIA JOB l_jobname NUMBER l_jobcount
               TO SAP-SPOOL
               SPOOL PARAMETERS w_user_print_params
               WITHOUT SPOOL DYNPRO.
        CALL FUNCTION 'JOB_CLOSE'
          EXPORTING
            jobcount             = l_jobcount
            jobname              = l_jobname
            strtimmed            = 'X'
          IMPORTING
            job_was_released     = l_jobrelease
          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.
      ENDIF.
    ENDFORM.                    " submit_tp_jobs
    Pl. add the points....

  • Call external program in background mode

    Hi,
    I am creating a PO using bapi BAPI_PO_CREATE1 in exit USEREXIT_SAVE_DOCUMENT_PREPARE.
    I dont want to write the code in my exit. Instead I want to write the code in a Z program and call it in my exit.
    My Problem.
    How do I call my z program in my exit so that I can pass internal tables from my exit to the z program. Also I want to schedule the call of my external program for background processing.
    I am trying with SUBMIT ZPROG AND RETURN. But not able to pass an internal table.
    I tried PERFORM BAPI_PO_CREATE IN PRGRAM ZPROG, but in this case not able to schedule it in background.
    Please advise.
    Regards,
    Shobhit

    Hi Rich,
    Im setting runtime error:
    My Code in Exit: (xvbfa is the table which i wanna pass)
    concatenate 'SERVICEPO' sy-datum into l_key.
    export xvbfa = xvbfa
                  to shared buffer indx(st) id l_key.
    My Code in the called program ZMM_SERVICE_PO
    Runtime Errors         CONNE_IMPORT_WRONG_OBJECT_TYPE
    Exceptn                CX_SY_IMPORT_MISMATCH_ERROR
    Date and Time          05.12.2005 21:41:54
    ShrtText
         Error when attempting to IMPORT object "XVBFA".
    What happened?
         Error in ABAP application program.
         The current ABAP program "ZMM_SERVICE_PO" had to be terminated because one of
          the
         statements could not be executed.
         This is probably due to an error in the ABAP program.
         When importing the object "XVBFA", the object in the
         dataset had a different type from the target object in the program
         "ZMM_SERVICE_PO" (object types: field, field string/structure, table).
         table).
    Error analysis
         An exception occurred. This exception will be dealt with in more detail
         below. The exception, assigned to the class 'CX_SY_IMPORT_MISMATCH_ERROR', was
          not caught, which
          led to a runtime error. The reason for this exception is:
         The object "XVBFA" has a different object type in the dataset from
         that in the target program "ZMM_SERVICE_PO". (Object types: Field, flat
          structure,
         deep structure, flat table, deep table).
    Missing Handling of System Exception
        Program                                 ZMM_SERVICE_PO
    Trigger Location of Exception
        Program                                 ZMM_SERVICE_PO
        Include                                 ZMM_SERVICE_PO
        Row                                     43
        Module Name                             START-OF-SELECTION
    Source Code Extract
    Line  SourceCde
    REPORT  ZMM_SERVICE_PO.
    DATA: l_poheader      LIKE bapimepoheader.
    DATA: l_poheaderx     LIKE bapimepoheaderx.
    DATA: l_poitem        LIKE bapimepoitem     OCCURS 0 WITH HEADER LINE.
    DATA: l_poitemx       LIKE bapimepoitemx    OCCURS 0 WITH HEADER LINE.
    DATA: l_cond          LIKE BAPIMEPOCOND     OCCURS 0 WITH HEADER LINE.
    DATA: l_condx         LIKE BAPIMEPOCONDX    OCCURS 0 WITH HEADER LINE.
    DATA: l_poschedule    LIKE bapimeposchedule OCCURS 0 WITH HEADER LINE.
    DATA: l_poschedulex   LIKE bapimeposchedulx OCCURS 0 WITH HEADER LINE.
    DATA: l_purchaseorder LIKE bapimepoheader-po_number.
    DATA: l_return        TYPE BAPIRET2 OCCURS 0.
    DATA: l_error_found   TYPE c.
    DATA: l_show_messages TYPE c.
    DATA: l_eindt(10)     TYPE c.
    DATA: l_answer        TYPE c.
    DATA: l_VBAK          TYPE STANDARD TABLE OF VBAK WITH HEADER LINE.
    DATA: l_VBFA          TYPE STANDARD TABLE OF VBFA WITH HEADER LINE.
    DATA: xlips           TYPE STANDARD TABLE OF LIPS WITH HEADER LINE.
    *DATA: xvbfa           TYPE STANDARD TABLE OF vbfa WITH HEADER LINE.
    DATA xvbfa like vbfa.
    DATA: l_key(60) type c.
          concatenate 'SERVICEPO' sy-datum into l_key.
    >>>>> import xvbfa = xvbfa
                      from shared buffer indx(st) id l_key.
          delete from shared buffer indx(st) id l_key.
    Could you help.
    Regads,
    Shobhit

  • Running a program in background

    Dear all,
              I have to execute a database upload program in background while clicking a pushbutton.
              Ho to do this ?
    <b>note : No input parameters for the program</b>.

    when 'Update'.
    perform update.
    and in the perform , u have to put a logic to upload DB table.
    Regards
    Prabhu

  • How to set the BDC Call transaction Program in Background

    Hi All,
            I have a requirement. If i execute a BDC Call Transaction Program in Background it is showing 0 seconds means it is not executing. Normally it is working properly. If execute in background it is not executing. But my client wnats to execute in background. How can i overcome this could you please suggest me?
    Thanks in Advance

    hi
    To schedule the processing of session in backgroud you can use report RSBDCSUB.
    You can do in two ways -
    Ist Method
    Define a batch job in SM36 with two steps -
    First Step - Your Custom Program ( with a variant )
    Second Step - RSBDCSUB ( With a variant having
    the session name ).
    2nd Method
    In your program after BDC_CLOSE_GROUP add a line.
    SUBMIT RSBDCSUB WITH MAPPE EQ <SESSION_NAME>.
    Scedule you program as a batch job in SM36 ( Single Step ). ( You can also test the program by running in online mode . After your programs executes , go and see in SM35. You will see that your session created in being processed or has been processed in background).
    In Both ways the session created by BDC_OPEN_GROUP will be processed in background
    You would have to create a job on the fly to do this. This example shows how to kick off a background job via an ABAP program.
    report zrich_0004 .
    data:   sdate type sy-datum,
            stime type sy-uzeit,
            l_valid,
            ls_params like pri_params,
            l_jobcount like tbtcjob-jobcount,
            l_jobname  like tbtcjob-jobname.
    start-of-selection.
    Get Print Parameters
      call function 'GET_PRINT_PARAMETERS'
           exporting
                no_dialog      = 'X'
           importing
                valid          = l_valid
                out_parameters = ls_params.
    Open Job
      l_jobname = 'ZRICH_0005'.
      call function 'JOB_OPEN'
           exporting
                jobname  = l_jobname
           importing
                jobcount = l_jobcount.
    Submit report to job
      submit zrich_0005   
           via job     l_jobname
               number  l_jobcount
           to sap-spool without spool dynpro
               spool parameters ls_params
                  and return.
    Schedule and close job.
      call function 'JOB_CLOSE'
           exporting
                jobcount  = l_jobcount
                jobname   = l_jobname
                strtimmed = 'X.
    regards
    Satish

  • Execute program in background(Scheduled)

    Hi guyz
    I want to execute a program on every last friday of the month. It should be scheduled automatically in back ground with out any manual interruption. Is there any way i can do that?
    Thanks

    Hi Satya,
    For executing jobs in non-interactive mode, schedule the job for background processing. To create a background processing job you should specify:
      The name of the report
      The name of any variant it needs
      What to do with output
      When to start it
    After this, the SAP system does not require user’s intervention and can proceed with the job even without you. It executes the report and prints the output using printer or output controller. While scheduling a job in background process, three parameters should be specified. These parameters are:
      Definition of programs
      Its start time
      The printing specification for getting the prints as required
    After this, you can check whether your job was executed successfully and display a log of any system messages.
    For scheduling background processing, you have to direct the system to process an ABAP/4 or external program in the background. This is a two-step process:
       Scheduling the program
       Releasing the job
    This needs to have a special authorization for releasing and scheduling the job. Generally, the system administrator, who organizes and monitors background processing, supervises the release of these jobs. Many users are also authorized to schedule background processing of reports. You cannot schedule a job unless and until you have a release authorization. If a user is authorized and has specified a start date or selected "start immediately," he or she can release the job.
    Authorized users can change start time. A program can be scheduled as a separate job or you can append it to an existing job, which has not yet been processed. Background process can be run while doing some other online work. However, this can adversely affect online operation and should be avoided. For example, if you run a program that locks the database, the work of online users will be hampered or stopped. Often, long-running reports are scheduled automatically or semi-automatically for background processing.
    First Step
    Initiate the job scheduling function. Standard job scheduling must be used in case of scheduling of an external command or external program as a background job and ABAP job scheduling function can be used to schedule ABAP programs. For starting a standard job scheduling function choose the following:
    Administration menu bar option à CCMS option à Jobs option à Definition option.
    For starting ABAP job scheduling function, navigate to ABAP Editor and choose Program menu bar option àExecute option à Background option.
    Second Step
    Now define a job. Using the Job Wizard you can define your job. From the Application toolbar, choose the wizard button. After this, the initial screen of the SAP Job Wizard appears. The Job Wizard is available only from the standard job scheduling function.
    Third Step
    Now, you have to save the job. When it displays the message "Job saved" it means the job has been successfully scheduled. We know that a job must be released before it is scheduled. Only authorized users can release the job, otherwise your system administrator will release your job.
    Fourth Step
    This is the last step of scheduling. In this step you have to check the status of your job. For this you need to choose System menu bar option à Own jobs option.
    In SAP System, the background processing runs according to your instructions. In case a list is generated by the report, the report either prints directly or waits for you in the SAP output controller. The status of background processing can be checked for its correctness.
    I think this will help you.
    If so then award the points.
    Thanks and regards
    Vipin Das V

  • How to schedule a program in background after 5 or 10 sec

    Hi All,
           Can anyone tell me how to schedule a program after 5 or 10 sec in background after the transaction is completed.
    It is not a custom transaction. I want to execute a Z program in background  in a BADI
    Regards
    Yathish
    Message was edited by:
            Yathish Gundlupet

    Programattically?   You can add this code to the end of your transaction(if it is custom, of course).
    report zrich_0004 .
    data:   sdate type sy-datum,
            stime type sy-uzeit,
            l_valid,
            ls_params like pri_params,
            l_jobcount like tbtcjob-jobcount,
            l_jobname  like tbtcjob-jobname.
    start-of-selection.
    * Get Print Parameters
      call function 'GET_PRINT_PARAMETERS'
           exporting
                no_dialog      = 'X'
           importing
                valid          = l_valid
                out_parameters = ls_params.
    * Open Job
      l_jobname = 'THIS_JOB'.
      call function 'JOB_OPEN'
           exporting
                jobname  = l_jobname
           importing
                jobcount = l_jobcount.
    * Submit report to job
      submit <your_program_name
           via job     l_jobname
               number  l_jobcount
           to sap-spool without spool dynpro
               spool parameters ls_params
                  and return.
    * Kick job off 10 seconds from now.
      sdate = sy-datum.
      stime = sy-uzeit + 10.
    * Schedule and close job.
      call function 'JOB_CLOSE'
           exporting
                jobcount  = l_jobcount
                jobname   = l_jobname
                sdlstrtdt = sdate
                sdlstrttm = stime
    Regards,
    RIch Heilman

  • Run java program in background

    I want to run a java program in background in windowsXP...can anyone help please......can anyone suggest an easy software for running java program as windows service...i tried one but without any success

    How many of the links here have you tried while you were waiting for an answer?
    http://www.google.com/search?q=running+java+program+as+windows+service
    (Note that the query is a direct copy/paste from your post.)

  • How to run a program in background and how to check the output

    I have to run my program as background job... it has a selection screen...... and i need to check the output after its complete.

    hi,
    u need to create one program for this.
    tables:btcevtjob.
    parameters:job(32).
    data:count like btcevtjob-jobcount.
    call the function modules JOB_OPEN,JOB_SUBMIT AND JOB_CLOSE
    and pass the parameters in those function modules.
    once u execute this program,
    go with sm37->provide jobname->select the option scheduled
    ->execute
    selct the entry->go with release option.
    under releasae select immediate option
    save
    select the job name again
    go with release
    status is in finished stage
    now go with spool option
    give spool no
    go for display
    o/p displayed.
    before this,go for se38->provide the name of program which u want to run in back ground->seelct variants->change->provide variant name->go for create->provide input value->go with attributes->provide description->save
    this variant name u have to give in the job_submit fm.
    or
    se38->program->execute->in back ground
    Reward points if useful,
    Thanks,
    Usha

  • Schedule Module program in Background with Dynamic Input values ?

    Hi,
    I am trying a schedule a Standard Transaction which has Month,year and other Check boxes (By default they are Empty) .I need to schedule it monthly and Input must change dynamically when I run in background each month..
    How do we do this?
    Regards
    Vara
    Message was edited by: Vara K

    You can not directly schedule a module pool program in background job.  These are usually reports.   What you can do is create a custom report program with your parameters on a selection screen.  In this program you can do a BDC over the standard transaction filling the parameters from the selection screen of the custom program.  This custom program can also have a selection screen variant which uses selection variables that will change dynamically.  Then you can schedule the custom report program via SM36.
    Regards,
    Rich HEilman

  • How tu run the program in background

    Hi SapAll.
    actually iam new to ABAP ,i just want to know on how i can run the particular program  in background .
    can any one explain me in steps .
    i also want to know on how to delete the particular job which has been already created in sm36 .
    will be waiting for best response.
    regards.
    Varma

    Hi
    Find the below steps to be defined.
    1. Go to SM36 -
    > Give the Program Name
    2. If you have priority defined that to in Job class
    3. Click -
    > Start Condition
    4. Select Data/Time Tab
    5. Give the Date and Time for the job execution. (If you want to certain intervale provide it)

Maybe you are looking for