使用BAPI批量修改采购信息记录的税率
业务方面提出需求:由于国家税率从5月份开始16%更改为13%。要求开发一个批量修改采购信息记录税率的功能。
税代码就是税率,J2代表13%
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
这个需求在ME13里面就可以单个修改,所以可以用BDC,但后来找了下BAPI,发现真有修改税率的功能,果断用上。
BAPI是 ME_UPDATE_INFORECORD。
其实程序用到的表就是EINA和EINE,一般数据和组织数据。每一个供应商对应的物料、工厂都会有一条数据。
但是多个工厂的税率都是一样的,所以修改是要一并修改。
首先给个选择屏幕让业务选择哪些供应商、哪些物料需要修改税率,一般选供应商就行,再添加税率的选择框。
接下来直接上调用BAPI的代码:
loop at it_tab assigning field-symbol(<wa_tab>).
select single * from eina into yeina where infnr = <wa_tab>-infnr.
move yeina to xeina.
"多个工厂的税率都要改
select * from eine into table yeine where infnr = <wa_tab>-infnr.
move yeine[] to xeine[].
loop at xeine assigning field-symbol(<wa_xeine>).
l_index = sy-tabix.
<wa_xeine>-mwskz = p_mwskz.
read table yeine assigning field-symbol(<wa_yeine>) index l_index.
call function 'ME_UPDATE_INFORECORD'
exporting
xeina = xeina
xeine = <wa_xeine>
yeina = yeina
yeine = <wa_yeine>
reg_eina = reg_eina.
call function 'BAPI_TRANSACTION_COMMIT'.
endloop.
<wa_tab>-light = '3'.
<wa_tab>-msg = '税代码修改成功'.
<wa_tab>-new_mwskz = p_mwskz.
endloop.
这个方法没有返回sy-subrc所以都是直接修好了吧。
方法里面 x 代表新记录,y 代表就记录。
到ME13查看就已经修改新的税率。
更多精彩

