Handle submit program for background jobs in RFC FM to send email in ITS

Hi all
I am facing a problem in ITS, i.e. I have called a RFC Function Module on the page load event of one of the HTML template. In that FM I have used <b>submit program</b>. This RFC FM is working fine in background i.e. it is sending pdf as email to a particular email address
but in the frontend it is not responding.
I wanted to ask whether we can handle submit <program-name> in background job from ITS
<b>If you are unable to understand the problem i can share with you my code as well.</b>
Thanks
Ekta Tuli

Hi Tobias
The Function Module <b>ZV_FUNC_CCK_EMAIL_PDF</b> is used to generate the email with pdf as attachement. it is generating email at backend but not in frontend.
thanks
ekta
please find the code below for the FM
FUNCTION zv_func_cck_email_pdf.
*"*"Local interface:
*"  IMPORTING
*"     VALUE(CONTRACT) LIKE  VBAP-VBELN
*"     VALUE(EMAIL) LIKE  ADR6-SMTP_ADDR
*"  EXPORTING
*"     VALUE(RETURN) TYPE  CHAR4
data: i_vbak like vbak .
  DATA: v_cont(10) TYPE c.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = contract
    IMPORTING
      output = v_cont.
DATA: z_element(30)         TYPE c.
DATA: gv_fb_addr_get_selection  LIKE addr1_sel.
DATA:  BEGIN OF mtab_contract OCCURS 0, "sap field
    ordno(10),                                              "vbeln (10)
    terr(6),
    vkorg     LIKE vbak-vkorg,
    vkgrp     LIKE knvv-vkgrp,
    repname(35),
    repmailbox(10),
    gueen(10),                          "expires dated -same as valid to
    kunnr(10),
    name1(35),                                              "name1(35)
    stras(35),                                              "stras(35)
    pstlz(10),                                              "pstlz(10)
    ort01(35),                          "ort01(35) city
    regio(3),                                               "regio(3)
    kunnr2(10),
    name2(35),                                              "NUM?(35)
    stras2(35),                                             "stras(35)
    pstlz2(10),                                             "pstlz(10)
    ort012(35),                          "ort01(35) city
    regio2(3),                                              "regio(3)
    kit1     LIKE vbap-matnr,     " currently 41315
    kit1-qty(6),  " like vbap-zmeng,
    kit2     LIKE vbap-matnr,     " currently 41316
    kit2-qty(6),  "  like vbap-zmeng,
    kit3     LIKE vbap-matnr,     " currently 41317
    kit3-qty(6),  "  like vbap-zmeng,
    kit4     LIKE vbap-matnr,     " currently 91869US
    kit4-qty(6),  "  like vbap-zmeng,
    med1     LIKE vbap-matnr,     " currently 7408cp
    med1-qty(6),  "  like vbap-zmeng,
    med2     LIKE vbap-matnr,     " currently 0211CP
    med2-qty(6),  "  like vbap-zmeng,
    med3     LIKE vbap-matnr,     " currently 0578CP
    med3-qty(6),  "  like vbap-zmeng,
    med4     LIKE vbap-matnr,     " currently 0068CP
    med4-qty(6),  "  like vbap-zmeng,
    med5     LIKE vbap-matnr,     " currently 0069CP
    med5-qty(6),  "  like vbap-zmeng,
    med6     LIKE vbap-matnr,     " currently other
    dis6     LIKE makt-maktx,     " currently other
    med6-qty(6),  "  like vbap-zmeng,
    med7     LIKE vbap-matnr,     " currently other
    dis7     LIKE makt-maktx,     " currently other
    med7-qty(6),  "  like vbap-zmeng,
    med8     LIKE vbap-matnr,     " currently other
    dis8     LIKE makt-maktx,     " currently other
    med8-qty(6),  "  like vbap-zmeng,
    med9     LIKE vbap-matnr,     " currently other
    dis9     LIKE makt-maktx,     " currently other
    med9-qty(6),  "  like vbap-zmeng,
    med10    LIKE vbap-matnr,     " currently other
    dis10    LIKE makt-maktx,     " currently other
    med10-qty(6),  "  like vbap-zmeng,
  END OF mtab_contract.
DATA:  BEGIN OF mtab_material OCCURS 0,
          ordno(10),
          matnr LIKE vbap-matnr,
          qty  LIKE vbap-zmeng,
       END OF mtab_material.
DATA: w-mm(4) VALUE ' MM '.
*SELECT-OPTIONS: s_vkorg FOR vbak-vkorg,
*                s_vkgrp FOR knvv-vkgrp,    "Sales Group
*                s_terr  FOR knvp-kunn2.    "Territory Code
*PARAMETERS:     p_parvw LIKE vbpa-parvw MEMORY ID par OBLIGATORY,    "Partner ID
**                   DEFAULT 'Z1'.
*                p_vbeln LIKE vbak-vbeln MEMORY ID aun,
*                p_email LIKE adr6-smtp_addr MEMORY ID email. "Sales Document #
*SELECT-OPTIONS: "s_vbeln FOR vbak-vbeln MEMORY ID aun, "Sales Document #
*                s_guebg FOR vbak-guebg,    "Valid-From Date
*                s_gueen FOR vbak-gueen,    "Valid-To Date
*                s_ship  FOR vbpa-kunnr,    "Ship-to customer
*            s_bstzd FOR vbak-bstzd MEMORY ID bst ."DEFAULT 'CCK'.    "P.O. # Supplement
DATA: i_otf TYPE STANDARD TABLE OF itcoo,
      i_content_txt TYPE table of solisti1, "Content
      i_content_bin TYPE solix_tab, "Content
      i_content_bin1 TYPE solix_tab, "Content
      i_objhead TYPE soli_tab,
      w_pdf TYPE solisti1, "For PDF
      w_res TYPE itcpp, "SAPscript output
      w_otf TYPE itcoo, "For OTF
      w_transfer_bin TYPE sx_boolean, "Content
      prog(60).
data : t_obj_bin type standard table of solisti1.
DATA: w_arc_params LIKE arc_params,
      w_pri_params LIKE pri_params.
*DATA: lcl_cls TYPE REF TO cl_gui_frontend_services.
CONSTANTS : c_x TYPE c VALUE 'X', "X
            c_locl(4) TYPE c VALUE 'LOCL', "Local Printer
            c_otf TYPE sx_format VALUE 'OTF', "OTF
            c_pdf TYPE sx_format VALUE 'PDF', "PDF
            c_printer TYPE sx_devtype VALUE 'PRINTER', "PRINTER
            c_bin TYPE char10 VALUE 'BIN'. "BIN
DATA:       v_name TYPE string ."Downloading File Name
DATA: v_len_in TYPE so_obj_len,
      v_tempdir(50) TYPE c,
      v_size TYPE i.
DATA : x_pdf_bag_tline TYPE  rcl_bag_tline,
       v_pdf_fsize TYPE i,
       objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,
       objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,
       objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE,
       objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
       reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE,
       doc_chng LIKE sodocchgi1,
       tab_lines LIKE sy-tabix.
DATA : v_pnum LIKE usr21-persnumber,
       v_anum LIKE usr21-addrnumber,
       smtp_addr LIKE adr6-smtp_addr.
DATA: v_path TYPE  string,
      v_code TYPE i.
DATA : wa_obj_txt TYPE solisti1.
DATA : t_obj_txt TYPE STANDARD TABLE OF solisti1.
DATA : t_rec_list TYPE STANDARD TABLE OF  somlreci1.
DATA : t_obj_pack TYPE STANDARD TABLE OF sopcklsti1.
DATA : wa_document_data TYPE sodocchgi1. "Mail data
DATA : wa_rec_list TYPE somlreci1.
DATA: reciever TYPE sadrud.    "Email address of the receiver
DATA : wa_obj_pack TYPE sopcklsti1.
DATA: v_lines(10) TYPE n.
DATA: binfilesize TYPE i.
DATA : wa_obj_header TYPE solisti1.
DATA : t_obj_header TYPE STANDARD TABLE OF solisti1.
DATA : obj_id TYPE sofolenti1-object_id. "To send a file as attatchment
data: pdftab type table of tline with header line.
data : flag_sent_to_all type sonv-flag.
*START-OF-SELECTION.
*  IF lcl_cls IS INITIAL.
*    CREATE OBJECT lcl_cls.
*  ENDIF.
  CLEAR i_vbak.
  SELECT  * FROM vbak into i_vbak
                  WHERE
*                    guebg IN s_guebg AND          "Valid-From Date
*                    gueen IN s_gueen AND          "Valid-To Date
*                    vkorg IN s_vkorg AND
                    vbeln = v_cont AND
*                   AUART = 'LP  ' AND  "Converts to 'CO  ' Scheduling A
                    auart = 'KM  ' AND  "Converts to 'CQ  ' Qty contract
*                   VBTYP = 'E' AND     "sales doc cat?              JM
                    vbtyp = 'G' ."AND     "sales doc cat              "JM
*                    bstzd IN s_bstzd.
    mtab_contract-kunnr = i_vbak-kunnr.
    mtab_contract-ordno = i_vbak-vbeln.
    mtab_contract-vkorg = i_vbak-vkorg.
    WRITE i_vbak-gueen TO mtab_contract-gueen.                "CHG014419
    APPEND mtab_contract.
  ENDSELECT.
  LOOP AT mtab_contract.
*    PERFORM get_contract.     "CO sales orders line items
******Get Contract*********
* SELECT SINGLE kunnr            "partner
*    INTO vbpa-kunnr
*    FROM vbpa
*   WHERE vbeln EQ  mtab_contract-ordno
*     AND posnr EQ '000000'
*     AND parvw EQ 'WE'               "Ship-To's
*     AND kunnr IN s_ship.           "Ship-To ID added 04/01/99
*  IF sy-subrc EQ 0 .
*    MOVE vbpa-kunnr TO mtab_contract-kunnr2.
*    MODIFY             mtab_contract.
*  ELSE.
*    EXIT.
*  ENDIF.
  CLEAR knvp.
  SELECT SINGLE kunn2            "territory
         INTO   knvp-kunn2
         FROM   knvp
         WHERE  kunnr  EQ mtab_contract-kunnr2
         AND    vkorg  EQ mtab_contract-vkorg
         AND    parvw  EQ 'Z6'.
*         AND    kunn2  IN s_terr .
  IF sy-subrc EQ 0 .
    MOVE knvp-kunn2 TO mtab_contract-terr.
    MODIFY             mtab_contract.
  ELSE.
    EXIT.
  ENDIF.
  CLEAR kna1.     "get rep name and mail box
  SELECT SINGLE name2 FROM kna1 INTO (kna1-name2)
    WHERE kunnr = knvp-kunn2.
  IF sy-subrc EQ 0 .
    SPLIT kna1-name2 AT w-mm INTO mtab_contract-repname
    mtab_contract-repmailbox.
    mtab_contract-repmailbox+3 = mtab_contract-repmailbox.
    mtab_contract-repmailbox(3) = 'MM'.
    MODIFY             mtab_contract.
  ENDIF.
  CLEAR knvv.
  SELECT SINGLE vkgrp
         INTO   knvv-vkgrp
         FROM   knvv
         WHERE  kunnr EQ knvp-kunn2
         AND    vkorg EQ mtab_contract-vkorg.
*         AND    vkgrp IN s_vkgrp.
  IF sy-subrc EQ 0 .
    MOVE knvv-vkgrp TO mtab_contract-vkgrp.
    MODIFY             mtab_contract.
  ELSE.
    EXIT.
  ENDIF.
  mtab_contract-med1-qty = '_______'.
  mtab_contract-med2-qty = '_______'.
  mtab_contract-med3-qty = '_______'.
  mtab_contract-med4-qty = '_______'.
  mtab_contract-med5-qty = '_______'.
  mtab_contract-med6-qty = '_______'.
  mtab_contract-med7-qty = '_______'.
  mtab_contract-med8-qty = '_______'.
  mtab_contract-med9-qty = '_______'.
  mtab_contract-med10-qty = '_______'.                           "JM
  mtab_contract-kit1-qty = '____'.
  mtab_contract-kit2-qty = '____'.
  mtab_contract-kit3-qty = '____'.
  mtab_contract-kit4-qty = '____'.
  mtab_contract-dis6 = 'OTHER  _____________________'.              "JM
  mtab_contract-dis7 = 'OTHER  _____________________'.              "JM
  mtab_contract-dis8 = 'OTHER  _____________________'.              "JM
  mtab_contract-dis9 = 'OTHER  _____________________'.              "JM
  mtab_contract-dis10 = 'OTHER  _____________________'.             "JM
*  SELECT  * FROM VBAP WHERE VBELN = MTAB_CONTRACT-ORDNO.
*     IF VBAP-MATNR = '7408CP'.
*       MTAB_CONTRACT-MED1 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR = '0211CP'.
*       MTAB_CONTRACT-MED2 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR =  '91865US'.
*       MTAB_CONTRACT-MED3 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR =  '0578CP'.
*       MTAB_CONTRACT-MED4 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR =  '0068CP'.
*       MTAB_CONTRACT-MED5 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR =  '0069CP'.
*       MTAB_CONTRACT-MED6 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR =  '92055CP'.                          "JM
*       MTAB_CONTRACT-MED7 = VBAP-MATNR.                       "JM
*     ELSEIF VBAP-MATNR =  '90799CP'.                          "JM
*       MTAB_CONTRACT-MED8 = VBAP-MATNR.                       "JM
*     ELSEIF VBAP-MATNR = '41315'.
*       MTAB_CONTRACT-KIT1 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR = '41316'.
*       MTAB_CONTRACT-KIT2 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR = '41317'.
*       MTAB_CONTRACT-KIT3 = VBAP-MATNR.
*     ELSEIF VBAP-MATNR = '91869US'.
*       MTAB_CONTRACT-KIT4 = VBAP-MATNR.
*     ELSE.
*       SELECT SINGLE MAKTX INTO MAKT-MAKTX
*                           FROM MAKT WHERE MATNR = VBAP-MATNR.
*     ENDIF.
*     MODIFY MTAB_CONTRACT.
*   ENDSELECT.
  MODIFY mtab_contract.
*    IF.
**        mtab_contract-terr IN s_terr AND
**       mtab_contract-kunnr2 IN s_ship AND
**       mtab_contract-vkgrp IN s_vkgrp.
**      PERFORM get_address.
*    ELSE.
*      DELETE mtab_contract INDEX sy-tabix.
*    ENDIF.
  ENDLOOP.
  SORT mtab_contract BY terr.
*  PERFORM set_print_option.
*  Print defaults should be immed and delete after print...
  itcpo-tdimmed  = ' '.
  itcpo-tddelete = 'X'.
  itcpo-tdnewid  = 'X'.
  itcpo-tdcopies = 1.
  itcpo-tdnoprev = 'X'.
  itcpo-tdgetotf = 'X'.
  itcpo-tddest  = 'LOCL'.
  CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
      destination            = 'LOCL'
      no_dialog              = 'X'
    IMPORTING
      out_archive_parameters = w_arc_params
      out_parameters         = w_pri_params.
*exit if cancel chosen*
  IF sy-subrc NE 0.
    EXIT.
  ENDIF.
  sadr-regio = 'CA'.
  sadr-pstlz = '92620'.
  LOOP AT mtab_contract.
*    PERFORM check-for-values.
IF mtab_contract-ordno = space.
    mtab_contract-ordno = '___________'.
  ENDIF.
  IF mtab_contract-terr = space.
    mtab_contract-terr = '______'.
  ENDIF.
  IF mtab_contract-repname = space.
    mtab_contract-repname = '___________________________________'.
  ENDIF.
  IF mtab_contract-repmailbox = space.
    mtab_contract-repmailbox = '__________'.
  ENDIF.
  IF mtab_contract-kunnr = space.
    mtab_contract-kunnr = '__________'.
  ENDIF.
  IF mtab_contract-name1 = space.
    mtab_contract-name1 = '___________________________________'.
  ENDIF.
  IF mtab_contract-stras = space.
    mtab_contract-stras = '___________________________________'.
  ENDIF.
  IF mtab_contract-pstlz = space.
    mtab_contract-pstlz = '__________'.
  ENDIF.
  IF mtab_contract-ort01 = space.
    mtab_contract-ort01 = '___________________________________'.
  ENDIF.
  IF mtab_contract-regio = space.
    mtab_contract-regio = '___'.
  ENDIF.
  IF mtab_contract-kunnr2 = space.
    mtab_contract-kunnr2 = '__________'.
  ENDIF.
  IF mtab_contract-name2 = space.
    mtab_contract-name2 = '___________________________________'.
  ENDIF.
  IF mtab_contract-stras2 = space.
    mtab_contract-stras2 = '___________________________________'.
  ENDIF.
  IF mtab_contract-pstlz2 = space.
    mtab_contract-pstlz2 = '__________'.
  ENDIF.
  IF mtab_contract-ort012 = space.
    mtab_contract-ort012 = '___________________________________'.
  ENDIF.
  IF mtab_contract-regio2 = space.
    mtab_contract-regio2 = '___'.
  ENDIF.
*    PERFORM open_form.
  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      dialog   = ' '
      form     = 'ZREV_CCK_AGREMT'
      language = sy-langu
      OPTIONS  = itcpo
    EXCEPTIONS
      canceled = 1
      device   = 2
      form     = 3
      OPTIONS  = 4
      unclosed = 5
      OTHERS   = 6.
  IF sy-subrc <> 0.
    MESSAGE e000(zz) WITH 'Open Form Error. ' sy-subrc.
  ENDIF.
    z_element = 'MAIN'.
*    PERFORM write_form.
  CALL FUNCTION 'WRITE_FORM'
    EXPORTING
      element   = z_element
    EXCEPTIONS
      element   = 1
      function  = 2
      type      = 3
      unopened  = 4
      unstarted = 5
      window    = 6
      OTHERS    = 7.
*    PERFORM close_form.
CALL FUNCTION 'CLOSE_FORM'
    IMPORTING
      RESULT   = w_res
    TABLES
      otfdata  = i_otf
    EXCEPTIONS
      unopened = 1
      OTHERS   = 2.
  IF sy-subrc <> 0.
    MESSAGE e000(zz) WITH 'Close Form Error. ' sy-subrc.
  ENDIF.
*&---Convert OTF data to PDF data.
  call function 'CONVERT_OTF'
   exporting
     format                      = 'PDF'
   importing
     bin_filesize                = binfilesize
    tables
      otf                         = i_otf
      lines                       = pdftab[].
data : name LIKE  RLGRAP-FILENAME.
  CONCATENATE 'C:Temp' mtab_contract-ordno '.pdf' INTO v_name.
*CALL FUNCTION 'DOWNLOAD'
* EXPORTING
*      bin_filesize = v_size
*      filename     = name
*      filetype     = 'BIN'
*  TABLES
*    data_tab                      = pdftab[].
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
*       BIN_FILESIZE                    =
        filename                        = v_name
       FILETYPE                        = 'BIN'
      tables
        data_tab                        = pdftab[].
* Downloading the PDF File
*  CALL METHOD lcl_cls->gui_download
*    EXPORTING
*      bin_filesize = v_size
*      filename     = v_name
*      filetype     = c_bin
*    CHANGING
*      data_tab     = pdftab[].
  CALL METHOD cl_gui_cfw=>flush.
**Send PDF as Email.
*  wa_obj_txt-line = 'CCK Contract Agreement'.
  APPEND wa_obj_txt TO t_obj_txt.
  CLEAR wa_obj_txt.
  wa_obj_txt-line = 'Please find attatched PDF document for Contract'.
  APPEND wa_obj_txt TO t_obj_txt.
  CLEAR wa_obj_txt.
  DESCRIBE TABLE t_obj_txt LINES tab_lines.
**Prepare document data
  wa_document_data-obj_name = 'CCK Contract Agreement'.
  wa_document_data-obj_descr = 'CCK Contract Agreement'.
  wa_document_data-obj_langu = sy-langu.
  wa_document_data-proc_type = 'R'.
  wa_document_data-proc_name = 'CCK'.
  wa_document_data-priority  = c_x.
  wa_document_data-obj_prio  = c_x.
**Receiving list
  wa_rec_list-receiver = sy-uname.
  wa_rec_list-rec_type = 'B'.
  wa_rec_list-com_type = 'INT'.
  wa_rec_list-notif_del = c_x.
  APPEND wa_rec_list TO t_rec_list.
  CLEAR wa_rec_list.
  wa_rec_list-receiver = '[email protected]'."p_email.
  reciever = wa_rec_list-receiver.
  wa_rec_list-rec_type = 'U'.
  wa_rec_list-com_type = 'INT'.
  wa_rec_list-notif_del = c_x.
  APPEND wa_rec_list TO t_rec_list.
  CLEAR wa_rec_list.
*Object packet
  CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
    EXPORTING
      line_width_src                    = 134
      line_width_dst                    = 255
     TABLES
       content_in                        = pdftab[]
       content_out                       = t_obj_bin
    EXCEPTIONS
      err_line_width_src_too_long       = 1
      err_line_width_dst_too_long       = 2
      err_conv_failed                   = 3
      OTHERS                            = 4
  IF sy-subrc <> 0.
  ENDIF.
  DESCRIBE TABLE t_obj_bin LINES v_lines.
  CLEAR wa_obj_pack-transf_bin .
  wa_obj_pack-head_start = 1.
  wa_obj_pack-head_num = 0.
  wa_obj_pack-body_start = 1.
  wa_obj_pack-body_num = tab_lines.
  wa_obj_pack-doc_type = 'RAW'.
  wa_obj_pack-doc_size = tab_lines * 255.
  APPEND wa_obj_pack TO t_obj_pack.
  CLEAR wa_obj_pack.
  wa_obj_pack-transf_bin = 'X'.
  wa_obj_pack-head_start = 1.
  wa_obj_pack-head_num = 0.
  wa_obj_pack-body_start = 1.
  wa_obj_pack-body_num = v_lines.
  wa_obj_pack-doc_type = 'PDF'.
  wa_obj_pack-obj_name = 'ATTATCHMENT'.
  wa_obj_pack-obj_descr = mtab_contract-ordno.
  wa_obj_pack-doc_size = binfilesize.
  APPEND wa_obj_pack TO t_obj_pack .
  CLEAR wa_obj_pack.
**Object header
  wa_obj_header-line = 'PDF'.
  APPEND wa_obj_header TO t_obj_header.
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = wa_document_data
      put_in_outbox              = c_x
      commit_work                = c_x
    IMPORTING
      sent_to_all                = flag_sent_to_all
      new_object_id              = obj_id
    TABLES
      packing_list               = t_obj_pack
      object_header              = t_obj_header
      contents_bin               = t_obj_bin
      contents_txt               = t_obj_txt
      receivers                  = t_rec_list
    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.
  else.
  return = 'true'.
  ENDIF.
ENDFUNCTION.
       <b> Flow Editor</b>
<flow>
     <state name="Start">
          <module name="<b>ZV_FUNC_CCK_EMAIL_PDF</b>" type="RFC" stateful="1">
               <inputmapping source="Contract" target="CONTRACT"/>
               <inputmapping source="email" target="EMAIL"/>
          </module>
          <module name="ZV_FUNC_CCK_VALIDATE_SHIPTO" type="RFC" stateful="1">
               <inputmapping source="SHIP_TO" target="KUNNR"/>
               <inputmapping source="USERNAME" target="USER"/>
               <outputmapping source="CITY" target="CITY"/>
               <outputmapping source="NAME" target="NAME"/>
               <outputmapping source="POSTAL" target="POSTAL"/>
               <outputmapping source="REGION" target="REGION"/>
               <outputmapping source="RETURN" target="RETURN"/>
               <outputmapping source="SD_CITY" target="SD_CITY"/>
               <outputmapping source="SD_NAME" target="SD_NAME"/>
               <outputmapping source="SD_POSTAL" target="SD_POSTAL"/>
               <outputmapping source="SD_REGION" target="SD_REGION"/>
               <outputmapping source="SD_STREET" target="SD_STREET"/>
               <outputmapping source="SOLDTO" target="SOLDTO"/>
               <outputmapping source="STREET" target="STREET"/>
          </module>
     </state>
     <event name="onLoad" next_state="Start"/>
     <event name="Check2" next_template="ZV_CCO_CONFIRMED_ORDER"/>
</flow>

Similar Messages

  • Program for Background Job for COGI

    Does anyone know what is the Program name for creating background job to run COGI? I'm using CORUAFFW to create variants and run the program but its not working as I guess it isonly generating the report but not deleting the records if inventory is added.
    Thanks
    Mama
    Edited by: Amit Raichura on Mar 21, 2008 1:31 AM

    Amit,
    Use Program "CORUAFWP" to schedule background job to post COGI error records if the error is corrected, as in your case stock is corrected.
    Regards,
    Prasobh

  • Program for background jobs...

    Hi
    I know that when i create any info structure; a program is also created in background viz used while creating background jobs...<b>but i dont know where can i view them</b>? This program is used while creating a background jobs in SM36.......Please correct me if i am wrong
    Suppose i have created info structure S999; then in that case from where to locate that program which must have been created in background?
    Rgds

    Hi,
    While executing the info structure, in the initial screen, click <b>system</b> in the menu bar and click <b>status</b>. in the popping menu you can find the program associated with the info structure.

  • Submit program in background job

    Hi all.
    Somehow I'm not able of using the following source code within a program executed within a scheduled job:
    SUBMIT RFEBKA00 USING SELECTION-SET 'VAR1'.
    The above program is the transaction FF_5.
    Does any one

    try to code in the below mentioned ...
    use BATCH = 'X' option.
    submit rfebka00 USING SELECTION-SET 'VAR1'
      with batch  = 'X' AND RETURN

  • Userexit or BADI for program *RMMRP000* for background job

    Hi,
    We are scheduling background job for MRP through SM36 using program  RMMRP000 or Through Transaction MDBT (MDBT is calling program RMMRP000) which creates PR (through background job).
    I want to default one field in PR (PO Price field in valuation tab in PR default to gross) using any userexit or BADI.
    Can any body suggest me userexit or BADI for program RMMRP000 for background job
    Regards.

    Hi,
    1. The below are the List of  Userexit for this MDBT t.CODE.
    2. But i dont see any one helping to resolve your issue.
    3. May be you should lookg at the Userexit for me21n or relevant Purhcase requisition creation transaction.
    reg
    dsk

  • Failed to Run OLE Excel program in background JOB (SM36)

    Please help.
    I have write a program to use OLE to create a Excel file.
    The program can run successful in front end workstation. However, when I run the program in background job by SM36.
    The statement "CREATE OBJECT EXCEL 'EXCEL.APPLICATION'" return with error "SY-SUBRC = 2".
    How can I solve it ?
    Can OLE Excel be run on background job ?
    Thanks so much,
    Mark

    Hi Mark:
    Your need is a very common one. I also was asked to generate an Excel in Background.
    It is not possible to work with OLE in background mode.
    The reason is: In background mode there is no presentation server. OLE is executed in presentation server.
    Below I paste the code I wrote to solve my problem.
    This class sends a mail with an excel attached. The Excel content will be the internal table you pass to the class. But the Excel is not binary, it is a plain text file, separated by tabulators. Anyway, when you open it with Excel, the columns are properly shown.
    Sorry. Comments are in spanish, I don't have time to translate it.
    I kindly ask to everybody which want to use it to keep my name in the code.
    * Autor: Jordi Escoda, 30/10/2008.
    * Descripción: Esta clase genera un correo electrónico destinado a
    *  una persona, adjuntando el contenido de una tabla interna como
    *  Excel (campos separados por tabuladores).
    *  La virtud de esta clase es su sencillez de utilización. Para lanzar
    *  el mail con el excel adjunto basta con declarar la tabla interna,
    *  llenarla, colocar el asunto del mensaje, el destinatario, el nombre
    *  del excel adjunto, y pasar la tabla interna.
    * Ejemplo de utilización:
    *  DATA: lc_mail TYPE REF TO cl_mail_builder_xls_attach.
    *  DATA: lt_anla TYPE STANDARD TABLE OF anla.
    *    SELECT * INTO TABLE lt_anla  FROM anla.
    *    CREATE OBJECT lc_mail.
    *    CALL METHOD lc_mail->set_subject( 'Excel adjunto' ).
    *    CALL METHOD lc_mail->set_recipient( 'XXX@XXXDOTCOM' ).
    *    CALL METHOD lc_mail->set_attach_filename( 'ANLA' ).
    *    APPEND 'Cuerpo del mensaje' TO  lt_body.
    *    APPEND 'Saludos cordiales' TO  lt_body.
    *    CALL METHOD lc_mail->set_bodytext( lt_body ).
    *    CALL METHOD lc_mail->set_attach_table( lt_anla ).
    *    CALL METHOD lc_mail->send( ).
    *       CLASS cl_mail_builder_xls_attach DEFINITION
    CLASS cl_mail_builder_xls_attach DEFINITION.
      PUBLIC SECTION.
        METHODS: set_subject
                               IMPORTING im_subject TYPE so_obj_des,
                 set_bodytext
                               IMPORTING im_body TYPE bcsy_text,
                 set_recipient
                               IMPORTING im_recipient TYPE ad_smtpadr,
                 set_attach_table
                               IMPORTING im_table TYPE ANY TABLE,
                 set_attach_filename
                               IMPORTING im_attach_name TYPE sood-objdes,
                 send.
      PRIVATE SECTION.
        CONSTANTS:
          c_tab  TYPE c VALUE cl_bcs_convert=>gc_tab,
          c_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf,
          c_singlequote TYPE c VALUE '.
        DATA: l_recipient_addr TYPE ad_smtpadr.
        DATA: send_request   TYPE REF TO cl_bcs,
              document       TYPE REF TO cl_document_bcs,
              recipient      TYPE REF TO if_recipient_bcs,
              bcs_exception  TYPE REF TO cx_bcs.
        DATA: binary_content TYPE solix_tab,
              size           TYPE so_obj_len.
        DATA: l_string TYPE string,
              l_body_text TYPE bcsy_text,
              l_subject TYPE so_obj_des,
              l_attach_name TYPE sood-objdes.
        METHODS: create_binary_content,
                 get_dataelement_medium_text
                        IMPORTING im_table_name TYPE tabname
                                  im_field_name TYPE fieldname
                        EXPORTING ex_medium_text TYPE scrtext_m.
    ENDCLASS.                    "cl_mail_builder_xls_attach DEFINITION
    *       CLASS cl_mail_builder_xls_attach IMPLEMENTATION
    CLASS cl_mail_builder_xls_attach IMPLEMENTATION.
      METHOD set_bodytext.
        l_body_text[] = im_body[].
      ENDMETHOD.                    "add_bodytext
      METHOD set_subject.
        l_subject = im_subject.
      ENDMETHOD.                    "add_subject
      METHOD set_attach_filename.
        l_attach_name = im_attach_name.
      ENDMETHOD.                    "add_subject
      METHOD set_recipient.
        l_recipient_addr = im_recipient.
      ENDMETHOD.                    "add_subject
      METHOD set_attach_table.
    *   Rellena en un string el contenido de la tabla interna recibida
        DATA: ref_to_struct  TYPE REF TO cl_abap_structdescr.
        DATA: my_like TYPE fieldname,
              nombretabla TYPE tabname,
              nombrecampo TYPE fieldname,
              texto_mediano TYPE scrtext_m.
        DATA: l_idx TYPE i,
              l_valorcampo(16) TYPE c,
              l_long TYPE i.
        FIELD-SYMBOLS: <fs_linea> TYPE ANY,
                       <fs_campo> TYPE ANY.
        FIELD-SYMBOLS: <comp_descr> TYPE abap_compdescr.
        CHECK NOT im_table[] IS INITIAL.
    *   Línea con los nombres de las columnas.
        CLEAR l_string.
        LOOP AT im_table ASSIGNING <fs_linea>.
    *     Toma los atributos del componente
          ref_to_struct  =
                     cl_abap_structdescr=>describe_by_data( <fs_linea> ).
          LOOP AT ref_to_struct->components ASSIGNING <comp_descr>.
            ASSIGN COMPONENT <comp_descr>-name
                                OF STRUCTURE <fs_linea> TO <fs_campo>.
    *       Obtenemos el origen de donde proviene (like). Ej:BKPF-BUDAT
            DESCRIBE FIELD <fs_campo> HELP-ID my_like.
            SPLIT my_like AT '-' INTO nombretabla nombrecampo.
            CALL METHOD get_dataelement_medium_text
              EXPORTING
                im_table_name  = nombretabla
                im_field_name  = nombrecampo
              IMPORTING
                ex_medium_text = texto_mediano.
            IF texto_mediano IS INITIAL.
              CONCATENATE l_string <comp_descr>-name INTO l_string.
            ELSE.
              CONCATENATE l_string texto_mediano INTO l_string.
            ENDIF.
            AT LAST.
              CONCATENATE l_string c_crlf INTO l_string.
              EXIT.
            ENDAT.
            CONCATENATE l_string c_tab INTO l_string.
          ENDLOOP.
          EXIT.
        ENDLOOP.
    *   Contenido de la tabla
        LOOP AT im_table ASSIGNING <fs_linea>.
    *     Toma los atributos del componente
          ref_to_struct  =
                     cl_abap_structdescr=>describe_by_data( <fs_linea> ).
          LOOP AT ref_to_struct->components ASSIGNING <comp_descr>.
    *       Asignamos el componente ue tratamos, para obtener
    *       el valor del mismo
            ASSIGN COMPONENT <comp_descr>-name OF STRUCTURE <fs_linea>
                                            TO <fs_campo>.
            CASE <comp_descr>-type_kind.
              WHEN 'P'. "Packed Number
    *           Convierte a caracter
                WRITE <fs_campo> TO l_valorcampo.
                CONCATENATE l_string l_valorcampo INTO l_string.
              WHEN OTHERS.
                l_long = STRLEN( <fs_campo> ).
                IF l_long > 11 AND <fs_campo> CO ' 0123456789'.
    *             El Excel muestra un número tal como 190000000006
    *             en formato 1,9E+11.
    *             Para eviarlo, los números de más de 11 dígitos los
    *             concatenamos con comillas simples.
                  CONCATENATE l_string c_singlequote
                              <fs_campo> c_singlequote INTO l_string.
                ELSE.
                  CONCATENATE l_string <fs_campo> INTO l_string.
                ENDIF.
            ENDCASE.
            AT LAST.
    *         Añade CRLF
              CONCATENATE l_string c_crlf INTO l_string.
              EXIT.
            ENDAT.
    *       Añade tabulador
            CONCATENATE l_string c_tab INTO l_string.
          ENDLOOP.
        ENDLOOP.
        create_binary_content( ).
      ENDMETHOD.                    "set_attach_table
      METHOD create_binary_content.
        DATA: l_size TYPE so_obj_len.
    *   convert the text string into UTF-16LE binary data including
    *   byte-order-mark. Mircosoft Excel prefers these settings
    *   all this is done by new class cl_bcs_convert (see note 1151257)
        TRY.
            cl_bcs_convert=>string_to_solix(
              EXPORTING
                iv_string   = l_string
                iv_codepage = '4103'  "suitable for MS Excel, leave empty
                iv_add_bom  = 'X'     "for other doc types
              IMPORTING
                et_solix  = binary_content
                ev_size   = size ).
          CATCH cx_bcs.
            MESSAGE e445(so).
        ENDTRY.
      ENDMETHOD.                    "create_binary_content
      METHOD send.
        DATA: l_sent_to_all TYPE os_boolean.
        TRY.
    *       create persistent send request
            send_request = cl_bcs=>create_persistent( ).
    *       create and set document with attachment
    *       create document object
            document = cl_document_bcs=>create_document(
              i_type    = 'RAW'
              i_text    = l_body_text
              i_subject = l_subject ).
    *       add the spread sheet as attachment to document object
            document->add_attachment(
              i_attachment_type    = 'xls'
              i_attachment_subject = l_attach_name
              i_attachment_size    = size
              i_att_content_hex    = binary_content ).
    *       add document object to send request
            send_request->set_document( document ).
    *       add recipient (e-mail address)
            recipient =
               cl_cam_address_bcs=>create_internet_address(
                                          l_recipient_addr ).
    *       add recipient object to send request
            send_request->add_recipient( recipient ).
    *       send document
            l_sent_to_all = send_request->send(
                                 i_with_error_screen = 'X' ).
            COMMIT WORK.
            IF l_sent_to_all IS INITIAL.
              MESSAGE i500(sbcoms) WITH l_recipient_addr.
            ELSE.
              MESSAGE s022(so).
            ENDIF.
          CATCH cx_bcs INTO bcs_exception.
            MESSAGE i865(so) WITH bcs_exception->error_type.
        ENDTRY.
      ENDMETHOD.                    "lcl_mail_xls_attachment
      METHOD get_dataelement_medium_text.
        DATA: lt_fld_info TYPE STANDARD TABLE OF dfies,
          wa_fld_info TYPE dfies.
    *   Busca en el diccionario los datos del campo
        CALL FUNCTION 'DDIF_FIELDINFO_GET'
          EXPORTING
            tabname        = im_table_name
            fieldname      = im_field_name
            langu          = sy-langu
          TABLES
            dfies_tab      = lt_fld_info
          EXCEPTIONS
            not_found      = 1
            internal_error = 2
            OTHERS         = 3.
        CLEAR ex_medium_text.
        IF sy-subrc = 0.
          READ TABLE lt_fld_info INDEX 1 INTO wa_fld_info.
    *     Si lo ha podido tomar del diccionario...
          IF NOT wa_fld_info-scrtext_m IS INITIAL.
    *       Toma el nombre del nombre de campo del diccionario
            ex_medium_text = wa_fld_info-scrtext_m.
          ENDIF.
        ENDIF.
      ENDMETHOD.                    "get_dataelement_medium_text
    ENDCLASS.                    "cl_mail_builder_xls_attach IMPLEMENTATION

  • Date and time for background job

    Hi,
    I am creating a program with out selection screen . This program runs based on date and time . so I need to create a table
    with date and time fileds.
    Program runs based on FROM DATE FROM TIME  TO DATE  TO TIME....... FROM DATE and FROM TIME  will get it from ztable and TO DATE & TO TIME values as SY-DATUM & SY-UZEIT. In the end I will update sy-datum and sy-uzeit values in the custom table to get the values ( Use it for from date from time ) for next run of the program.
    This program is mainly used for background job so how do we get the values of from date and from time for the first run of the program ? how do we update the latest date and time details by deleting old date and time details.
    Thanks ,
    Vinay.
    Edited by: Vinay parakala on Apr 22, 2010 9:18 AM

    First of all, I'll suggest to maintain TVARVC instead of doing it in custom table unless you need a complete log.
    As per my understanding, you are trying to fetch some records based on the time period(Delta loads).
    So, you will do an initial run to load the complete data then you will run it for time periods. For example,
    1st Load- 01/01/1991(earliest date possible) - today's date say 03/22/2010
    2nd load- 03/22/2010 - today's date
    so on............
    You have to move the to date values to from date values and to date value needs to be updated by the latest one for each load.
    Do you have any dependency on background job? Please let me know if my understanding is correct or specify your requirement in detail.

  • Variants for background jobs

    You need to schedule and automate batch jobs in an organisation. There will be multiple variants and multiple steps within same batch jobs. The variants are date dependent and needs to change every day. You need to automatically change the variants every day and schedule the jobs. Also check for the failures in the jobs. Apart from that Once the jobs in one server example : R/3 server ends the jobs in BW servers should be triggered automatically. Explain all steps with proper T codes and also provide a dry run example. Also provide all the table used for the variants purpose.
    Please help on this,thanks
    Narendra

    Hi Narendra,
    The background jobs are scheduled depending on the requirement with specific variants which are both date specific and even specific sometimes. These variants are created for the programs or reports which are run in the background job ,These variants are stored in VARID table for client specific variants and
    VARID_CI for client independent. For most of the times all these jobs are maintained in some job scheduling tools so that they automatically inform about job failures and processes can be automated.In our organisation we use UC4 for background job schedulign and it controls the process as you are looking for.
    Please award points accordingly
    With Regards,
    Junaid
    Message was edited by:
            muhammed junaid

  • Regarding Variants for Background jobs

    Hi Folks
    Can you please let me know the procedure how we can create the variants for Background jobs.
    Points are assured for correct answers.
    Regards,
    kumar

    Hi Sree Ram,
    Check this info.
    If you have any selection screen parameters for your program you need to enter the values for those fields in runtime. So, if you schedule your program in background to execute then there is no one to do this job. Here comes the concept of Variant.
    With variant you define what are the selection field values in the runtime. During runtime the program picks this values and runs the program.
    When you execute your program which has selection fields, you enter the values and then you click on 'GO TO ' tab and 'SAVE AS VARIANT'.
    When you schedule your program in background, give this variant also. Then it will run automatically.
    Hope this resolves your query.
    Reward all the helpful answers.
    Regards

  • Job failure ( report RFFDKU00 scheduled for background job)

    Hi Experts,
        When iam scheduling the report RFFDKU00 for background job. Job is getting cancelled with status "ABAP/4 processor: DBIF_RSQL_SQL_ERROR" . when iam obesrving this job it is going to dump at this select query
    "     select ausbk belnr gjahr bzkey buzei
    033370                  from vbsegs into table t_vbsegsfields
    033380            where bukrs in r_bukrs
    033390            and not ( fdlev = space
    033400                  and fdgrp = space
    033410                  and fdtag = init_date
    033420                  and fdwbt = 0 )
    033430            and not saknr in r_cm_sk   "
    Can anyone helpme to deal with this issues ,
    thanks in advance,
    Kranthi

    note 167301 might help.

  • Function module for background jobs email

    hi abaper's
                     i hace to create a function module for background jobs this function module have to send an email automatically when a background job is assigned or processed in background.
    thnks n regards
    pardeep kumar

    hi dear
    open this site
    https://weblogs.sdn.sap.com/pub/wlg/781. [original link is broken] [original link is broken] [original link is broken]
    <removed by moderator>
    Edited by: Mike Pokraka on Aug 8, 2008 12:48 PM

  • SQL trace for Background jobs

    Hi
    Can anyone suggest how to find the SQL trace for background jobs.
    Thanks in advance.
    Regards
    D.Vadivukkarasi

    Hi
    Check the transaction ST05.
    Plz Reward Points if helpful

  • Submit program for function pool

    Dear Experts,
                       i am using submit program for a standard report
       submit SAPLRHPA_REPORTING
                   with APPSELECT_HISTO eq  'X'
                   and return.
    it's going to dump how to use function pool programs in submit statements.
    You attempted to start the ABAP/4 program "SAPLRHPA_REPORTING" with SUBMIT, but
    attributes specify this program as type "F" instead of "1". You can
    only start programs of type 1 with SUBMIT.
    Thanks and Regards,
    Thirukumaran. R

    Hi
    As per my knoweldge i think you cant submit the fuction pool using by submit.
    Alternate way is call the function module which is within the function pool .
    Or if you want to execute a particular routine within a function pool you can use as below
    PERFORM Routine_name(saplrhpa_reporting)
                                           USING parameters.
    Hope this answer helps you
    Cheers.
    J.

  • How to get data from the called program using SUBMIT in a background job?

    Hi Experts,
    I've a program which creates a background job using JOB_OPEN and JOB_CLOSE function modules.
    Between the above function modules I need to call a program using SUBMIT VIA JOB statement.
    My problem is, How do I fetch some data in an internal table in the called program to the calling program after the SUBMIT statement?
    I tried to EXPORT and IMPORT the data, but they are giving a failed sy-subrc when using this background job.
    Kindly let me know your inputs and valuable suggestions.

    Kumar,
    When we execute a program as a background job then the output will be sent to Spool which needs to be fetched again.I guess we need to use Submit via spool as mentioned by Rajat.
    Check these threads to get some idea
    submit report to spool & import spool id
    Re: Generate Spool for a report
    K.Kiran.

  • Creating a Step for Background Job from within ABAP Program

    Step-1: I have a Report in ECC, which is scheduled as Background Job, which writes the file to the Application Server(UNIX)
    Step-2:  Trigger a Unix Command to ftp the file to other server.
    Both Step-1 & Step-2 can be done from SM36. 
    Another Scenario:
    Users can run the report in background from SE38 or using the transaction code for the report, In this case we want to call the external command.
    Instead of calling the External Command as below in the report, I want to create a Step from within the program when it is scheduled in background mode.
    CALL 'SYSTEM' ID 'COMMAND' FIELD lc_unixcom.    [ Here lc_unixcom has the External Command ].
    Any ideas??? Appreciate help.

    Hi,
    For submitting a report step, you may use either SUBMIT ... VIA JOB ... or JOB_SUBMIT function module.
    For external commands, this should be done only by calling JOB_SUBMIT function module.
    Sandra

Maybe you are looking for

  • Creation of PRs for materials in stock

    Hi, When i run MRP for a finished product, many PRs are created for raw materials in stock also. Why this is happening?.Is this because of planning strategy in MD02 .We are using planning strategy 20.Pls suggest a way to stop creation of PRs for a ma

  • How do you get your contacts pictures back when making a call?

    Basically, now I've applied the update I can't see the photos I've allocated to my various contacts. It's a blur behind the call details and other options for muting etc. Am I missing something really obvious?

  • PDF binary variable won't save in Oracle blob

    I am reading in a small, legitimate PDF as a binary variable and them immediately saving that variable into a blob. But the blob doesn't store the data. <cffile action="readbinary" file="C:\Test_Files\test.pdf" variable="testdoc"> now shows isbinary(

  • 0PUR_C02 - Error

    I am doing vendor evaluation cube and i have the datasource replication , infosource and cube with update rules in place.I ran the init and then the delta. I got this error when i ran the delta. Can some one tell me what could be the cause. Error whe

  • Help me with this RMI example

    For Filetransfering over RMI (with compressing the data on client side and decompressing on server side) : I have in Server-Side as a remote methode : public byte[] getFileData(String fileName) { System.out.println("read : "+fileName); try { ByteArra