You are on page 1of 8

*-------------------data declaration for bdc DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

* messages of call transaction DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE. * error session opened (' ' or 'X') DATA: e_group_opened. * message texts DATA: ctumode LIKE ctu_params-dismode VALUE 'N'. "A: show all dynpros "E: show dynpro on error only "N: do not display dynpro DATA : cupdate LIKE ctu_params-updmode VALUE 'L'. "S: synchronously "A: asynchronously "L: local *---------------bdc program FORM createpo TABLES l1ekpo2 litcomp USING l1ekko2 TYPE ekko CHANGING ui_po_no TYPE bapimepoheader-po_number . DATA : wxekpo2 TYPE ekpo , wxcomp TYPE bapimepocomponent . DATA : ut_comp TYPE STANDARD TABLE OF bapimepocomponent INITIAL SIZE 0 WITH HEADER LINE . DATA : lu_bscrf(20) TYPE c . DATA : lu_idx(2) TYPE n . DATA : lu_idx1(2) TYPE n . DATA : g_tabix(2) TYPE n VALUE 1. DATA : lu_menge(10) TYPE c , lu_netpr(10) TYPE c . DATA : lu_dat(8) TYPE c . *---Copy ITable ut_comp[] = litcomp[] . *----BDC Screens PERFORM bdc_dynpro USING 'SAPMM06E' '0100'. PERFORM bdc_field USING 'BDC_CURSOR' 'RM06E-LGORT'. PERFORM bdc_field USING 'BDC_OKCODE' '/00'. PERFORM bdc_field USING 'EKKO-LIFNR' l1ekko2-lifnr . PERFORM bdc_field USING 'RM06E-BSART'

'ZSC'. CLEAR lu_dat . CONCATENATE l1ekko2-bedat+6(2) l1ekko2-bedat+4(2) l1ekko2-bedat+0(4) INTO lu_dat . PERFORM bdc_field USING 'RM06E-BEDAT' lu_dat . PERFORM bdc_field USING 'RM06E-BSTNR' ''. PERFORM bdc_field USING 'EKKO-EKORG' l1ekko2-ekorg. PERFORM bdc_field USING 'EKKO-EKGRP' l1ekko2-ekgrp. PERFORM bdc_field USING 'RM06E-EPSTP' 'L'. CLEAR lu_dat . CONCATENATE l1ekko2-eq_eindt+6(2) l1ekko2-eq_eindt+4(2) l1ekko2-eq_eindt+0(4) INTO lu_dat . PERFORM bdc_field USING 'RM06E-EEIND' lu_dat . PERFORM bdc_field USING 'RM06E-LPEIN' 'T'. PERFORM bdc_field USING 'RM06E-WERKS' '1002'. PERFORM bdc_field USING 'RM06E-LGORT' 'RK02'. PERFORM bdc_dynpro USING 'SAPMM06E' '0120'. * PERFORM bdc_field USING 'BDC_OKCODE' "ADDED * '/00'. "ADDED LOOP AT l1ekpo2 INTO wxekpo2 . lu_idx = sy-tabix . * PERFORM bdc_dynpro USING 'SAPMM06E' '0120'. "ADDED CLEAR lu_bscrf . CONCATENATE 'EKPO-NETPR' '(' lu_idx ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING 'BDC_CURSOR' lu_bscrf . PERFORM bdc_field USING 'BDC_OKCODE' '/00'. ********EXTRA was ADDED FOR BOM MATERIAL*********** * PERFORM bdc_field USING 'BDC_OKCODE' * '=LB'. * CLEAR lu_bscrf . * CONCATENATE 'RM06E-TCSELFLAG' '(' lu_idx ')' * INTO lu_bscrf .

* CONDENSE lu_bscrf . * * perform bdc_field using lu_bscrf * 'X'. **********END OF EXTRA ADDED******************* CLEAR lu_bscrf . CONCATENATE 'EKPO-EMATN' '(' lu_idx ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING lu_bscrf wxekpo2-ematn . CLEAR lu_bscrf . CONCATENATE 'EKPO-MENGE' '(' lu_idx ')' INTO lu_bscrf . CONDENSE lu_bscrf . CLEAR lu_menge . lu_menge = wxekpo2-menge . CONDENSE lu_menge . PERFORM bdc_field USING lu_bscrf lu_menge . CLEAR lu_bscrf . CONCATENATE 'EKPO-MEINS' '(' lu_idx ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING lu_bscrf 'KG'. CLEAR lu_bscrf . CONCATENATE 'EKPO-NETPR' '(' lu_idx ')' INTO lu_bscrf . CONDENSE lu_bscrf . CLEAR lu_netpr . lu_netpr = wxekpo2-netpr . CONDENSE lu_netpr . PERFORM bdc_field USING lu_bscrf lu_netpr. *********added for lot*********** CLEAR lu_bscrf . CONCATENATE 'RM06E-CHARG' '(' lu_idx ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING lu_bscrf wxekpo2-mfrnr.

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

PERFORM bdc_dynpro USING 'SAPLM61Q' '0110'. PERFORM bdc_field USING 'BDC_OKCODE' '/00'. LOOP AT ut_comp INTO wxcomp WHERE po_item = wxekpo2-ebelp . lu_idx1 = g_tabix . *PERFORM bdc_dynpro USING 'SAPLM61Q' '0110'. "added

CLEAR lu_bscrf . CONCATENATE 'MDPM-WERKS' '(' lu_idx1 ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING 'BDC_CURSOR' lu_bscrf. *********EXTRA ADDED FOR BOM*********** *CLEAR lu_bscrf . * CONCATENATE 'MDPM-MATNR' '(' lu_idx1 ')' * INTO lu_bscrf . * CONDENSE lu_bscrf . * perform bdc_field using 'BDC_CURSOR' * lu_bscrf. ************************************* CLEAR lu_bscrf . CONCATENATE 'MDPM-MATNR' '(' lu_idx1 ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING lu_bscrf wxcomp-material. CLEAR lu_bscrf . CONCATENATE 'MDPM-ERFMG' '(' lu_idx1 ')' INTO lu_bscrf . CONDENSE lu_bscrf . CLEAR lu_menge . lu_menge = wxcomp-entry_quantity . CONDENSE lu_menge .

PERFORM bdc_field USING lu_bscrf lu_menge. CLEAR lu_bscrf . CONCATENATE 'MDPM-ERFME' '(' lu_idx1 ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING lu_bscrf wxcomp-entry_uom. CLEAR lu_bscrf . CONCATENATE 'MDPM-WERKS' '(' lu_idx1 ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING lu_bscrf wxcomp-plant. PERFORM bdc_dynpro USING 'SAPLM61Q' '0110'. PERFORM bdc_field USING 'BDC_OKCODE' "COMMENTED '/00'. "COMENTED *perform bdc_field using 'BDC_CURSOR' g_tabix = g_tabix + 1 . ENDLOOP . " 'MDPM-MATNR(02)'. PERFORM bdc_dynpro USING 'SAPLM61Q' '0110'. PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'. * g_tabix = g_tabix + 1 . *endloop. PERFORM bdc_dynpro USING 'SAPMM06E' '0120'. "COMMENTED * PERFORM bdc_field USING 'BDC_CURSOR' * 'RM06E-EBELP'. * PERFORM bdc_field USING 'BDC_OKCODE' * '=BACK'. * PERFORM bdc_field USING 'RM06E-EBELP' * '10'. PERFORM bdc_field USING 'BDC_OKCODE' "COMMENTED '/00'. "COMENTED ********ADDED TO GET INCO TERM*************** PERFORM bdc_field USING 'BDC_OKCODE' '=DETA'. CLEAR lu_bscrf . CONCATENATE 'RM06E-TCSELFLAG' '(' lu_idx ')' INTO lu_bscrf . CONDENSE lu_bscrf . PERFORM bdc_field USING lu_bscrf 'X'.

PERFORM bdc_dynpro USING 'SAPMM06E' '0111'. PERFORM bdc_field USING 'EKPO-UNTTO' wxekpo2-agmem. PERFORM bdc_field USING 'EKPO-UEBTO' wxekpo2-sikgr. ********************************************* g_tabix = 1 . . ENDLOOP . ********COMMENTED FOR INCOTERM *********** * PERFORM bdc_dynpro USING 'SAPMM06E' '0120'. ** PERFORM bdc_field USING 'BDC_OKCODE' "COMMENTED ** '/00'. * PERFORM bdc_field USING 'BDC_OKCODE' "COMMENTED * '=BACK'. ********************************************** PERFORM bdc_field USING 'BDC_OKCODE' '=BU'. ********* PERFORM bdc_dynpro USING 'SAPLSPO1' '0100'. PERFORM bdc_field USING 'BDC_OKCODE' '=YES'. * endloop . PERFORM bdc_transaction USING 'ME21'. READ TABLE messtab WITH KEY msgtyp = 'S' msgspra = sy-langu msgid = '06' msgnr = '017' . IF sy-subrc = 0 . ui_po_no = messtab-msgv2 . ENDIF . ENDFORM. "CREATEPO *----------------------------------------------------------------------* * Start new screen * *----------------------------------------------------------------------* FORM bdc_dynpro USING program dynpro. CLEAR bdcdata. bdcdata-program = program. bdcdata-dynpro = dynpro. bdcdata-dynbegin = 'X'. APPEND bdcdata. ENDFORM. "BDC_DYNPRO *----------------------------------------------------------------------* * Insert field * *----------------------------------------------------------------------*

FORM bdc_field USING fnam fval. * IF FVAL <> NODATA. CLEAR bdcdata. bdcdata-fnam = fnam. bdcdata-fval = fval. APPEND bdcdata. * ENDIF. ENDFORM. "BDC_FIELD *----------------------------------------------------------------------* * bdc tRANSACTION * *----------------------------------------------------------------------* FORM bdc_transaction USING tcode. DATA: l_mstring(480). DATA: l_subrc LIKE sy-subrc. ** call transaction using REFRESH messtab. CALL TRANSACTION tcode USING bdcdata MODE ctumode UPDATE cupdate MESSAGES INTO messtab. l_subrc = sy-subrc. * WRITE: / 'CALL_TRANSACTION', * tcode, * 'returncode:'(i05), * l_subrc, * 'RECORD:', * sy-index. LOOP AT messtab. SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra AND arbgb = messtab-msgid AND msgnr = messtab-msgnr. IF sy-subrc = 0. l_mstring = t100-text. IF l_mstring CS '&1'. REPLACE '&1' WITH messtab-msgv1 INTO l_mstring. REPLACE '&2' WITH messtab-msgv2 INTO l_mstring. REPLACE '&3' WITH messtab-msgv3 INTO l_mstring. REPLACE '&4' WITH messtab-msgv4 INTO l_mstring. ELSE. REPLACE '&' WITH messtab-msgv1 INTO l_mstring. REPLACE '&' WITH messtab-msgv2 INTO l_mstring. REPLACE '&' WITH messtab-msgv3 INTO l_mstring. REPLACE '&' WITH messtab-msgv4 INTO l_mstring. ENDIF. CONDENSE l_mstring.

WRITE: / messtab-msgtyp, l_mstring(250). ELSE. * WRITE: / messtab. ENDIF. ENDLOOP. * ** Erzeugen fehlermappe ************************************************ REFRESH bdcdata. ENDFORM. "BDC_TRANSACTION

You might also like