录入实盘数量,对应的TCODE: MI04
注意事项:bapi传入实盘数时,行项目号要和盘点凭证一致,单位要传.
如果盘点结果为0,则应该将ZeroCount打X标识.
SE37直接测试此函数时实际上不会录入盘点数,需要在ABAP中进行bapi commit才会生效.
录入盘点结果的BAPI:BAPI_MATPHYSINV_COUNT
MI31能实现批量产生盘点凭证(一次最多300行),BAPI_MATPHYSINV_COUNT能实现录入实盘数。
SAP库存盘点相关的表:
IKPF – Header: Physical Inventory Document
ISEG – Physical Inventory Document Items
基本盘点流程:
MI31创建盘点凭证 –> MI21打印盘点凭证(或SE16导出凭证明细) –> 线下盘点 –> ZMI04(ABAP调用BAPI_MATPHYSINV_COUNT)将有差异的部分按照要求整理成Excel –> 导入Excel、执行程序录入实盘数 –> MI20查询盘点差异 –> MI07过账差异。
相关事务代码:
批量创建盘点凭证:
事物代码:MI31
注意事项:下列截图中标记红框的部分不能录错、否则后果很严重!
“项目/凭证的最大编号”必须修改成300.
全部选项设置完毕后,运行产生盘点凭证并导出盘点凭证为Spreadsheet格式。
如果产生的盘点凭证比较多,可以点击“显示结果”显示全部盘点凭证.
将Excel整理成符合实际使用的样子(如需物料描述及仓位描述,可自行使用lookup函数整理).
打印盘点凭证:
事务代码:MI21
注意:盘点凭证格式是用SAPscript技术实现的,需要在ABAP开发环境用SE71对对象INVENTORY进行调整。
BAPI导入盘点结果的DEMO:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
CALL FUNCTION 'BAPI_MATPHYSINV_COUNT' EXPORTING physinventory = lt_head-iblnr fiscalyear = lt_head-zldat(4) count_date = lt_head-zldat TABLES items = lt_items return = lt_return. LOOP AT lt_return. IF lt_return-type EQ 'E' OR lt_return-type = 'A' OR lt_return = 'X'. cp_eind = 'X'. "失败 ENDIF. IF cp_eind NE 'X'. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. COMMIT WORK AND WAIT. MESSAGE s007. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' . MESSAGE e368 WITH lt_return-message lt_head-iblnr. ENDIF. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/2504.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。