SAP MM采购信息记录维护接口分享
一、接口逻辑
1)外围系统:适用于走OA或SRM系统创建供应商与SAP交互
2)输入参数和输出参数
二、接口代码
为了确保采购信息记录维护无问题,没有使用标准BAPI,而是通过BDC实现,当前版本为PCE S4 2023版本,采购信息记录维护ME11界面可能与ECC版本有微小差异,可能BDC屏幕需要微调。
FUNCTION z_fmmm_0026.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" REFERENCE(I_DATA_GD) TYPE ZSBC_IF_GD
*" REFERENCE(I_INPUT) TYPE STRING
*" EXPORTING
*" REFERENCE(E_OUTPUT) TYPE STRING
*"----------------------------------------------------------------------
DATA:lv_matnr TYPE matnr,
lwa_msg TYPE zsbc_msg,
lwa_out TYPE zssmm_output_026.
DATA: lwa_headdata TYPE bapimathead,
lwa_marc TYPE bapi_marc,
lwa_marcx TYPE bapi_marcx,
lwa_return TYPE bapiret2.
DATA: ls_item TYPE zssmm_input_026,
ls_scale TYPE zssmm_input_026,
lt_scale TYPE TABLE OF zssmm_input_026,
ls_incom TYPE meico,
ls_eina TYPE eina,
ls_eine TYPE eine,
ls_bdc TYPE bdcdata,
lt_bdc TYPE TABLE OF bdcdata,
lv_mode TYPE c,
ls_msg TYPE bdcmsgcoll,
lt_msg TYPE TABLE OF bdcmsgcoll,
lv_msg TYPE string,
lv_type TYPE bapi_mtype,
lv_dynnr TYPE sy-dynnr,
lv_tcode TYPE sy-tcode.
DATA: lv_kbetr TYPE string,
lv_kpeins TYPE string,
lv_kstbms TYPE string,
lv_aplfz TYPE string,
lv_untto TYPE string,
lv_uebto TYPE string,
lv_netpr TYPE string,
lv_peinh TYPE string,
lv_bprme TYPE string, "added by dq 20250205 新增采购订单单位
lv_kstbm TYPE string,
lv_datab TYPE string,
lv_datai TYPE string,
lv_norbm TYPE string,
lv_minbm TYPE string,
lv_num(2) TYPE n.
DATA: ls_konp TYPE konp,
lt_konp TYPE TABLE OF konp.
FIELD-SYMBOLS <lfs_item> TYPE zssmm_input_026.
DEFINE conv_alpha_input.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = &1
IMPORTING
output = &1.
END-OF-DEFINITION.
DEFINE bdcdata.
CLEAR ls_bdc.
IF &1 = 'X'.
ls_bdc-program = &2.
ls_bdc-dynpro = &3.
ls_bdc-dynbegin = 'X'.
ELSE.
ls_bdc-fnam = &2.
ls_bdc-fval = &3.
ENDIF.
APPEND ls_bdc TO lt_bdc.
END-OF-DEFINITION.
"清空全局变量
CLEAR:gv_input_026,
gv_output_026,
gv_status_026.
"清空输出变量
CLEAR:e_output.
CLEAR:lv_matnr,
lwa_msg,
lt_msg .
gv_status_026 = 'S'.
IF i_input IS NOT INITIAL.
CALL FUNCTION 'Z_FMBC_JSONTOABAP2'
EXPORTING
i_json = i_input
IMPORTING
e_data = gv_input_026.
ENDIF.
IF gv_input_026 IS INITIAL.
lwa_msg-type = 'E'.
lwa_msg-message = '请检查JSON结构与SAP ABAP结构 是否一致!'.
APPEND lwa_msg TO lwa_out-messagelist.
APPEND lwa_out TO gv_output_026-data_list.
CLEAR lwa_out.
gv_status_026 = 'E'.
PERFORM frm_write_log_new USING i_data_gd-butype
gv_output_026
i_data_gd
i_input
e_output
gv_status_026.
EXIT.
ENDIF.
SORT gv_input_026-data_list BY lifnr matnr ekorg werks esokz kstbm.
lv_mode = 'N'.
* SELECT *
* FROM konp