report zpp264 no standard page heading line-count 50(2) line-size 165 message-id zrtc.
tables: vbak, vbap, vbuk, vbup.
data: messtab like bdcmsgcoll occurs 0 with header line, bdcdata like bdcdata occurs 0 with header line.
data: begin of iexcel occurs 0, item(5) type c, matnr like vbap-matnr, desc(60) type c, qty(5) type c, remark(20) type c, end of iexcel.
data: begin of ivbak occurs 0, vbeln like vbak-vbeln, erdat like vbak-erdat, auart like vbak-auart, end of ivbak.
data: begin of ivbap occurs 0, matnr like vbap-matnr, vbeln like vbap-vbeln, posnr like vbap-posnr, auart like vbak-auart, end of ivbap.
data: begin of itab occurs 0, auart like vbak-auart, vbeln like vbap-vbeln, posnr like vbap-posnr, matnr like vbap-matnr, qty(5) type c, item(5) type c, desc(60) type c, remark(20) type c, end of itab.
data: begin of itab_err occurs 0, auart like vbak-auart, vbeln like vbap-vbeln, posnr like vbap-posnr, matnr like vbap-matnr, qty(5) type c, item(5) type c, desc(60) type c, remark(20) type c, end of itab_err.
data: begin of itab_confirm occurs 0, auart like vbak-auart, vbeln like vbap-vbeln, posnr like vbap-posnr, matnr like vbap-matnr, qty(5) type c, item(5) type c, desc(60) type c, remark(20) type c, end of itab_confirm.
data: begin of etab occurs 0, item(5) type c, matnr like vbap-matnr, desc(60) type c, qty(5) type c, remark(20) type c, end of etab. *** Excel output file ************** data: begin of ohead occurs 0, f1(10) type c, tab1(1) type c value '|', f2(20) type c, tab2(1) type c value '|', f3(60) type c, tab3(1) type c value '|', f4(10) type c, tab4(1) type c value '|', f5(20) type c, tab5(1) type c value '|', end of ohead.
data: begin of ohead_xls occurs 0, item(5) type c, tab1(1) type c value '|', matnr like vbap-matnr, tab2(1) type c value '|', desc(60) type c, tab3(1) type c value '|', qty(5) type c, tab4(1) type c value '|', remark(20) type c, tab5(1) type c value '|', end of ohead_xls.
*******************************
selection-screen begin of block 0 with frame title text-005. parameters: r_MB1C radiobutton group grp0, r_MB1B radiobutton group grp0. selection-screen end of block 0.
selection-screen begin of block 1 with frame title text-000.
select-options: s_vbeln for vbak-vbeln. selection-screen skip 1. parameters: p_erdat like vbak-erdat. selection-screen end of block 1.
selection-screen begin of block 2 with frame title text-000. selection-screen skip 1.
parameters: p_file1 like rlgrap-filename default 'e:Direct.txt' obligatory.
parameters: r_zro radiobutton group grp1, r_zdi radiobutton group grp1.
selection-screen skip 1.
parameters: p_lgort like mard-lgort obligatory default '0050'. selection-screen skip 1.
parameters: o_file1 like rlgrap-filename default 'D:zpp264out.xls' obligatory.
parameter: bdc_mode(1) type c default 'N' obligatory.
selection-screen end of block 2.
*** top-of-page **** top-of-page.
call function 'Z_STANDARD_HEADING_OF_RTC' EXPORTING heading = 'List of Item posted to Sales Stock' prog = 'ZPP264' EXCEPTIONS others = 1.
perform column_header.
**** initialization ****. initialization.
p_erdat = sy-datum - 180.
at selection-screen on value-request for p_file1. perform get_text_filename using p_file1.
at selection-screen on value-request for o_file1. perform get_text_filename using o_file1.
if not r_mb1b is initial. perform bdc_process_zdi_412e. endif.
if not r_mb1c is initial. if r_zro = 'X' . perform bdc_process_zro. if not etab[] is initial. perform create_excel_field_name. perform write_out_excel_format. endif. else.
clear: itab_err. refresh: itab_err.
perform bdc_process_zdi_521e. if not etab[] is initial. perform bdc_process_zdi_521. endif.
endif. else. "No selected item found for Input file.
if not etab[] is initial. perform create_excel_field_name. perform write_out_excel_format. endif.
endif. endif.
if not itab_confirm[] is initial. loop at itab_confirm.
if sy-subrc <> 0. message e000 with 'Can not upload text file'. else. delete iexcel index 1. delete iexcel where matnr is initial. endif.
endform. " upload_text_file *&---------------------------------------------------------------------* *& Form get_data *&---------------------------------------------------------------------* form get_vbak_data.
select vbeln erdat auart into (ivbak-vbeln, ivbak-erdat, ivbak-auart) from vbak where vbeln in s_vbeln and erdat ge p_erdat. select single lfstk into vbuk-lfstk from vbuk where vbeln = ivbak-vbeln and lfstk ne 'C'. if sy-subrc = 0. append ivbak. clear ivbak. endif. endselect.
endform. *&---------------------------------------------------------------------* *& Form process_data *&---------------------------------------------------------------------* form process_data. clear: itab, etab. refresh: itab, etab.
endform. " process_data *&---------------------------------------------------------------------* *& Form get_sale_item_data *&---------------------------------------------------------------------* form get_sale_item_data.
if not ivbak[] is initial. clear: ivbap. refresh: ivbap. loop at ivbak. select vbeln posnr matnr into (vbap-vbeln, vbap-posnr, vbap-matnr) from vbap where vbeln = ivbak-vbeln. select single * from vbup where vbeln = vbap-vbeln and posnr = vbap-posnr and lfsta <> 'C'. if sy-subrc = 0. ivbap-vbeln = vbap-vbeln. ivbap-posnr = vbap-posnr. ivbap-matnr = vbap-matnr. shift ivbap-matnr left deleting leading '0'. ivbap-auart = ivbak-auart. append ivbap. clear ivbap. endif. endselect. endloop.
else. message e000 with 'No Sales Order found in VBAK according to your selection'. endif.
endform. " get_sale_item_data *&---------------------------------------------------------------------* *& Form bdc_process *&---------------------------------------------------------------------* form bdc_process_zro.
clear: itab_err. refresh: itab_err.
sort itab by auart vbeln posnr. loop at itab. perform bdc_for_zro_zros.
endloop.
endform. " bdc_process *&---------------------------------------------------------------------* *& Form BDC_DYNPRO *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_0412 text * * -->P_0413 text * *----------------------------------------------------------------------* form bdc_dynpro tables bdcdata structure bdcdata using program dynpro. clear bdcdata. bdcdata-program = program. bdcdata-dynpro = dynpro. bdcdata-dynbegin = 'X'. append bdcdata. clear bdcdata.
endform. " BDC_DYNPRO
*&---------------------------------------------------------------------* *& Form BDC_FIELD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_0417 text * * -->P_0418 text * *----------------------------------------------------------------------* form bdc_field tables bdcdata structure bdcdata using fnam fval. bdcdata-fnam = fnam. bdcdata-fval = fval. append bdcdata.
endform. " BDC_FIELD *&---------------------------------------------------------------------* *& Form bdc_for_zro_zros *&---------------------------------------------------------------------* form bdc_for_zro_zros. clear bdcdata. refresh bdcdata.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0400'.
perform bdc_field tables bdcdata using 'RM07M-BWARTWA' '521'.
perform bdc_field tables bdcdata using 'RM07M-SOBKZ' 'E'.
perform bdc_field tables bdcdata using 'XFULL' ' '.
perform bdc_field tables bdcdata using 'RM07M-WERKS' '0006'.
perform bdc_field tables bdcdata using 'RM07M-LGORT' p_lgort.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '/00'.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0421'.
perform bdc_field tables bdcdata using 'MSEGK-MAT_KDAUF' itab-vbeln.
perform bdc_field tables bdcdata using 'MSEGK-MAT_KDPOS' itab-posnr.
perform bdc_field tables bdcdata using 'MSEG-MATNR(01)' itab-matnr.
perform bdc_field tables bdcdata using 'MSEG-ERFMG(01)' itab-qty.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '=BU'.
call transaction 'MB1C' using bdcdata mode bdc_mode update 'S' MESSAGES INTO messtab..
if sy-subrc <> 0. move-corresponding itab to itab_confirm. itab_confirm-remark = 'ERROR'. append itab_confirm. clear itab_confirm. else. move-corresponding itab to itab_confirm. read table messtab index sy-tfill. if sy-subrc = 0. move messtab-msgv1 to itab_confirm-remark. endif.
append itab_confirm. clear itab_confirm. endif.
endform. " bdc_for_zro_zros *&---------------------------------------------------------------------* *& Form create_excel_field_name *&---------------------------------------------------------------------* form create_excel_field_name. clear ohead. refresh ohead.
move: '|' to ohead-tab1, '|' to ohead-tab2, '|' to ohead-tab3, '|' to ohead-tab4, '|' to ohead-tab5.
endform. *&---------------------------------------------------------------------* *& Form write_out_execl_format *&---------------------------------------------------------------------* form write_out_excel_format.
loop at etab. move-corresponding etab to ohead_xls. move: '|' to ohead_xls-tab1, '|' to ohead_xls-tab2, '|' to ohead_xls-tab3, '|' to ohead_xls-tab4, '|' to ohead_xls-tab5.
endform. *&---------------------------------------------------------------------* *& Form move_header_vline *&---------------------------------------------------------------------* form move_header_vline.
* move: ';' to ohead-vline01, * ';' to ohead-vline02, * ';' to ohead-vline03, * ';' to ohead-vline04, * ';' to ohead-vline05, * ';' to ohead-vline06.
endform. " move_header_vline *&---------------------------------------------------------------------* *& Form move_vline *&---------------------------------------------------------------------* form move_vline. * move: ';' to ohead_xls-vline01, * ';' to ohead_xls-vline02, * ';' to ohead_xls-vline03, * ';' to ohead_xls-vline04, * ';' to ohead_xls-vline05, * ';' to ohead_xls-vline06.
endform. " move_vline *&---------------------------------------------------------------------* *& Form column_header *&---------------------------------------------------------------------* form column_header.
endform. " column_header *&---------------------------------------------------------------------* *& Form end_of_report *&---------------------------------------------------------------------* form end_of_report.
call function 'Z_STANDARD_END_OF_REPORT' EXCEPTIONS others = 1.
endform. " end_of_report *&---------------------------------------------------------------------* *& Form bdc_process_zdi *&---------------------------------------------------------------------* form bdc_process_zdi_521e.
sort itab by auart vbeln posnr. loop at itab. perform bdc_for_zdi.
endloop.
endform. " bdc_process_zdi *&---------------------------------------------------------------------* *& Form bdc_for_zdi *&---------------------------------------------------------------------* form bdc_for_zdi. clear bdcdata. refresh bdcdata.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0400'.
perform bdc_field tables bdcdata using 'RM07M-BWARTWA' '521'.
perform bdc_field tables bdcdata using 'RM07M-SOBKZ' 'E'.
perform bdc_field tables bdcdata using 'XFULL' ' '.
perform bdc_field tables bdcdata using 'RM07M-WERKS' '0006'.
perform bdc_field tables bdcdata using 'RM07M-LGORT' p_lgort.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '/00'.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0421'.
perform bdc_field tables bdcdata using 'MSEGK-MAT_KDAUF' itab-vbeln.
perform bdc_field tables bdcdata using 'MSEGK-MAT_KDPOS' itab-posnr.
perform bdc_field tables bdcdata using 'MSEG-MATNR(01)' itab-matnr.
perform bdc_field tables bdcdata using 'MSEG-ERFMG(01)' itab-qty.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '=BU'.
call transaction 'MB1C' using bdcdata mode bdc_mode update 'S' MESSAGES INTO messtab.
if sy-subrc <> 0. move-corresponding itab to itab_confirm. itab_confirm-remark = 'ERROR'. append itab_confirm. clear itab_confirm. else. move-corresponding itab to itab_confirm. read table messtab index sy-tfill. if sy-subrc = 0. move messtab-msgv1 to itab_confirm-remark. endif.
append itab_confirm. clear itab_confirm. endif.
endform. " bdc_for_zdi *&---------------------------------------------------------------------* *& Form bdc_process_zdi_521 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form bdc_process_zdi_521. sort etab by matnr. loop at etab. perform bdc_for_zdi_521.
endloop.
endform. " bdc_process_zdi_521 *&---------------------------------------------------------------------* *& Form bdc_for_zdi_521 *&---------------------------------------------------------------------* form bdc_for_zdi_521. clear bdcdata. refresh bdcdata.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0400'.
perform bdc_field tables bdcdata using 'RM07M-BWARTWA' '521'.
perform bdc_field tables bdcdata using 'RM07M-SOBKZ' ' '.
perform bdc_field tables bdcdata using 'XFULL' ' '.
perform bdc_field tables bdcdata using 'RM07M-WERKS' '0006'.
perform bdc_field tables bdcdata using 'RM07M-LGORT' p_lgort.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '/00'.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0421'.
perform bdc_field tables bdcdata using 'MSEG-MATNR(01)' etab-matnr.
perform bdc_field tables bdcdata using 'MSEG-ERFMG(01)' etab-qty.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '=BU'.
call transaction 'MB1C' using bdcdata mode bdc_mode update 'S' MESSAGES INTO messtab.
call transaction 'MB1B' using bdcdata mode bdc_mode update 'S'.
if sy-subrc <> 0. move-corresponding itab to itab_confirm. itab_confirm-remark = 'ERROR'. append itab_confirm. clear itab_confirm. else. move-corresponding itab to itab_confirm. read table messtab index sy-tfill. if sy-subrc = 0. move messtab-msgv1 to itab_confirm-remark. endif.
append itab_confirm. clear itab_confirm. endif.
endform. " bdc_for_zdi_521 *&---------------------------------------------------------------------* *& Form bdc_process_zdi_412e *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM bdc_process_zdi_412e.
sort itab by auart vbeln posnr. loop at itab. perform bdc_for_412E.
endloop.
ENDFORM. " bdc_process_zdi_412e *&---------------------------------------------------------------------* *& Form bdc_for_412E *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM bdc_for_412E. clear bdcdata. refresh bdcdata.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0400'.
perform bdc_field tables bdcdata using 'RM07M-BWARTWA' '412'.
perform bdc_field tables bdcdata using 'RM07M-SOBKZ' 'E'.
perform bdc_field tables bdcdata using 'XFULL' ' '.
perform bdc_field tables bdcdata using 'RM07M-WERKS' '0006'.
perform bdc_field tables bdcdata using 'RM07M-LGORT' p_lgort.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '/00'.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0421'.
perform bdc_field tables bdcdata using 'MSEGK-MAT_KDAUF' itab-vbeln.
perform bdc_field tables bdcdata using 'MSEGK-MAT_KDPOS' itab-posnr.
perform bdc_field tables bdcdata using 'MSEGK-UMLGO' '0101'.
perform bdc_field tables bdcdata using 'MSEG-MATNR(01)' itab-matnr.
perform bdc_field tables bdcdata using 'MSEG-ERFMG(01)' itab-qty.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '=BU'.
call transaction 'MB1B' using bdcdata mode bdc_mode update 'S' MESSAGES INTO messtab.
if sy-subrc <> 0. move-corresponding itab to itab_confirm. itab_confirm-remark = 'ERROR'. append itab_confirm. clear itab_confirm. else. move-corresponding itab to itab_confirm. read table messtab index sy-tfill. if sy-subrc = 0. move messtab-msgv1 to itab_confirm-remark. endif. append itab_confirm. clear itab_confirm. endif.