Anda di halaman 1dari 39

************************************************************************ * PROGRAM ID : ZMMR_VEND_MSTR_CR * * PROGRAM TITLE : Vendor Master Upload * * AUTHOR : Harish Kasyap * * SUPPLIER : TCS * * DATE : 05-04-2012

* * DEVELOPMENT ID : * * CHANGE REQUEST (CTS): * *======================================================================* * COPIED FROM : * * TITLE : * * OTHER RELATED OBJ : Not Applicable * *======================================================================* * CHANGE HISTORY LOG * *----------------------------------------------------------------------* * MOD. NO.| DATE | NAME | CORRECTION NUMBER | CHANGE REFERENCE# * *----------------------------------------------------------------------* *======================================================================* *&---------------------------------------------------------------------* REPORT ZMMR_VEND_MSTR_CR NO STANDARD PAGE HEADING MESSAGE-ID zkel LINE-COUNT 65 LINE-SIZE 132.

*- Include for Global Declarations & Selection Screen -* INCLUDE zfir_vendor_top. *- Include for all the Subroutines -* INCLUDE zfir_vendor_form. *---------------------------------------------------------------------* * EVENT : AT SELECTION-SCREEN ON * *---------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lfa1. CALL FUNCTION 'F4_FILENAME' EXPORTING program_name = syst-cprog dynpro_number = syst-dynnr IMPORTING file_name = p_lfa1. * * *AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lfa11. * * CALL FUNCTION 'F4_FILENAME' * EXPORTING

* program_name = syst-cprog * dynpro_number = syst-dynnr * IMPORTING * file_name = p_lfa11. * *AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lfa12. * * CALL FUNCTION 'F4_FILENAME' * EXPORTING * program_name = syst-cprog * dynpro_number = syst-dynnr * IMPORTING * file_name = p_lfa12. * *AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lfa14. * * CALL FUNCTION 'F4_FILENAME' * EXPORTING * program_name = syst-cprog * dynpro_number = syst-dynnr * IMPORTING * file_name = p_lfa14.

*---------------------------------------------------------------------* * EVENT : AT SELECTION-SCREEN OUTPUT * *---------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT. PERFORM fields_required. *---------------------------------------------------------------------* * EVENT : START-OF-SELECTION * *---------------------------------------------------------------------* START-OF-SELECTION. PERFORM upload_data. PERFORM create_vendor. PERFORM display_msg. ************************************************************************ * PROGRAM ID : ZFIR_VENDOR_TOP * * PROGRAM TITLE : Vendor Master Upload * * AUTHOR : Harish Kasyap * * SUPPLIER : TCS *

* DATE : 05-04-2012 * * DEVELOPMENT ID : * * CHANGE REQUEST (CTS): * *======================================================================* * COPIED FROM : * * TITLE : * * OTHER RELATED OBJ : Not Applicable * *======================================================================* * CHANGE HISTORY LOG * *----------------------------------------------------------------------* * MOD. NO.| DATE | NAME | CORRECTION NUMBER | CHANGE REFERENCE# * *----------------------------------------------------------------------* *======================================================================* *&---------------------------------------------------------------------* *----------------------------------------------------------------------* * Global Structure Declaration * *----------------------------------------------------------------------* TYPES : BEGIN OF ty_lfa1, bukrs TYPE bukrs, ekorg TYPE ekorg, ktokk TYPE ktokk, title_medi TYPE ad_titletx, name1 TYPE ad_name1, name2 TYPE name2, sort2 TYPE ad_sort2ul, building TYPE ad_bldng, str_suppl1 TYPE ad_strspp1, str_suppl2 TYPE ad_strspp2, str_suppl3 TYPE ad_strspp3, post_code1 TYPE ad_pstcd1, city1 TYPE ad_city1, country TYPE land1, region TYPE addr1_data-region, po_box TYPE ad_pobx, langu TYPE spras, tel_number TYPE ad_tlnmbr1, tel_extens TYPE ad_tlxtns1, mob_number TYPE ad_mbnmbr1, fax_number TYPE ad_fxxtns1, fax_extens TYPE ad_fxxtns1, smtp_addr TYPE ad_smtpadr, remark TYPE ad_remark1, kunnr TYPE kunnr, stcd1 TYPE stcd1, stceg TYPE stceg, banks TYPE banks, bankl TYPE bankl, bankn TYPE bankn,

koinh TYPE koinh_fi, bvtyp TYPE bvtyp, lnrza TYPE lnrza, akont TYPE akont, zuawa TYPE dzuawa, altkn TYPE altkn, pernr TYPE char8, zterm TYPE dzterm, reprf TYPE reprf, zwels TYPE dzwels, hbkid TYPE hbkid, qland TYPE qland, witht TYPE witht, wt_withcd TYPE wt_withcd, wt_subjct TYPE wt_subjct, waers TYPE waers, zterm1 TYPE dzterm, inco1 TYPE inco1, inco2 TYPE inco2, verkf TYPE everk, telf1 TYPE telfe, webre TYPE webre, xersy TYPE xersy, xersr TYPE xersr, lebre TYPE lebre, parvw TYPE parvw, gparn1 TYPE gparn, parvw1 TYPE parvw, gparn2 TYPE gparn, parvw2 TYPE parvw, gparn3 TYPE gparn, END OF ty_lfa1.

TYPES : BEGIN OF ty_vendor_change, lifnr TYPE lifnr, bukrs TYPE bukrs, ekorg TYPE ekorg, ktokk TYPE ktokk, title_medi TYPE ad_titletx, name1 TYPE name1, name2 TYPE name2, sort1 TYPE ad_sort1ul, sort2 TYPE ad_sort2ul, street TYPE ad_street, house_num1 TYPE ad_hsnm1, str_suppl3 TYPE ad_strspp3, post_code1 TYPE ad_pstcd1, city1 TYPE ad_city1, country TYPE land1,

region TYPE region, po_box TYPE ad_pobx, post_code2 TYPE ad_pstcd2, langu TYPE spras, tel_number TYPE ad_tlnmbr1, tel_extens TYPE ad_tlxtns1, mob_number TYPE ad_mbnmbr1, fax_number TYPE ad_fxxtns1, fax_extens TYPE ad_fxxtns1, smtp_addr TYPE ad_smtpadr, vbund TYPE vbund, stcd1 TYPE stcd1, stceg TYPE stceg, dtaws TYPE dtaws, akont TYPE akont, zuawa TYPE dzuawa, fdgrv TYPE fdgrv, altkn TYPE altkn, pernr TYPE char8, zterm TYPE dzterm, reprf TYPE reprf, zwels TYPE dzwels, hbkid TYPE hbkid, qland TYPE qland, waers TYPE waers, zterm1 TYPE dzterm, inco1 TYPE inco1, inco2 TYPE inco2, kalsk TYPE kalsk, webre TYPE webre, lebre TYPE lebre, parvw TYPE parvw, gparn1 TYPE gparn, parvw1 TYPE parvw, gparn2 TYPE gparn, parvw2 TYPE parvw, gparn3 TYPE gparn, END OF ty_vendor_change. TYPES : BEGIN OF ty_bank, lifnr TYPE lifnr, banks TYPE banks, bankl TYPE bankl, bankn TYPE bankn, koinh TYPE koinh_fi, bvtyp TYPE bvtyp, witht TYPE witht, wt_withcd TYPE wt_withcd, wt_subjct TYPE wt_subjct,

END OF ty_bank. TYPES : BEGIN OF ty_purchase, lifnr TYPE lifnr, bukrs TYPE bukrs, ekorg TYPE ekorg, waers TYPE waers, zterm1 TYPE dzterm, inco1 TYPE inco1, inco2 TYPE inco2, kalsk TYPE kalsk, webre TYPE webre, lebre TYPE lebre, parvw TYPE parvw, gparn1 TYPE gparn, parvw1 TYPE parvw, gparn2 TYPE gparn, parvw2 TYPE parvw, gparn3 TYPE gparn, END OF ty_purchase. TYPES : BEGIN OF ty_error, koinh TYPE koinh_fi, ztext TYPE char100, END OF ty_error. DATA : it_error TYPE STANDARD TABLE OF ty_error, wa_error TYPE ty_error. DATA : it_lfa1 TYPE STANDARD TABLE OF ty_lfa1, it_lfa11 TYPE STANDARD TABLE OF ty_vendor_change, it_lfa12 TYPE STANDARD TABLE OF ty_bank, it_lfa14 TYPE STANDARD TABLE OF ty_purchase, wa_lfa1 TYPE ty_lfa1, wa_lfa11 TYPE ty_vendor_change, wa_lfa12 TYPE ty_bank, wa_lfa14 TYPE ty_purchase. DATA: it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE, it_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE. DATA: fv_msg TYPE char250. DATA: fv_msg_id fv_msg_no fv_msg_var1 fv_msg_var2 fv_msg_var3 fv_msg_var4 LIKE LIKE LIKE LIKE LIKE LIKE t100-arbgb, t100-msgnr, balm-msgv1, balm-msgv2, balm-msgv3, balm-msgv4. " Message " " " " " " Message Message Message Message Message Message Id No Var1 Var2 Var3 Var4 " BDC Table " BDC Messages

*----------------------------------------------------------------------*

* S E L E C T I O N S C R E E N *----------------------------------------------------------------------* *SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002. *PARAMETERS : pa RADIOBUTTON GROUP rad USERCOMMAND com MODIF ID mod DEFAULT 'X'. ** pb RADIOBUTTON GROUP rad MODIF ID rad, ** pc RADIOBUTTON GROUP rad MODIF ID cad. *SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001. PARAMETERS : p_lfa1 TYPE rlgrap-filename. SELECTION-SCREEN END OF BLOCK b2. *SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003. *PARAMETERS : p_lfa11 TYPE rlgrap-filename. *PARAMETERS : p_lfa12 TYPE rlgrap-filename. *SELECTION-SCREEN END OF BLOCK b3. * *SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004. *PARAMETERS : p_lfa14 TYPE rlgrap-filename. *SELECTION-SCREEN END OF BLOCK b4.

Include

ZFIR_VENDOR_FORM

************************************************************************ * PROGRAM ID : ZFIR_VENDOR_FORM * * PROGRAM TITLE : Vendor Master Upload * * AUTHOR : Harish Kasyap * * SUPPLIER : TCS * * DATE : 05-04-2012 * * DEVELOPMENT ID : * * CHANGE REQUEST (CTS): * *======================================================================* * COPIED FROM : * * TITLE : * * OTHER RELATED OBJ : Not Applicable * *======================================================================* * CHANGE HISTORY LOG * *----------------------------------------------------------------------* * MOD. NO.| DATE | NAME | CORRECTION NUMBER | CHANGE REFERENCE# * *----------------------------------------------------------------------* *======================================================================* *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form UPLOAD_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------*

* --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM upload_data . DATA : l_string TYPE string. DATA : l_string1 TYPE string. DATA : l_string2 TYPE string. TYPES truxs_t_text_data(4096) TYPE c OCCURS 0. DATA: it_raw TYPE * truxs_t_text_data.

IF pa IS NOT INITIAL. l_string = p_lfa1. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' EXPORTING i_tab_raw_data = it_raw i_filename = p_lfa1 TABLES i_tab_converted_data = it_lfa1 EXCEPTIONS conversion_failed = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE 'Error while uploading the file' TYPE 'I'. LEAVE LIST-PROCESSING. ENDIF.

IF it_lfa1 IS NOT INITIAL. DELETE it_lfa1 FROM 1 TO 3. ENDIF. * ENDIF. * * * * * * * * * * * * * IF pb IS NOT INITIAL. l_string = p_lfa11. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' EXPORTING i_tab_raw_data = it_raw i_filename = p_lfa11 TABLES i_tab_converted_data = it_lfa11 EXCEPTIONS conversion_failed = 1 OTHERS = 2.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

IF sy-subrc <> 0. MESSAGE 'Error while uploading the file' TYPE 'I'. LEAVE LIST-PROCESSING. ENDIF. IF it_lfa11 IS NOT INITIAL. DELETE it_lfa11 FROM 1 TO 8. ENDIF. l_string1 = p_lfa12. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' EXPORTING i_tab_raw_data = it_raw i_filename = p_lfa12 TABLES i_tab_converted_data = it_lfa12 EXCEPTIONS conversion_failed = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE 'Error while uploading the file' TYPE 'I'. LEAVE LIST-PROCESSING. ENDIF. IF it_lfa12 IS NOT INITIAL. DELETE it_lfa12 FROM 1 TO 8. ENDIF. ENDIF. IF pc IS NOT INITIAL. l_string = p_lfa14. CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' EXPORTING i_tab_raw_data = it_raw i_filename = p_lfa14 TABLES i_tab_converted_data = it_lfa14 EXCEPTIONS conversion_failed = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE 'Error while uploading the file' TYPE 'I'. LEAVE LIST-PROCESSING. ENDIF.

* * IF it_lfa14 IS NOT INITIAL. * DELETE it_lfa14 FROM 1 TO 8. * ENDIF. * ENDIF. ENDFORM. " UPLOAD_DATA *&---------------------------------------------------------------------* *& Form FIELDS_REQUIRED *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM fields_required . ** IF pa IS NOT INITIAL. * LOOP AT SCREEN. * IF screen-group4 = '009' * OR screen-group4 = '010' * OR screen-group4 = '013'. * screen-active = 0. * MODIFY SCREEN. * ENDIF. * ENDLOOP. * ENDIF. * IF pb IS NOT INITIAL. * LOOP AT SCREEN. * IF screen-group4 = '006' * OR screen-group4 = '013'. * screen-active = 0. " Hiding the field from selection screen * MODIFY SCREEN. * ENDIF. * ENDLOOP. * ENDIF. * IF pc IS NOT INITIAL. * LOOP AT SCREEN. * IF screen-group4 = '006' * OR screen-group4 = '009' * OR screen-group4 = '010'. * * screen-active = 0. " Hiding the field from selection screen * MODIFY SCREEN. * ENDIF. * ENDLOOP. * ENDIF. ENDFORM. " FIELDS_REQUIRED *&---------------------------------------------------------------------* *& Form CREATE_VENDOR *&---------------------------------------------------------------------*

* text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM create_vendor . DATA : l_v_mode TYPE char1 VALUE 'N'.

IF pa IS NOT INITIAL. IF it_lfa1 IS NOT INITIAL. LOOP AT it_lfa1 INTO wa_lfa1. PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field USING 'SAPMF02K' '0100'. USING 'BDC_CURSOR' 'USE_ZAV'. USING 'BDC_OKCODE' '/00'. USING 'RF02K-BUKRS' wa_lfa1-bukrs. USING 'RF02K-EKORG' wa_lfa1-ekorg. USING 'RF02K-KTOKK' wa_lfa1-ktokk. USING 'USE_ZAV' 'X'. USING 'SAPMF02K' '0111'. USING 'BDC_OKCODE' '=VW'. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 0300ADDRESS'. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 0301COUNTRY_SCREEN'. USING 'BDC_CURSOR' 'SZA1_D0100-SMTP_ADDR'. USING 'SZA1_D0100-TITLE_MEDI' wa_lfa1-title_medi. USING 'ADDR1_DATA-NAME1' wa_lfa1-name1. USING 'ADDR1_DATA-NAME2' wa_lfa1-name2. USING 'ADDR1_DATA-SORT2' wa_lfa1-sort2. USING 'ADDR1_DATA-BUILDING' wa_lfa1-building.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'ADDR1_DATA-STR_SUPPL1' wa_lfa1-str_suppl1. USING 'ADDR1_DATA-STR_SUPPL2' wa_lfa1-str_suppl2. USING 'ADDR1_DATA-STR_SUPPL3' wa_lfa1-str_suppl3. USING 'ADDR1_DATA-POST_CODE1' wa_lfa1-post_code1. USING 'ADDR1_DATA-CITY1' wa_lfa1-city1. USING 'ADDR1_DATA-COUNTRY' wa_lfa1-country. USING 'ADDR1_DATA-REGION' wa_lfa1-region. USING 'ADDR1_DATA-PO_BOX' wa_lfa1-po_box. USING 'ADDR1_DATA-LANGU' wa_lfa1-langu. USING 'SZA1_D0100-TEL_NUMBER' wa_lfa1-tel_number. USING 'SZA1_D0100-TEL_EXTENS' wa_lfa1-tel_extens. USING 'SZA1_D0100-MOB_NUMBER' wa_lfa1-mob_number. USING 'SZA1_D0100-FAX_NUMBER' wa_lfa1-fax_number. USING 'SZA1_D0100-FAX_EXTENS' wa_lfa1-fax_extens. USING 'SZA1_D0100-SMTP_ADDR' wa_lfa1-smtp_addr. USING 'ADDR1_DATA-REMARK' wa_lfa1-remark. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 1300APPL_SUB_T'. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 0200APPL_SUB'.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0120'. USING 'BDC_CURSOR' 'LFA1-STCEG'. USING 'BDC_OKCODE' '=VW'. USING 'LFA1-KUNNR' wa_lfa1-kunnr. USING 'LFA1-STCD1' wa_lfa1-stcd1. USING 'LFA1-STCEG'

PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

wa_lfa1-stceg. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-ST'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-01'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-02'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-03'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-04'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-05'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-06'. USING 'SAPMF02K' '0130'. USING 'BDC_CURSOR' 'LFA1-DTAWS'. USING 'BDC_OKCODE' '=VW'. USING 'LFA1-LNRZA' wa_lfa1-lnrza. USING 'LFBK-BANKS(01)' wa_lfa1-banks. USING 'LFBK-BANKL(01)' wa_lfa1-bankl. USING 'LFBK-BANKN(01)' wa_lfa1-bankn. USING 'LFBK-KOINH(01)' wa_lfa1-koinh. USING 'LFBK-BVTYP(01)' '1'. USING 'SAPMF02K' '0380'. USING 'BDC_CURSOR' 'KNVK-NAMEV(01)'. USING 'BDC_OKCODE' '=VW'. USING 'SAPMF02K' '0210'. USING 'BDC_CURSOR' 'LFB1-FDGRV'. USING 'BDC_OKCODE' '=VW'. USING 'LFB1-AKONT'

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

PERFORM bdc_field PERFORM bdc_field

wa_lfa1-akont. USING 'LFB1-ZUAWA' wa_lfa1-zuawa. USING 'LFB1-ALTKN' wa_lfa1-altkn.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field * * PERFORM bdc_field

USING 'SAPMF02K' '0215'. USING 'BDC_CURSOR' 'LFB1-HBKID'. USING 'BDC_OKCODE' '=VW'. USING 'LFB1-ZTERM' wa_lfa1-zterm. USING 'LFB1-REPRF' wa_lfa1-reprf. USING 'LFB1-ZWELS' wa_lfa1-zwels. USING 'LFB1-HBKID' wa_lfa1-hbkid. USING 'SAPMF02K' '0220'. USING 'BDC_CURSOR' 'LFB1-BUSAB'. USING 'BDC_OKCODE' '=VW'. USING 'SAPMF02K' '0610'. USING 'BDC_OKCODE' '=VW'. USING 'BDC_SUBSCR' 'SAPMFWTV' &' 0610WT_WITS'. USING 'BDC_CURSOR' 'LFBW-WT_SUBJCT(01)'. USING 'LFB1-QLAND' wa_lfa1-qland. USING 'LFBW-WITHT(01)' wa_lfa1-witht. USING 'LFBW-WT_WITHCD(01)' wa_lfa1-wt_withcd. USING 'LFBW-WT_SUBJCT(01)' wa_lfa1-wt_subjct.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

PERFORM bdc_dynpro

USING 'SAPMF02K' '0310'.

PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'BDC_CURSOR' 'LFM1-LEBRE'. USING 'BDC_OKCODE' '=VW'. USING 'LFM1-WAERS' wa_lfa1-waers. USING 'LFM1-ZTERM' wa_lfa1-zterm1. USING 'LFM1-INCO1' wa_lfa1-inco1. USING 'LFM1-INCO2' wa_lfa1-inco2. USING 'LFM1-VERKF' wa_lfa1-verkf. USING 'LFM1-TELF1' wa_lfa1-telf1. USING 'LFM1-XERSY' wa_lfa1-xersy. USING 'LFM1-XERSR' wa_lfa1-xersr. USING 'LFM1-WEBRE' wa_lfa1-webre. USING 'LFM1-LEBRE' wa_lfa1-lebre.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field * * PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field * * * * * * PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0320'. USING 'BDC_CURSOR' 'WRF02K-GPARN(03)'. USING 'BDC_OKCODE' '=VW'. USING 'WYT3-PARVW(02)' wa_lfa1-parvw. USING 'WRF02K-GPARN(01)' wa_lfa1-gparn1. USING 'WYT3-PARVW(01)' wa_lfa1-parvw1. USING 'WRF02K-GPARN(02)' wa_lfa1-gparn2. USING 'WYT3-PARVW(03)' wa_lfa1-parvw2. USING 'WRF02K-GPARN(03)' wa_lfa1-gparn3. USING 'SAPMF02K' '0320'. USING 'BDC_CURSOR'

PERFORM bdc_dynpro PERFORM bdc_field

PERFORM bdc_field

'RF02K-LIFNR'. USING 'BDC_OKCODE' '=VW'.

CALL TRANSACTION 'XK01' USING it_bdcdata MODE l_v_mode UPDATE 'S' MESSAGES INTO it_messtab. READ TABLE it_messtab WITH KEY msgtyp = 'E'. IF sy-subrc = 0 . fv_msg_id = it_messtab-msgid. fv_msg_no = it_messtab-msgnr. fv_msg_var1 = it_messtab-msgv1. fv_msg_var2 = it_messtab-msgv2. fv_msg_var3 = it_messtab-msgv3. fv_msg_var4 = it_messtab-msgv4. CALL FUNCTION 'MESSAGE_PREPARE' EXPORTING language = sy-langu msg_id = fv_msg_id msg_no = fv_msg_no msg_var1 = fv_msg_var1 msg_var2 = fv_msg_var2 msg_var3 = fv_msg_var3 msg_var4 = fv_msg_var4 IMPORTING msg_text = fv_msg EXCEPTIONS function_not_completed = 1 message_not_found = 2 OTHERS = 3. ENDIF. READ TABLE it_messtab WITH KEY msgtyp = 'S'. IF sy-subrc = 0 . fv_msg_id = it_messtab-msgid. fv_msg_no = it_messtab-msgnr. fv_msg_var1 = it_messtab-msgv1. fv_msg_var2 = it_messtab-msgv2. fv_msg_var3 = it_messtab-msgv3. fv_msg_var4 = it_messtab-msgv4. CALL FUNCTION 'MESSAGE_PREPARE' EXPORTING language = sy-langu msg_id = fv_msg_id msg_no = fv_msg_no msg_var1 = fv_msg_var1 msg_var2 = fv_msg_var2

msg_var3 = fv_msg_var3 msg_var4 = fv_msg_var4 IMPORTING msg_text = fv_msg EXCEPTIONS function_not_completed = 1 message_not_found = 2 OTHERS = 3. ENDIF. CLEAR it_messtab[]. wa_error-ztext = fv_msg. wa_error-koinh = wa_lfa1-koinh. APPEND wa_error TO it_error. CLEAR: wa_error,it_bdcdata[],wa_lfa1. ENDLOOP. ENDIF. * ENDIF. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IF pb IS NOT INITIAL. DATA: l_wa_opt TYPE ctu_params, l_v_bvtyp TYPE bvtyp, l_v_index(2) TYPE n VALUE '0'. DATA : l_v_fld_val TYPE bdc_fval. IF it_lfa11 IS NOT INITIAL. LOOP AT it_lfa11 INTO wa_lfa11. PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field USING 'SAPMF02K' '0101'. USING 'BDC_CURSOR' 'RF02K-EKORG'. USING 'BDC_OKCODE' '/00'. USING 'RF02K-LIFNR' wa_lfa11-lifnr. USING 'RF02K-BUKRS' wa_lfa11-bukrs. USING 'RF02K-EKORG' wa_lfa11-ekorg. USING 'RF02K-D0110' 'X'. USING 'RF02K-D0120' 'X'. USING 'RF02K-D0130' 'X'. USING 'WRF02K-D0380' 'X'. USING 'RF02K-D0210'

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

'X'. USING 'RF02K-D0215' 'X'. USING 'RF02K-D0220' 'X'. USING 'RF02K-D0610' 'X'. USING 'RF02K-D0310' 'X'. USING 'WRF02K-D0320' 'X'. USING 'USE_ZAV' 'X'. USING 'SAPMF02K' '0111'. USING 'BDC_OKCODE' '=VW'. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 0300ADDRESS'. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 0301COUNTRY_SCREEN'. USING 'BDC_CURSOR' 'SZA1_D0100-SMTP_ADDR'. USING 'SZA1_D0100-TITLE_MEDI' wa_lfa11-title_medi. USING 'ADDR1_DATA-NAME1' wa_lfa11-name1. USING 'ADDR1_DATA-NAME2' wa_lfa11-name2. USING 'ADDR1_DATA-SORT1' wa_lfa11-sort1. USING 'ADDR1_DATA-SORT2' wa_lfa11-sort2. USING 'ADDR1_DATA-STREET' wa_lfa11-street. USING 'ADDR1_DATA-STR_SUPPL3' wa_lfa11-str_suppl3. USING 'ADDR1_DATA-HOUSE_NUM1' wa_lfa11-house_num1. USING 'ADDR1_DATA-CITY1' wa_lfa11-city1. USING 'ADDR1_DATA-POST_CODE1' wa_lfa11-post_code1. USING 'ADDR1_DATA-POST_CODE2' wa_lfa11-post_code2. USING 'ADDR1_DATA-COUNTRY' wa_lfa11-country. USING 'ADDR1_DATA-PO_BOX'

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

wa_lfa11-country. USING 'ADDR1_DATA-LANGU' wa_lfa11-langu. USING 'SZA1_D0100-TEL_NUMBER' wa_lfa11-tel_number. USING 'SZA1_D0100-SMTP_ADDR' wa_lfa11-smtp_addr. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 1300APPL_SUB_T'. USING 'BDC_SUBSCR' 'SAPLSZA1' &' 0200APPL_SUB'.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0120'. USING 'BDC_CURSOR' 'LFA1-KUNNR'. USING 'BDC_OKCODE' '=VW'. USING 'LFA1-STCD1' wa_lfa11-stcd1. USING 'LFA1-STCEG' wa_lfa11-stceg. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-ST'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-01'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-02'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-03'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-04'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-05'. USING 'BDC_SUBSCR' 'SAPMF02K' &' 1099ARI-06'.

IF it_lfa12 IS NOT INITIAL . LOOP AT it_lfa12 INTO wa_lfa12 WHERE lifnr = wa_lfa11-lifnr. l_v_bvtyp = l_v_bvtyp + 1. l_v_index = l_v_index + 1. PERFORM bdc_dynpro PERFORM bdc_field USING 'SAPMF02K' '0130'. USING 'BDC_CURSOR'

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

'LFBK-BVTYP(02)'. USING 'BDC_OKCODE' '=ENTR'. PERFORM bdc_field USING 'LFA1-DTAWS' wa_lfa11-dtaws. CONCATENATE 'LFBK-BANKS(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field USING l_v_fld_val wa_lfa12-banks. CLEAR : l_v_fld_val. PERFORM bdc_field CONCATENATE 'LFBK-BANKL(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field USING l_v_fld_val wa_lfa12-bankl. CLEAR : l_v_fld_val. CONCATENATE 'LFBK-BANKN(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field USING l_v_fld_val wa_lfa12-bankn. CONCATENATE 'LFBK-KOINH(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field CLEAR : l_v_fld_val. CONCATENATE 'LFBK-BVTYP(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field USING l_v_fld_val l_v_bvtyp. CLEAR : l_v_fld_val. ENDLOOP. CLEAR l_v_index. PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field ENDIF. USING l_v_fld_val wa_lfa12-koinh.

USING 'SAPMF02K' '0130'. USING 'BDC_CURSOR' 'LFBK-BVTYP(02)'. USING 'BDC_OKCODE' '=ENTR'.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0380'. USING 'BDC_CURSOR' 'KNVK-NAMEV(01)'. USING 'BDC_OKCODE' '=VW'.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0210'. USING 'BDC_CURSOR' 'LFB1-AKONT'. USING 'BDC_OKCODE' '=VW'. USING 'LFB1-AKONT' wa_lfa11-akont. USING 'LFB1-ZUAWA' wa_lfa11-zuawa. USING 'LFB1-FDGRV' wa_lfa11-fdgrv.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0215'. USING 'BDC_CURSOR' 'LFB1-ZTERM'. USING 'BDC_OKCODE' '=VW'. USING 'LFB1-ZTERM' wa_lfa11-zterm. USING 'LFB1-REPRF' wa_lfa11-reprf. USING 'LFB1-ZWELS' wa_lfa11-zwels. USING 'LFB1-HBKID' wa_lfa11-hbkid. USING 'SAPMF02K' '0220'. USING 'BDC_CURSOR' 'LFB1-BUSAB'. USING 'BDC_OKCODE' '=VW'.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

IF it_lfa12 IS NOT INITIAL . CLEAR l_v_index. LOOP AT it_lfa12 INTO wa_lfa12 WHERE lifnr = wa_lfa11-lifnr. l_v_index = l_v_index + 1. IF wa_lfa12-witht IS NOT INITIAL OR wa_lfa12-wt_withcd IS NOT INITIAL. PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field USING 'SAPMF02K' '0610'. USING 'BDC_OKCODE' '/00'. USING 'BDC_SUBSCR' 'SAPMFWTV'

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

PERFORM bdc_field

&'0610WT_WITS'. USING 'BDC_CURSOR' 'LFBW-WT_SUBJCT(01)'. USING 'LFB1-QLAND' wa_lfa11-qland.

PERFORM bdc_field

CONCATENATE 'LFBW-WITHT(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field CLEAR : l_v_fld_val. CONCATENATE 'LFBW-WT_WITHCD(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field USING l_v_fld_val wa_lfa12-wt_withcd. CLEAR : l_v_fld_val. CONCATENATE 'LFBW-WT_SUBJCT(' l_v_index ')' INTO l_v_fld_val. PERFORM bdc_field USING l_v_fld_val wa_lfa12-wt_subjct. USING l_v_fld_val wa_lfa12-witht.

CLEAR : l_v_fld_val. ENDIF. ENDLOOP. CLEAR l_v_index. PERFORM bdc_dynpro USING 'SAPMF02K' '0610'. PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field ENDIF. USING 'BDC_OKCODE' '/00'. USING 'BDC_SUBSCR' 'SAPMFWTV' &' 0610WT_WITS'. USING 'BDC_CURSOR' 'LFB1-QLAND'. USING 'LFB1-QLAND' wa_lfa11-qland.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0310'. USING 'BDC_CURSOR' 'LFM1-LEBRE'. USING 'BDC_OKCODE' '=VW'.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'LFM1-WAERS' wa_lfa11-waers. USING 'LFM1-ZTERM' wa_lfa11-zterm1. USING 'LFM1-INCO1' wa_lfa11-inco1. USING 'LFM1-INCO2' wa_lfa11-inco2. USING 'LFM1-WEBRE' wa_lfa11-webre. USING 'LFM1-LEBRE' wa_lfa11-lebre.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'SAPMF02K' '0320'. USING 'BDC_CURSOR' 'WRF02K-GPARN(03)'. USING 'BDC_OKCODE' '=VW'. USING 'WYT3-PARVW(02)' wa_lfa11-parvw. USING 'WRF02K-GPARN(01)' wa_lfa11-gparn1. USING 'WYT3-PARVW(01)' wa_lfa11-parvw1. USING 'WRF02K-GPARN(02)' wa_lfa11-gparn2. USING 'WYT3-PARVW(03)' wa_lfa11-parvw2. USING 'WRF02K-GPARN(03)' wa_lfa11-gparn3. USING 'SAPMF02K' '0320'. USING 'BDC_CURSOR' 'RF02K-LIFNR'. USING 'BDC_OKCODE' '=VW'.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

CALL TRANSACTION 'XK02' USING it_bdcdata MODE l_v_mode UPDATE 'S' MESSAGES INTO it_messtab. READ TABLE it_messtab WITH KEY msgtyp = 'E'. IF sy-subrc = 0 . fv_msg_id = it_messtab-msgid. fv_msg_no = it_messtab-msgnr. fv_msg_var1 = it_messtab-msgv1.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

fv_msg_var2 = it_messtab-msgv2. fv_msg_var3 = it_messtab-msgv3. fv_msg_var4 = it_messtab-msgv4. CALL FUNCTION 'MESSAGE_PREPARE' EXPORTING language = sy-langu msg_id = fv_msg_id msg_no = fv_msg_no msg_var1 = fv_msg_var1 msg_var2 = fv_msg_var2 msg_var3 = fv_msg_var3 msg_var4 = fv_msg_var4 IMPORTING msg_text = fv_msg EXCEPTIONS function_not_completed = 1 message_not_found = 2 OTHERS = 3. ENDIF. READ TABLE it_messtab WITH KEY msgtyp = 'S'. IF sy-subrc = 0 . fv_msg_id = it_messtab-msgid. fv_msg_no = it_messtab-msgnr. fv_msg_var1 = it_messtab-msgv1. fv_msg_var2 = it_messtab-msgv2. fv_msg_var3 = it_messtab-msgv3. fv_msg_var4 = it_messtab-msgv4. CALL FUNCTION 'MESSAGE_PREPARE' EXPORTING language = sy-langu msg_id = fv_msg_id msg_no = fv_msg_no msg_var1 = fv_msg_var1 msg_var2 = fv_msg_var2 msg_var3 = fv_msg_var3 msg_var4 = fv_msg_var4 IMPORTING msg_text = fv_msg EXCEPTIONS function_not_completed = 1 message_not_found = 2 OTHERS = 3. ENDIF. CLEAR it_messtab[]. wa_error-ztext = fv_msg. wa_error-koinh = wa_lfa11-lifnr. APPEND wa_error TO it_error.

* CLEAR: wa_error,it_bdcdata[]. * ENDLOOP. * ENDIF. * ENDIF. * IF pc IS NOT INITIAL. * IF it_lfa14 IS NOT INITIAL. * LOOP AT it_lfa14 INTO wa_lfa14. * * PERFORM bdc_dynpro USING 'SAPMF02K' '0100'. * * PERFORM bdc_field USING 'BDC_CURSOR' * 'USE_ZAV'. * PERFORM bdc_field USING 'BDC_OKCODE' * '/00'. * PERFORM bdc_field USING 'RF02K-LIFNR' * wa_lfa14-lifnr. * PERFORM bdc_field USING 'RF02K-BUKRS' * wa_lfa14-bukrs. * PERFORM bdc_field USING 'RF02K-EKORG' * wa_lfa14-ekorg. ** PERFORM bdc_field USING 'RF02K-D0310' ** 'X'. ** PERFORM bdc_field USING 'WRF02K-D0320' ** 'X'. * PERFORM bdc_field USING 'USE_ZAV' * 'X'. * * * PERFORM bdc_dynpro USING 'SAPMF02K' '0310'. * * PERFORM bdc_field USING 'BDC_CURSOR' * 'LFM1-LEBRE'. * PERFORM bdc_field USING 'BDC_OKCODE' * '=VW'. * PERFORM bdc_field USING 'LFM1-WAERS' * wa_lfa14-waers. * PERFORM bdc_field USING 'LFM1-ZTERM' * wa_lfa14-zterm1. * PERFORM bdc_field USING 'LFM1-INCO1' * wa_lfa14-inco1. * PERFORM bdc_field USING 'LFM1-INCO2' * wa_lfa14-inco2. * PERFORM bdc_field USING 'LFM1-WEBRE' * wa_lfa14-webre. * PERFORM bdc_field USING 'LFM1-LEBRE' * wa_lfa14-lebre. * * * PERFORM bdc_dynpro USING 'SAPMF02K' '0320'.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field PERFORM bdc_field

USING 'BDC_CURSOR' 'WRF02K-GPARN(03)'. USING 'BDC_OKCODE' '=VW'. USING 'WYT3-PARVW(02)' wa_lfa14-parvw. USING 'WRF02K-GPARN(01)' wa_lfa14-gparn1. USING 'WYT3-PARVW(01)' wa_lfa14-parvw1. USING 'WRF02K-GPARN(02)' wa_lfa14-gparn2. USING 'WYT3-PARVW(03)' wa_lfa14-parvw2. USING 'WRF02K-GPARN(03)' wa_lfa14-gparn3. USING 'SAPMF02K' '0320'. USING 'BDC_CURSOR' 'RF02K-LIFNR'. USING 'BDC_OKCODE' '=UPDA'.

PERFORM bdc_dynpro PERFORM bdc_field PERFORM bdc_field

CALL TRANSACTION 'XK01' USING it_bdcdata MODE l_v_mode UPDATE 'S' MESSAGES INTO it_messtab. READ TABLE it_messtab WITH KEY msgtyp = 'E'. IF sy-subrc = 0 . fv_msg_id = it_messtab-msgid. fv_msg_no = it_messtab-msgnr. fv_msg_var1 = it_messtab-msgv1. fv_msg_var2 = it_messtab-msgv2. fv_msg_var3 = it_messtab-msgv3. fv_msg_var4 = it_messtab-msgv4. CALL FUNCTION 'MESSAGE_PREPARE' EXPORTING language = sy-langu msg_id = fv_msg_id msg_no = fv_msg_no msg_var1 = fv_msg_var1 msg_var2 = fv_msg_var2 msg_var3 = fv_msg_var3 msg_var4 = fv_msg_var4 IMPORTING msg_text = fv_msg

* EXCEPTIONS * function_not_completed = 1 * message_not_found = 2 * OTHERS = 3. * ENDIF. * READ TABLE it_messtab WITH KEY msgtyp = 'S'. * IF sy-subrc = 0 . * fv_msg_id = it_messtab-msgid. * fv_msg_no = it_messtab-msgnr. * fv_msg_var1 = it_messtab-msgv1. * fv_msg_var2 = it_messtab-msgv2. * fv_msg_var3 = it_messtab-msgv3. * fv_msg_var4 = it_messtab-msgv4. * * CALL FUNCTION 'MESSAGE_PREPARE' * EXPORTING * language = sy-langu * msg_id = fv_msg_id * msg_no = fv_msg_no * msg_var1 = fv_msg_var1 * msg_var2 = fv_msg_var2 * msg_var3 = fv_msg_var3 * msg_var4 = fv_msg_var4 * IMPORTING * msg_text = fv_msg * EXCEPTIONS * function_not_completed = 1 * message_not_found = 2 * OTHERS = 3. * ENDIF. * CLEAR it_messtab[]. * wa_error-ztext = fv_msg. * wa_error-koinh = wa_lfa14-lifnr. * APPEND wa_error TO it_error. * CLEAR: wa_error,it_bdcdata[]. * ENDLOOP. * ENDIF. * ENDIF. ENDFORM. " CREATE_VENDOR *&---------------------------------------------------------------------* *& Form BDC_DYNPRO *&---------------------------------------------------------------------* FORM bdc_dynpro USING program dynpro. CLEAR it_bdcdata. it_bdcdata-program = program. it_bdcdata-dynpro = dynpro. it_bdcdata-dynbegin = 'X'. APPEND it_bdcdata. ENDFORM. "BDC_DYNPRO

*&---------------------------------------------------------------------* *& Form BDC_FIELD *&---------------------------------------------------------------------* FORM bdc_field USING fnam fval. IF fval <> space. CLEAR it_bdcdata. it_bdcdata-fnam = fnam. it_bdcdata-fval = fval. APPEND it_bdcdata. ENDIF. ENDFORM. "BDC_FIELD *&---------------------------------------------------------------------* *& Form DISPLAY_MSG *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM display_msg . LOOP AT it_error INTO wa_error. AT FIRST. WRITE:/03 text-008 COLOR 7,30 text-007 COLOR 7. SKIP 1. ENDAT. WRITE:/03 wa_error-koinh COLOR 5,30 wa_error-ztext COLOR 5. CLEAR: wa_error. ENDLOOP. ENDFORM. " DISPLAY_MSG

ZMMC_MATMAST_001
*&---------------------------------------------------------------------* *& Report ZMMC_MATMAST_001 *& ************************************************************************ *Program ID : ZMMC_MATMAST_001 *Date : 17.04.2013 *Author : TCS ABAP *Title : Material master data upload (Mat. Type - HALB,SCON) *Function : Material master data upload *Transport Request : DREK900239 *&---------------------------------------------------------------------* REPORT ZMMC_MATMAST_001 no standard page heading line-size 255.

INCLUDE : zmmc_MATMAST_top , zmmc_MATMAST_scr ,

zmmc_MATMAST_sub , zmmc_MATMAST_evn .

Include

ZMMC_MATMAST_TOP

*&---------------------------------------------------------------------* *& Include ZMMC_MATMAST_TOP *&---------------------------------------------------------------------* ************************************************************************ *Program ID : ZMMC_MATMAST_001 *Date : 17.04.2013 *Author : TCS ABAP *Title : Material master data upload (Mat. Type - HALB,SCON) *Function : Material master data upload *Transport Request : DREK900239 *&---------------------------------------------------------------------* types : begin of ty_mate, matnr type matnr, MTART type mtart, WERKS TYPE WERKS_d, lgort type lgort_d, maktx type maktx, meins(5) type c, matkl type matkl, dismm type dismm, dispo type dispo, disls type disls, fhori type fhori, MTVFP type MTVFP, bklas type bklas, VPRSV type VPRSV, * verpr(11) type c, stprs(11) type c, end of ty_mate.

" Material number

" MRP Type, MRP1 " MRP Controller, MRP1 "Lot size , MRP1 "Scheduling Margin Key , mrp2 " avail check " Valuation Class, Acct1 "price control "Moving Average Price,Acct1 "Standard price,Acct1

data : gt_final type TABLE OF ty_mate INITIAL SIZE 0, gs_final type ty_mate, gt_bdcdata type TABLE OF bdcdata INITIAL SIZE 0, gs_bdcdata type bdcdata.

*&---------------------------------------------------------------------* *& Include ZMMC_MATMAST_SCR *&---------------------------------------------------------------------* ************************************************************************ *Program ID : ZMMC_MATMAST_001 *Date : 17.04.2013 *Author : TCS ABAP

*Title : Material master data upload (Mat. Type - HALB,SCON) *Function : Material master data upload *Transport Request : DREK900239 *&---------------------------------------------------------------------* * selection screen selection-screen : parameters : selection-screen : Include for input file begin of block b1 with frame title text-001. p_file type rlgrap-filename obligatory. end of block b1.

ZMMC_MATMAST_SUB

*&---------------------------------------------------------------------* *& Include ZMMC_MATMAST_SUB *&---------------------------------------------------------------------* ************************************************************************ *Program ID : ZMMC_MATMAST_001 *Date : 17.04.2013 *Author : TCS ABAP *Title : Material master data upload (Mat. Type - HALB,SCON) *Function : Material master data upload *Transport Request : DREK900239 *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form SUB_FILE_DIALOG *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * <--P_P_FILE text *----------------------------------------------------------------------* FORM sub_file_dialog CHANGING iv_file type localfile. data : lt_filetab ls_filetab lv_rc lv_title type type type type filetable , " File tab file_table , " File i , " Returncode string .

lv_title = 'Schedule agreement upload file'(002). call method cl_gui_frontend_services=>file_open_dialog exporting window_title = lv_title changing file_table = lt_filetab rc = lv_rc exceptions file_open_dialog_failed = 1 cntl_error = 2 error_no_gui = 3 not_supported_by_gui = 4

others = 5. if sy-subrc = 0. read table lt_filetab into ls_filetab index 1 . iv_file = ls_filetab-filename . endif. ENDFORM. " SUB_FILE_DIALOG *&---------------------------------------------------------------------* *& Form SUB_VALIDATE_FILEEXT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_P_FILE text *----------------------------------------------------------------------* FORM sub_validate_fileext USING iv_file type localfile. data : lv_slen type i , lv_vlen type i , lv_file type filename . lv_file = translate lv_slen = lv_vlen = iv_file lv_file strlen( lv_slen . to upper case . lv_file ) . - 3 . 'XLS'.

if lv_file+lv_vlen(3) = clear : lv_vlen . else . lv_vlen = lv_slen - 4 if lv_file+lv_vlen(4) clear : lv_vlen . endif. endif. if lv_vlen = 0 . else. message text-e01 type leave list-processing leave to screen 1000. endif.

. = 'XLSX'.

'S' display like 'E' . .

ENDFORM. " SUB_VALIDATE_FILEEXT *&---------------------------------------------------------------------* *& Form SUB_GETDATA_FILE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_P_FILE text *----------------------------------------------------------------------* FORM sub_getdata_file USING iv_file type localfile.

data : lv_rdat type truxs_t_text_data . call function 'TEXT_CONVERT_XLS_TO_SAP' exporting i_line_header = 'X' i_tab_raw_data = lv_rdat i_filename = iv_file tables i_tab_converted_data = gt_final exceptions conversion_failed = 1 others = 2. if sy-subrc <> 0. message text-e06 type 'S' display like 'E' . leave list-processing . exit. endif. ENDFORM. " SUB_GETDATA_FILE *&---------------------------------------------------------------------* *& Form SUB_MOVE_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM sub_move_data . CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = 'SESSION' KEEP = 'X' USER = SY-UNAME PROG = SY-CPROG EXCEPTIONS CLIENT_INVALID = 1 DESTINATION_INVALID = 2 GROUP_INVALID = 3 GROUP_IS_LOCKED = 4 HOLDDATE_INVALID = 5 INTERNAL_ERROR = 6 QUEUE_ERROR = 7 RUNNING = 8 SYSTEM_LOCK_ERROR = 9 USER_INVALID = 10 OTHERS = 11.

loop at gt_final into gs_final. clear : gs_bdcdata. refresh : gt_bdcdata. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field * gs_final-matnr. perform bdc_field perform bdc_field * gs_final-mtart. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_field using 'SAPLMGMM' '0060'. using 'BDC_CURSOR' 'RMMG1-MTART'. using 'BDC_OKCODE' '=ENTR'. using 'RMMG1-MATNR' '869032'. using 'RMMG1-MBRSH' 'M'. using 'RMMG1-MTART' 'HALB'. using 'SAPLMGMM' '0070'. using 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(15)'. using 'BDC_OKCODE' '=P+'. using 'MSICHTAUSW-KZSEL(01)' 'X'. using 'MSICHTAUSW-KZSEL(02)' 'X'. using 'MSICHTAUSW-KZSEL(09)' 'X'. using 'MSICHTAUSW-KZSEL(12)' 'X'. using 'MSICHTAUSW-KZSEL(13)' 'X'. using 'MSICHTAUSW-KZSEL(14)' 'X'. using 'MSICHTAUSW-KZSEL(15)' 'X'. using 'SAPLMGMM' '0070'. using 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(09)'. using 'BDC_OKCODE' '=ENTR'. using 'MSICHTAUSW-KZSEL(01)' 'X'. using 'MSICHTAUSW-KZSEL(02)' 'X'. using 'MSICHTAUSW-KZSEL(05)' 'X'.

perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-werks. perform bdc_field gs_final-lgort. perform bdc_dynpro perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field perform bdc_field gs_final-meins. perform bdc_field gs_final-matkl. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field perform bdc_field perform bdc_dynpro perform bdc_field

using 'MSICHTAUSW-KZSEL(06)' 'X'. using 'MSICHTAUSW-KZSEL(07)' 'X'. using 'MSICHTAUSW-KZSEL(08)' 'X'. using 'MSICHTAUSW-KZSEL(09)' 'X'. using 'SAPLMGMM' '0080'. using 'BDC_CURSOR' 'RMMG1-LGORT'. using 'BDC_OKCODE' '=ENTR'. using 'RMMG1-WERKS' using 'RMMG1-LGORT' using 'SAPLMGMM' '4004'. using 'BDC_OKCODE' '/00'. using 'MAKT-MAKTX' using 'BDC_CURSOR' 'MARA-MATKL'. using 'MARA-MEINS' using 'MARA-MATKL' using 'SAPLMGMM' '4004'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'MARA-MEINS' 'NOS'. using 'MARA-MATKL' '01'. using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'.

perform bdc_field gs_final-maktx. perform bdc_field gs_final-meins. perform bdc_field gs_final-dismm. perform bdc_field gs_final-dispo. perform bdc_field perform bdc_field gs_final-disls. perform bdc_dynpro perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field perform bdc_field perform bdc_field * gs_final-fhori. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_field gs_final-mtvfp. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx.

using 'MAKT-MAKTX' using 'MARA-MEINS' using 'MARC-DISMM' using 'MARC-DISPO' using 'BDC_CURSOR' 'MARC-DISLS'. using 'MARC-DISLS' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'MAKT-MAKTX' using 'MARC-BESKZ' 'X'. using 'BDC_CURSOR' 'MARC-FHORI'. using 'MARC-FHORI' '000'. using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'MAKT-MAKTX' 'ENGINE UCE ES 500-NT51 MATT BLACK PC'. using 'MARC-PERKZ' 'M'. using 'BDC_CURSOR' 'MARC-MTVFP'. using 'MARC-MTVFP' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX'

perform bdc_field gs_final-meins. perform bdc_field perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field gs_final-meins. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field perform bdc_field perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field gs_final-meins. perform bdc_dynpro perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field

using 'MARA-MEINS' using 'MARA-IPRKZ' 'D'. using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '=PB01'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'MARA-MEINS' using 'SAPLQPLS' '0100'. using 'BDC_CURSOR' 'RMQAM-ARGUMENT'. using 'BDC_OKCODE' '=NEU'. using 'SAPLQPLS' '0100'. using 'BDC_CURSOR' 'RMQAM-AKTIV(01)'. using 'BDC_OKCODE' '=WEIT'. using 'RMQAM-ART(01)' '01'. using 'RMQAM-AKTIV(01)' 'X'. using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'MARA-MEINS' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'MAKT-MAKTX' using 'MARA-MEINS'

gs_final-meins. perform bdc_field perform bdc_field gs_final-bklas. perform bdc_field gs_final-vprsv. perform bdc_field perform bdc_field gs_final-stprs. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field gs_final-meins. perform bdc_field perform bdc_field perform bdc_field perform bdc_dynpro perform bdc_field perform bdc_field perform bdc_field gs_final-maktx. perform bdc_field gs_final-bklas. perform bdc_field gs_final-vprsv. perform bdc_field perform bdc_field gs_final-stprs. perform bdc_dynpro

using 'BDC_CURSOR' 'MBEW-STPRS'. using 'MBEW-BKLAS' using 'MBEW-VPRSV' using 'MBEW-PEINH' '1'. using 'MBEW-STPRS' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'MARA-MEINS' using 'MBEW-EKALR' 'X'. using 'MARC-AWSLS' '000001'. using 'MARC-LOSGR' '1'. using 'SAPLMGMM' '4000'. using 'BDC_OKCODE' '/00'. using 'BDC_CURSOR' 'MAKT-MAKTX'. using 'MAKT-MAKTX' using 'MBEW-BKLAS' using 'MBEW-VPRSV' using 'MBEW-PEINH' '1'. using 'MBEW-STPRS' using 'SAPLSPO1' '0300'.

CALL FUNCTION 'BDC_INSERT' EXPORTING TCODE = 'MM01' TABLES dynprotab = GT_BDCDATA EXCEPTIONS INTERNAL_ERROR = 1 NOT_OPEN = 2 QUEUE_ERROR = 3 TCODE_INVALID = 4 PRINTING_INVALID = 5 POSTING_INVALID = 6 OTHERS = 7 .

ENDLOOP. CALL FUNCTION 'BDC_CLOSE_GROUP' EXCEPTIONS NOT_OPEN = 1 QUEUE_ERROR = 2 OTHERS = 3 . ENDFORM. " SUB_MOVE_DATA

Include

ZMMC_MATMAST_EVN

*&---------------------------------------------------------------------* *& Include ZMMC_MATMAST_EVN *&---------------------------------------------------------------------* ************************************************************************ *Program ID : ZMMC_MATMAST_001 *Date : 17.04.2013 *Author : TCS ABAP *Title : Material master data upload (Mat. Type - HALB,SCON) *Function : Material master data upload *Transport Request : DREK900239 *&---------------------------------------------------------------------* * selection screen validation at selection-screen on value-request for p_file . * select the local file perform sub_file_dialog changing p_file . at selection-screen . perform sub_validate_fileext using p_file .

start-of-selection. * upload the local file to internal table perform sub_getdata_file using p_file . * move data to header and item perform sub_move_data.

*----------------------------------------------------------------------* * Start new screen * *----------------------------------------------------------------------* FORM BDC_DYNPRO USING PROGRAM DYNPRO. CLEAR gs_BDCDATA. gs_BDCDATA-PROGRAM = PROGRAM. gs_BDCDATA-DYNPRO = DYNPRO. gs_BDCDATA-DYNBEGIN = 'X'. APPEND gs_BDCDATA to gt_bdcdata.. ENDFORM. *----------------------------------------------------------------------* * Insert field * *----------------------------------------------------------------------* FORM BDC_FIELD USING FNAM FVAL. IF FVAL is NOT INITIAL. CLEAR gs_BDCDATA. gs_BDCDATA-FNAM = FNAM. gs_BDCDATA-FVAL = FVAL. APPEND gs_BDCDATA to gt_bdcdata. ENDIF. ENDFORM.

Anda mungkin juga menyukai