需求
对大批量物料数据进行自动记账
一、校验
校验账期-财务账期
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
i_bukrs = lv_bukrs
i_gjahr = lv_year
i_koart = '+'
i_monat = lv_monf
IMPORTING
e_oper = lv_oper
EXCEPTIONS
error_period = 1
error_period_acc = 2
invalid_input = 3
OTHERS = 4.
校验库存-取出对应物料库存比较 消耗是否大于库存
SELECT * INTO TABLE @DATA(lt_mard)
FROM mard
WHERE matnr EQ @gv_matnr
AND werks IN @lr_werks
AND lgort EQ @gv_lgort.
二、记账代码
同移动类型的数据可放一张凭证
代码如下(示例):
DATA:lw_goodsmvt_header TYPE bapi2017_gm_head_01,
pv_goodsmvt_code TYPE bapi2017_gm_code,
lv_materialdoc_fjy TYPE bapi2017_gm_head_ret-mat_doc,
lv_year TYPE bapi2017_gm_head_ret-doc_year,
lt_goodsmvt_item TYPE TABLE OF bapi2017_gm_item_create