SAP MM 事务代码MI31之思考

1 - MI01之痛

多年SAP项目实施实践中,笔者之前对于SAP系统里盘点凭证创建(MI01)事务代码里的输入界面很是不爽:

第一,MI01输入了一行数据以后,回车,系统就隐藏了之前输入的数据,需要点击其它按钮或者菜单才能看到。这个很不方便啊,不管别人使用体验如何,反正笔者是很不爽!

第二,MI01 界面里对于数据批量输入不太方便,只能从excel里按列复制粘贴的方式来批量输入数据;而不能从某个物料号清单里选择指定的物料或者全部物料到创建界面里来。

当然,SAP有个事务代码MI31可以让用户从一个物料清单里选择需要盘点的物料,不用业务人员逐个输入或者从excel里复制粘贴的方式输入物料号批次号等信息,能很方便很快捷的创建好盘点凭证。但是笔者对于它关注与研究并不多,在相关项目实施用户培训的时候,也很少跟用户推荐MI31。Anyway,既然有这么个好的功能,还是值得笔者在内的业界同仁们去研究一番的。

2 - MI31之初体验

如下是MI31的初始界面,

输入工厂和Storage location, 可以自行决定每个盘点凭证里的最大的item的个数(默认是20)。并且执行结果里,能显示Issue Log, 能自动为创建好的盘点凭证勾上’Posting block’标记。

执行,进入如下界面,

这里列出物料号和批次号,供业务人员选择。选好需要盘点的物料批次,点击按钮”Create Documents”,

系统就自动创建好了盘点凭证。

点击show result按钮,

就能看到刚刚产生的盘点凭证号,

使用起来,第一感觉是确实比MI01方便很多!笔者认为,这个事务代码方便的操作界面,才是功能强大的SAP软件系统该有的做法,才符合SAP一贯比较人性化走心的系统设计理念。

3 - MI31之再体验

笔者发现,MI31事务代码,对于账面库存为0的物料,系统依旧会显示在待盘点的物料清单里。比如物料号R000006890,其MMBE库存状态,

一些批次账面库存为0.

MI31执行结果里,相关批次号依旧出现在待盘点物料批次清单里,

如果业务使用系统几年后,一个物料号批次号成千上万,并且这些老的批次号可能都无账面库存了,但是这些批次号还是会出现在MI31结果里!这样带来的后果就是,业务人员在选择需要盘点的物料批次的时候,会手足无措,这样会给业务人员带来困扰!全选?还是部分选?全选会导致输入结果时候,很多批次的实际库存为0,这些批次的盘点结果都要录入系统;部分选,如何确保不漏掉有库存的批次?

SAP这么傻么?是不是某个后台配置导致的?是不是能通过后台设置达到MI31带盘点物料批次列表里,只建议有账面库存的物料批次?笔者查过后台配置,没有发现哪个配置可以修改,使得SAP只建议出有账面库存的物料批次放在待盘点物料批次清单里。这个作为一个open的问题放在这里,抛砖引玉,想听听业界同仁的高见!

4 - MI31之再研习

另外,还是相同的物料R000006890的库存,如下几个批次有质检库存的,

在MI31结果里,这几个批次都有出现,而stock type却只有1和4,

盘点凭证上的stock type 1和4代表的是可用库存和冻结库存!如下图示:

而这三个批次是有质检库存的,却在MI31事务代码建议的待盘点物料批次清单里没能建议出来。所以业务人员选中这三个批次创建盘点凭证后,还需要人工去录入质检库存盘点ITEM,

创建的盘点凭证号是,

MI03显示这个盘点凭证,每个批次都是2行,stock type分别是1和4,如下图:

此时需要MI02修改这个盘点凭证,手工增加这些批次的stock type为2的行项目。

笔者绝不相信SAP这么傻!笔者查了后台配置。可喜的是,笔者发现这个是可以通过后台设置来改变的,

系统当前的设置对于【Stock type】部分的配置里,就是只包含Unrestricted和Blocked Stock, 没有勾选’In Qual.Inspection’选项。如果想MI31里能自动建议出stock type = 2的行,勾选’In Qual.Inspection’选项即可。这大概因为笔者现在所在的项目客户绝大多数工厂有启用QM模块,并且绝大多数工厂都有启用WM模块。所以对于这个IM层面的盘点功能,客户的SAP实施团队并没有过多关注与完善系统里的这个配置。

5 – 总结

事务代码MI31可以方便业务人员快捷的创建盘点凭证(纯IM层面)。但是这个事务代码在建议待盘点的物料批次库存的时候,会将账面库存为0的所有物料批次都建议出来,并不方便业务人员的使用。尤其当启用批次管理的时候,当SAP系统被使用很多年产生了大量批次号并且大多数老的批次号账面库存是0的时候,MI31事务代码则会让业务人员无所适从,抓狂至极;可以说,此时的MI31甚至还不如MI01来得方便!

一点浅见,与业界同仁共勉与切磋。

2018-12-06 写于杭州市。

SAP MM 事务代码MI31之思考的更多相关文章

  1. 「SAP技术」SAP MM 事务代码ME17的用法

    SAP MM 事务代码ME17的用法 1,如下采购信息记录需要被归档: PIR号码,5300007816   2, ME12打上删除标记,   3, 事务代码ME17做归档 3.1 创建archive ...

  2. SAP MM事务代码清单

  3. SAP HUM事务代码 HUMAT 之初探

    SAP HUM事务代码 HUMAT 之初探 SAP菜单中,该事务代码在这里: 1)如下的inbound delivery号码, Document flow, 已经完成了PGR, 2)执行HUMAT,进 ...

  4. SAP HUM 事务代码HUMO为整托做Scrap

    SAP HUM 事务代码HUMO为整托做Scrap HUMO事务代码查询结果里,选择某个HU, 回车,过账成功, 2019-04-10 写于苏州市.  

  5. 如何查找SAP的事务代码清单

    SAP系统中,为了省去输入程序名称等繁琐步骤,SAP提供一种命令,称作‘事务代码’,通过执行事务代码达到快速进入相应程序的目的.那么在系统中如何去查找事务代码,事务代码和程序的对应关系如何呢?我们可以 ...

  6. 一百一十四、SAP查看事务代码对应工程源码

    一.比如我们想看ZMMR008的源码,输入事务代码,点击显示 二.点击显示之后,在程序这儿,的双击打开 三.可以看到源码内容

  7. SAP MM MI01事务代码里的批次确定

    SAP MM MI01事务代码里的批次确定 1 – 批次管理启用之后果 一个物料如果启用了批次管理,那么库存管理以及盘点等诸多事务里都需要在批次的层次上进行. 货物移动的时候,需要在界面上指定相关货物 ...

  8. SAP MM盘点流程里如何处理事务代码MI11 Recount过的盘点凭证?

    SAP MM盘点流程里如何处理事务代码MI11 Recount过的盘点凭证? 1, MI01 create a physical inventory document, 2, MI04 to inpu ...

  9. SAP MM MB5L事务代码'仅总计'选项初探

    SAP MM MB5L事务代码'仅总计'选项初探 MB5L,如下查询条件, 报表结果里显示有差异, 而如下查询条件, 原因在于当勾选了'仅总计'选项以后,系统不考虑MM以外的影响库存金额的事务,而只是 ...

随机推荐

  1. 2018 大湾区(深圳) .NET技术分享交流会 第一期

    .NET Core 2.1 已于2018年5月30日正式发布,邀请粤港澳大湾区.NET技术专家和从业人员,一起分享与交流.NET技术的发展方向,提高粤港澳大湾区.NET技术交流氛围,挖掘.NET高级人 ...

  2. 从零开始学深度学习mxnet教程:安装以及基本操作

    一.导言 本教程适合对人工智能有一定的了解的同学,特别是对实际使⽤深度学习感兴趣的⼤学⽣.⼯程师和研究⼈员.但本教程并不要求你有任何深度学习或者机器学习的背景知识,我们将从头开始解释每⼀个概念.虽然深 ...

  3. 【安富莱原创开源应用第2期】基于RL-USB和RL-FlashFS的完整NAND解决方案,稳定好用,可放心用于产品批量

    说明:0. NAND Flash这块经常有人咨询,这里发布一个完整的解决方案,支持擦写均衡,坏块管理,ECC和掉电保护.        早期的时候我们是用的自己做的NAND算法,支持滑块管理,擦写均衡 ...

  4. [Swift]LeetCode978. 最长湍流子数组 | Longest Turbulent Subarray

    A subarray A[i], A[i+1], ..., A[j] of A is said to be turbulent if and only if: For i <= k < j ...

  5. Java中异常的处理以及自定义异常,抛出异常到方法调用栈底层

    package com.gezhi; /** * 创建一个自定义异常SpendMoneyException类 *  * @author square 凉 * */@SuppressWarnings(& ...

  6. mongo 联表查询

    查询语句 db.getCollection("A表").aggregate([ { $lookup:{ from:"B表", localField:" ...

  7. sequelize问题集锦

    查询: 查询在指定时间范围内的所有数据 options.where.crawl_time = { $lt: new Date('2017-04-08 00:00:00'), $gt: new Date ...

  8. java多线程(6)---ThreadLocal

    ThreadLocal 什么是ThreadLocal? 顾名思义它是local variable(线程局部变量).它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可 ...

  9. A10映射方法

    #创建服务 slb server rs_10.90.6.95 10.90.6.95 port 5001 tcp slb server rs_10.90.6.96 10.90.6.96 port 500 ...

  10. 使用ML.NET实现NBA得分预测

    使用ML.NET实现NBA得分预测 导读:ML.NET系列文章 ML.NET已经发布了v0.2版本,新增了聚类训练器,执行性能进一步增强.本文将介绍一种特殊的回归--泊松回归,并以NBA比赛得分预测的 ...