Fetch file from presentation server and execute in “Background”.
Hello Friends,
In this tutorial, I am explaining the concept:–
Fetch file from presentation server and execute in “Background”.
Program:–
TYPE-POOLS: slis.
flat file structure*****************
TYPES: BEGIN OF ty_data,
dealer_code TYPE kunnr,
plant TYPE werks,* text TYPE sgtxt,
dr_cr_indicator(2) TYPE c,
labr_value TYPE dmbtr,
claim_mnth(2) TYPE c,
claim_yr(4) TYPE c,
cr_note_no(6) TYPE n,
END OF ty_data.
DATA : wa_data TYPE ty_data,
it_data TYPE TABLE OF ty_data.
DATA : wa_bapi_data TYPE ty_data,
it_bapi_data TYPE TABLE OF ty_data.
TYPES: BEGIN OF ty_final,
claim_mnth(2) TYPE c,
claim_yr(4) TYPE c,
plant TYPE werks
labr_value TYPE dmbtr,
cr_note_no(6) TYPE n,
END OF ty_final.
***********fetch indexkey table declarion
DATA : exp_data TYPE STANDARD TABLE OF ty_data,
indxkey LIKE mcdx–srtfd, wa_indx TYPE mcdx.
DATA:it_final TYPE STANDARD TABLE OF ty_final,
wa_final TYPE ty_final.
DATA: gs_layout TYPE slis_layout_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv,
gt_events TYPE slis_t_event,
g_repid LIKE sy–repid,
ls_fieldcat TYPE slis_fieldcat_alv,
w_alv_print TYPE slis_print_alv.DATA: str.
****************************************************************** SELECTION-SCREEN ******************************************************************SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text–001.SELECTION-SCREEN SKIP 2.PARAMETER p_file TYPE ibipparms–path OBLIGATORY.SELECTION-SCREEN SKIP 2.SELECTION-SCREEN END OF BLOCK b1.
****************************************************************** AT SELECTION-SCREEN ******************************************************************AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM file_browse.
PERFORM file_upload. ” Files into internal table.
AT SELECTION-SCREEN OUTPUT.
DATA: exclude LIKE rsexfcode OCCURS 0 WITH HEADER LINE,
ls_submit_info TYPE rssubinfo.
****************************************************************** START-OF-SELECTION ******************************************************************START-OF-SELECTION.
PERFORM process_data.
IF it_final[] IS NOT INITIAL.
PERFORM alv_display.
PERFORM alv_display_fm.
ENDIF.
*&———————————————————————**& Form FILE_BROWSE*&———————————————————————** text*———————————————————————-** –> p1 text* <– p2 text*———————————————————————-*FORM file_browse .
CLEAR p_file.
CALL FUNCTION ‘F4_FILENAME’
IMPORTING
file_name = p_file.
ENDFORM.
” FILE_BROWSE*&———————————————————————**&
Form FILE_UPLOAD*&———————————————————————** text*———————————————————————-** –> p1 text* <– p2 text*———————————————————————-*FORM file_upload .
DATA ip_file TYPE string.
CLEAR ip_file.
REFRESH it_data.
ip_file = p_file.
CALL FUNCTION ‘GUI_UPLOAD’
EXPORTING
filename = ip_file
has_field_separator = ‘X’
TABLES
data_tab = it_data
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.
IF sy–subrc <> 0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
REFRESH: exp_data.
exp_data = it_data.*Index key is group of Report & UserId.
CONCATENATE sy–repid sy–uname INTO indxkey .
EXPORT exp_data FROM exp_data
TO DATABASE mcdx(zb) FROM wa_indx ID indxkey.
ENDFORM. “file_upload*&———————————————————————**& Form PROCESS_DATA*&———————————————————————** text*———————————————————————-*FORM process_data .
IF sy–batch EQ ‘X’.
REFRESH it_data.
CONCATENATE sy–repid sy–uname INTO indxkey .
IMPORT exp_data = exp_data FROM DATABASE mcdx(zb) ID indxkey.
it_data = exp_data.
ENDIF.
IF it_data IS NOT INITIAL.
LOOP AT it_data INTO wa_data.
wa_final–claim_mnth = wa_data–claim_mnth.
wa_final–claim_yr = wa_data–claim_yr.
wa_final–plant = wa_data–plant.
wa_final–labr_value = wa_data–labr_value.
wa_final–cr_note_no = wa_data–cr_note_no.
APPEND wa_final to it_final.
ENDLOOP.
ELSE.
MESSAGE:‘No entry found’ TYPE ‘E’.
ENDIF.ENDFORM. ” FILE_UPLOAD*&———————————————————————**& Form ALV_DISPLAY*&———————————————————————** text*———————————————————————-** –> p1 text* <– p2 text*———————————————————————-*FORM alv_display . ” ankita
DATA: col_pos TYPE i.
col_pos = 0.
ls_fieldcat–fieldname = ‘CLAIM_MNTH’.
ls_fieldcat–tabname = ‘IT_FINAL’.
ls_fieldcat–seltext_l = ‘Credit month’.
ls_fieldcat–col_pos = col_pos.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
col_pos = col_pos + 1.
ls_fieldcat–fieldname = ‘CLAIM_YR’.
ls_fieldcat–tabname = ‘IT_FINAL’.
ls_fieldcat–seltext_l = ‘Credit year’.
ls_fieldcat–col_pos = col_pos.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
col_pos = col_pos + 1.
ls_fieldcat–fieldname = ‘PLANT’.
ls_fieldcat–tabname = ‘IT_FINAL’.
ls_fieldcat–seltext_l = ‘Plant’.
ls_fieldcat–col_pos = col_pos.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat–fieldname = ‘CR_NOTE_NO’.
ls_fieldcat–tabname = ‘IT_FINAL’.
ls_fieldcat–seltext_l = ‘credit Not NO’.
ls_fieldcat–col_pos = col_pos.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
ENDFORM. ” ALV_DISPLAY*&———————————————————————**& Form ALV_DISPLAY_FM*&———————————————————————** text*———————————————————————-** –> p1 text* <– p2 text*———————————————————————-*FORM alv_display_fm . ” ankita
g_repid = sy–repid.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = g_repid
it_fieldcat = gt_fieldcat[]
i_save = ‘X’
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. ” ALV_DISPLAY_FM
I can only see code (with some "mature" ingredients...), where are you explaining the concept?
Thomas
It's hard to read because the formatting needs attention.