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,
JaniceHi,
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,
RyU 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,
VarlanirGUI_* 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,
FrankHello 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
SubbuDear 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...
ThanksHello,
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,
Priyankacreate 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. -
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
MohamadYou 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
-
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