草庐IT

SAP WM高阶之下架策略M(Small Large Quantity)

Suzhou BOY 2023-03-28 原文

SAP WM高阶之下架策略M(Small Large Quantity)

 

 

Part I:功能简述以及主数据设置

 

在SAP WM模块里,存储类型的下架策略M (Small/Large quantity included)是一个在SAP项目实践中不常用的策略。该策略的核心要义是:物料的库存存放在至少2个存储类型里,零散的小数量库存放在存储类型1里,而整托的大数量库存存放在存储类型2里。当业务人员下架的时候,SAP系统发现下架数量比较小,所以自动建议从存储类型1里下架,否则就从存储类型2里下架。

 

要想使用该下架策略,有如下三个要点:

1)相关存储类型的下架策略维护成M。

 


 

 

 


 

注意:在相关的storage type(005和Z03)的设置里都需要将stock removal strategy(下架策略)维护成M。

 

2)在Storage type search里,需要将相关存储类型维护进去,并且存放小数量库存的storage type放在前面,存放整托库存的storage type放在后面。


 

 

 

 

 


 


 

这里我们假定:小数量的库存放在005存储类型里,整托库存放在Z03存储类型里。

 

3)在物料主数据的WM 2视图里,需要在存放小数量的存储类型下维护Control Quantity字段值。SAP系统会比较此次下架的数量是大于还是小于这个control qty,如果是小于control qty,则系统自动建议从存放小数量库存的storage type下架,否则就会从存放大数量的storage type里下架。


 

 

 

 


 

 

在放置小数量库存的storage type 005里维护Control quantity字段值400EA .

 


 

 

在放置整托库存的存储类型Z03里不用维护control quantity。

 

 

 

Part II:下架策略M的功能展示

 

1, 现在物料781在存储类型005和Z03的库存数据。

 


 

批次号0000000467在005存储地有零散库存,在Z03存储区域有整托库存(500 EA/Pallet).

 

2, 执行事务代码MIGO做一笔201出库事务,数量小于物料主数据里维护的control quantity字段值。

 


 

出货数量是53。Batch #0000000467,

 


 

Post,系统转向LT06界面,如下图示:

 


 

回车,系统进入如下界面,

 


 

不做人工干预,直接保存,看系统的表现。

 


 

 

TO#82被创建。观察该TO的数据,

 


 

因为出库数量53小于control quantity,所以从005存储类型下架。这是符合预期的。

 

 

最新的库存数据如下:

 


 

物料781批次号0000000467在存储类型005和Z03都还有库存,如上图示。

 

 

3, 再次执行事务代码MIGO做一次201发货,数量是1000,批次号还是0000000467。

 


 

 

Post,系统转向LT06界面,如下图示:

 

 

回车,SAP系统进入如下界面,

 

 

还是不做人工干预,直接保存,系统转入如下界面,

 


 

 

系统能自动建议从Z03 storage type里下架了。输入货架15-02-02,

 

 

回车,系统转入如下界面,

 

对于余下的数量,继续输入另外一个货架15-02-03, 回车,

 

 

TO#83被创建了。如上图。

 

 

观察这个TO#83的数据,

 

 

 

当下架数量为1000的时候,系统自动定位到存放整托库存的storage type Z03,因为下架数量大于在物料主数据里维护的control quantity。这是符合我们的预期的。

 

这就是下架策略M的控制效果!

 

 

注:本文基于SAP S4/HANA 1909系统。

 

 

 

-完-

 

写于2022-3-16。

 

 

有关SAP WM高阶之下架策略M(Small Large Quantity)的更多相关文章

  1. python - 在 Ruby 中使用高阶函数 - 2

    在学习Python之后,我现在正在尝试学习Ruby,但我在将这段代码转换为Ruby时遇到了问题:defcompose1(f,g):"""Returnafunctionh,suchthath(x)=f(g(x))."""defh(x):returnf(g(x))returnh我必须使用block来翻译吗?或者Ruby中是否有类似的语法? 最佳答案 您可以使用Ruby中的lambda执行此操作(我在这里使用的是1.9stabby-lambda):compose=->(f,g){->(x){f.(g.(x))}}所以compose是一个返

  2. ruby-on-rails - 覆盖 Controller 中的 protect_from_forgery 策略 - 2

    我想使用两种不同的protect_from_forgery策略构建一个Rails应用程序:一种用于Web应用程序,一种用于API。在我的应用程序Controller中,我有这行代码:protect_from_forgerywith::exception为了防止CSRF攻击,它工作得很好。在我的API命名空间中,我创建了一个继承self的应用程序Controller的api_controller,它是API命名空间中所有其他Controller的父类,我将上面的代码更改为:protect_from_forgery:null_session.遗憾的是,我在尝试发出POST请求时遇到错误:“

  3. ruby - Ruby中的高阶迭代器? - 2

    我在阅读有关.each迭代器的Ruby问题,有人说如果更高阶的迭代器更适合该任务,则使用.each可能会产生代码味道。Ruby中的高阶迭代器是什么?编辑:我提到的StackOverflow答案的作者JörgWMittag提到他是要编写更高级别的迭代器,但他还解释了下面的内容。 最佳答案 哎呀。我的意思是更高级别的迭代器,而不是更高阶的迭代器。当然,每个迭代器都是高阶的。基本上,迭代是一个非常低级的概念。编程的目的是与团队中的其他利益相关者交流意图。“初始化一个空数组,然后遍历另一个数组,并将该数组的当前元素添加到第一个数组中(如果该

  4. 最强Http缓存策略之强缓存和协商缓存的详解与应用实例 - 2

    HTTP缓存是指浏览器或者代理服务器将已经请求过的资源保存到本地,以便下次请求时能够直接从缓存中获取资源,从而减少网络请求次数,提高网页的加载速度和用户体验。缓存分为强缓存和协商缓存两种模式。一.强缓存强缓存是指浏览器直接从本地缓存中获取资源,而不需要向web服务器发出网络请求。这是因为浏览器在第一次请求资源时,服务器会在响应头中添加相关缓存的响应头,以表明该资源的缓存策略。常见的强缓存响应头如下所述:Cache-ControlCache-Control响应头是用于控制强制缓存和协商缓存的缓存策略。该响应头中的指令如下:max-age:指定该资源在本地缓存的最长有效时间,以秒为单位。例如:Ca

  5. ruby - 使用 Ruby Net 实现重新连接策略 - 2

    我正在开发一个将XML发布到某些网络服务的小型应用程序。这是使用Net::HTTP::Post::Post完成的。但是,服务提供商建议使用重新连接。类似于:第一个请求失败->2秒后重试第二个请求失败->5秒后重试第三次请求失败->10秒后重试...这样做的好方法是什么?简单地在循环中运行以下代码,捕获异常并在一定时间后再次运行?或者还有其他聪明的方法吗?也许Net包甚至有一些我不知道的内置功能?url=URI.parse("http://some.host")request=Net::HTTP::Post.new(url.path)request.body=xmlrequest.con

  6. ruby - 解释这个原始文本 - 一种策略? - 2

    我有这个原始文本:________________________________________________________________________________________________________________________________PosCarCompetitor/TeamDriverVehicleCapCLLapsRace.TimeFastest...Lap16JasonClementsJasonClementsBMWM33200109:48.571030:57.3228*242DavidSkillenderDavidSkillenderHo

  7. ruby-on-rails - 创建自定义设计策略 - 2

    现在已经为此奋斗了一段时间,不确定为什么它不起作用。要点是希望将Devise与LDAP结合使用。除了身份验证外,我不需要做任何事情,所以除了自定义策略外,我不需要使用任何东西。我根据https://github.com/plataformatec/devise/wiki/How-To:-Authenticate-via-LDAP创建了一个据我所知,一切都应该正常工作,除了每当我尝试运行服务器(或rake路由)时,我得到一个NameErrorlib/devise/models.rb:88:in`const_get':uninitializedconstantDevise::Models:

  8. ruby-on-rails - 葡萄错误处理策略? - 2

    我正在使用Grape和Rails创建RESTAPI。我有基本的架构,我正在寻找“清理”东西的地方。其中一个地方是错误处理/处理。我目前正在为整个API修复root.rb(GRAPE::API基类)文件中的错误。我格式化它们,然后通过rack_response发回错误。一切正常,但root.rb文件变得有点臃肿,所有错误都被修复,其中一些有需要完成的特殊解析。我想知道是否有人制定了一个好的错误处理策略,以便可以将其移出到它自己的模块中,并使root.rb(GRAPE::API基类)相当精简。我很想创建一个错误处理模块并为每种类型的错误定义方法,例如...moduleAPImoduleEr

  9. ruby-on-rails - Ruby on Rails 和 Twitter OAuth 的测试策略 - 2

    我正在开发一个利用twitteroauth的应用程序,但在试图弄清楚如何测试twitteroauth时遇到了障碍。特别是尝试使用Cucumber和Webrat/Selenium来测试功能——注册/登录过程中的某些步骤在用户是否授予对应用程序的oauth访问权限等方面表现不同。有没有人在他们的RubyonRailsCucumber功能(或与此相关的任何其他测试框架)中成功模拟或stub部分或全部TwitterOAuth系统?任何帮助将不胜感激。 最佳答案 OP已经一年多了,但我最近发现这篇关于使用TwitterAuth和Cucumbe

  10. ruby-on-rails - 为自定义 omniauth 策略获取 "Authentication failure! invalid_credentials: OAuth2::Error" - 2

    目前我正在处理Rails4项目,现在我必须链接/连接另一个应用程序(不是sso,而是用于访问API),比如example.com。(注意example.com使用三足式oauth安全架构)搜索后发现必须要实现omniouth策略。为此我引用了this关联。根据Strategy-Contribution-Guide我能够完成设置和请求阶段,您可以在此处找到我的示例代码。require'multi_json'require'omniauth/strategies/oauth2'require'uri'moduleOmniAuthmoduleStrategiesclassMyAppStrat

随机推荐