Changing layout at runtime, executing background job and sending mail inXLS

Hi
When i execute my program in foregroung by manually changing value of s_job = 'X' in debugging mode it is sending the correct XLS file via mail with all the data , whereas  when i execute my program in backgroud mode it sends incomlete XLS file via mail, it has only first 2 records in any layout........can anybody please help in this regard....
program is as follows...
REPORT ZPMACR01_MD_MRP_100.
*& Report :  ZPMACR01_MD_MRP_100
TABLES : MARA, MARC, MAKT, MBEW,MARD.
MAIL data declarations
TABLES : adr6 , sscrfields.
DATA: BEGIN OF mbody OCCURS 0,
      message(100),
      END OF mbody.
DATA: BEGIN OF addresses OCCURS 0,
      addresses(100),
      END Of addresses.
FIELD-SYMBOLS: <f> type ANY,
               <tab> TYPE STANDARD TABLE,
               <wa> type ANY.
DATA: count TYPE i value 0,
      col_1 TYPE i.
DATA: new_table TYPE REF TO data, "pointer to dynamic table
      new_line  TYPE REF TO data. "pointer to work area of dynamic table
DATA: s_job TYPE c.
DATA: i_data_out_text TYPE string OCCURS 0 WITH HEADER LINE.
DATA: message TYPE string OCCURS 0 WITH HEADER LINE.
DATA:  it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
       WITH HEADER LINE.
DATA:  BEGIN OF it_attach OCCURS 0,
         line(2650) TYPE c,
       END OF it_attach.
DATA:   t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
        t_hex LIKE solix OCCURS 0 WITH HEADER LINE,
        t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
        w_cnt TYPE i,
        w_sent_all(1) TYPE c,
        w_doc_data LIKE sodocchgi1,
        gd_error    TYPE sy-subrc,
        gd_reciever TYPE sy-subrc.
ALV data declarations
TYPE-POOLS: SLIS.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
       IT_FIELDCAT2 TYPE LVC_T_FCAT,
       IT_FIELDCAT_FIN TYPE LVC_T_FCAT,
       IT_FIELDCAT3 TYPE SLIS_T_FIELDCAT_ALV,
       itab1 TYPE SLIS_T_FIELDCAT_ALV,
       W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
       W_REPID TYPE SY-REPID,
       IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: is_fieldcat LIKE LINE OF it_fieldcat.
DATA: is_fieldcat2 LIKE LINE OF it_fieldcat2,
Is_FIELDCAT3 LIKE LINE OF it_fieldcat3.
Data: variant type  DISVARIANT,
      v_size LIKE sy-tabix.
ALV Data
DATA:
       i_sort TYPE slis_t_sortinfo_alv,
       v_lvc_title   TYPE lvc_title,
       v_repid       LIKE sy-repid,
       c_user_command TYPE slis_formname  VALUE 'ALV_USER_COMMAND',
       gt_list_top_of_page TYPE slis_t_listheader,
       gt_list_end_of_list TYPE slis_t_listheader,
       gs_layout TYPE slis_layout_alv,
       gt_events      TYPE slis_t_event,
       gs_events      type slis_alv_event,
       gt_print       TYPE slis_print_alv,
       g_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE'.
Selection Parameters
SELECTION-SCREEN BEGIN OF BLOCK B1.
SELECT-OPTIONS : SO_MATNR FOR MARA-MATNR OBLIGATORY.
SELECT-OPTIONS : SO_WERKS FOR MARC-WERKS.
SELECT-OPTIONS : SO_SPRAS FOR MAKT-SPRAS.
SELECT-OPTIONS : SO_BWKEY FOR MBEW-BWKEY.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_email TYPE somlreci1-receiver
                                  default '[email protected]'.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-002.
PARAMETERS : SO_LAY TYPE DISVARIANT-VARIANT DEFAULT '/DEFAULT'.
SELECTION-SCREEN END OF BLOCK B3.
DATA Declarations.
Data : BEGIN OF ITab OCCURS 0,
       manr type mara-matnr,
       end of ITAB.
data : BEGIN OF IT_TABLE OCCURS 0,
       MATNR TYPE MARA-MATNR,
       MATKL TYPE MARA-MATKL,
       MEINS TYPE MARA-MEINS,
       MTART TYPE MARA-MTART,
       AHDIS TYPE MARC-AHDIS,
       AUSDT TYPE MARC-AUSDT,
       AUTRU TYPE MARC-AUTRU,
       BESKZ TYPE MARC-BESKZ,
       BSTFE TYPE MARC-BSTFE,
       BSTMA TYPE MARC-BSTMA,
       BSTMI TYPE MARC-BSTMI,
       BSTRF TYPE MARC-BSTRF,
       BWSCL TYPE MARC-BWSCL,
       DIBER TYPE MARC-DIBER,
       DISGR TYPE MARC-DISGR,
       DISLS TYPE MARC-DISLS,
       DISMM TYPE MARC-DISMM,
       DISPO TYPE MARC-DISPO,
       DISPR TYPE MARC-DISPR,
       DZEIT TYPE MARC-DZEIT,
       EISBE TYPE MARC-EISBE,
       EISLO TYPE MARC-EISLO,
       EKGRP TYPE MARC-EKGRP,
       FHORI TYPE MARC-FHORI,
       FXHOR TYPE MARC-FXHOR,
       KAUTB TYPE MARC-KAUTB,
       KORDB TYPE MARC-KORDB,
       KZAUS TYPE MARC-KZAUS,
       LFGJA TYPE MARC-LFGJA,
       LFMON TYPE MARC-LFMON,
       LGRAD TYPE MARC-LGRAD,
       LVORM TYPE MARC-LVORM,
       MABST TYPE MARC-MABST,
       MINBE TYPE MARC-MINBE,
       MMSTA TYPE MARC-MMSTA,
       MMSTD TYPE MARC-MMSTD,
       MRPPP TYPE MARC-MRPPP,
       MTVFP TYPE MARC-MTVFP,
       NFMAT TYPE MARC-NFMAT,
       PERKZ TYPE MARC-PERKZ,
       PLIFZ TYPE MARC-PLIFZ,
       PLVAR TYPE MARC-PLVAR,
       PSTAT TYPE MARC-PSTAT,
       QZGTP TYPE MARC-QZGTP,
       RGEKZ TYPE MARC-RGEKZ,
       RWPRO TYPE MARC-RWPRO,
       SBDKZ TYPE MARC-SBDKZ,
       SCHGT TYPE MARC-SCHGT,
       SHFLG TYPE MARC-SHFLG,
       SHPRO TYPE MARC-SHPRO,
       SHZET TYPE MARC-SHZET,
       SOBSL TYPE MARC-SOBSL,
       STRGR TYPE MARC-STRGR,
       TRAME TYPE MARC-TRAME,
       UEETK TYPE MARC-UEETK,
       UEETO TYPE MARC-UEETO,
       UMLMC TYPE MARC-UMLMC,
       UNETO TYPE MARC-UNETO,
       USEQU TYPE MARC-USEQU,
       VINT1 TYPE MARC-VINT1,
       VINT2 TYPE MARC-VINT2,
       VRBDT TYPE MARC-VRBDT,
       VRBFK TYPE MARC-VRBFK,
       VRBMT TYPE MARC-VRBMT,
       VRBWK TYPE MARC-VRBWK,
       VRMOD TYPE MARC-VRMOD,
       WEBAZ TYPE MARC-WEBAZ,
       WERKS TYPE MARC-WERKS,
       WZEIT TYPE MARC-WZEIT,
      DISKZ TYPE MARD-DISKZ,
      LBSTF TYPE MARD-LBSTF,
      LGORT TYPE MARD-LGORT,
      LMINB TYPE MARD-LMINB,
      LSOBS TYPE MARD-LSOBS,
       MAKTX TYPE MAKT-MAKTX,
       END OF IT_TABLE.
DATA: BEGIN OF IT_MARD OCCURS 0,
       MATNR TYPE MARA-MATNR,
       MATKL TYPE MARA-MATKL,
       MEINS TYPE MARA-MEINS,
       MTART TYPE MARA-MTART,
       DISKZ TYPE MARD-DISKZ,
       LBSTF TYPE MARD-LBSTF,
       LGORT TYPE MARD-LGORT,
       LMINB TYPE MARD-LMINB,
       LSOBS TYPE MARD-LSOBS,
      MAKTX TYPE MAKT-MAKTX,
       END OF IT_MARD.
DATA: BEGIN OF IT_MBEW OCCURS 0,
       MATNR TYPE MBEW-MATNR,
       BKLAS TYPE MBEW-BKLAS,
       SALK3 TYPE MBEW-SALK3,
       PEINH TYPE MBEW-PEINH,
       STPRS TYPE MBEW-STPRS,
       VERPR TYPE MBEW-VERPR,
       VPRSV TYPE MBEW-VPRSV,
       END OF IT_MBEW.
data : BEGIN OF IT_FINAL0 occurs 0,
       MATNR LIKE MARA-MATNR,
       MATKL LIKE MARA-MATKL,
       MEINS LIKE MARA-MEINS,
       MTART LIKE MARA-MTART,
       AHDIS LIKE MARC-AHDIS,
       AUSDT LIKE MARC-AUSDT,
       AUTRU LIKE MARC-AUTRU,
       BESKZ LIKE MARC-BESKZ,
       BSTFE LIKE MARC-BSTFE,
       BSTMA LIKE MARC-BSTMA,
       BSTMI LIKE MARC-BSTMI,
       BSTRF LIKE MARC-BSTRF,
       BWSCL LIKE MARC-BWSCL,
       DIBER LIKE MARC-DIBER,
       DISGR LIKE MARC-DISGR,
       DISLS LIKE MARC-DISLS,
       DISMM LIKE MARC-DISMM,
       DISPO LIKE MARC-DISPO,
       DISPR LIKE MARC-DISPR,
       DZEIT LIKE MARC-DZEIT,
       EISBE LIKE MARC-EISBE,
       EISLO LIKE MARC-EISLO,
       EKGRP LIKE MARC-EKGRP,
       FHORI LIKE MARC-FHORI,
       FXHOR LIKE MARC-FXHOR,
       KAUTB LIKE MARC-KAUTB,
       KORDB LIKE MARC-KORDB,
       KZAUS LIKE MARC-KZAUS,
       LFGJA LIKE MARC-LFGJA,
       LFMON LIKE MARC-LFMON,
       LGRAD LIKE MARC-LGRAD,
       LVORM LIKE MARC-LVORM,
       MABST LIKE MARC-MABST,
       MINBE LIKE MARC-MINBE,
       MMSTA LIKE MARC-MMSTA,
       MMSTD LIKE MARC-MMSTD,
       MRPPP LIKE MARC-MRPPP,
       MTVFP LIKE MARC-MTVFP,
       NFMAT LIKE MARC-NFMAT,
       PERKZ LIKE MARC-PERKZ,
       PLIFZ LIKE MARC-PLIFZ,
       PLVAR LIKE MARC-PLVAR,
       PSTAT LIKE MARC-PSTAT,
       QZGTP LIKE MARC-QZGTP,
       RGEKZ LIKE MARC-RGEKZ,
       RWPRO LIKE MARC-RWPRO,
       SBDKZ LIKE MARC-SBDKZ,
       SCHGT LIKE MARC-SCHGT,
       SHFLG LIKE MARC-SHFLG,
       SHPRO LIKE MARC-SHPRO,
       SHZET LIKE MARC-SHZET,
       SOBSL LIKE MARC-SOBSL,
       STRGR LIKE MARC-STRGR,
       TRAME LIKE MARC-TRAME,
       UEETK LIKE MARC-UEETK,
       UEETO LIKE MARC-UEETO,
       UMLMC LIKE MARC-UMLMC,
       UNETO LIKE MARC-UNETO,
       USEQU LIKE MARC-USEQU,
       VINT1 LIKE MARC-VINT1,
       VINT2 LIKE MARC-VINT2,
       VRBDT LIKE MARC-VRBDT,
       VRBFK LIKE MARC-VRBFK,
       VRBMT LIKE MARC-VRBMT,
       VRBWK LIKE MARC-VRBWK,
       VRMOD LIKE MARC-VRMOD,
       WEBAZ LIKE MARC-WEBAZ,
       WERKS LIKE MARC-WERKS,
       WZEIT LIKE MARC-WZEIT,
       DISKZ LIKE MARD-DISKZ,
       LBSTF LIKE MARD-LBSTF,
       LGORT LIKE MARD-LGORT,
       LMINB LIKE MARD-LMINB,
       LSOBS LIKE MARD-LSOBS,
       MAKTX LIKE MAKT-MAKTX,
       END OF IT_FINAL0.
data : BEGIN OF IT_FINAL occurs 0,
       MATNR LIKE MARA-MATNR,
       MATKL LIKE MARA-MATKL,
       MEINS LIKE MARA-MEINS,
       MTART LIKE MARA-MTART,
       AHDIS LIKE MARC-AHDIS,
       AUSDT LIKE MARC-AUSDT,
       AUTRU LIKE MARC-AUTRU,
       BESKZ LIKE MARC-BESKZ,
       BSTFE LIKE MARC-BSTFE,
       BSTMA LIKE MARC-BSTMA,
       BSTMI LIKE MARC-BSTMI,
       BSTRF LIKE MARC-BSTRF,
       BWSCL LIKE MARC-BWSCL,
       DIBER LIKE MARC-DIBER,
       DISGR LIKE MARC-DISGR,
       DISLS LIKE MARC-DISLS,
       DISMM LIKE MARC-DISMM,
       DISPO LIKE MARC-DISPO,
       DISPR LIKE MARC-DISPR,
       DZEIT LIKE MARC-DZEIT,
       EISBE LIKE MARC-EISBE,
       EISLO LIKE MARC-EISLO,
       EKGRP LIKE MARC-EKGRP,
       FHORI LIKE MARC-FHORI,
       FXHOR LIKE MARC-FXHOR,
       KAUTB LIKE MARC-KAUTB,
       KORDB LIKE MARC-KORDB,
       KZAUS LIKE MARC-KZAUS,
       LFGJA LIKE MARC-LFGJA,
       LFMON LIKE MARC-LFMON,
       LGRAD LIKE MARC-LGRAD,
       LVORM LIKE MARC-LVORM,
       MABST LIKE MARC-MABST,
       MINBE LIKE MARC-MINBE,
       MMSTA LIKE MARC-MMSTA,
       MMSTD LIKE MARC-MMSTD,
       MRPPP LIKE MARC-MRPPP,
       MTVFP LIKE MARC-MTVFP,
       NFMAT LIKE MARC-NFMAT,
       PERKZ LIKE MARC-PERKZ,
       PLIFZ LIKE MARC-PLIFZ,
       PLVAR LIKE MARC-PLVAR,
       PSTAT LIKE MARC-PSTAT,
       QZGTP LIKE MARC-QZGTP,
       RGEKZ LIKE MARC-RGEKZ,
       RWPRO LIKE MARC-RWPRO,
       SBDKZ LIKE MARC-SBDKZ,
       SCHGT LIKE MARC-SCHGT,
       SHFLG LIKE MARC-SHFLG,
       SHPRO LIKE MARC-SHPRO,
       SHZET LIKE MARC-SHZET,
       SOBSL LIKE MARC-SOBSL,
       STRGR LIKE MARC-STRGR,
       TRAME LIKE MARC-TRAME,
       UEETK LIKE MARC-UEETK,
       UEETO LIKE MARC-UEETO,
       UMLMC LIKE MARC-UMLMC,
       UNETO LIKE MARC-UNETO,
       USEQU LIKE MARC-USEQU,
       VINT1 LIKE MARC-VINT1,
       VINT2 LIKE MARC-VINT2,
       VRBDT LIKE MARC-VRBDT,
       VRBFK LIKE MARC-VRBFK,
       VRBMT LIKE MARC-VRBMT,
       VRBWK LIKE MARC-VRBWK,
       VRMOD LIKE MARC-VRMOD,
       WEBAZ LIKE MARC-WEBAZ,
       WERKS LIKE MARC-WERKS,
       WZEIT LIKE MARC-WZEIT,
       DISKZ LIKE MARD-DISKZ,
       LBSTF LIKE MARD-LBSTF,
       LGORT LIKE MARD-LGORT,
       LMINB LIKE MARD-LMINB,
       LSOBS LIKE MARD-LSOBS,
       MAKTX LIKE MAKT-MAKTX,
       BKLAS LIKE MBEW-BKLAS,
       SALK3 LIKE MBEW-SALK3,
       PEINH LIKE MBEW-PEINH,
       STPRS LIKE MBEW-STPRS,
       VERPR LIKE MBEW-VERPR,
       VPRSV LIKE MBEW-VPRSV,
       ZXPRS LIKE MBEW-STPRS,
       END OF IT_FINAL.
data : BEGIN OF IT_display occurs 0,
       matnr LIKE MARA-MATNR,
       maktx LIKE MAKT-MAKTX,
       meins LIKE MARA-MEINS,
       werks LIKE MARC-WERKS,
       dispo LIKE MARC-DISPO,
       dismm LIKE MARC-DISMM,
       plifz LIKE MARC-PLIFZ,
       webaz LIKE MARC-WEBAZ,
       minbe LIKE MARC-MINBE,
     shzet LIKE MARC-SHZET,
     eisbe LIKE MARC-EISBE,
     disls LIKE MARC-DISLS,
     bstmi LIKE MARC-BSTMI,
     bstma LIKE MARC-BSTMA,
     bstfe LIKE MARC-BSTFE,
     ZXPRS LIKE MBEW-STPRS,
     peinh LIKE MBEW-PEINH,
     salk3 LIKE MBEW-SALK3,
       end of it_display.
ALV Layout Variant
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_lay.
  PERFORM get_alv_layout_values.
SELECTION SCREEN.
AT SELECTION-SCREEN.
  IF ( sscrfields-ucomm = 'SJOB' OR
  sy-batch = 'X' ).
    s_job = 'X'.
  ENDIF.
select single matnr into itab from mara where matnr in so_matnr.
if sy-subrc <> 0.
message e001(zpal).
endif.
START-OF-SELECTION.
  IF SO_LAY <> ' '.
    VARIANT-REPORT = 'ZPMACR01_MD_MRP_100'.
    VARIANT-VARIANT = SO_LAY.
else.
VARIANT-VARIANT = '/DEFAULT'.
  ENDIF.
INITIALIZATION.
  W_REPID = SY-REPID.
START-OF-SELECTION.
IF SO_LAY <> ' '.
    VARIANT-REPORT  = w_repid.
    VARIANT-VARIANT = SO_LAY.
else.
VARIANT-VARIANT = '/DEFAULT'.
ENDIF.
  SELECT
  MARA~MATNR
  MARA~MATKL
  MARA~MEINS
  MARA~MTART
  MARC~AHDIS
  MARC~AUSDT
  MARC~AUTRU
  MARC~BESKZ
  MARC~BSTFE
  MARC~BSTMA
  MARC~BSTMI
  MARC~BSTRF
  MARC~BWSCL
  MARC~DIBER
  MARC~DISGR
  MARC~DISLS
  MARC~DISMM
  MARC~DISPO
  MARC~DISPR
  MARC~DZEIT
  MARC~EISBE
  MARC~EISLO
  MARC~EKGRP
  MARC~FHORI
  MARC~FXHOR
  MARC~KAUTB
  MARC~KORDB
  MARC~KZAUS
  MARC~LFGJA
  MARC~LFMON
  MARC~LGRAD
  MARC~LVORM
  MARC~MABST
  MARC~MINBE
  MARC~MMSTA
  MARC~MMSTD
  MARC~MRPPP
  MARC~MTVFP
  MARC~NFMAT
  MARC~PERKZ
  MARC~PLIFZ
  MARC~PLVAR
  MARC~PSTAT
  MARC~QZGTP
  MARC~RGEKZ
  MARC~RWPRO
  MARC~SBDKZ
  MARC~SCHGT
  MARC~SHFLG
  MARC~SHPRO
  MARC~SHZET
  MARC~SOBSL
  MARC~STRGR
  MARC~TRAME
  MARC~UEETK
  MARC~UEETO
  MARC~UMLMC
  MARC~UNETO
  MARC~USEQU
  MARC~VINT1
  MARC~VINT2
  MARC~VRBDT
  MARC~VRBFK
  MARC~VRBMT
  MARC~VRBWK
  MARC~VRMOD
  MARC~WEBAZ
  MARC~WERKS
  MARC~WZEIT
MARD~DISKZ
MARD~LBSTF
MARD~LGORT
MARD~LMINB
MARD~LSOBS
  MAKT~MAKTX
INTO TABLE IT_TABLE
FROM MARA INNER JOIN MARC ON MARAMATNR = MARCMATNR
INNER JOIN MAKT ON MARAMATNR = MAKTMATNR
WHERE MARA~MATNR IN SO_MATNR
       AND MARC~WERKS IN SO_WERKS
       AND MAKT~SPRAS IN SO_SPRAS.
  SELECT
  MARA~MATNR
  MARA~MATKL
  MARA~MEINS
  MARA~MTART
  MARD~DISKZ
  MARD~LBSTF
  MARD~LGORT
  MARD~LMINB
  MARD~LSOBS
  INTO TABLE IT_mard
   FROM MARA INNER JOIN MARD ON MARAMATNR = MARDMATNR
            WHERE  MARA~MATNR IN SO_MATNR
                  and mard~werks in SO_WERKS.
  SELECT MATNR BKLAS SALK3 PEINH STPRS VERPR VPRSV
  INTO TABLE IT_MBEW FROM MBEW FOR ALL ENTRIES IN IT_TABLE WHERE MATNR =
  IT_TABLE-MATNR AND BWKEY IN SO_BWKEY.
  LOOP AT IT_TABLE.
   MOVE-CORRESPONDING IT_TABLE TO IT_FINAL0.
    READ TABLE IT_MARD WITH KEY MATNR = IT_TABLE-MATNR.
    IF SY-SUBRC = 0 .
     MOVE-CORRESPONDING IT_MARD TO IT_FINAL0.
    ENDIF.
     APPEND IT_FINAL0.
     CLEAR IT_FINAL0.
  ENDLOOP.
LOOP AT IT_FINAL0.
    READ TABLE IT_MBEW WITH KEY MATNR = IT_final0-MATNR.
    IF SY-SUBRC = 0 .
     MOVE-CORRESPONDING IT_MBEW TO IT_FINAL.
     IF IT_MBEW-VPRSV = 'S'.
      MOVE IT_MBEW-STPRS TO IT_FINAL-ZXPRS.
     ELSE.
      MOVE IT_MBEW-VERPR TO IT_FINAL-ZXPRS.
     ENDIF.
    ENDIF.
    MOVE-CORRESPONDING IT_FINAL0 TO IT_FINAL.
    APPEND IT_FINAL.
    CLEAR IT_FINAL.
ENDLOOP.
Default Layout
  LOOP AT IT_FINAL.
    Read table it_final with key matnr = SO_matnr.
    Move it_final-MATNR to it_display-MATNR.
    Move it_final-MAKTX to it_display-MAKTX.
    Move it_final-MEINS to it_display-MEINS.
    Move it_final-WERKS to it_display-WERKS.
    Move it_final-DISPO to it_display-DISPO.
    Move it_final-DISMM to it_display-DISMM.
    Move it_final-PLIFZ to it_display-PLIFZ.
    Move it_final-WEBAZ to it_display-WEBAZ.
    Move it_final-MINBE to it_display-MINBE.
    Move it_final-SHZET to it_display-SHZET.
    Move it_final-EISBE to it_display-EISBE.
    Move it_final-DISLS to it_display-DISLS.
    Move it_final-BSTMI to it_display-BSTMI.
    Move it_final-BSTMA to it_display-BSTMA.
    Move it_final-BSTFE to it_display-BSTFE.
    MOVE it_final-ZXPRS to it_display-ZXPRS.
    Move it_final-PEINH to it_display-PEINH.
    Move it_final-SALK3 to it_display-SALK3.
    Append it_display.
  endloop.
  data: v_data type c value ' '.
  if it_display is initial.
    v_data = ' '.
  else.
    v_data = 'X'.
  endif.
END-OF-SELECTION.
END-OF-SELECTION.
  if s_job = 'X'.
    perform execute_back.
  else.
    perform execute_fore.
  endif.
      FORM execute_fore                                             *
Form execute_fore.
*&      Form REUSE_ALV_FIELDCATALOG_MERGE
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
     I_PROGRAM_NAME               = W_REPID
     I_INTERNAL_TABNAME           = 'IT_FINAL'
  I_STRUCTURE_NAME             =
  I_CLIENT_NEVER_DISPLAY       = 'X'
     I_INCLNAME                   = W_REPID
  I_BYPASSING_BUFFER           =
  I_BUFFER_ACTIVE              =
    CHANGING
      CT_FIELDCAT                  = IT_FIELDCAT
   EXCEPTIONS
     INCONSISTENT_INTERFACE       = 1
     PROGRAM_ERROR                = 2
     OTHERS                       = 3
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
*&      Form  DISPLAY_ALV_REPORT
      Display report using ALV grid
*IF SO_LAY <> ' '.
VARIANT-VARIANT = SO_LAY.
*endif.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
                   I_INTERFACE_CHECK                 = ' '
                   I_BYPASSING_BUFFER                =
                   I_BUFFER_ACTIVE                   = ' '
                     I_CALLBACK_PROGRAM                = W_REPID
                   I_CALLBACK_PF_STATUS_SET          = ' '
                   I_CALLBACK_USER_COMMAND           = ' '
                   I_CALLBACK_TOP_OF_PAGE            = ' '
                   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
                   I_CALLBACK_HTML_END_OF_LIST       = ' '
                   I_STRUCTURE_NAME                  =
                   I_BACKGROUND_ID                   = ' '
                   I_GRID_TITLE                      =
                   I_GRID_SETTINGS                   =
                   IS_LAYOUT                         = IT_LAYOUT
                     IT_FIELDCAT                       = IT_FIELDCAT[]
                   IT_EXCLUDING                      =
                   IT_SPECIAL_GROUPS                 =
                   IT_SORT                           =
                   IT_FILTER                         =
                   IS_SEL_HIDE                       =
                   I_DEFAULT                         = 'X'
                     I_SAVE                            = 'X'
                     IS_VARIANT                        = VARIANT
                   IT_EVENTS                         =
                   IT_EVENT_EXIT                     =
                   IS_PRINT                          =
                   IS_REPREP_ID                      =
                   I_SCREEN_START_COLUMN             = 0
                   I_SCREEN_START_LINE               = 0
                   I_SCREEN_END_COLUMN               = 0
                   I_SCREEN_END_LINE                 = 0
                   IT_ALV_GRAPHICS                   =
                   IT_ADD_FIELDCAT                   =
                   IT_HYPERLINK                      =
                   I_HTML_HEIGHT_TOP                 =
                   I_HTML_HEIGHT_END                 =
                   IT_EXCEPT_QINFO                   =
                 IMPORTING
                   E_EXIT_CAUSED_BY_CALLER           =
                   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                          = IT_FINAL
   EXCEPTIONS
     PROGRAM_ERROR                     = 1
     OTHERS                            = 2
  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.
      FORM execute_back                                             *
FORM execute_back.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
     I_PROGRAM_NAME               = W_REPID
     I_INTERNAL_TABNAME           = 'IT_FINAL'
  I_STRUCTURE_NAME             =
  I_CLIENT_NEVER_DISPLAY       = 'X'
     I_INCLNAME                   = W_REPID
  I_BYPASSING_BUFFER           =
  I_BUFFER_ACTIVE              =
    CHANGING
      CT_FIELDCAT                  = IT_FIELDCAT
   EXCEPTIONS
     INCONSISTENT_INTERFACE       = 1
     PROGRAM_ERROR                = 2
     OTHERS                       = 3
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
  I_INTERFACE_CHECK                 = ' '
  I_BYPASSING_BUFFER                = ' '
  I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM                = W_REPID
  I_CALLBACK_PF_STATUS_SET          = ' '
  I_CALLBACK_USER_COMMAND           = ' '
     I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
  I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
  I_CALLBACK_HTML_END_OF_LIST       = ' '
  I_STRUCTURE_NAME                  =
  I_BACKGROUND_ID                   = ' '
  I_GRID_TITLE                      =
  I_GRID_SETTINGS                   =
   IS_LAYOUT                         =
     IT_FIELDCAT                       = it_fieldcat[]
  IT_EXCLUDING                      =
  IT_SPECIAL_GROUPS                 =
  IT_SORT                           =
  IT_FILTER                         =
  IS_SEL_HIDE                       =
  I_DEFAULT                         = 'X'
     I_SAVE                            = 'X'
     IS_VARIANT                        = variant
    IT_EVENTS                         = gt_events[]
  IT_EVENT_EXIT                     =
  IS_PRINT                          =
  IS_REPREP_ID                      =
  I_SCREEN_START_COLUMN             = 0
  I_SCREEN_START_LINE               = 0
  I_SCREEN_END_COLUMN               = 0
  I_SCREEN_END_LINE                 = 0
  I_HTML_HEIGHT_TOP                 = 0
  I_HTML_HEIGHT_END                 = 0
  IT_ALV_GRAPHICS                   =
  IT_HYPERLINK                      =
  IT_ADD_FIELDCAT                   =
  IT_EXCEPT_QINFO                   =
  IR_SALV_FULLSCREEN_ADAPTER        =
IMPORTING
  E_EXIT_CAUSED_BY_CALLER           =
  ES_EXIT_CAUSED_BY_USER            =
  TABLES
    T_OUTTAB                          = it_final
EXCEPTIONS
   PROGRAM_ERROR                     = 1
   OTHERS                            = 2
*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.
form top_of_page.
CALL FUNCTION 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
   IMPORTING
    ES_LAYOUT                 =
     ET_FIELDCAT               = IT_FIELDCAT3[]
    ET_SORT                   =
    ET_FILTER                 =
    ES_GRID_SCROLL            =
     ES_VARIANT                = VARIANT
    ET_MARKED_COLUMNS         =
    ET_FILTERED_ENTRIES       =
    ET_FIELDCAT_BACKEND       =
    ES_PRINT                  =
   EXCEPTIONS
     NO_INFOS                  = 1
     PROGRAM_ERROR             = 2
     OTHERS                    = 3
  IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
clear count.
LOOP AT IT_FIELDCAT3 into is_fieldcat3 where no_out eq space.
*move-corresponding is_fieldcat3 to is_fieldcat2.
move: is_fieldcat3-fieldname to is_fieldcat2-fieldname,
      is_fieldcat3-ref_fieldname to is_fieldcat2-ref_field,
      is_fieldcat3-ref_tabname to is_fieldcat2-ref_table,
      is_fieldcat3-seltext_l to is_fieldcat2-coltext,
      is_fieldcat3-no_out to is_fieldcat2-no_out,
      is_fieldcat3-col_pos to is_fieldcat2-col_pos.
*move:
     is_fieldcat3-row_pos to is_fieldcat2-row_pos,
     is_fieldcat3-col_pos to is_fieldcat2-col_pos,
     is_fieldcat3-fieldname to is_fieldcat2-fieldname,
     is_fieldcat3-tabname   to is_fieldcat2-tabname,
     is_fieldcat3-outputlen to is_fieldcat2-outputlen,
     is_fieldcat3-no_out    to is_fieldcat2-no_out,
     is_fieldcat3-seltext_l to is_fieldcat2-coltext,
     is_fieldcat3-ref_fieldname to is_fieldcat2-ref_field,
     is_fieldcat3-ref_tabname to is_fieldcat2-ref_table,
     is_fieldcat3-DDIC_OUTPUTLEN to is_fieldcat2-DD_OUTLEN,
     is_fieldcat3-datatype to is_fieldcat2-datatype,
     is_fieldcat3-inttype to is_fieldcat2-inttype,
     is_fieldcat3-INTLEN to is_fieldcat2-INTLEN.
APPEND IS_FIELDCAT2 TO IT_FIELDCAT2.
*count = count + 1.
ENDLOOP.
loop at it_fieldcat2 into is_fieldcat2.
  if is_fieldcat2-no_out = 'X'.
   delete it_fieldcat2 index sy-tabix.
  else.
   count = count + 1.
  endif.
endloop.
describe table it_fieldcat2 lines count.
  CALL METHOD cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = it_fieldcat2[]
    IMPORTING
      ep_table        = new_table.
  ASSIGN new_table->* TO <tab>.
  CREATE DATA new_line LIKE LINE OF <tab>.
  ASSIGN new_line->* TO <wa>.
*-- Perform to build table for attachment data
  PERFORM build_xls_data_table.
*-- Perform to populate  e-mail message
  PERFORM populate_email_message_body.
*-- Perform to send mail
  PERFORM send_file_as_email_attachment.
*-- Perform to Instruct mail send program for SAPCONNECT to send email.
  PERFORM initiate_mail_execute_program.
ENDFORM.
*&      Form  build_xls_data_table
form build_xls_data_table.
  data: char_var(30) type C,
        num_var(10) type n.
  CONSTANTS: con_cret TYPE x VALUE '0D',  "NEW LINE
              tabchar TYPE x VALUE '09'.   "tab
  loop at it_fieldcat2 into is_fieldcat2.
    concatenate it_attach is_fieldcat2-coltext
    into it_attach separated by tabchar.
  endloop.
  CONCATENATE con_cret it_attach  INTO it_attach.
  APPEND  it_attach.
  CLEAR it_attach.
   field-symbols: <t> type ANY.
  LOOP AT it_final.
  col_1 = 1.
   do count times.
   Assign component col_1 of structure <wa> to <f>.
   read table it_fieldcat2 into is_fieldcat2 with key col_pos = col_1.
   loop at it_fieldcat into is_fieldcat.
   if is_fieldcat-fieldname = is_fieldcat2-fieldname.
    assign component is_fieldcat-col_pos of structure it_final to <t>.
    exit.
   endif.
   endloop.
   <f> = <t>.
   clear <t>.
   col_1 = col_1 + 1.
   enddo.
   append <wa> to <tab>.
   endloop.
  loop at <tab> into <wa>.
  col_1 = 1.
  do count times.
   Assign component col_1 of structure <wa> to <f>.
   move <f> to char_var.
   concatenate it_attach char_var
   into it_attach separated by tabchar.
   col_1 = col_1 + 1.
  enddo.
   CONCATENATE con_cret it_attach INTO it_attach.
   APPEND it_attach.
   CLEAR it_attach.
  endloop.
ENDFORM.
FORM send_file_as_email_attachment.
  DATA:
        ld_mtitle LIKE sodocchgi1-obj_descr,
        ld_email LIKE  somlreci1-receiver,
        ld_format TYPE  so_obj_tp ,
        ld_attdescription TYPE  so_obj_nam ,
        ld_attfilename TYPE  so_obj_des ,
        ld_sender_address LIKE  soextreci1-receiver,
        ld_sender_address_type LIKE  soextreci1-adr_typ.
  ld_email = p_email.
  ld_mtitle = text-003.
  ld_format = 'XLS'.
  ld_attdescription  = ' '.
  ld_attfilename = 'DATA'.
  ld_sender_address = ' '.
  ld_sender_address_type = ' '.
Fill the document data.
  w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
  w_doc_data-obj_langu = sy-langu.
  w_doc_data-obj_name  = 'SAPRPT'.
  w_doc_data-obj_descr = ld_mtitle .
  w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
  CLEAR w_doc_data.
  READ TABLE it_attach INDEX w_cnt.
  w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
  w_doc_data-obj_langu  = sy-langu.
  w_doc_data-obj_name   = 'SAPRPT'.
  w_doc_data-obj_descr  = ld_mtitle.
  w_doc_data-sensitivty = 'F'.
  LOOP AT it_attach.
    MOVE it_attach(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+255(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+510(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+765(235) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+765(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+1020(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+1275(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+1530(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+1785(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+2040(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+2295(255) TO t_hex.
    APPEND t_hex.
    MOVE it_attach+2550(100) TO t_hex.
    APPEND t_hex.
  ENDLOOP.
Describe the body of the message
  CLEAR t_packing_list.
  REFRESH t_packing_list.
  t_packing_list-transf_bin = space.
  t_packing_list-head_start = 1.
  t_packing_list-head_num = 0.
  t_packing_list-body_start = 1.
  DESCRIBE TABLE it_message LINES t_packing_list-body_num.
  t_packing_list-doc_type = 'RAW'.
  APPEND t_packing_list.
Create attachment notification
  t_packing_list-transf_bin = 'X'.
  t_packing_list-head_start = 1.
  t_packing_list-head_num   = 1.
  t_packing_list-body_start = 1.
  DESCRIBE TABLE t_hex LINES t_packing_list-body_num.
  t_packing_list-doc_type   =  ld_format.
  t_packing_list-obj_descr  =  ld_attdescription.
  t_packing_list-obj_name   =  ld_attfilename.
  t_packing_list-doc_size   =  t_packing_list-body_num * 255.
  APPEND t_packing_list.
Add the recipients email address
  CLEAR t_receivers.
  REFRESH t_receivers.
  t_receivers-receiver = ld_email.
  t_receivers-rec_type = 'U'.
  t_receivers-com_type = 'INT'.
  t_receivers-notif_del = 'X'.
  t_receivers-notif_ndel = 'X'.
  APPEND t_receivers.
  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
       EXPORTING
            document_data       = w_doc_data
            put_in_outbox       = 'X'
            sender_address      = ld_sender_address
            sender_address_type = ld_sender_address_type
      IMPORTING
           sent_to_all         = w_sent_all
       TABLES
            packing_list        = t_packing_list
            contents_txt        = it_message
            contents_hex        = t_hex
            receivers           = t_receivers
       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.
ld_error = sy-subrc.
LOOP AT t_receivers.
   ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM. "SEND_FILE_AS_EMAIL_ATTACHMENT
*&      Form  INITIATE_MAIL_EXECUTE_PROGRAM
      Instructs mail send program for SAPCONNECT to send email.
FORM initiate_mail_execute_program.
  WAIT UP TO 2 SECONDS.
  SUBMIT rsconn01 WITH mode = 'INT'
                WITH output = 'X'
                AND RETURN.
ENDFORM.                    " INITIATE_MAIL_EXECUTE_PROGRAM
*&      Form  POPULATE_EMAIL_MESSAGE_BODY
       Populate message body text
FORM populate_email_message_body.
  REFRESH it_message.
  it_message = text-004.
  APPEND  it_message.
  CONCATENATE SY-DATUM 'to' SY-DATUM INTO it_message SEPARATED BY
  space.
  APPEND  it_message.
ENDFORM.                    " POPULATE_EMAIL_MESSAGE_BODY
*&      Form  get_alv_layout_values
FORM get_alv_layout_values.
  variant-report = w_repid.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            is_variant    = variant
            i_save        = 'A'
       IMPORTING
            es_variant    = variant
       EXCEPTIONS
            not_found     = 1
            program_error = 2
            OTHERS        = 3.
  CHECK sy-subrc = 0.
  so_lay = variant-variant.
ENDFORM.                    " get_alv_layout_values

Hi Arpit,
Take a look at the documentation of FM 'SO_DOCUMENT_SEND_API1' for parameter PACKING_LIST. I think you should set t_packing_list-head_num to a different value than 0 for the second attachment.
Regards,
John.

Similar Messages

  • Schedule report MM60 as background job and send out in Excel format

    Hi there,
    I would like to schedule a background job for report MM60, then send to the user in Excel format.
    I know that we can enter the recipient in the job setting(SM36) but the report is send in HMTL format.
    Is it possible to send in Excel format?
    Thanks,
    Janice

    Hi,
    I think it's not possible from SM36 you better get help from ABAPer to get the require output.
    Also visit below thread for same issue:
    mail, output of spool as an excel attachment
    Regards;

  • Differences in Background jobs and Dialog jobs

    Hi everyone,
    I am new to SAP and would like a little clarification regarding what is meant by Background jobs and Dialog jobs/processes. We had a situation at our client location where the system got completely bogged down to the point that it almost froze and many of the process chains were failing in BI. As per the basis team, the jobs were triggered as "dialog jobs" instead of "background" jobs which caused a heavy load on the system.
    What is the difference? What happens when the jobs are run in the background or as dialog? Can both be checked in SM37?
    Points will be awarded
    Thanks.

    **Dialog Work process:** The Dialog work process fulfill all requests for the execution of dialog steps triggered by an active user. The dialog work process are not used for request which take long time and which use more cpu. Every dispatcher requires at least two dialog work processes. The dialog work process default time is 300 secs. If the dialog work process does not respond in this time, it will be terminated. Also dialog work process are multiplexed to handle large no of user request.
    **Background Work process:** The background work processes execute programs that run without user interaction. At least two background work processes are required per SAP system. More than one background work processes can be configured per dispatcher. Usually the background work process are used for carrying jobs that take long time to finish, like client copy, client transport etc.., . There are two types of background work process. They are A type and B type. A type background work process are used for mission critical jobs. Background jobs of priority a have high priority than B type back ground jobs.
    you can check your job using tcode SM50.
    Thanks
    Dhiraj

  • Different Subroutines in Background jobs and Dialog jobs

    Hi guys,
    I want to execute some subroutines when the program is running  using a background  job  , and some other subroutines completely different when the user use dialog job ( program -> execute in background ) . I know that sy-batch  = 'X'  in both cases  , but, there is something else to identify them ? , any ideas .
    thank you .

    It will be - he meant that they start the background job from SE38/SA38 not run it online.
    SY-SLSET is a starter point for checking the variant used - dynamic variants are used when you don't pick one from the list.  However, this would not help if the user picked a variant and then scheduled the job dynamically.  Another option is to use function GET_JOB_RUNTIME_INFO in your program.  Assuming your scheduled jobs are named differently, you can check for the condition by checking the name of the running job.  Dynamically created jobs will have the program name as the job name.

  • Retrieve cancelled background job and display it user on the selection scre

    Hi all,
    i am executing a background job and if successful it sends an email to the user .
    if the job gets cancelled i want to display the job status to the user or email the user .
    can anyone share your experiences on this .
    thanks in advance.
    regards,
    Ry

    U can use the FM 'BP_JOBLOG_READ' for the aborted jog to get their  status log..then u can send this log to the user via mail.
    pl. check this sample code..
    REPORT ZEXAMPLE.
    DATA: JOBLIST LIKE TBTCJOB OCCURS 0 WITH HEADER LINE,
          JOBDETS LIKE BTCSELECT,
          JOBLOG  LIKE TBTC5 OCCURS 0 WITH HEADER LINE,
          V_ANS.
    PARAMETERS P_UNAME LIKE SY-UNAME DEFAULT SY-UNAME OBLIGATORY.
    IF NOT P_UNAME IS INITIAL.
      JOBDETS-JOBNAME     = '*'.
      JOBDETS-USERNAME    = P_UNAME.
      JOBDETS-FROM_DATE   = SY-DATUM.
      JOBDETS-TO_DATE     = SY-DATUM.
      JOBDETS-NO_DATE     = 'X'.
      JOBDETS-WITH_PRED   = 'X'.
      JOBDETS-PRELIM      = 'X'.
      JOBDETS-SCHEDUL     = 'X'.
      JOBDETS-READY       = 'X'.
      JOBDETS-RUNNING     = 'X'.
      JOBDETS-FINISHED    = 'X'.
      JOBDETS-ABORTED     = 'X'.
    ENDIF.
    CALL FUNCTION 'BP_JOB_SELECT'
         EXPORTING
              JOBSELECT_DIALOG    = 'Y'
              JOBSEL_PARAM_IN     = JOBDETS
         TABLES
              JOBSELECT_JOBLIST   = JOBLIST
         EXCEPTIONS
              INVALID_DIALOG_TYPE = 1
              JOBNAME_MISSING     = 2
              NO_JOBS_FOUND       = 3
              SELECTION_CANCELED  = 4
              USERNAME_MISSING    = 5
              OTHERS              = 6.
    IF SY-SUBRC EQ 0.
      IF NOT JOBLIST[] IS INITIAL.
        READ TABLE JOBLIST INDEX 1.
        CALL FUNCTION 'BP_JOBLOG_READ'
             EXPORTING
                  JOBCOUNT              = JOBLIST-JOBCOUNT
                  JOBNAME               = JOBLIST-JOBNAME
             TABLES
                  JOBLOGTBL             = JOBLOG
             EXCEPTIONS
                  CANT_READ_JOBLOG      = 1
                  JOBCOUNT_MISSING      = 2
                  JOBLOG_DOES_NOT_EXIST = 3
                  JOBLOG_IS_EMPTY       = 4
                  JOBLOG_NAME_MISSING   = 5
                  JOBNAME_MISSING       = 6
                  JOB_DOES_NOT_EXIST    = 7
                  OTHERS                = 8.
        IF JOBLOG[] IS INITIAL.
          WRITE:/ 'NO JOB LOG FOUND'.
        ELSE.
          CALL FUNCTION 'POPUP_TO_CONFIRM'
               EXPORTING
                    TITLEBAR      = 'DELETE JOB LOGS'
                    TEXT_QUESTION = 'JOB LOGS FOUND. DELETE?'
                    POPUP_TYPE    = 'W'
               IMPORTING
                    ANSWER        = V_ANS.
        ENDIF.
        IF V_ANS EQ '1'.
          CALL FUNCTION 'BP_JOB_DELETE'
               EXPORTING
                    JOBCOUNT                 = JOBLIST-JOBCOUNT
                    JOBNAME                  = JOBLIST-JOBNAME
               EXCEPTIONS
                    CANT_DELETE_EVENT_ENTRY  = 1
                    CANT_DELETE_JOB          = 2
                    CANT_DELETE_JOBLOG       = 3
                    CANT_DELETE_STEPS        = 4
                    CANT_DELETE_TIME_ENTRY   = 5
                    CANT_DERELEASE_SUCCESSOR = 6
                    CANT_ENQ_PREDECESSOR     = 7
                    CANT_ENQ_SUCCESSOR       = 8
                    CANT_ENQ_TBTCO_ENTRY     = 9
                    CANT_UPDATE_PREDECESSOR  = 10
                    CANT_UPDATE_SUCCESSOR    = 11
                    COMMIT_FAILED            = 12
                    JOBCOUNT_MISSING         = 13
                    JOBNAME_MISSING          = 14
                    JOB_DOES_NOT_EXIST       = 15
                    JOB_IS_ALREADY_RUNNING   = 16
                    NO_DELETE_AUTHORITY      = 17
                    OTHERS                   = 18.
          IF SY-SUBRC EQ 0.
            WRITE:/ JOBLIST-JOBCOUNT, JOBLIST-JOBNAME, 'LOG DELETED'.
            EXIT.
          ELSE.
            WRITE:/ JOBLIST-JOBCOUNT, JOBLIST-JOBNAME, 'LOG NOT DELETED'.
          ENDIF.
        ELSE.
          CALL FUNCTION 'BP_JOBLOG_SHOW'
               EXPORTING
                    JOBCOUNT                  = JOBLIST-JOBCOUNT
                    JOBNAME                   = JOBLIST-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.
        ENDIF.
      ELSE.
        WRITE:/ 'NO JOBS FOR', P_UNAME.
        EXIT.
      ENDIF.
    ENDIF.
    Regards,
    Joy.

  • Executing a Job and Exporting PDF Output via API

    I can't seem to execute a job and export the PDF output via the API.<BR><BR>I use the following code snippet and nothing is exported:<BR><BR> jobAction.setAction(jobAction.ACTION_EXPORT_SECTION);<BR>     jobAction.setFormat(jobAction.FORMAT_PDF);<BR><BR>If use the snippet below, HMTL is exported:<BR> <BR> jobAction.setAction(jobAction.ACTION_EXPORT_AS_JOB_OUTPUT);<BR>     jobAction.setFormat(jobAction.FORMAT_PDF);<BR><BR>The javadoc for JobActionEnum says to use the former method. However, this doesn't seem to work. Is this an API bug or something obvious that I am not doing?<BR><BR><BR> -Eric D. Hill

    Joe
    Here is the where you can change the server group/job server.
    - After you add the Batch/real Time job as a webservice.
    - Go to the Webservice Batch Job Attribute and from the drop down choose the "Enable job Attributes" and hit apply.
    - After this if you use the WSDL URL http://<Data Services Web Server>:<Web server Port>/DataServices/servlet/webservices?ver=2.0&wsdlxml
    - You will see the job attributes that you can change based on the allowed parameters mentioned in the documentation.
    The batch job or real time job is published without the job parameters by default. Once you enable the job attributes, remove and re publish the batch job as a web service. The application making the call to this webservice should be able to read the WSDL generated by Data services and pickup all the input and output parameters of the method.
    Refer to the Data Services Integrator guide (Chapter 3 : pages 25 - 33 ) to get the exact parameter values permitted via Data Services jobs called via web services.
    Hope this helps!
    Thanks & Regards
    Tiji

  • Run the Report as a Background job and Get the Output in Excel in Local PC

    Hello Gurus,
    I have one following requirement.
    One should be able to run the report as a background job and it should be possible to get the report in Excel format, also when running the report in background. The excel report should have the same information and look as the current SAPreport.
    Please provide some solution.
    Any helpful answer get surely awarded.
    Thanks a lot,
    Varlanir

    GUI_* WS_* Function In Background, CSV Upload
    GUI_* and WS_* function modules do not work in background
    When scheduling a job in the background the appropriate statement to read in your file is OPEN DATASET, and the file must be on the file system that the SAP server can see.
    At anytime, a user can switch of the Personal Computers even though the job is still running in the background.  Therefore GUI_* and WS_* function modules are not designed to work in that way, as they need to access your personal computer  file.
    To choose the correct download method to used, you can check the value of SY-BATCH in your code,
    if it is 'X' use OPEN DATASET and if it is ' ' use WS_UPLOAD.
    *-- Open dataset for reading
    DATA:
      dsn(20) VALUE '/usr/test.dat',
      rec(80).
    OPEN DATASET dsn FOR INPUT IN TEXT MODE.
    IF sy-subrc = 0.
      DO.
        READ DATASET dsn INTO rec.
        IF sy-subrc <> 0.
          EXIT.
        ELSE.
          WRITE / rec.
        ENDIF.
      ENDDO.
    ENDIF.
    CLOSE DATASET dsn.
    *-- Open dataset for writing
    DATA rec(80).
    OPEN DATASET dsn FOR OUTPUT IN TEXT MODE.
      TRANSFER rec TO '/usr/test.dat'.
    CLOSE DATASET dsn.
    What is the difference when we use upload, ws_upload, gui_upload function modules?
    UPLOAD, WS_UPLOAD, GUI_UPLOAD, are used in BDC concepts.  ie., Batch Data Communication.
    Batch Data Conversion is a concept where user can transfer the Data from non SAP to SAP R/3.  So , in these various Function Modules are used.
    UPLOAD---  upload a file to the presentation server (PC)
    WS_UPLOAD----    Load Files from the Presentation Server to Internal ABAP Tables.
    WS means Work Station.
    This is used upto SAP 4.6 version.
    GUI_UPLOAD-------    Replaces WS_UPLOAD. Upoad file from presentation server to the app server.  From 4.7 SAP version it is replaced.
    How to Upload csv file to SAP?
    Common File Download Upload Questions:
    How  you upload the data from text file to sap internal table?  From my knowledge its by upload or gui_upload. 
    How you download the data from sap internal table to text file?
    How  you upload the data from xls (excel) file to sap internal table how you download the data from sap internal table to xls(excel) file.
    You can upload data from presentation server to an internal table using gui_upload. Use gui_download to download from internal table to flat file.
    Use fm ALSM_EXCEL_TO_INTERNAL_TABLE to upload data frm excel.
    Use function module GUI_UPLOAD
    The FILETYPE refer to the type of file format you need: For e.g 'WK1' - Excel format , 'ASC' - Text Format etc.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = 'C:\test.csv'
       FILETYPE                      = 'ASC'
      TABLES
        DATA_TAB                      = itab
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17.

  • I am trying to change the color of a background layer and it will not accept the color I want

    I am trying to change the color of a background layer and it will not accept the color I want

    If you want to get help you may have to provide a lot more details about what you are doing (which tools or commands do you use, what exactly happens when it fails, …)?

  • Divide the billing due list into multiple background jobs and start them si

    Hello Gurus,
          How to divide the billing due list into multiple background jobs and start them simultaneously?
    Many thanks,
    Frank

    Hello Frank,
    Check this:
    http://help.sap.com/erp2005ehp_03/helpdata/EN/dd/561076545a11d1a7020000e829fd11/frameset.htm_
    plz assign suitable points, if this helps.
    Rgds,
    Raghu.

  • Retain background jobs and its variants before system refresh activity

    Hello All,
    I am going to perform system refresh activity on quaity system on monday. Customer wants to retain the background jobs and its variants in the quality system. Please guide me and let me know the steps to retain the background jobs and its variants before starting the system refresh activity.
    Regards
    Subbu

    Dear Subbu,
    You have to export the TBT* Tables to retain the jobs. You can do this with R3trans:
    1. Make Export file
    2. Make Import file
    3. Make Export in Q System before Systemcopy
    4. Start Database and not SAP
    5. Make Import in Q after Systemcopy
    6. Start sap
    1. Make Export file /tmp/export_cmd
    export
    file='/tmp/export_Q.dmp'
    client=<your client>
    delete from TBTCA               
    delete from TBTCB               
    delete from TBTCCNTXT           
    delete from TBTCCTXTT           
    delete from TBTCCTXTTP          
    delete from TBTCI               
    delete from TBTCJCNTXT          
    delete from TBTCJSTEP           
    delete from TBTCO               
    delete from TBTCO_V01           
    delete from TBTCP               
    delete from TBTCPV              
    delete from TBTCR               
    delete from TBTCS               
    delete from TBTC_SPOOLID        
    delete from BTCEVTJOB
    select * from TBTCA             
    select * from TBTCB             
    select * from TBTCCNTXT         
    select * from TBTCCTXTT         
    select * from TBTCCTXTTP        
    select * from TBTCI             
    select * from TBTCJCNTXT        
    select * from TBTCJSTEP         
    select * from TBTCO             
    select * from TBTCO_V01         
    select * from TBTCP             
    select * from TBTCPV            
    select * from TBTCR             
    select * from TBTCS             
    select * from TBTC_SPOOLID 
    select * from BTCEVTJOB
    2. Make Import file /tmp/import_cmd
    import
    file='/tmp/export_Q.dmp'
    3. Make Export in Q System before Systemcopy
    R3trans -w /tmp/Q_export.log  /tmp/export_cmd
    4. Start Database and not SAP
    sqlplus "/as sysdba"
    SQL> startup
    or
    startsap
    stopsap r3
    5. Make Import in Q after Systemcopy
    R3trans -w /tmp/Q_import.log  /tmp/import_cmd
    If you want to undo this, start the export script in P system and the Import script in Q system.
    Don't be afraid of the delete statement but without delete it doesn't work!
    6. Start sap
    startsap
    Best regards
    Willi Eimler

  • What is the difference between background job and foreground job

    Hi Experts,
    Could you pls tell me
    What is the difference between background job and foreground job
    and where exactly used background jobs...
    Thanks

    Hello,
    Background jobs - without user interaction, scheduled via SM37.
    Foreground jobs - with user interaction (transactions).
    For more information, please read these: [http://help.sap.com/saphelp_nw04/helpdata/en/e4/2adbda449911d1949c0000e8353423/frameset.htm], [http://help.sap.com/saphelp_nw04/helpdata/en/73/69ef5755bb11d189680000e829fbbd/frameset.htm] and [https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/20cb0b44-8f0b-2a10-2381-ca8162bcb5b2].
    Regards,

  • SQL Server Agent Job And Database Mail - Error formatting query, probably invalid paramters

    We have a stored procedure that we are trying to call with a SQL Server Agent Job. The stored procedure calls Database Mail. This is SQL 2008. The execute task is simply:
    USE [Production]
    GO
    EXEC [dbo].[JOB_EMAIL_SCHEDULED_REPORTS]
    GO
    When the job runs, it is erroring out immediately, with the error:
    Execute as user: NT AUTHORITY\NETWORK SERVICE. Error formatting query, probably invalid paramters [SQLSTATE 42000] (Error 22050). The step failed.
    When we go into SQL Server Manager and just execute the SQL query, it works though. Something within the SQL Server Agent job,  and Database Mail is causing problems. Any ideas? Thanks.

    Justin,
    If you use SSMS then the procedure is executed under a different user when compared to running using a SQL Server Agent Job.
    Isolate the problem by running a SQL Server agent job that sends a mail. Also check if the NT Authority\Network Service account is
    in good standing. Look at the below thread with a similar problem that had an expired account.
    http://social.msdn.microsoft.com/Forums/en/sqltools/thread/bac7ecee-a156-4313-b532-ba15813a0700
    http://SankarReddy.com/

  • How to create job to run daily based on form values entered and send mail.

    Hi,
    In DB we have 3 columns: creation_date, name, approved_or_not. Default for approved_or_not is 'No'.
    In the application form page suppose I fill in sysdate for creation_date and leave default for approved_or_not and click [create] button.
    Now a job should run everyday and check for where (approved_or_not='No' & creation_date = 'sysdate - 1') and send mail to the person in 'name' field mentioning: 'Approval pending. click on link <some_link> for details on approval'.
    Could anyone give me pointers to example on such job? (Working on APEX 3.0)
    Thanks,
    Priyanka

    create a DBMS JOB
    check out this forum link.
    dbms_job

  • Information Broadcasting ( Automatically execute a report and e-mail it)

    Hi,
    Can BEx Automatically execute a report and e-mail it. The requirement is to Execute a Report periodically  and send the report in <b>EXCEL SHEET</b> format to the given e-mail ID.
    I have tried configuring it in HTML format.... but I need it EXCEL format.
    Waiting for help from the SDN community...
    Thanks in Advance.....

    Hi,
    You can send the workbook automatically when you schedule thru information broadcaster.
    But you have to install precalculation server for distributing workbook..
    Have a look at OSS note 760775 ..
    Hope it helps..
    Regards,
    Siva.

  • Mine is Yahoo where POP is used .TB is IMAP . i can receive and send mails , but when making action on TB (Del or send) no reflection on main server

    Hello there,
    My e-mail is Yahoo, and Yahoo by default is POP user .
    I understood from your help file that synchronization is compatible only with IMAP mail provider
    I can receive and send mails from TB , but when making action on TB (Del or send) no reflection on main server, same when make the action on the main server (Del or send), no change on TB
    from yahoo help I managed to find configuration for IMAP , but could not apply them on TB , as TB have already Yahoo as POP in the configuration list
    please your help on this
    best regards
    Mohamad

    You cannot convert an existing account, but you can set up your Yahoo account as IMAP in parallel to the existing POP account. See
    http://kb.mozillazine.org/Convert_a_POP_account_to_a_IMAP_account

Maybe you are looking for

  • Problema na interface de Assinatura do XML

    Bom dia pessoal, estou com um problema na assinatura do XML de uma NF-e. quando envio uma nf-e ao rastrear o processo pela sxi_monitor, ela está parando para SCHEDULED FOR OUTBOUND PROCESSING. Alguem pode me ajudar sobre esse problema? Obrigado. Rodr

  • Macbook Pro Booting Unattended

    This has been an odd problem. I am now GMT +3 and have what is now a very consistent problem: my Macbook Pro will Boot without input from me at 3:00 AM (that is 0:00 GMT) every single night IF the power supply is attached. If not attached, it will no

  • Monthly wise sales report

    hai,      i m working on sales report where in i need to get month wise sales of the products and the related cost incured to company by the sales in the matrix form as shown below  can u help me in which way can i get this monthly report           m

  • ACE30: Setting timezone issue

    Hi Guys, This would seem trivial however I can't seem to set the appropriate timezone as indicated below: Trying to set the timezone on our ACE30 modules (running A5(1.2): clay1-ace/Admin(config)# clock timezone AEST +10                              

  • Minimum How many dimension required for FDM integration Script

    Hi Gurus I have only 2 dimensions in my SQL Table name dbo.ABC (Example: 1.Entity 2.Account and amount(data value) Example: USA, SALES, 50000 (Including value its total 3 dimensions) How to export this data to Target HFM Application. Integration Scri