bdc程序实例 联系客服

发布时间 : 星期四 文章bdc程序实例更新完毕开始阅读92bdb3365a8102d276a22fe5

PERFORM frm_bdcfield USING 'BDC_OKCODE' '/00'.

PERFORM frm_bdcfield USING 'ACGL_ITEM-HKONT(01)' it_zmm_sccl-saknr.

IF l_wrbtr > l_jea.

PERFORM frm_bdcfield USING 'ACGL_ITEM-SHKZG(01)' 'H'. ELSE.

PERFORM frm_bdcfield USING 'ACGL_ITEM-SHKZG(01)' 'S'. ENDIF.

l_chae = ABS( l_wrbtr - l_jea ). l_chae2 = l_chae. CONDENSE l_chae2.

PERFORM frm_bdcfield USING 'ACGL_ITEM-WRBTR(01)' l_chae2. CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING

input = it_ekkn-ps_psp_pnr IMPORTING

output = l_wbs.

* IF l_wbsnet = ''.

PERFORM frm_bdcfield USING 'ACGL_ITEM-PROJK(01)' l_wbs. * ELSE.

* PERFORM frm_bdcfield USING 'ACGL_ITEM-AUFNR(01)' it_ekkn-nplnr.

* ENDIF. ENDIF. ENDIF.

IF l_wrbtr <> l_jea AND it_zmm_sccl-zirtab = '3'. PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'.

PERFORM frm_bdcfield USING 'BDC_OKCODE' '=ITEMS_MAT'.

PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '/00'.

PERFORM frm_bdcfield USING 'CKI_MR22_0250-MATNR(01)' it_ekpo-matnr.

PERFORM frm_bdcfield USING 'CKI_MR22_0250-BWKEY(01)' it_ekpo-werks.

IF l_wrbtr > l_jea.

PERFORM frm_bdcfield USING 'CKI_MR22_0250-SHKZG(01)' 'H'. ELSE.

PERFORM frm_bdcfield USING 'CKI_MR22_0250-SHKZG(01)' 'S'. ENDIF.

l_chae = ABS( l_wrbtr - l_jea ). l_chae2 = l_chae. CONDENSE l_chae2.

PERFORM frm_bdcfield USING 'CKI_MR22_0250-ZUUMB(01)' l_chae2.

PERFORM frm_bdcfield USING 'CKI_MR22_0250-MENGE(01)' '1'. ENDIF.

PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '=PARK'. CALL TRANSACTION 'MIR7' USING it_bdcdata MODE v_mode UPDATE 'S'

MESSAGES INTO it_bdcmsg.

READ TABLE it_bdcmsg WITH KEY msgid = 'M8' msgnr = '388'. IF sy-subrc = 0.

wa_zmm_fpxx1-yzpznd = sy-datum+0(4). wa_zmm_fpxx1-fpyzpzh = it_bdcmsg-msgv1. wa_zmm_fpxx1-fpyzrq = sy-datum.

MODIFY it_zmm_fpxx FROM wa_zmm_fpxx1 TRANSPORTING yzpznd fpyzpzh fpyzrq

WHERE cgddh = wa_zmm_fpxx-cgddh AND fpyszt = '1' AND fpyzpzh = ''.

CLEAR wa_zmm_fpxx1.

UPDATE zmm_fpxx SET fpyzpzh = it_bdcmsg-msgv1 yzpznd = sy-datum+0(4) fpyzrq = sy-datum

WHERE cgddh = wa_zmm_fpxx-cgddh AND fpyszt = '1' AND fpyzpzh = ''. ELSE.

REFRESH: it_bdcdata, it_bdcmsg. CLEAR: it_zmm_sccl. CLEAR: l_wbsnet.

READ TABLE it_zmm_sccl WITH KEY prart = wa_zmm_fpxx-prart anlzu = wa_zmm_fpxx-anlzu. IF sy-subrc <> 0.

READ TABLE it_zmm_sccl WITH KEY prart = wa_zmm_fpxx-prart anlzu = ''. ELSE.

l_wbsnet = 'X'. ENDIF.

CLEAR: it_ekko.

READ TABLE it_ekko WITH KEY ebeln = wa_zmm_fpxx-cgddh. CLEAR: it_ekkn.

READ TABLE it_ekkn WITH KEY ebeln = wa_zmm_fpxx-cgddh.

PERFORM frm_bdcdynpro USING 'SAPLACHD' '1000'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '=ENTR'. PERFORM frm_bdcfield USING 'BKPF-BUKRS' '0600'. PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '/00'. PERFORM frm_bdcfield USING 'INVFO-BLDAT' l_char. l_fpzs = l_num + 2. CONDENSE l_fpzs.

PERFORM frm_bdcfield USING 'INVFO-XBLNR' l_fpzs. PERFORM frm_bdcfield USING 'INVFO-BUDAT' l_char. l_fpje = l_hsje. CONDENSE l_fpje.

PERFORM frm_bdcfield USING 'INVFO-WRBTR' l_fpje. l_fpse = l_sea. CONDENSE l_fpse.

PERFORM frm_bdcfield USING 'INVFO-WMWST' l_fpse. CLEAR: it_ekpo.

READ TABLE it_ekpo WITH KEY ebeln = wa_zmm_fpxx-cgddh. PERFORM frm_bdcfield USING 'INVFO-MWSKZ' it_zmm_sccl-mwskz. PERFORM frm_bdcfield USING 'RM08M-EBELN' wa_zmm_fpxx-cgddh. *

PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'.

PERFORM frm_bdcfield USING 'BDC_OKCODE' '=HEADER_PAY'. *

PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '/00'. PERFORM frm_bdcfield USING 'INVFO-ZFBDT' l_char. PERFORM frm_bdcfield USING 'INVFO-ZLSCH' 'A'. CLEAR: it_gys.

READ TABLE it_gys WITH KEY ebeln = wa_zmm_fpxx-cgddh. READ TABLE it_ekbe2 INTO wa_ekbe2_1 WITH KEY ebeln = wa_zmm_fpxx-cgddh

vgabe = '1'. READ TABLE it_ekbe2 INTO wa_ekbe2_2 WITH KEY ebeln = wa_zmm_fpxx-cgddh

vgabe = '2'. l_wrbtr = wa_ekbe2_1-wrbtr - wa_ekbe2_2-wrbtr. IF l_wrbtr <> l_jea AND it_zmm_sccl-zirtab = '1'. IF l_wrbtr > l_jea.

l_chae = l_wrbtr - l_jea.

IF it_ekko-bsart = 'ZM02'. l_jine = l_chae. ELSE.

l_jine = it_ekpo-netwr - l_chae. ENDIF. ELSE.

IF l_wrbtr < l_jea.

l_chae = l_jea - l_wrbtr. IF it_ekko-bsart = 'ZM02'. l_jine = l_chae. ELSE.

l_jine = it_ekpo-netwr + l_chae. ENDIF. ELSE.

l_jine = l_jea. ENDIF. ENDIF.

CONDENSE l_jine. CLEAR: lt_ebeln.

READ TABLE lt_ebeln WITH KEY ebeln = wa_zmm_fpxx-cgddh. IF sy-subrc <> 0.

IF it_ekko-bsart = 'ZM02'.

PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '=KO001'.

PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6410'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '/EBACK'. PERFORM frm_bdcfield USING 'DRSEG_CO-WRBTR(01)' l_jine.

ELSE.

PERFORM frm_bdcfield USING 'DRSEG-WRBTR(01)' l_jine. ENDIF. ELSE.

lt_ebeln-num = lt_ebeln-num + 1. IF it_ekko-bsart = 'ZM02'.

CONCATENATE '=KO0' lt_ebeln-num INTO l_okcode. PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6000'. PERFORM frm_bdcfield USING 'BDC_OKCODE' l_okcode.

PERFORM frm_bdcdynpro USING 'SAPLMR1M' '6410'. PERFORM frm_bdcfield USING 'BDC_OKCODE' '/EBACK'. PERFORM frm_bdcfield USING 'DRSEG_CO-WRBTR(01)' l_jine.

ELSE.