SAP 模具生产订单创建接口分享
一、接口逻辑





二、接口代码







FUNCTION z_fmpp_007.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_DATA_GD) TYPE ZSBC_IF_GD
*" VALUE(I_INPUT) TYPE STRING
*" EXPORTING
*" VALUE(E_OUTPUT) TYPE STRING
*"----------------------------------------------------------------------
"----------------------------------------------------------------------
"*"本地接口:
" IMPORTING
" REFERENCE(I_DATA_GD) TYPE ZSBC_IF_GD
" REFERENCE(I_INPUT) TYPE STRING
" EXPORTING
" REFERENCE(E_OUTPUT) TYPE STRING
"----------------------------------------------------------------------
DATA:
lw_input TYPE zspp_007_in,
lw_output TYPE zspp_007_out,
lw_msg TYPE zsbc_msg.
DATA: ls_log TYPE ztbc_log_table.
DATA: flg_err TYPE c,
return_msg TYPE bapi_msg.
DATA:BEGIN OF lt_msg OCCURS 0 .
DATA: message TYPE char50,
END OF lt_msg .
CALL FUNCTION 'ZFM_BREAK_POINT' .
MOVE-CORRESPONDING i_data_gd TO ls_log.
ls_log-btype = 'PP0006'.
flg_err = 'S' .
lw_msg-id = '00' .
lw_msg-number = '001' .
BREAK guoxiongjie .
CALL FUNCTION 'Z_FMBC_JSONTOABAP'
EXPORTING
i_json = i_input
IMPORTING
e_data = lw_input.
CLEAR flg_err.
DEFINE marco_check_null.
IF lw_input-&1 IS INITIAL.
INSERT VALUE #( message = &2 && '为空;' ) INTO TABLE lt_msg.
ENDIF.
END-OF-DEFINITION.
"**********************************************************************
"OAKEY1: 1-国内收费;2-海外收费;3-不收费
"OAKEY2: 1-自动化设备单;2-治具;3-量产模具;4-样品模具
* OAKEY2 OAKEY1 料号 资产
* 1 1,2 √ -
* 1 3 - √
* 2 1,2,3 √ -
* 3 1 √ -
* 3 2,3 - √
* 4 1,2,3 √ -
"判断输入
marco_check_null: oakey 'OA申请号',
oakey1 '模具属性',
oakey2 '需求类型',
werks '生产工厂',
auart '工单类型',
psmng '数量'.
DATA:lv_matnr TYPE matnr .
DATA:lv_anln1 TYPE anln1 .
DATA:lv_prctr TYPE prctr .
DEFINE marco_check_mat.
marco_check_null: matnr '物料编码'.
lw_input-matnr = |{ lw_input-matnr ALPHA = IN }|.
SELECT SINGLE matnr INTO @lv_matnr FROM mara WHERE matnr = @lw_input-matnr .
IF sy-subrc NE 0.
INSERT VALUE #( message = '物料编码输入错误;' ) INTO TABLE lt_msg.
ENDIF.
END-OF-DEFINITION.
DEFINE marco_check_anln1.
marco_check_null: ktsch '工单描述',
gmein '单位'.
marco_check_null: ztxt '资产编号'.
lw_input-ztxt = |{ lw_input-ztxt ALPHA = IN WIDTH = 12 }|.
SELECT SINGLE anln1 INTO @lv_an
