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.
*-------------------------------------------- *SELECTION *-------------------------------------------- *BLOCK 0 SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS S_LIFNR FOR EKKO-LIFNR NO INTERVALS. SELECT-OPTIONS S_MATNR FOR EKPO-MATNR NO INTERVALS. SELECT-OPTIONS S_MATKL FOR EKPO-MATKL NO INTERVALS. SELECT-OPTIONS S_EKGRP FOR EKKO-EKGRP NO INTERVALS. SELECT-OPTIONS S_BEDAT FOR EKKO-BEDAT. SELECT-OPTIONS S_PURDOC for EKKO-EBELN. PARAMETER S_WBS LIKE EKKN-PS_PSP_PNR . *SELECT-OPTIONS S_WBS for EKKN-PS_PSP_PNR NO INTERVALS. SELECTION-SCREEN END OF BLOCK 0. *BLOCK 2 SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-010. PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT. " ALV Variant *SELECTION-SCREEN SKIP. *SELECTION-SCREEN PUSHBUTTON /10(20) SUMMA USER-COMMAND ABCD. SELECTION-SCREEN END OF BLOCK 2.
*-------------------------------------------- *DATA *-------------------------------------------- *ALV DATA TYPE-POOLS: SLIS. DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, GT_EVENTS TYPE SLIS_T_EVENT, GS_LAYOUT TYPE SLIS_LAYOUT_ALV, GT_SORT TYPE SLIS_T_SORTINFO_ALV, GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, FIELDCAT_LN LIKE LINE OF GT_FIELDCAT, REPNAME LIKE SY-REPID, G_SAVE(1) TYPE C, G_EXIT(1) TYPE C, G_VARIANT LIKE DISVARIANT, GX_VARIANT LIKE DISVARIANT.
*USER DATA DATA VWCASE(3) TYPE N. DATA SDAT LIKE EKET-EINDT.
*-------------------------------------------- *INTERNAL TABLE *-------------------------------------------- *ITAB DATA: BEGIN OF ITAB OCCURS 0, BELNR LIKE EKBE-BELNR, "Start insert by suchon CH01 LIFNR LIKE EKKO-LIFNR, BEDAT LIKE EKKO-BEDAT, WAERS LIKE EKKO-WAERS, EBELN LIKE EKPO-EBELN, EBELP LIKE EKPO-EBELP, MATNR LIKE EKPO-MATNR, TXZ01 LIKE EKPO-TXZ01, MENGE LIKE EKPO-MENGE, MEINS LIKE EKPO-MEINS, NETPR LIKE EKPO-NETPR, ELIKZ LIKE EKPO-ELIKZ, EINDT LIKE EKET-EINDT, BUDAT LIKE EKBE-BUDAT, MENGE2 LIKE EKBE-MENGE, DELP TYPE I, CMT(15) TYPE C, *BELNR LIKE EKBE-BELNR, "Start insert by suchon CH01 BUZEI LIKE EKBE-BUZEI, DMBTR LIKE EKBE-DMBTR, PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,"End insert by suchon CH01 DMBTR1 LIKE EKBE-DMBTR, DMBTR2 LIKE EKBE-DMBTR, DMBTR3 LIKE EKBE-DMBTR, DMBTR4 LIKE EKBE-DMBTR, DMBTR5 LIKE EKBE-DMBTR, DMBTR6 LIKE EKBE-DMBTR, DMBTR7 LIKE EKBE-DMBTR, DMBTR8 LIKE EKBE-DMBTR, DMBTR9 LIKE EKBE-DMBTR, DMBTR10 LIKE EKBE-DMBTR, DMBTR11 LIKE EKBE-DMBTR, DMBTR12 LIKE EKBE-DMBTR, *BRTWR1 LIKE EKPO-BRTWR, BRTWR1(13) TYPE C, BRTWR2(13) TYPE C, BRTWR3(13) TYPE C, BRTWR4(13) TYPE C, BRTWR5(13) TYPE C, BRTWR6(13) TYPE C, BRTWR7(13) TYPE C, BRTWR8(13) TYPE C, BRTWR9(13) TYPE C, BRTWR10(13) TYPE C, BRTWR11(13) TYPE C, BRTWR12(13) TYPE C, SUM_BRTWR LIKE EKPO-BRTWR, POST1 LIKE PRPS-POST1, H_note LIKE TLINE-TDLINE, SUM_OUT LIKE EKPO-BRTWR, SUM_ACT LIKE EKBE-DMBTR, END OF ITAB.
*ITAB1 DATA: BEGIN OF ITAB1 OCCURS 0, LIFNR LIKE EKKO-LIFNR, BEDAT LIKE EKKO-BEDAT, WAERS LIKE EKKO-WAERS, EBELN LIKE EKPO-EBELN, EBELP LIKE EKPO-EBELP, MATNR LIKE EKPO-MATNR, TXZ01 LIKE EKPO-TXZ01, MENGE LIKE EKPO-MENGE, MEINS LIKE EKPO-MEINS, NETPR LIKE EKPO-NETPR, ELIKZ LIKE EKPO-ELIKZ, EINDT LIKE EKET-EINDT, BUDAT LIKE EKBE-BUDAT, MENGE2 LIKE EKBE-MENGE, DELP TYPE I, CMT(15) TYPE C, BELNR LIKE EKBE-BELNR, "Start insert by suchon CH01 BUZEI LIKE EKBE-BUZEI, DMBTR LIKE EKBE-DMBTR, PS_PSP_PNR LIKE EKKN-PS_PSP_PNR, "End insert by suchon CH01 DMBTR1 LIKE EKBE-DMBTR, DMBTR2 LIKE EKBE-DMBTR, DMBTR3 LIKE EKBE-DMBTR, DMBTR4 LIKE EKBE-DMBTR, DMBTR5 LIKE EKBE-DMBTR, DMBTR6 LIKE EKBE-DMBTR, DMBTR7 LIKE EKBE-DMBTR, DMBTR8 LIKE EKBE-DMBTR, DMBTR9 LIKE EKBE-DMBTR, DMBTR10 LIKE EKBE-DMBTR, DMBTR11 LIKE EKBE-DMBTR, DMBTR12 LIKE EKBE-DMBTR, *BRTWR1 LIKE EKPO-BRTWR, BRTWR1(13) TYPE C, BRTWR2(13) TYPE C, BRTWR3(13) TYPE C, BRTWR4(13) TYPE C, BRTWR5(13) TYPE C, BRTWR6(13) TYPE C, BRTWR7(13) TYPE C, BRTWR8(13) TYPE C, BRTWR9(13) TYPE C, BRTWR10(13) TYPE C, BRTWR11(13) TYPE C, BRTWR12(13) TYPE C, SUM_BRTWR LIKE EKPO-BRTWR, POST1 LIKE PRPS-POST1, H_note LIKE TLINE-TDLINE, SUM_OUT LIKE EKPO-BRTWR, SUM_ACT LIKE EKBE-DMBTR,
END OF ITAB1. *MTEXT DATA: BEGIN OF mtext OCCURS 50. INCLUDE STRUCTURE tline. DATA: END OF mtext. *Temp data DATA TEMP1 LIKE ITAB1.
*EKKOTAB DATA: BEGIN OF EKKOTAB OCCURS 0, EBELN LIKE EKKO-EBELN, LIFNR LIKE EKKO-LIFNR, BEDAT LIKE EKKO-BEDAT, WAERS LIKE EKKO-WAERS, END OF EKKOTAB.
*EKPOTAB DATA: BEGIN OF EKPOTAB OCCURS 0, EBELN LIKE EKPO-EBELN, EBELP LIKE EKPO-EBELP, LIFNR LIKE EKKO-LIFNR, BEDAT LIKE EKKO-BEDAT, WAERS LIKE EKKO-WAERS, MATNR LIKE EKPO-MATNR, TXZ01 LIKE EKPO-TXZ01, MENGE LIKE EKPO-MENGE, MEINS LIKE EKPO-MEINS, NETPR LIKE EKPO-NETPR, ELIKZ LIKE EKPO-ELIKZ, EINDT LIKE EKET-EINDT, BRTWR LIKE EKPO-BRTWR, END OF EKPOTAB.
*-------------------------------------------- AT SELECTION-SCREEN. *-------------------------------------------- IF S_BEDAT IS INITIAL. MESSAGE E000 WITH 'Please enter a date in Main Selection Criteria'. ENDIF.
* IF P_01 = 'X' AND P_D01 IS INITIAL. * MESSAGE E000 * WITH 'Please enter a number on Delivered Before Plan Delivery'. * ENDIF. * * IF P_02 = 'X' AND P_D02 IS INITIAL. * MESSAGE E000 * WITH 'Please enter a number on Delivered After Plan Delivery'. * ENDIF. * * IF P_04 = 'X' AND P_D04 IS INITIAL. * MESSAGE E000 * WITH 'Please enter a number on Un-delivered Before Plan Delivery'. * ENDIF. * * IF P_05 = 'X' AND P_D05 IS INITIAL. * MESSAGE E000 * WITH 'Please enter a number on Un-delivered After Plan Delivery'. * ENDIF.
PERFORM PAI_OF_SELECTION_SCREEN.
*-------------------------------------------- AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI. *-------------------------------------------- PERFORM F4_FOR_VARIANT.
*-------------------------------------------- FORM START. *--------------------------------------------
PERFORM GET_EKKOTAB. PERFORM GET_EKPOTAB. PERFORM GET_ITAB1. PERFORM MOVE_ITAB1_TO_ITAB. * START INSERT BY SUCHON CH01 IF NOT S_WBS IS INITIAL. DELETE ITAB WHERE PS_PSP_PNR <> S_WBS. ENDIF. ENDFORM. "START * END INSERT BY SUCHON CH01
*-------------------------------------------- FORM GET_EKKOTAB. *-------------------------------------------- REFRESH EKKOTAB. CLEAR EKKOTAB.
SELECT EBELN LIFNR BEDAT WAERS INTO (EKKO-EBELN, EKKO-LIFNR, EKKO-BEDAT, EKKO-WAERS) FROM EKKO WHERE LIFNR IN S_LIFNR AND EKGRP IN S_EKGRP AND BEDAT IN S_BEDAT AND EBELN IN S_Purdoc. " INSERT BY SUCHON , CH01
MOVE EKKO-EBELN TO EKKOTAB-EBELN. MOVE EKKO-LIFNR TO EKKOTAB-LIFNR. MOVE EKKO-BEDAT TO EKKOTAB-BEDAT. MOVE EKKO-WAERS TO EKKOTAB-WAERS. APPEND EKKOTAB. CLEAR EKKOTAB.
ENDSELECT.
ENDFORM. "GET_EKKOTAB
*-------------------------------------------- FORM GET_EKPOTAB. *-------------------------------------------- REFRESH EKPOTAB. CLEAR EKPOTAB.
LOOP AT EKKOTAB.
SELECT EBELN EBELP MATNR TXZ01 MENGE MEINS NETPR ELIKZ BRTWR INTO (EKPO-EBELN, EKPO-EBELP, EKPO-MATNR, EKPO-TXZ01, EKPO-MENGE, EKPO-MEINS, EKPO-NETPR, EKPO-ELIKZ, EKPO-BRTWR) FROM EKPO WHERE EBELN = EKKOTAB-EBELN AND MATNR IN S_MATNR AND MATKL IN S_MATKL.
SELECT SINGLE EINDT INTO EKET-EINDT FROM EKET WHERE EBELN = EKPO-EBELN AND EBELP = EKPO-EBELP. MOVE EKKOTAB-LIFNR TO EKPOTAB-LIFNR. MOVE EKKOTAB-BEDAT TO EKPOTAB-BEDAT. MOVE EKKOTAB-WAERS TO EKPOTAB-WAERS. MOVE EKPO-EBELN TO EKPOTAB-EBELN. MOVE EKPO-EBELP TO EKPOTAB-EBELP. MOVE EKPO-MATNR TO EKPOTAB-MATNR. MOVE EKPO-TXZ01 TO EKPOTAB-TXZ01. MOVE EKPO-MENGE TO EKPOTAB-MENGE. MOVE EKPO-MEINS TO EKPOTAB-MEINS. MOVE EKPO-NETPR TO EKPOTAB-NETPR. MOVE EKPO-ELIKZ TO EKPOTAB-ELIKZ. MOVE EKET-EINDT TO EKPOTAB-EINDT. MOVE EKPO-BRTWR TO EKPOTAB-BRTWR. APPEND EKPOTAB. CLEAR EKPOTAB.
ENDSELECT.
ENDLOOP.
ENDFORM. "GET_EKPOTAB
*-------------------------------------------- FORM GET_ITAB1. *-------------------------------------------- DATA DVPLAN TYPE I. DATA COMMT(15) TYPE C. DATA tname LIKE thead-tdname.
REFRESH ITAB1. CLEAR ITAB1.
LOOP AT EKPOTAB.
SELECT SINGLE PS_PSP_PNR INTO (ITAB1-PS_PSP_PNR) FROM EKKN WHERE EBELN = EKPOTAB-EBELN AND EBELP = EKPOTAB-EBELP.
SELECT SINGLE POST1 INTO (ITAB1-POST1) FROM PRPS WHERE PSPNR = ITAB1-PS_PSP_PNR.
MOVE EKPOTAB-EBELN TO TNAME.
***************CALL HEADER NOTES******************* CALL FUNCTION 'READ_TEXT' EXPORTING id = 'F02' language = 'E' name = tname object = 'EKKO' TABLES lines = MTEXT EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. **************************************************** IF SY-SUBRC = 0. READ TABLE MTEXT INDEX 1 ."INTO itab1-h_note. MOVE MTEXT-TDLINE TO ITAB1-H_NOTE. ENDIF.
*Deliver - Select All WHEN '003'. IF ITAB1-BUDAT <> SPACE. MOVE-CORRESPONDING ITAB1 TO ITAB. APPEND ITAB. CLEAR ITAB. ENDIF. *UnDeliver - Select All WHEN '006'. IF ITAB1-BUDAT IS INITIAL OR ITAB1-BUDAT = ''. MOVE-CORRESPONDING ITAB1 TO ITAB. APPEND ITAB. CLEAR ITAB. ENDIF. *Select All WHEN '007'. MOVE-CORRESPONDING ITAB1 TO ITAB. APPEND ITAB. CLEAR ITAB.
ENDCASE. "VWCASE
ENDLOOP. "ITAB1
ENDFORM. "MOVE_ITAB1_TO_ITAB
*-------------------------------------------- FORM GET_FILTER_CASE. *-------------------------------------------- CLEAR VWCASE. MOVE '007' TO VWCASE. ENDFORM. "GET_FILTER_CASE
*-------------------------------------------- FORM F4_FOR_VARIANT. *-------------------------------------------- CALL FUNCTION 'REUSE_ALV_VARIANT_F4' EXPORTING IS_VARIANT = G_VARIANT I_SAVE = G_SAVE IMPORTING E_EXIT = G_EXIT ES_VARIANT = GX_VARIANT EXCEPTIONS NOT_FOUND = 2. IF SY-SUBRC = 2. MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ELSE. IF G_EXIT = SPACE. P_VARI = GX_VARIANT-VARIANT. ENDIF. ENDIF. ENDFORM. " F4_FOR_VARIANT
*-------------------------------------------- FORM PAI_OF_SELECTION_SCREEN. *-------------------------------------------- IF NOT P_VARI IS INITIAL. MOVE G_VARIANT TO GX_VARIANT. MOVE P_VARI TO GX_VARIANT-VARIANT. CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE' EXPORTING I_SAVE = G_SAVE CHANGING CS_VARIANT = GX_VARIANT. G_VARIANT = GX_VARIANT. ELSE. PERFORM INITIALIZE_VARIANT. ENDIF. ENDFORM. " PAI_OF_SELECTION_SCREEN
*-------------------------------------------- FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER. *-------------------------------------------- DATA: GS_LINE TYPE SLIS_LISTHEADER.
CLEAR GS_LINE. GS_LINE-TYP = 'S'. GS_LINE-INFO = 'Purchase Order Performance Report'. APPEND GS_LINE TO GT_TOP_OF_PAGE. ENDFORM. "COMMENT_BUILD
*-------------------------------------------- FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT. *-------------------------------------------- CONSTANTS: GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'. DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LS_EVENT. IF SY-SUBRC = 0. MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM. APPEND LS_EVENT TO LT_EVENTS. ENDIF. ENDFORM. "EVENTTAB_BUILD
*-------------------------------------------- FORM TOP_OF_PAGE. *-------------------------------------------- CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE. ENDFORM. "TOP_OF_PAGE
*-------------------------------------------- FORM BUILD. *--------------------------------------------
Downloading to Excel REPORT ztablexls. ******************************************************************** * Developer : S.Srini. * Location : Chennai, * : Tamil Nadu, * : India. * Date : 3/10/2001. ******************************************************************** * TESTED - MS EXCEL 97 * NOT RECOMMENDED FOR LENGTHY OUTPUT AND LARGE DATA TABLE BROWSING ******************************************************************** TABLES: USR03,DD02L. DATA: ZX030L LIKE X030L. DATA BEGIN OF ZDFIES OCCURS 0. INCLUDE STRUCTURE DFIES. DATA END OF ZDFIES. DATA: BEGIN OF FLDITAB OCCURS 0, FLDNAME(11) TYPE C, END OF FLDITAB. DATA ITABUSR03 LIKE USR03 OCCURS 0 WITH HEADER LINE. DATA TNAME LIKE DD02L-TABNAME. SELECT * FROM USR03 INTO TABLE ITABUSR03. TNAME = 'USR03'. PERFORM GETFIELEDS. PERFORM SHOW123. ******************************************** FORM GETFIELEDS. CALL FUNCTION 'GET_FIELDTAB' EXPORTING LANGU = SY-LANGU ONLY = SPACE TABNAME = TNAME WITHTEXT = 'X' IMPORTING HEADER = ZX030L TABLES FIELDTAB = ZDFIES EXCEPTIONS INTERNAL_ERROR = 01 NO_TEXTS_FOUND = 02 TABLE_HAS_NO_FIELDS = 03 TABLE_NOT_ACTIV = 04. CASE SY-SUBRC. WHEN 0. LOOP AT ZDFIES. FLDITAB-FLDNAME = ZDFIES-FIELDNAME. APPEND FLDITAB. ENDLOOP. WHEN OTHERS. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO with SY-SUBRC. ENDCASE. ENDFORM. *********************************** FORM SHOW123. CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT' EXPORTING FILE_NAME = 'C:USR03.XLS' DATA_SHEET_NAME = 'USER LIST' TABLES DATA_TAB = ITABUSR03 FIELDNAMES = FLDITAB EXCEPTIONS FILE_NOT_EXIST = 1 FILENAME_EXPECTED = 2 COMMUNICATION_ERROR = 3 OLE_OBJECT_METHOD_ERROR = 4 OLE_OBJECT_PROPERTY_ERROR = 5 INVALID_FILENAME = 6 INVALID_PIVOT_FIELDS = 7 DOWNLOAD_PROBLEM = 8 OTHERS = 9. 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.
report zpp264 no standard page heading line-count 50(2) line-size 145 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(40) 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(40) 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(40) type c, remark(20) type c, end of itab_err.
data: begin of etab occurs 0, item(5) type c, matnr like vbap-matnr, desc(40) 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, f2(20) type c, f3(40) type c, f4(10) type c, f5(20) type c, end of ohead.
data: begin of ohead_xls occurs 0, f1(10) type c, f2(20) type c, f3(40) type c, f4(10) type c, f5(20) type c, end of ohead_xls.
******************************* selection-screen begin of block 0 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 0.
selection-screen begin of block 2 with frame title text-001. selection-screen skip 1.
parameters: p_file1 like rlgrap-filename default 'c:zpp264.txt' obligatory.
parameters: r_zro radiobutton group grp1, r_zdi radiobutton group grp1. selection-screen skip 1.
parameters: o_file1 like rlgrap-filename default 'c:zpp264_no_sales_found.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 Error Item posted to Sales Stock' prog = 'ZPP264' exceptions others = 1.
if not itab[] is initial. if r_zro = 'X'. perform bdc_process_zro. if not etab[] is initial. perform create_excel_field_name. perform write_out_execl_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_execl_format. endif.
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' '0050'.
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'. if sy-subrc <> 0. move-corresponding itab to itab_err. append itab_err. clear itab_err. endif.
endform. " bdc_for_zro_zros *&---------------------------------------------------------------------* *& Form create_excel_field_name *&---------------------------------------------------------------------* form create_excel_field_name. clear ohead. refresh ohead.
endform. *&---------------------------------------------------------------------* *& Form write_out_execl_format *&---------------------------------------------------------------------* form write_out_execl_format.
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' '0050'.
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'. if sy-subrc <> 0. move-corresponding itab to itab_err. append itab_err. clear itab_err. 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' '0050'.
perform bdc_field tables bdcdata using 'BDC_OKCODE' '/00'.
perform bdc_dynpro tables bdcdata using 'SAPMM07M' '0421'.