上一章讲了SAP MM模块种的出力管理(消息管理)。
SAP MM学习笔记46 - 购买中的出力管理(消息管理)-CSDN博客
本章讲库存盘点的相关内容。
- 库存盘点分3步走:实地棚卸票登录,检数入力,差异分析及转记
- SAP中还提供了实地棚卸的简易化功能,以及通过Batch Input批量导入功能
-当然,现场更多用的是用Add-on做盘点,能处理很多自己的逻辑,节约大量时间
目录
1,实地棚卸(库存盘点)
1-1,库存盘点理由和在库管理单位
a),盘点的理由
b),在库管理单位
1-2,实地棚卸(库存盘点)的步骤
a),实地棚卸票登录:实地棚卸一览
b),检数:检数入力
c),差异分析
1-3,实地棚卸传票
- Header
- 明细
1-4,实地棚卸Status
1-5,差异转记
1-6,在库移动Block
- 入出库Block
- 账簿在库冻结
- Customize > 帐簿在库调整
- Customize > 保管场所的帐簿在库残高冻结许可
2,实地棚卸 实操
2-1,MI01 实地棚卸传票登录
2-2,MI02 实地棚卸传票变更
2-3,MI04 棚卸检数入力
a),MB52 - 仓库在库
b),MI04 - 检数入力
2-4,MI03 实地棚卸传票照会
2-5,MI07 棚卸差异转记
2-6,MI20 差异一览
2-7,MI11 再检数入力
2-8,MI07 差异转记
2-9,入出库Block
2-10, 在库数量冻结
3,实地棚卸的简易化
a),MI09 棚卸检数登录(传票参照无)
b),MI01/MI08 先做1,然后把2,3步一起做了
c),MI10 把1,2,3步并作1步一起做了
d),总结
4,Batch Input - Session
a),MI31 - 无特殊在库
b),使用 Batch Input Session 做实地棚卸
下面是详细内容。
1,实地棚卸(库存盘点)
1-1,库存盘点理由和在库管理单位
a),盘点的理由
- 修正不正在库数量
- 法律规定
国家法律规定必须盘点
它那么规定的理由是收税,因为如果连公司有多少资产都搞不清楚也就没法计算税额
b),在库管理单位
- 品目
- Plant,保管场所
- 在库Type(一般认为只有下面3种,注意不要和特殊在库搞混了)
- 利用可能在库
- 品质检查在库
- 保留在库
- 评价Type
- Lot
- 特殊在库
在库管理单位的用途:其实就是字面意思,跟你按盒买鸡蛋差不多,按这个单位来管理
- 品目按照库存管理单位进行单独计算
- 库存差异按库存管理单位转记
1-2,实地棚卸(库存盘点)的步骤
a),实地棚卸票登录:实地棚卸一览
从系统角度打出来库存盘点的凭证,作为库存盘点依据
这样到仓库里面去盘点的时候,才能找出 系统有仓库没有,或系统没有仓库有 的差异
b),检数:检数入力
库存盘点的结果有了以后,接下来就入力结果到系统
c),差异分析
根据入力的数据执行差异分析
- 没有差异就Pass
- 有差异则分析原因,并更新库存数量和价值,系统也会自动过账到FI
假如出现差异,一般要重新点数,确实有差异,要追究原因,比如
- 出库出多了
- 入库入少了 等
这样处理以后,一般来说也就能把差异合上了。
如果怎么查都查不出来原因,这个差异也只能认了,这个时候也不能随意抹平差异
而要在SAP系统里面留下会计凭证,然后再把差异转记
为了防止任意转移差异,系统里面还可以设置一个容差范围
不能超过这个范围,不然容易被税务局认为公司没有好好管理
下面来一个一个看一下这3步的详细内容。
1-3,实地棚卸传票
- Header
这里一般放跟盘点票有关的内容,比如场所,番号等等跟物理位置相关
- Plant,保管场所
- 特殊在库
- 实地棚卸番号
这个是我们自己指定的号,比如本次盘点专用号
因为可能本次盘点会有很多张纸,很多内容,那么作为一个Set,该怎么把它们联系起来呢?
就是通过这个实地棚卸番号,理解为本次行动的代号可能好理解一些。
- 实地棚卸参照
这个号是别的系统通过Interface连携过来的一个号。
因为SAP盘点功能不是太好用,所以现场要么使用Add-on,要么使用一个外部盘点系统
那么外部系统和SAP之间的联系就可以通过这个实地棚卸参照 号。
实地棚卸番号指示了本次盘点的一揽子范围,
实地棚卸参照指示了参与盘点的外部系统发过来的番号,
这两个号最好是1:1关系的,而且最好不要重复使用这些号码,否则就会很麻烦。
比较简单的方式是两个号设为相同的,唯一的,
它们的共同作用就是指示本次的盘点范围。
- 明细
明细一般放一些跟品目本身相关的内容,比如品目Code,数量,在库Type等等
- 品目
- 数量
- Lot,评价Type
- 在库Type 等
1-4,实地棚卸Status
- 未检数
- 检数济
- 检数济,调整济
- 检数济,再检数济
注意 明细的再检数 指向的是 2番目的实地棚卸传票的登录,也就是重新登录一张票,
原来那张实地棚卸传票就关掉了。
而且第2张实地棚卸传票里面的内容一般不会和第1张一样,一般要少一些。
因为再检数的品目毕竟是少数,比如第1张票里面有100个品目要检数,你发现好像有1,2个有点儿问题,那就把这1,2个给放到第2张票里面继续检数。
1-5,差异转记
这张图说得是得到差异一览以后,要把差异给消除掉,就需要通过差异转记。
当然这里面还有一个 许容范围Group:即控制用户可以转记的最高额,不会让你随便转记的。
而且还可以控制某些用户可以转记,其他用户不可以转。
这张图说明了差异转记的FI 票
- 自社在库
左侧是 自社在库,检数发现库存不一致,转记之后的FI票如下
其实就是把仓库价值减少,然后损失计到棚卸差异损失上
借方:棚卸差异损失 150
贷方:在库勘定 150
- 受托品在库
右侧是 受托品在库,检数发现库存不一致
受托品虽然是供应商的货,消费了才付钱,但是我们是负有管理责任的,无缘无故丢了也要付钱的
a),如果发现 实际库存 > 系统库存,即货多出来了,那就表示多付款了,要冲销
b),如果发现 实际库存 < 系统库存,即货少了,那就表示少付款了,要给供应商付差额
这个图例是说的 b
这个 受托品消费损失 10 有点不好理解哈。
正常的话,应该跟左侧自社在库一样啊,既然是b,也就是检数发现少了10个,每个16EUR
借: 棚卸差异损失 160
贷: 受托品消费160
这样就完事了呀,那弄个 受托品消费损失 10 是个什么意思呢?
咱们先说如果是正常的受托品消费 10个 是什么 FI 分录呢?
按实际上发生的 FI 借贷顺序的话,应该是先转为自社在库,再消费
借:在库 150
借:购买价格差异 10
贷:受托品 160
那么这里的 购买价格差异 10 是什么东西呢?
其实就是定价不一致导致的,供应商说16 EUR 1个,我们内部按15 EUR来算的,那还得平账吧,
就只好计到 购买价格差异 10 里面去了。
做盘点的时候也是一样的,也会产生价格差异的
但是做盘点毕竟不是真的先转为自社在库然后再产生损失,没经过这一步,自然不会产生这个分录
就变成了
借:棚卸差异损失150
借:受托品消费损失 10
贷:受托品 160
对我们来说,棚卸差异只差了150,相当于我们消费了150(实际上不知道弄哪儿去了,可能是真消费了没记账,也可能是遭窃了,或者圣诞老爷爷钻烟囱,然后拿给驯鹿吃了:)),另外的10 是价格差异,但是毕竟没真消费,所以就计到受托品消费损失里面去。
这一切都是SAP自己搞的,客户可能会问顾问这是啥意思,咱们理解一下就可以了。
1-6,在库移动Block
- 入出库Block
就是货物固定在那里不允许移动,这样点数就不会乱。
图示是 9/27,9/28两天盘点,就是红色框框那块儿,表示转记Block。
随着盘点技术进步,实际上现在几乎见不到化这么长时间盘点了。
- MI01 实地棚卸传票登录
- 入出库Block:勾上的话,就不会允许在库移动了
- 账簿在库冻结
有些工厂停产一天损失很大,还有像炼钢厂之类的无法停产,这种情况下,就不能勾 入出库Block
那就可以用这个 在库数量冻结 Flg。
这个Flg 的作用是把盘点之前的在库数给静态保存到一个地方,然后盘点的时候以那个为基准。
正常的入出库不影响。
注意上图的 9/26,9/27 进行检数
9/27之前(即9/26) 在库数量冻结,数量为 250个,然后虽然9/27 在库有变化(出库,在库 -60),
但不影响入出库操作,而且就这个图来说,好像也没影响检数。
9/27就检数完了,检数结果为255个
虽然9/28-9/30又有其他入出库,我这边在9/30照样输入255个检数,产生了 5个差异。
- 在库数量冻结
注意上图里面的 检数预定日 栏位。
因为在库数据是不断变化的,比如我 9/25登录了这个实地棚卸传票,
然后预计 9/27 检数,那么我9/25登票时候保存的静态数据是不是太早了点儿?
比如9/26,9/27 要不要更新这个静态数据呢?当然要的呀,不然就不准了呀。
当日其实更新不更新是在Customize里面设定的。
- Customize > 帐簿在库调整
Spro > 在库/购买管理 > 在库管理/实地棚卸 > 实地棚卸
实地棚卸的设定
- 帐簿在库调整
- 空白 - 无效
这个选项就不会更新静态的在库数量
- 1 - 有效(日期相同的时,实地棚卸日在在库移动之前)
这个选项会更新在库数量。
但是当在库移动日和实地棚卸日相同时候,
因为选实地棚卸日在前,即认为 实地棚卸日 < 在库移动日,所以不会更新到静态数据里面
- 2 - 有效(日期相同的时,在库移动日在实地棚卸日之前)
这个选项会更新在库数量。
但是当在库移动日和实地棚卸日相同时候,
因为选在库移动日较早,即认为 在库移动日 < 实地棚卸日,所以会更新到静态数据里面
当然现场大家一般都不会搞这种当日的情况,自己把自己搞晕掉了。
提前发布消息说某某日要盘点了,大家在这一天之前更新好在库移动,这样就避免了当日是否要更新到静态数据里面的情况。
- Customize > 保管场所的帐簿在库残高冻结许可
不设置可以冻结的保管场所,是无法使用 在库数量冻结 的。
即 在库数量冻结 是在保管场所Level的。
上面讲的都是理论,
下面来在系统上看一下操作。
2,实地棚卸 实操
2-1,MI01 实地棚卸传票登录
SAP Menu > Logistics > 在库/购买管理 > 实地棚卸 > 实地棚卸传票
MI01 登录
MI01 实地棚卸传票登录
输入
- Plant:比如1000
- 保管场所:0001
- 入出库Block:ON
可以看到其实挺费劲儿的,得一个一个的登
所以现场一般都会开发一个Add-on,背后用Bapi一次性登
不会一个一个手输入的,一般大公司用SAP,品目都成百上千的,容易出错还耗工数
按回车,Item No栏位好像变为了2 了哈,但是刚刚输入的第1行目哪儿去了呢?
SAP Menu > Jump > 概要
这样就能显示出来刚刚输入的数据
然后再想输入新的品目的话,就需要点新规图标
就又可以切换回来了
我这里又录入了几个
点 Header 图标
可以显示 实地棚卸传票登录 Header
这样就保存好了
2-2,MI02 实地棚卸传票变更
输入
- 实地棚卸传票
- 会计年度
双击任意一行,可以显示其明细
可以看到状态
- 实地棚卸状况:未检数
点 Header 图标,可以显示Header
Header里面也有 检数状况
2-3,MI04 棚卸检数入力
输入
- 实地棚卸传票
- 会计年度
这里就可以输入检数结果。
SAP在这里并没有提供系统里的参考数据,估计是SAP故意的,不然有好多人就会偷懒直接抄过去,那么检数也就没有意义了吧。
a),MB52 - 仓库在库
作为顾问,比如测试的时候,该怎么知道品目的数量呢?
SAP Menu > Logistics > 在库/购买管理 > 在库管理 > 关联处理 > 一览照会 > 在库照会
- MMBE - 在库状况照会
- MB52 - 仓库在库
比如这里就通过 MB52 来看
输入
- Plant:1000
这样就能看到很多品目的数据。
其实拿着这个去做盘点也是完全可以的。
- 品目别仓库在库照会
- 利用可能在库
- 品质检查中在库
- 保留在库
只把上次输入的数据给查询出来
100-100:有多个保管场所,然后还有多个在库Type,咱们先放过这种复杂的
100-710-F15:100个
100-710-F19:95个
b),MI04 - 检数入力
100-710-F15:99个(仓库里99个比SAP系统上100个,少1个)
100-710-F19:96个(仓库里96个比SAP系统上95个,多1个)
其他的暂时先不管了,为了好看一些,我先给删了
另外注意 ZC 这个栏位,它的意思是0个
但是如果你输入0个,SAP自动给清掉了,就跟没输入是一个状态,
所以为了能让SAP区分出来到底是0 还是未输入,设置这么一个字段
2-4,MI03 实地棚卸传票照会
点Header图标
- 检数状况:X 表示已经检数完成
- 调整Status:空白 表示还未处理
回到一览,然后双击任意明细行
实地棚卸履历
- 实地棚卸状况:检数济
- 检数日:2024-07-27
- 数量:99
- 帐簿上数量:100
- 差异数量: 1-
2-5,MI07 棚卸差异转记
输入理由,然后点保存,就把差异转记了,意味了自己承认了
然后就会登入出库,FI票等等
我们这里先不登了, 先来看另外一个东西。
2-6,MI20 差异一览
输入条件,点执行按钮
这样就查询出来了
- 检数变更:这个按钮的用途是更改输入的检数值。
比如明明检数是98个,输入成99个,那就可以通过这个按钮修改
跟再检数是不一样的,指示更正一下输入错误
- 传票再检数
Menu > Jump > 传票再检数
这样就直接打开了 MI11。
2-7,MI11 再检数入力
实地棚卸传票的号码没变
咱们这里直接回车
这里只针对 100-710-F15 进行再检数
咱这里直接保存
新生成了一张检数票
返回到ME11,然后再次检索
这回实际棚卸传票(简称 实棚传票) 就没有 100-710-F15 这个品目了,只剩下 100-710-F19品目
那么新的实地棚卸传票到哪儿去了呢?
就跟老传票一样,得从头开始
MI04 棚卸检数入力
比如这次再检结果是 98 个,输入98,然后保存
MI20 差异一览,检索
这次出现了 4950000000,4950000001 两条数据
2-8,MI07 差异转记
MI20 差异一览里面,选择一条,然后点 差异转记
意思是怎么都搞不明白这2个到底是怎么回事了
或者搞明白了是我们自己的问题,只能承认了
打开 MI07 棚卸差异转记
理由是必须输入的
Customize里面好像可以设置为任意
実地棚卸伝票 4950000001 的差異 已经再 入出庫伝票 4940000065 中决济完成了
到 MI03,看Header
- 检数状况:X (已检数完成)
- 调整Status:X(已调整完成)
明细
- 实地棚卸状况:检数济,决济济(检数完成,结算完成)
点上图的 入出库传票照会,显示 MB03 入出库传票照会 明细画面
2-9,入出库Block
比如这张 实地棚卸传票 49500000000
- 入出库Block:ON
- 品目 100-710-F19
MIGO 出库
Check OK??
转记OK??
到MB52 - 品目别仓库在库照会
确实出库10个了啊
再试一遍,重新做一张实地棚卸传票,这次就先放1个品目
MIGO 出库的时候,这次就出了Block Message了
所以,实地棚卸传票中的 入出库Block 在检数之后就结束了。
原因应该是在 4950000000 这张实地棚卸传票中,所有品目已经检完数了,没必要继续Block了。
2-10, 在库数量冻结
把 4950000002 实地棚卸传票 Flg修改一下
- 入出库Block:OFF
- 在库数量冻结:ON
Msg 番号 M7764
该保管場所的帳簿棚卸残高无法凍結。
看来冻结的时候必须的先Customize 可以冻结的保管场所。
我们把保管场所给设置一下
把 Plant 1000,保管场所 0001 给勾上,保存
回到 MI02
这回可以保存了
然后回到MIGO,再次出库试试看
现在就可以做出库了
3,实地棚卸的简易化
咱们上面说了实地棚卸(库存盘点)有3个步骤:
-1 实地棚卸传票登录
-2 检数入力
-3 差异转记
但是实际运用当中不会这么死板的,而是会省略一些步骤。
比如
- 1,2步一起做了,在检数入力的时候,直接把实地棚卸传票给登录了
- 先做1,然后把2,3步一起做了
- 把1,2,3步并作1步一起做了
a),MI09 棚卸检数登录(传票参照无)
1,2步一起做了,在检数入力的时候,直接把实地棚卸传票给登录了
这个功能的存在理由是不一定非得通过实地棚卸传票来作为依据进行检数,
也可以通过 MB52 得到品目的数量一览为依据进行检数,
然后直接输入检数即可
直接输入检数
作为SAP系统来说,它可以帮你省操作步骤,
但是内部它还是老样子,这里就悄悄在后台把棚卸传票登录给登了。
打开 MI03 看一下,默认生成的 实地棚卸传票 不会Block任何入出库的,
在库数量冻结也没做。
我觉得这么做的理由是你都检完数了嘛,还Block/ 冻结个啥用?
b),MI01/MI08 先做1,然后把2,3步一起做了
咱们上面说要好好分析理由,这里怎么就可以把2,3一起干了呢?
这里面的前提是说你肯定在其他系统还是什么地方,已经把这个事情给做完了,
来SAP系统这里就是记录一下结果而已。
MI01 - 实地棚卸传票登录
- MI08 检数/差异
输入
- 实地棚卸传票
输入
- 数量
- 理由
这样就把2,3一起做了。
就像前面说的那样,已经在别处把这个原因调查的事情给做过了,才来SAP里面登数据的。
c),MI10 把1,2,3步并作1步一起做了
MI10 - 棚卸传票,检数,以及差异的转记
输入
- Plant
- 保管场所
输入品目,数量,理由
然后保存即可
这个挺常用的。
因为现场没有人一条一条手工输入,所以大家都会做一个Add-on,在后台调用Bapi,执行这个一起把3步给做了。
这样就登好了,然后保存即可
实地棚卸传票xx 的差异已在入出库传票xx 中决济完了。
d),总结
3步曲一步一步做,还有另外3种简易化的方式当中,
a - 步骤1,2一起做,然后做步骤3 这种好一些。
因为考虑分工作量的话,步骤1,2可以让仓库的人做,
等仓库的人登好了以后,会计的人来做步骤3。
各司其职,不要跨界。
4,Batch Input - Session
- 上面那个图 是以SAP 系统为基准来做的盘点
- 下面那个图 是以其他 系统为基准来做的盘点
a),MI31 - 无特殊在库
SAP Menu > Logistics > 在库/购买管理 > 实地棚卸 > Session > 实地棚卸传票登录
MI31 - 无特殊在库
Database选择:
- 输入 品目,保管场所,品目Type...
管理:
- 明细/传票的最大数:这个栏位是说在登票的时候,每张票上面最大有多少条明细
因为假如有成千上万个品目的话,全都放在1张票里面也显得挺奇怪的
- Batch Input生成:
这个就会调用后面Session名称栏位里面的 Batch,在夜间之类的时间执行
- 传票直接登录:
这个就不等到夜间用Batch Input跑了,而是直接就现场给你跑了
实地棚卸传票Header Data:
- 实地棚卸番号:咱们上面说过可以把这个番号当作本次盘点的代号
因为 明细/传票的最大数 这个参数决定了每张票上面最大的明细数,比如200
那假如一共有2000个品目,所以也就会搞10张票,那么这10张票就靠这个代号关联。
b),使用 Batch Input Session 做实地棚卸
- 标准3步走方式:1-实地棚卸传票登录 、2-检数入力,3-差异转记
- 把外部数据导入算是做直接做 2-检数入力,SAP内部把1也一起做了,然后再做3-差异转记
- SAP做1-实地棚卸传票登录,然后把外部导入做1-检数入力,SAP内部直接把3-差异转记也做了
- 把外部数据导入时,SAP内部把1,2,3一起做了
下面这个图和上面那个图是不是非常类似。
只是下面这个图是以手工做的盘点简易化,而上面那个图是以Batch Input做的盘点简易化。
外部数据如何导入SAP呢?
- MI34 - 检数入力
选择外部数据 作为检数结果进行登录
针对各种简易化步骤,还有其他T-code可以使用
MI40 - 传票/检数/差异:看样子是把1,2,3 合为1步的那个T-code。
这样就介绍完了实地棚卸(盘点)的所有内容。
其实现场还是使用Add-on 多一些。
Add-on就可以加自己的任何业务,比如
- 好多品目是按 Lot 进行管理的
但是在录入的时候,或者在仓库检数的时候哪里有那么多时间检Lot啊,点数也是挺费神儿的事儿
比如品目A 有 Lot1,2,3
用户可能就点了个总数,比如4990 件,
SAP系统里面Lot1,2,3分别记录为为1000,2000,2000件
那么使用Add-on的话,就可以自动分配把用户的4990件给拆分成
Lot1=》1000,Lot2=》2000,Lot3=》1990 件,从而免去用户检查Lot的打麻烦。
当然,这么做会产生些许误差,比如实际Lot2=》1999件之类的,
这些等将来做出库的时候也会发现,到时候再修正,属于小问题,能保证检数基本正确就可以。
就是说,你花了这么个小的代价,避免了检数Lot1,2,3,以及其他所有品目Lot的大问题。
当然你要是愿意化大时间去检数各品目的Lot那也不是不行哈,
只不过现实当中没人愿意那么干,耗时耗力然后意义也不太大。
以上也是现场使用Add-on来做盘点的原因之一,能节约大量时间。
关键它也不创造利润啊,不会有人愿意花时间干这个事儿的。