FUNCTION zpp_fm_mfbf.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" REFERENCE(IN_WERKS) TYPE WERKS_D
*" REFERENCE(IN_BKTXT) TYPE BKTXT
*" REFERENCE(IN_BLDAT) TYPE BLDAT
*" REFERENCE(IN_BUDAT) TYPE BUDAT
*" REFERENCE(IN_MATNR) TYPE MATNR18
*" REFERENCE(IN_CHARG) TYPE CHARG_D
*" REFERENCE(IN_LGORT) TYPE LGORT_D
*" REFERENCE(I_MENGE) TYPE SA_ERFMG
*" REFERENCE(IN_VERID) TYPE VERID
*" REFERENCE(IN_MDV01) TYPE MDV01
*" EXPORTING
*" REFERENCE(OUT_TYPE) TYPE BAPI_MTYPE
*" REFERENCE(OUT_MSG) TYPE BAPI_MSG
*"----------------------------------------------------------------------
DATA: messtab TYPE TABLE OF bdcmsgcoll WITH HEADER LINE.
DATA:ctu_params TYPE ctu_params.
DATA:return TYPE TABLE OF bapiret2 WITH HEADER LINE.
DATA:l_char TYPE char255,
l_line(2) TYPE n.
DATA:in_menge TYPE string.
"错误信息
DATA:p_type TYPE bapi_mtype,
p_message TYPE bapi_msg,
l_error_flag TYPE c.
DATA: BEGIN OF i_bdcdata OCCURS 100.
INCLUDE STRUCTURE bdcdata.
DATA: END OF i_bdcdata.
in_menge = i_menge.
REFRESH:i_bdcdata,messtab.
PERFORM bdc_dynpro TABLES i_bdcdata USING 'SAPLBARM' '0800'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_CURSOR'
'RM61B-BKTXT'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_OKCODE'
'=GOON'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-RB_BAUGR'
'X'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BUDAT'
in_budat."'2019.10.29'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BLDAT'
in_bldat."'2019.10.29'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BKTXT'
IN_BKTXT."'CESHI'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-MATNR'
in_matnr."'400000000181'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-WERKS'
in_werks."'1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-VERID'
in_verid."'AQ01'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-PLWERK'
in_werks."'1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ACHARG'
in_charg."'1DS19A1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-MDV01'
in_mdv01."'1000FF01'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ERFMG'
in_menge."'1.000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ERFME'
'片'.
PERFORM bdc_dynpro TABLES i_bdcdata USING 'SAPLBARM' '0800'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_OKCODE'
'=PARA'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-RB_BAUGR'
'X'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BUDAT'
in_budat."'2019.10.29'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BLDAT'
in_bldat."'2019.10.29'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BKTXT'
IN_BKTXT."'CESHI'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-MATNR'
in_matnr."'400000000181'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-WERKS'
in_werks."'1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-VERID'
in_verid."'AQ01'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-PLWERK'
in_werks."'1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ALORT'
in_lgort."'1501'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ACHARG'
in_charg."'1DS19A1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-MDV01'
in_mdv01."'1000FF01'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_CURSOR'
'RM61B-ERFMG'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ERFMG'
in_menge."'1.000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ERFME'
'片'.
PERFORM bdc_dynpro TABLES i_bdcdata USING 'SAPLBARM' '0150'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_CURSOR'
'RM61B-LBOFF'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_OKCODE'
'=GOON'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-LBOFF'
'X'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-LBSTD_P'
''.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-RADIOFR'
'X'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BWAWE'
'131'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BWAWA'
'261'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BWAWEM'
'571'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BWAWAM'
'572'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BWACR'
'291'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BWASC'
'551'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BWACO'
'531'.
PERFORM bdc_dynpro TABLES i_bdcdata USING 'SAPLBARM' '0800'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_OKCODE'
'=POST'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-RB_BAUGR'
'X'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BUDAT'
in_budat."'2019.10.29'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BLDAT'
in_bldat."'2019.10.29'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-BKTXT'
IN_BKTXT."'CESHI'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-MATNR'
in_matnr."'400000000181'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-WERKS'
in_werks."'1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-VERID'
in_verid."'AQ01'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-PLWERK'
in_werks."'1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ALORT'
in_lgort."'1501'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ACHARG'
in_charg."'1DS19A1000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-MDV01'
in_mdv01."'1000FF01'.
PERFORM bdc_field TABLES i_bdcdata USING 'BDC_CURSOR'
'RM61B-ERFMG'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ERFMG'
in_menge."'1.000'.
PERFORM bdc_field TABLES i_bdcdata USING 'RM61B-ERFME'
'片'.
"模式
ctu_params-dismode = 'N'.
* ctu_params-dismode = 'A'.
ctu_params-defsize = 'X'.
ctu_params-updmode = 'S'.
ctu_params-racommit = 'X'.
"TCODE
CALL TRANSACTION 'MFBF' USING i_bdcdata
OPTIONS FROM ctu_params
MESSAGES INTO messtab.
"MESSAGE
CLEAR:p_type,p_message,l_error_flag,return[].
CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'
TABLES
imt_bdcmsgcoll = messtab[]
ext_return = return.
READ TABLE return WITH KEY type = 'S' ID = 'RM' NUMBER = '187' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
p_type = 'S'.
LOOP AT return.
CONCATENATE p_message return-message ';' INTO p_message.
ENDLOOP.
"p_message = '入库成功'.
ELSE.
LOOP AT return.
l_error_flag
= 'X'.
p_type
= 'E'.
CONCATENATE p_message return-message ';' INTO p_message.
ENDLOOP.
ENDIF.
out_type
FORM bdc_dynpro TABLES i_bdcdata USING program dynpro .
DATA:l_bdcdata TYPE bdcdata.
CLEAR l_bdcdata.
l_bdcdata-program = program.
l_bdcdata-dynpro = dynpro.
l_bdcdata-dynbegin = 'X'.
APPEND l_bdcdata TO i_bdcdata.
ENDFORM.
FORM bdc_field TABLES i_bdcdata USING fnam fval.
DATA:l_bdcdata TYPE bdcdata.
CLEAR l_bdcdata.
l_bdcdata-fnam = fnam.
l_bdcdata-fval = fval.
APPEND l_bdcdata TO i_bdcdata.
ENDFORM.
= p_type.
out_msg
= '收货阶段:' && p_message.
ENDFUNCTION.