SAP MM采购申请创建接口分享
一、接口逻辑
适用于从OA走完提前备料流程将结果传入SAP创建手工采购申请且自动完成PR审批
二、接口代码
FUNCTION z_fmmm_0008.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_DATA_GD) TYPE ZSBC_IF_GD OPTIONAL
*" VALUE(I_INPUT) TYPE STRING OPTIONAL
*" EXPORTING
*" VALUE(E_OUTPUT) TYPE STRING
*"----------------------------------------------------------------------
TABLES:ztmm008_log,mara,t006.
DATA: gs_data TYPE zsmm_input_008.
DATA: gt_input TYPE zttmm_input_008,
gs_input TYPE zsmm_pr_input,
lwa_output TYPE zsmm_output_008,
gt_output TYPE zttmm_output_008,
gs_output TYPE zsmm_pr_output,
gt_output_temp TYPE zttmm_output_008,
gs_output_temp TYPE zsmm_pr_output.
DATA: l_input TYPE zsmm_pr_input.
DATA: ls_msg TYPE bapi_msg,
l_status TYPE c VALUE 'S'.
DATA: l_zsbc_msg TYPE zsbc_msg.
DATA:lv_banfn TYPE eban-banfn .
DATA:lv_bnfpo TYPE eban-bnfpo .
DATA:gw_pritem TYPE bapimereqitemimp .
DATA:gw_pritemx TYPE bapimereqitemx .
DATA:gt_pritem TYPE TABLE OF bapimereqitemimp .
DATA:gt_pritemx TYPE TABLE OF bapimereqitemx .
DATA:gw_head TYPE bapimereqheader .
DATA:gw_headx TYPE bapimereqheaderx.
DATA:gt_bapireturn TYPE TABLE OF bapiret2,
gw_bapireturn TYPE bapiret2.
DATA: lt_extensionin TYPE TABLE OF bapiparex,
lwa_extensionin TYPE bapiparex.
DATA: lwa_ci_ebandb TYPE ci_ebandb,
lwa_ci_ebandbx TYPE ci_ebandb.
DATA: ls_mereqitem TYPE bapi_te_mereqitem,
ls_mereqitemx TYPE bapi_te_mereqitemx.
DATA:BEGIN OF ls_grp,
frggr TYPE t16fc-frggr, "审批组
frgco TYPE t16fc-frgco, "审批代码
END OF ls_grp,
lt_grp LIKE TABLE OF ls_grp.
DATA:ls_fid LIKE thead-tdid,
ls_fname LIKE thead-tdname,
ls_fobject LIKE thead-tdobject.
DATA:flines LIKE TABLE OF tline WITH HEADER LINE .
"CALL FUNCTION 'ZFM_BREAK_POINT'.
CALL FUNCTION 'Z_FMBC_JSONTOABAP2'
EXPORTING
i_json = i_input
IMPORTING
e_data = gs_data.
gt_input = gs_data-data.
* IF I_TEST IS NOT INITIAL.
* gt_input = I_TEST.
* ENDIF.
* CALL FUNCTION 'Z_FMBC_ABAPTOJSON'
* EXPORTING
* i_data = gt_input
* IMPORTING
* e_json = i_input.
*********************CHECKDATA
IF gt_input IS INITIAL.
l_status = 'E'.
ls_msg = '请检查JSON结构与SAP ABAP结构 是否一致!'.
PERFORM write_log_pr USING i_data_gd i_input e_output 'MM0008' 'INBOUND' l_status ls_msg.
PERFORM frm_set_msg TABLES gs_output-messagelist USING l_status '00' '001' ls_msg.
APPEND gs_output TO lwa_output-data_list."gt_output.
&nb