SAP SD交货单过账冲销接口分享
一、接口逻辑
1)输入参数和输出参数

2) 业务逻辑




二、接口代码







FUNCTION z_fmsd_dn_write_off.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_DATA_GD) TYPE ZSBC_IF_GD OPTIONAL
*" VALUE(I_INPUT) TYPE STRING OPTIONAL
*" EXPORTING
*" VALUE(E_OUTPUT) TYPE STRING
*"----------------------------------------------------------------------
DATA:ls_input TYPE zssd_input_012,
lt_output TYPE zttbc_msg.
DATA lv_mblnr TYPE mblnr .
DATA ls_output TYPE zssd_dnpost_output.
CALL FUNCTION 'ZFM_BREAK_POINT' .
CLEAR:ls_input,lt_output,gv_status_017,gs_input_012.
IF i_input IS NOT INITIAL.
CALL FUNCTION 'Z_FMBC_JSONTOABAP'
EXPORTING
i_json = i_input
IMPORTING
e_data = ls_input.
ENDIF.
IF ls_input IS INITIAL.
PERFORM frm_set_msg TABLES lt_output
USING 'E' '00' '001' '请检查JSON结构与SAP ABAP结构 是否一致!'.
PERFORM frm_write_log_new
USING 'SD0029' lt_output i_data_gd i_input e_output 'E'.
EXIT.
ENDIF.
PERFORM frm_check_data_001 TABLES lt_output USING ls_input CHANGING lv_mblnr.
IF lt_output IS NOT INITIAL.
ls_output = VALUE #( mblnr = lv_mblnr zs_outmsg = lt_output ) .
PERFORM frm_write_log_new
USING 'SD0029' ls_output i_data_gd i_input e_output 'E'.
* PERFORM frm_write_log_new
* USING 'SD0029' lt_output i_data_gd i_input e_output 'E'.
EXIT.
ENDIF.
MOVE-CORRESPONDING ls_input TO gs_input_012.
PERFORM frm_dn_writer_off TABLES lt_output USING ls_input CHANGING lv_mblnr.
ls_output = VALUE #( mblnr = lv_mblnr zs_outmsg = lt_output ) .
PERFORM frm_write_log_new
USING 'SD0029' ls_output i_data_gd i_input e_output gv_status_017.
*&nb
