在BAPI返回成功后调用如下BDC代码:
DATA: ls_t001k TYPE t001k. DATA: l_peinh TYPE ckmlpr-peinh, l_msg(220), l_mode TYPE c VALUE 'N'. * SELECT SINGLE peinh * INTO l_peinh * FROM ckmlhd JOIN ckmlpr ON ckmlhd~kalnr = ckmlpr~kalnr * WHERE matnr = ps_head_in-matnr * AND bwkey = ps_head_in-bwkey * AND curtp = '30'. SELECT SINGLE * INTO ls_t001k FROM t001k WHERE bwkey = ps_head_in-werks. REFRESH bdcdata[] . CLEAR bdcdata . CLEAR: messtab,messtab[],l_msg. PERFORM bdc_dynpro USING 'SAPRCKM_MR21' '0201'. PERFORM bdc_field USING 'MR21HEAD-BUDAT' sy-datum. PERFORM bdc_field USING 'MR21HEAD-BUKRS' ls_t001k-bukrs. PERFORM bdc_field USING 'MR21HEAD-WERKS' ps_head_in-werks. PERFORM bdc_field USING 'BDC_OKCODE' '=ENTR'. PERFORM bdc_dynpro USING 'SAPRCKM_MR21' '0201'. PERFORM bdc_field USING 'CKI_MR21_0250-MATNR(01)' ps_head_in-matnr. PERFORM bdc_field USING 'BDC_OKCODE' '=TAB2'. PERFORM bdc_dynpro USING 'SAPRCKM_MR21' '0201'. PERFORM bdc_field USING 'CKI_MR21_0250-NEWPEINH(01)' ps_head_in-peinh. PERFORM bdc_field USING 'BDC_OKCODE' 'ENTR'. PERFORM bdc_dynpro USING 'SAPRCKM_MR21' '0201'. PERFORM bdc_field USING 'BDC_OKCODE' '=SAVE'. IF g_option-dismode EQ space. g_option-dismode = l_mode. ENDIF. g_option-updmode = 'S'. g_option-racommit = 'X'. g_option-cattmode = ''. * g_option-nobinpt = 'X'. CALL TRANSACTION 'MR21' USING bdcdata OPTIONS FROM g_option MESSAGES INTO messtab. LOOP AT messtab WHERE msgid = 'CKPRCH' AND ( ( msgtyp = 'S' AND msgnr = '019' ) OR ( msgtyp = 'I' AND msgnr = '046' ) ). ENDLOOP. IF sy-subrc = 0. p_type = 'S'. p_msg = '集团货币单位修改成功!'. ELSE. LOOP AT messtab WHERE msgtyp CA 'EAX'. CALL FUNCTION 'MESSAGE_TEXT_BUILD' EXPORTING msgid = messtab-msgid msgnr = messtab-msgnr msgv1 = messtab-msgv1 msgv2 = messtab-msgv2 msgv3 = messtab-msgv3 msgv4 = messtab-msgv4 IMPORTING message_text_output = l_msg. IF l_msg IS INITIAL. p_msg = l_msg. ELSE. p_msg = p_msg && ';' && l_msg. ENDIF. ENDLOOP. p_type = 'E'. p_msg = '集团货币单位修改失败:' && p_msg. ENDIF. *&---------------------------------------------------------------------* *& Form BDC_DYNPRO *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->PROGRAM text * -->DYNPRO text *----------------------------------------------------------------------* FORM bdc_dynpro USING program dynpro. CLEAR bdcdata. bdcdata-program = program. bdcdata-dynpro = dynpro. bdcdata-dynbegin = 'X'. APPEND bdcdata. ENDFORM. "BDC_DYNPRO *&---------------------------------------------------------------------* *& Form BDC_FIELD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->FNAM text * -->FVAL text *----------------------------------------------------------------------* FORM bdc_field USING fnam fval. CLEAR bdcdata. bdcdata-fnam = fnam. bdcdata-fval = fval. APPEND bdcdata. ENDFORM.
上一篇: smartforms横向打印设置...