SAP替代料测试
SAP软件替代料的业务场景及解决方案介绍
SAP软件替代料的业务场景及解决方案介绍在SAP/ERP生产计划模块(PP)实施中,大部分离散制造企业都会存在使用替代料的业务场景,每个公司替代料的业务需求场景可能不太一样,但一般主要有如下5种业务需求场景。
1.物料A用完之后,不会再进行采购,使用物料B替代。
2.物料A和物料B可以互相替代,但有优先级的设置,比如:物料A和物料B互为替代,按优先级的选择顺序,选择库存能100%满足的物料为优先耗用。
3.物料A和物料B可以互相替代,但要按一定比例关系使用,比如:物料A:80%,物料B:20%。
4.物料A和物料B可以互相替代,但有优先级,物料A用完或库存不足,才能用物料B。
5.物料A和物料B成组被物料C和物料D替代。
以上5点替代料的处理需求是离散型制造业中非常普遍的业务场景,对于这些需求,SAP/ERP系统有标准解决方案,下面通过例子在系统中具体演示下SAP 是如何处理这些替代的业务需求的。
1.物料A用完之后,不会再进行采购,使用物料B替代。
这种替代的处理方式比较简单,只需要在物料主数据MRP4视图中设置好替代关系(如下图)这个设置表示在日期2023.02.24(含)之后物料ROH-T0001的库存消耗完成后不再使用,由后继物料ROH-T0002取代。
可以开个工单验证下效果,工单数量60个,ROH-T0001还有50个库存,成品和组件比例是1:1,不考虑报废率,比如如下图。
ROH-T0001有50个库存,但在日期2023.02.24(含)之后创建的工单中可用发现,ROH-T0001库存消耗完后,由它的替代物料ROH-T0002替代。
2.物料A和物料B可以互相替代,但有优先级的设置,比如:物料A和物料B 互为替代,按优先级的选择顺序,选择库存能100%满足的物料为优先耗用。
这种替代的的业务需要在BOM中进行设置,具体设置如下图。
备注:同一组的所有替代物料的使用可能性加起来必须100%,不然可能影响到产品的标准成本的估算产品FERT-Z0001下有2个材料组件ROH-P0001和ROH-P0002,它们互为替代关系,在同一替代组Z1里面,使用策略2,使用可能性加起来100%,由优先级来决定先使用哪个物料,比如ROH-P0001优先级设置为1,ROH-P0002优先级设置为2。
sap物料移动计价测试步骤
sap物料移动计价测试步骤
进行SAP物料移动计价测试时,通常需要遵循以下步骤:
1. 确定测试环境,首先,确定要在哪个SAP系统中进行测试,
包括测试服务器的名称、版本和所需的访问权限。
2. 准备测试数据,创建测试所需的物料主数据、供应商信息、
采购订单、销售订单以及相关的库存记录等测试数据。
3. 确定测试场景,明确要测试的物料移动场景,例如从一个仓
库到另一个仓库的物料转移、物料的收货和发货过程等。
4. 创建测试用例,根据确定的测试场景,编写详细的测试用例,包括输入数据、预期结果和实际结果的对比等内容。
5. 执行测试用例,按照编写的测试用例,逐一执行物料移动的
测试操作,记录实际操作步骤和结果。
6. 检查和验证,在执行测试用例后,检查系统中的数据变化和
交易记录,验证实际结果是否与预期一致。
7. 记录测试结果,记录每个测试用例的执行结果,包括通过、失败或者需要进一步调查的情况。
8. 编写测试报告,根据测试结果,编写测试报告,总结测试过程中遇到的问题、解决方案和改进建议。
9. 提交问题和跟踪,如果在测试过程中发现了问题,及时向相关人员提交问题,并跟踪问题的解决进度。
10. 完成测试,在所有测试用例都执行完毕并确认结果准确无误后,可以认为物料移动计价测试完成。
以上是进行SAP物料移动计价测试时的一般步骤,通过严格执行这些步骤,可以确保测试的全面性和准确性。
SAP替代料测试
SAP替代料测试SAP替代料测试情况根据前段时间的学习和测试,找到SAP系统中替代料和后继物料相关的前台配置主要有以下几种情况:1、物料主数据中“后继的物料”字段用MM02进入MRP4视图,维护“非连续标识”为“1”,“后继的物料”为将要取代的物料,如图-1所示:图-1 物料主数据中后继物料的设置注意:非连续标识不能为空,否则MRP运行的时候不考虑,后继设置无效!此为针对工厂级别物料的后继设置,属于全局变量,在同一工厂所有的BOM 中,都生效。
顺便提一下,在历史的后继物料维护申请中,一共有3个料进行过维护:(1)2008.04.07(2100工厂,旧料库存24.6K)物料:1001200008 后继料:1001200012(错维护到了2000工厂,非连续标识为空)(2)2008.05.22(2100工厂,旧料库存21K)物料:1005200154 后继料:1005200197(系统中未维护)(3)2008.06.17(2100工厂,旧料库存21K)物料:1005200153 后继料:1005200196(非连续标识为空)以上3个料,如果运行MRP,都会有问题,都不会实现物料的终止并被后继物料所取代。
注:“非连续标识”处维护1-单一/平行中断物料,维护3-相关平行不连续物料。
(1一般用于单个物料的后继,即A用完后切至B;3一般用于配套后继,如A与C同在一个BOM中,当A用完后切换至B,同时C立即切换至D,而不管C是否还有库存.这种情况下A维护成1,B维护成3.)维护成品9080010063的独立需求,如图-2所示:图-2 维护成品的独立需求分别用MMBE查看终止料1003200026和后继料1003200027的库存情况,结果为1003200026库存为非限制状态230EA,1003200027库存非限制状态2000EA。
如图-3所示为MMBE查询1003200026的结果:图-3 MMBE查询BOM组件的库存数量执行MD02-单项多层运行MRP,如图-4所示:取代”的例外信息,缺的4870EA由1003200027替代。
替代物料操作详解
替代物料操作详解SAP中的替代物料有好几种,比如生产订单中A物料用完之后系统自动切换到B物料,或者A物料用30%,B物料用70%,至到A物料用完再用B物料.从大类上来分还可以分为平行切换和非平行切换两种.我们公司比较常用的就是平行切换,即A物料用完之后系统自动切换到B物料,B用完之后系统自动切换到C,但需要注意的是系统中认为A还是最适用的物料,即A,B,C都无库存的时候,MRP会跑出A的需求.所以个人建议在A,B物料长久不用的情况下,直接用BOM的更改编号,生效时间等来控制比较好.现在我将SAP系统中这种切换的设置详细说明一下.方法一:事务代码:MM02 MRP4视图非连续标识:1后继的物料:如果这个物料为A,那么MM02定义的后继物料为B.则系统中A的库存为0的时候生产订单在物料可用性检查之后会自动切换到B.注意点:1.此方法只适用于A,B两种物料替换的情况,三种及三种以上物料替换此方法不可用.2.如果在BOM中A,B的用量是相等的,那么只需要以上的设置即可,但是如果A,B的用量不相等,例如A用2个,B用3个的话,还需要在BOM中做设置,具体方法就不介绍了,因为如果是这样的话,建议直接用第二种方法更简单.方法二:(1)事务代码:CS02所有需要替代的物料均需要添加到BOM中,例如:0020 R11007345 3pc0030 R11007028 3pc0040 R11007344 3pcR11007345用完了用R11007028, R11007028用完了就用R11007344.(2)逐个双击这三个物料的行项目,进入以下界面.替代物料组任一输入一个名字,例如A.点击替代项目组旁边的蓝色小箭头,弹出以下对话框:对于此例,可以设置:项目行物料号优先级策略使用可能性0020 R11007345 1 2 空0030 R11007028 2 2 空0040 R11007344 3 2 空即可实现R11007345用完了用R11007028, R11007028用完了就用R11007344的设置.注意点:1.此方法的适用面比较广,可以实现多个物料替代的问题.2.替代物料必须在生产订单下达的时候按物料可用性检查的时候才会实现替换.。
sap替代方式说明
SAP中BOM组件替代方式:1、当物料A用完后(即库存数量为0),对于物料A将永远不再使用,且使用物料B替代物料A;2。
、在某个产品中,在某个日期后,当物料A不够时,才使用物料B,该日期之前物料A 不够用,只对物料A产生需求;3、多种物料之间存在用完为止的替代关系,且存在较明显的优先级关系,替换料用量可不一致;需由物料计划部门控制替代料的优先级。
4、多种物料之间存在替代关系,用量可不一致,各替代物料间无明显优先级关系,需按一定比率将需求传递到各替代组件;需有物料计划部门控制替代料使用可能性。
5、匹套替换,A与A1配套,B与B1配套,当A不够时,由B进行替代,此时A1也必须由B1替代,即B+B1替代A+A1;(注意:只有在执行可用性检查后,才可触发替代)BOM组件替代实现方式:一、替代需求:当物料A用完后,即库存数量为0,将永远不再使用,且使用物料B替代物料A;适用范围:两种物料之间存在替代关系,且用量相等,用完替代。
影响范围:所有BOM中该组件A用完时,都将被物料B替换业务场景:用完替代,物料A用完之后才使用B物料(系统执行可用性检查,当A用完后系统才考虑B物料库存,当两者库存总量无法满足需求时,系统将给出物料B缺料提醒)实现方式与测试:1.建立物料A与物料B之间的替代关系,MM02 MRP4视图字段必填/可选输入值说明非连续标识必填 1生效期不填后继物料必填1000000702 替换料编码2.替换测试:CO01 创建生产订单(生产订单30PC,物料A库存为10PC,物料B库存为10PC);,系统给出物料B缺料10PC提醒CO11N 完工确认注意:此方法只适用于两种物料用完替代,且A、B物料用量相等。
二、替代需求:在某个产品中,在某一日期后,如果物料A不够时,用完物料A后,使用物料B,在该日期之前物料A不够用仍然对物料A产生需求。
适用范围:两种物料之间存在替代关系,且用量相等,在某一日期后该替代关系生效。
SAP有关物料替代详解手册
替代,这个一万家企业估计就有二万家企业需用到的名词,可见其重要性,而根据本人之经验, 大概可以分为以下三种替代形式,我想这应该是关于 SAP 替代或取代的最完整的文档。
1. A物料也B物料可以互相替代,但是由物料计划部门自由控制使用物料A还是使用物料B2. 在某个产品中,当物料 A不够时,才用物料 B3. 当物料 A用完后,将永远不再用物料 B本人就从 SAP ERP 软件的角度去介绍一下这三种方式的实现对于第一种,是 SAP 中最容易实现的,也是用得最多的一种,参见以下如存在以上 BOM, 假设 KT_RAW_00 与 KT_RAW_01 是替代关系,并且对两个物料设定如 下:进入 ITEM Detail你会发现这里存在一个 AltItemGroup当我们想对某些物料设定替代时,首先需要让这些物料成为一组,这样 SAP 才能判断是那些物料可以互相替代,假设我们用00 做为GROUP 吧.所以在 AltItemGroup中输入 00,然后回车将会弹出以上画面在此画面中的 Strategy一个重要的设定,此 FIELD 中有两个设定1 Manual maintenance/by usage probability2 100% check我们所讲的第一次情况就是选择这里的, 当strategy选择为1(表示按Usage Prob.来决定使用 谁)的时候,Priority则不起做用而 Usage prob. 则表示使用的百分比,如我们例子: KT_RAW_00 为主料,KT_RAW_01 为辅料, 即在正常情况下是用KT_RAW_00,但是生产计划部门可以把此更改为 KT_RAW_01,KT_RAW_00 设定如下:Usage Prob. 表示使用 100%KT_RAW_01 的设定首先也需把 AltItemGroup设定为 00 ,并且使用范围为0%也许这样设定后,会有以下提示但不理会此提示,直接回车.然后 SA VE BOM此时,如果你建立一张 production order 则会表现如下:如此 Order Qty = 20 PC你可以从中发现, KT_RAW_00的使用量是20PC (计算方法是此物料的使用量 20PC * 100%, 这个 100%就是来自于 BOM中的 Usage Prob. )而 KT_RAW_01 的使用量则为 0 PC(计算方法是此物料的使用量 20PC * 0%,这个 0%就是来 自于 BOM 中的 Usage Prob.)如果你想更改他们的 Usage Prob. ,则可进入此 ITEM 的 Detail可以直接更改上图中的 usage prob,如假设为 70%, 另外把 KT_RAW_01 中的 USAGE PROB 改为 30% ,如下图再返回,则可看出14 = 20 * 70%6 = 20 * 30%对于第二种,我想应该是最多很想实现,却又发现并不如意的一种,演示如下: 在第一种的设定画面中需要使用 Strategy = 2 的策略,即表示是使用 Priority 的方式来处理如各设定如下:KT_RAW_00 设定KT_RAW_01 的设定如下:此两图则表示: 正常情况吓是使用 Priority = 1 的,如果他做 ATP 检查后,不够的话,则用 Priority =2 之物料,(当然,如果 Priority = 2 的物料也不够的话,则仍然会用 Priority = 1 的物料)如 KT_RAW_00 的库存如下:KT_RAW_00 在仓位 0001 中有 20PCKT_RAW_01 在仓位 0001 中有 40PC如建立 production order , qty = 20 pc这要或许看不到功能,因为KT_RAW_00的库存是够的,此时你对这些物料做下A TP.即点一下此按钮结果没变,因为 KT_RAW_00 库存足够,如果我们把生产订单更改成 21PC,试试效果.那么这里也会出现KT_RAW_00 = 21 PC,那么我们再做一下 A TP 试试.会发现 KT_RAW_00 的需求为 0 了,原因是因为此物料的库存只有 20PC,但我们需要 21PC, 所以他不能满足 ATP 需求,因此系统去找 PRIORITY = 2 的物料 KT_RAW_01 ,而 KT_RAW_01 的库存是 40PC,可以满足 21PC,所以需求将会转给KT_RAW_01那假设把ORDERY QTY = 51 (让 KT_RAW_01 的 40PC 的库存也不能满足)做下 A TP 试试,结果仍然是这样结果看似一样,但实际上经过了以下二个步骤1. 检查KT_RAW_00的元素(A TP设定)是否可以满足,发现不能,则去寻找 PRIORITY =2 的物料2. 用 KT_RAW_01 的元素(A TP 设定)去检查是否可以满足,发现不能,则只能把需求还原到PRIORITY =1 的物料即 KT_RAW_00对于第三种,略带点技术性,其一般不叫替代(Alternative),而叫取代(Discontinues)对此的设定不在 BOM中做任何设定,而是在 MRP VIEW 中设定相应的资料BOM 只有 KT_RAW_00 物料,而不需要KT_RAW_01 物料以上设定,在2007 年 11月 2 号后, 如果 KT_RAW_00库存不够的话,则用KT_RAW_01库存如上.KT_RAW_00 库存为 20PCKT_RAW_01 库存为 40PC如果此时建立 production order如 Order Qty = 20 PC虽然在 BOM 中只有 KT_RAW_00,但是在 Production order components 中却会发现 KT_RAW_01,这是 SAP 告诉你,KT_RAW_00 将会被 KT_RAW_01 取代,请看上图中红色的字 眼.如果把 ORDER QTY = 21 PC当你刚建立的时候,KT_RAW_00 仍然是 21PC,但是,如果你做一下 A TP,则会发现SAP 会自动地把 KT_RAW_00 变为 20PC(因为他的库存只有 20PC),而剩下的 1PC,则会 自动给 KT_RAW_01而对于 discontinues,还有一种情况,即某些物料本身就是配套的,如 L98 与 R98 这两个物 料是对称的,如果你想当 L98 不用的时候,用 L99取代,那把 R98也会被 R99取代。
SAP替代物料及取代物料资料
替代,大概可以分为以下三种替代形式,1. A物料也B物料可以互相替代,但是由物料计划部门自由控制使用物料A还是使用物料B2. 在某个产品中,当物料A不够时,才用物料B3. 当物料A用完后,将永远不再用物料B对于第一种,是SAP中最容易实现的,也是用得最多的一种,参见以下如存在以上BOM, 假设KT_RAW_00 与 KT_RAW_01 是替代关系,并且对两个物料设定如下:进入ITEM Detail你会发现这里存在一个AltItemGroup当我们想对某些物料设定替代时,首先需要让这些物料成为一组,这样SAP才能判断是那些物料可以互相替代,假设我们用00做为GROUP吧.所以在AltItemGroup中输入00,然后回车将会弹出以上画面在此画面中的Strategy一个重要的设定,此FIELD中有两个设定1 Manual maintenance/by usage probability2 100% check我们所讲的第一次情况就是选择这里的, 当strategy选择为1(表示按Usage Prob.来决定使用谁)的时候,Priority则不起做用而Usage prob. 则表示使用的百分比,如我们例子: KT_RAW_00为主料,KT_RAW_01为辅料,即在正常情况下是用KT_RAW_00, 但是生产计划部门可以把此更改为KT_RAW_01,KT_RAW_00设定如下:Usage Prob. 表示使用100%KT_RAW_01的设定首先也需把AltItemGroup设定为00 ,并且使用范围为0%也许这样设定后,会有以下提示但不理会此提示,直接回车.然后SAVE BOM此时,如果你建立一张production order则会表现如下:如此Order Qty = 20 PC你可以从中发现, KT_RAW_00的使用量是20PC (计算方法是此物料的使用量 20PC * 100%,这个100%就是来自于BOM中的Usage Prob. )而KT_RAW_01的使用量则为0 PC(计算方法是此物料的使用量 20PC * 0%,这个0%就是来自于BOM中的Usage Prob.)如果你想更改他们的Usage Prob. ,则可进入此ITEM的Detail可以直接更改上图中的usage prob,如假设为70%, 另外把KT_RAW_01中的USAGE PROB改为30% ,如下图再返回,则可看出14 = 20 * 70%6 = 20 * 30%对于第二种,我想应该是最多很想实现,却又发现并不如意的一种,演示如下: 在第一种的设定画面中需要使用Strategy = 2的策略,即表示是使用Priority 的方式来处理如各设定如下:KT_RAW_00设定KT_RAW_01的设定如下:此两图则表示: 正常情况吓是使用Priority = 1的,如果他做ATP检查后,不够的话,则用Priority =2 之物料,(当然,如果Priority = 2的物料也不够的话,则仍然会用Priority = 1的物料)如KT_RAW_00的库存如下:KT_RAW_00在仓位0001中有20PCKT_RAW_01在仓位0001中有40PC如建立production order , qty = 20 pc这要或许看不到功能,因为KT_RAW_00的库存是够的,此时你对这些物料做下ATP.即点一下此按钮结果没变,因为KT_RAW_00库存足够,如果我们把生产订单更改成21PC,试试效果.那么这里也会出现KT_RAW_00 = 21 PC,那么我们再做一下ATP试试.会发现KT_RAW_00的需求为0了,原因是因为此物料的库存只有20PC,但我们需要21PC,所以他不能满足ATP需求,因此系统去找PRIORITY = 2的物料KT_RAW_01 ,而KT_RAW_01的库存是40PC,可以满足21PC,所以需求将会转给KT_RAW_01那假设把ORDERY QTY = 51 (让KT_RAW_01的40PC的库存也不能满足)做下ATP试试,结果仍然是这样结果看似一样,但实际上经过了以下二个步骤1. 检查KT_RAW_00的元素(ATP设定)是否可以满足,发现不能,则去寻找 PRIORITY =2 的物料2. 用KT_RAW_01的元素(ATP设定)去检查是否可以满足,发现不能,则只能把需求还原到PRIORITY =1的物料即KT_RAW_00对于第三种,略带点技术性,其一般不叫替代(Alternative),而叫取代(Discontinues)对此的设定不在BOM中做任何设定,而是在MRP VIEW中设定相应的资料BOM只有KT_RAW_00物料,而不需要KT_RAW_01物料以上设定,在2007年11月2号后, 如果KT_RAW_00库存不够的话,则用KT_RAW_01库存如上.KT_RAW_00库存为20PCKT_RAW_01库存为40PC如果此时建立production order如Order Qty = 20 PC虽然在BOM中只有KT_RAW_00,但是在Production order components中却会发现KT_RAW_01,这是SAP告诉你,KT_RAW_00将会被KT_RAW_01取代,请看上图中红色的字眼.如果把ORDER QTY = 21 PC当你刚建立的时候,KT_RAW_00仍然是21PC,但是,如果你做一下ATP,则会发现SAP会自动地把KT_RAW_00变为20PC(因为他的库存只有20PC),而剩下的1PC,则会自动给KT_RAW_01而对于discontinues,还有一种情况,即某些物料本身就是配套的,如L98与R98这两个物料是对称的,如果你想当L98 不用的时候,用L99取代,那把R98也会被R99取代。
SAP 案例详解-物料替代与取代
物料的替代与取代2019-01-24目录1、概览2、物料取代3、物料替代4、总结物料A物料B p替代物料介绍定义:在生产过程中,某物料在被另外一种物料所代替。
类别描述特征影响因素 物料取代A料在某一时刻弃用,换成B料,非A即B永久性替代,一刀切•技术升级•成本降低•供应商•国家政策•客户要求物料替代A料不够用,B料作为补充,A与B可以共存暂时性替代,长期共存u 解决物料供应不稳定u 分散用料风险,避免因物料不足导致生产中断u 技术改进u 降低成本Ø替代料对公司经营意义注:物料取代和替代广义上都归类为“替代料”目录1、概览2、物料取代3、物料替代4、总结u Case1:物料单一且唯一取代(常见取代)u Case2:物料成组配套取代(配套取代)u Case3:单一但不唯一取代(混合取代)X 集成电路板A 类型插槽Y 集成电路板B 类型插槽D类型芯片C 类型插槽C 类型芯片D 类型插槽C 类型插槽A 类型插槽某成品由原料A组成,从某时刻开始供应新的C原料来取代A原料某成品由原料A和C组成,因A和C需要同一家供应商或质量要求,A被取代的同时,也要将C取代某原料用在不同的成品中,且在不同产品中被不同的原料所取代背景:成品X由原料A加工而成,因A供应商升级产品,从某时刻开始供应新原料B来取代A。
功能:实现为防止在某时刻有A原料浪费,在A库存够时优先用A,A不够时再用B补充。
成品原料类型库存X A被取代料100 B取代A料50u成品X的生产订单需求数量99,A、B库存均满足u成品X的生产订单需求数量101,A库存不满足u成品X的生产订单需求数量151 ,A和B库存均不满足A消耗:99,剩余1;B消耗:0A消耗:100;B消耗:1,剩余49A消耗:100;B消耗:50,提醒B短缺1物料消耗逻辑:场景:建1个成品X的生产订单,需要1个A,或1个B,库存具体如下2.1、单一取代-系统演示以成品需求101为例,系统检查物料可用性,因A物料库存100不够,将多出的1需求自动分配给物料B三个物料:X成品、A原料(被取代)、B原料(取代A)。
SAP-SAP资料:成品替代
同一产品类型
xx.xxJKxx.xxx xx.xxGUxx.xxx
可指定特定码号的替代原则
成品替代群组
只能找顺序前面的 料号替代
出货时成品替代
新增成品替代 料号
勾选多仓位料 出货
SAP平台扩展
SAP问答: SAP培训:
当使用双单位时不做成品替代销售系统参数axms100出货单维护多仓位出货axmt620产品替代原则axmi122成品替代流程产品替代群组axmi123成品替代原则同一产品类型xxxxjkxxxxxxxxxguxxxxx可指定特定码号的替代原则成品替代群组同一替代群组b029999003成品替代原则同一产品类型xxxxjkxxxxxxxxxguxxxxx可指定特定码号的替代原则成品替代群组只能找顺序前面的料号替代出货时成品替代新增成品替代
成品替代目的
目的: 针对某些产业,需在出货时,若该料件库存不足, 出货人员可依成品替代原则或群组,建议另一有库存的 成品料件出货
更改方式: 利用原多仓位出货功能,录入替代料号 注意事项:
1.出货时的成品替代,只处理库存扣帐问题. 所有单据,仍依原订单料号呈现. 2.原则上, 成品替代的替代率为1:1. 不做QPA换算 3.替代料的单价,取原订单单价. 若替代的料号单价差异太大,建议用订单变更处理 4.当使用双单位时,不做成品替代
成品替代流程
销售系统参数
axms100
产品替代原则
axmi122
产品替代群组
axmi123
出货单维护 (多仓位出货)
axmt620
成品替代原则
同一产品类型
xx.xxJKxx.xxx xx.xxGUxx.xxx
可指定特定码号的替代原则
成品替代群组
SAPPP替代物料ByOliviaWang
SAPPP替代物料ByOliviaWang替代物料替代物料在生产管理中的物料自动替代;基于一下原因或者目的:分散风险,避免本企业的生产因外部供应的意外中断而迫使停产促进外部竞争,迫使供应商提高品质,降低成本,改善交货与服务经常采取一个物料由不同的供应商提供的措施不同目标客户对于品质的要求不同降低成本而采用新的材质,规格型号的物料工程更改1.设置替代关系注意事项:1.替代关系是单项的;2.一个物料可以同时被几个物料代替;“1”是最高优先级;3.如果被替代物料的属性“MRP计算是否合并需求”为“是”,则在定义物料替代关系时“适用BOM代码”处一定要为空,不能填入BOM代码,否则不能进行物料自动替代。
因为i饿这种情况下,需求是多个来源合并产生的,不同的来源可能是不同的BOM引起的,系统无法判断的是否应该替代;反之如果该被替代物料的属性“MRP计算是否合并需求”为“否”,则如果选择“适用BOM代码”,则系统将对指定的BOM中对应的物料进行替换,如果不选择“适用BOM代码”,则会进行物料替代。
2.替代物料操作平行切换:既A物料用完之后使用B物料,B物料用完之后在使用C物料,但是需要值得注意的是A还是最合适的物料,也就是说当ABC都没有库存的时候,MRP会抛出A的需求,所以简易在AB长久不使用的情况下,直接用BOM的更改编号,生效时间等来控制较好。
方法一:操作:方法二实例:(这个是完全用B代替A的情况)1.cs02设置R_0726_X_A 优先级为1然后设置一个R_7026_X_B 优先级为2保存。
如果说我们的替代关系是1个R_0726_X_A = 2个R_0726_X_B 的话,设置如图所示。
关于可用使用性的问题:注意替代组X中的组件的使用可能性之和应该等于100%,如果不为100%SAP在做生产订单的时候也会将其按比例进行计算。
此时,如果你建立一张生产订单,生产订单数量为1KG,BOM为SFET1= A(100)/B(0)则:A的需求数量= A的使用量* BOM中的使用可能性= 1 * 100% = 1.B的需求数量= B的使用量* BOM中的使用可能性= 1 * 0% = 0.如A为50%,B为25%则在生产订单中A的使用量与B的使用量按使用可能性的比例关系进行计算:A的需求数量= A的使用量* A在BOM中的使用可能性/(A在BOM中的使用可能性+B在BOM中的使用可能性)= 1 * 50% / (50% + 25%) = 0.667.B的需求数量= B的使用量*B在BOM中的使用可能性/(A在BOM中的使用可能性+B在BOM中的使用可能性)= 1 * 25% / (50% + 25%) = 0.334.当然在组件的明细界面里可更改它们的使用可能性:如我这里将A的使用可能性改成45, B的使用可能性改成55:再返回,则可看出0.45 = 1 * 45%0.55 = 1 * 55%以上说的呢都是两种物料都用的情况!只是百分比不一样!实例:组件的需求因为我们设置的属性是20*20%=4 kg20*30%=6 kg这里有个错误,就是优先级就不用设置了,这样就可以控制比例了。
SAP PP 并行工序和替代工序功能介绍及测试
SAP PP并行工序和替代工序功能介绍及测试概念介绍并行工序(Parallel sequence):并行的意思就是同时进行互不影响,例如下图,在进行工序80 ,90 ,时,还有一个另外的生产工序在进行70,80,这两部分工序同时进行互不影响互不影响。
使用业务场景:比如:假如生产线有OPR10至OPR100的工序, 但至OPR70 后,需要两工序并行,比如(OPR80 ,OPR90 )和(OPR70 ,OPR80 ),两并行工序完成后再进行OPR100,这样场景在业务中经常使用到,比如组装电视,汽车等产品替代工序(Aternative sequence):在工序(routing)中,会有一个标准的Operation 顺序(比如如下图OPR10至OPR100),我们也可以使用替代的顺序,把其中的一部分工序替换掉。
比如如下(OPR10,OPR20),被(OPR10 ,OPR15 ,OPR20)。
使用业务场景:比如:假如生产线有OPR10至OPR100的标准工序,其中(OPR10,OPR20):适用大量生产,比如生产量大于10000,这时使用机器生产成本效益更好,而替代工序(OPR10 ,OPR15 ,OPR20):适用小批量生产,可能是人工生产的工序,如果小批量生产使用人工,可能成本上效益更好。
替代工序在开生产订单时候,可以通过配置,选择由人工选择或通过生产版本和生产批量来进行自动控制,自动带出合适的生产工序。
功能测试1.创建产品T-F102 的标准工序,并行工序和替代工序输入如下回车通过CA02 进入工序修改画面回车分工序:从标准工序那个工序开始进行替代,如果不输入,表示从标准第一个工序开始,比如本例从OPR 10 开始返回工序:替代工序完成后,应该回到标准工序的那个工序后,比如本例OPR 20 表示替代工序将替代标准工序的OPR 10 和OPR 20从批量、到批量:可以从生产批量大小来控制选择不同的替代工序。
SAP系统_替代的分类
替代的分类:1.b代替a,a物料消亡,b物料在公司中全面替代。
T-code CS202.b代替a,a物料用在其它用途,b物料部分替代,二者并存3.B暂时代替a,a物料随时会王者归来第一种是最标准的替代流程,也是最好对付的,我也不用多说。
存在的问题只有在交替时存在根据公司的不同流程有两个选择:平滑替代和非连续替代。
平滑替代针对的物料表示a、b两个东西基本一致,完全可以混用,可以通过系统自动计算替代。
但a、b差异较大的时候你还用系统自动设置,嘿嘿,搞不好要被老板骂。
比如某个订单要150个,a实际只有100个了,于是按系统自动设置,run出a100、b50的生产订单,a是一个画着花的盒子,b是一个画着鱼的盒子,my god,你用在了一个订单上,惨了!所以这种时候是非连续的替代。
非连续的替代只通过系统是没有办法的,原因是它不是系统内的标准流程,更重要的是:在交替的时候往往需要一个人工判断,这个是系统无法替你办到的,这时候你需要判断是在这个订单中继续用a,补充采购?完全用b,另行处理a?a、b并存?这恐怕只有计划员才好判断,因此需要一个与系统结合的流程进行处理。
基本实现介绍:1.设置a物料状态为只消耗不采购,此时BOM不动,里边仍然是a物料。
(将A物料主数据中的采购视图中的物料状态选2)2.设置警示库存,在a的主数据里头放个安全库存之类的东西就行了,实际上因为设了物料安全库存下降到了一定水平后,警示用的,因为我们需要有一个提前期用来买b,我们需要足够的时间。
(将a 主数据中的安全库存设置好)3.当a有订单用,且库存消减到警示库存时,会产生采购申请,因为物料状态的缘故当然采购员是转化不了的,这个信息将反馈到计划或数据那边,这时候人工判断就来了。
“继续用a,补充采购?完全用b,另行处理a?a、b并存”。
判断后确定“更改组件清单?还是更改物料状态?还是更改bom,重新mrp?”(T-CODE CO02 OR MM02 OR MD02 )4.搞定。
Ker-02 SAP 替代物料方案简介
普通替代-100%检查替代
1. 在BOM中维护替代相关的数据
2. 各替代件需要在BOM Item中使用共同的替代组 (Alternative Item Group), 如A1. 每个组件需要维护 替代组相关数据,见下条所列. 3. 替代组中的数据维护 1) 优先级: 数字越小代表优先级越高,主数据的优先级一般设 为1,其他替代物料依次增加。 2) 替代策略Strategy: 选择2 100% check 3) 使用百分比: 主物料为 100( 单位为%),其余替代物 料设为0. 4. 注意: MRP仅根据各组件的使用百分比运算需求, 即 MRP时不进行任何替代, 仅在工单创建时根据设定的 可用性检查决定是否替代
SAP替代物料方案简介
Kerbin Wu kerbinwu@
物料替代类型
方案 使用业务场景 方案特点
类型一 永久替代 (Discontinuation)
在整个工厂范围内,A 物料被B物料全面替代。 该方案作为组件替换的过渡阶 但A物料当前库存还是 段,目的是最大程度的利用旧 可用,替代仅发生在A 物料库存,减少呆滞库存。旧 物料库存消耗完之后。 物料库存优先是重要特点。 一般是因为设计或者成 在过渡阶段后,需要更新BOM. 本因素造成的物料变更。
4. 注意: MRP仅根据各组件的使用百分比运算需求, 即 MRP时不进行任何替代, 仅在工单创建时根据设定的 可用性检查决定是否替代
各类型的主要区别
项目 永久替代(后继物料) 100%检查 特定的产品中 工单创建和 可用性检查 手工确定百分比 特定的产品中 工单创建和 可用性检查
替代 范围
整个工厂范围
3. Effective-out date (失效日期) A物料预计失效日期 1)需求时间在此日期之前,如有需求不能由库存满足,则需求 默认还是由A满足 2)需求日期在此日期之后,如有需求不能由库存满足,则MRP 将自动将需求转移到B,由B满足.料) 填入用来替代的后继物料B
SAP BOM替代料问题
SAP BOM替代料問題1.SAP BOM替代料無論用何策略,在Run MRP時,物料需求計劃都是按用戶設定的百分比來計算所需原料,但是會影響生産工單的建立;2.SAP BOM替代料有二種策略,策略1:在該策略下,生産工單在産生時,所需原料數量是按用戶設定的百分比來確定,例如,BOM中有可選物料群組AA,有三個物料組成,A 30%,B 30%,C 40%,那麽當銷售訂單需要100個時,在産生工單時,不會考慮物料ABC的庫存,工單內的物料需求量固定為A 30個,B 30個,C 40個;3.策略2:在該策略下,生産工單在産生時, 所需原料數量是按用戶設定的優先級,逐個物料檢測,當有物料百分百滿足需求時,則使用該物料,其他物料不在考慮,當所有物料都不滿足需求時,則按用戶設定的百分比來確定, 例如,BOM中有可選物料群組AA,有三個物料組成,A 優先級為1 30%, B 優先級為2 30%, C 優先級為3 40%,那麽當銷售訂單需要100個時,在産生工單時,如果此時A庫存為30個,B庫存為30個,C庫存為200個,則系統會先查看A庫存,庫存不足,則查看B庫存,也庫存不足,再查看C庫存,因為C庫存可以滿足需求,所以最終物料用量為A 0個,B 0個,C 100個; 如果此時A庫存為30個,B庫存為20個,C庫存為50個, 最終物料用量為A 30個,B 30個,C 40個,雖然C有50個,但系統還是會按設定的百分比計算數量;4.以上情況中,在跑物料需求計劃MRP時,三種物料的需求量都是一樣的,A 30個,B 30個,C 40個,在工單産生數量後也都可以手工更改更物料的實際使用值綜上所述,在SAP中無法做到替代料在跑MRP時,就參照物料庫存去選擇用料,也無法做到用完A後,用B,用完B後再用C(該功能可以在物料主檔的MRP4中通過設定實現,但這是建立在物料A庫存用完後,料號A就不在使用的情形,與本公司情況也是不一至的),具體使用何種策略,建議使用部門與資訊部討論後再確定.。
SAP替代料测试精编版
SAP替代料测试情况根据前段时间的学习和测试,找到SAP系统中替代料和后继物料相关的前台配置主要有以下几种情况:1、物料主数据中“后继的物料”字段用MM02进入MRP4视图,维护“非连续标识”为“1”,“后继的物料”为将要取代的物料,如图-1所示:图-1 物料主数据中后继物料的设置注意:非连续标识不能为空,否则MRP运行的时候不考虑,后继设置无效!此为针对工厂级别物料的后继设置,属于全局变量,在同一工厂所有的BOM 中,都生效。
顺便提一下,在历史的后继物料维护申请中,一共有3个料进行过维护:(1)2008.04.07(2100工厂,旧料库存24.6K)物料:1001200008 后继料:1001200012(错维护到了2000工厂,非连续标识为空)(2)2008.05.22(2100工厂,旧料库存21K)物料:1005200154 后继料:1005200197(系统中未维护)(3)2008.06.17(2100工厂,旧料库存21K)物料:1005200153 后继料:1005200196(非连续标识为空)以上3个料,如果运行MRP,都会有问题,都不会实现物料的终止并被后继物料所取代。
注:“非连续标识”处维护1-单一/平行中断物料,维护3-相关平行不连续物料。
(1一般用于单个物料的后继,即A用完后切至B;3一般用于配套后继,如A与C同在一个BOM中,当A用完后切换至B,同时C立即切换至D,而不管C是否还有库存.这种情况下A维护成1,B维护成3.)维护成品9080010063的独立需求,如图-2所示:图-2 维护成品的独立需求分别用MMBE查看终止料1003200026和后继料1003200027的库存情况,结果为1003200026库存为非限制状态230EA,1003200027库存非限制状态2000EA。
如图-3所示为MMBE查询1003200026的结果:图-3 MMBE查询BOM组件的库存数量执行MD02-单项多层运行MRP,如图-4所示:图-4 MD02运行MRP然后执行MD04查看运行后结果,库存需求清单,如图-5所示:图-5 MD04查看终止料1003200026的库存/需求清单图-6 MD04查看终止料1003200027的库存/需求清单结论:主数据中的后继物料起到了作用,成功的实现了新旧物料的取代。
SAP的校验和替代(validations and substitutions)
I. Creating, activating and transporting validations and substitutions1. Which transactions are required to use validation or substitution functions?GGB0 Validation MaintenanceGGB1 Substitution MaintenanceGCVZ Rule MaintenanceGGB4 Action selection for validation/substitution, for example, activation of application areas, use of all messages or substituted fieldsGCX2 Definition of the Includes for user exitsOB28 Activation of FI validationsOBBH Activation of FI substitutionsOBBZ Activation of cost of sales accounting substitution (in the FI area)OKC7 Activation of CO validationsOKC9 Activation of CO substitutionsGCT9 Transport: ValidationsGCT0 Transport: Substitutions2. What must I take into account when using the formula editor?a) Validation GGB0If you create the first validation for a callup point(调用点), for example 'financial accounting - document header', you have to define a message class. This is then valid for ALL validations for this callup point.Not all fields can be used for validations on certain callup points, for example'Complete document in FI'. This is because there are several rows there and it is not clear on which row the check is to be carried out. You can only use numeric fields here. (Note 413956)You should use a user exit if you need more checks on this callup point.b) Substitution GGB1If you create a substitution, for example 'financial accounting document line item', only certain fields are authorized for the substitution. This is because problems can occur with the documents or inconsistencies can occur between different applications.You can release more fields for substitution but this can be critical as serious problems can occur as a result.This is why you should regard the following change as a modification (Note 170183):The GB01 table contains information about which table fields can or cannot be substituted for which callup point.You can make a field substitutable by changing the BEXCLUDE field to ' '.For example: 'Complete document' callup point in the FIIn accordance with the default, no field is released for substitution on this callup point. You can see this in the following entries:BOOLCLASS CLASSTYPE BCLTAB BCLFIELD BEXCLUDE015 S BKPF * X015 S BSEG * XBOOLCLASS - Specifies the Boolean class. This is determined in the application area and callup point in each case, for example:008 - Document header (FI)009 - Line item (FI)015 - Complete document (FI)016 - Cost of sales accounting100 - Document header (CO)CLASSTYPE Specifies if the field can be used in the case of validations (B), substitutions (S) or bothBCLTAB - Table that is usedBLCFIELD - Field of this tableBEXCLUDE - Can be used ' ' or cannot be used 'X'.As mentioned above, you should equate this change with a modification. Problems that occur as a result of this change cannot be handled in the 'standard' support.3. What must I take into account when activating validations or substitutions?You can activate validations and substitutions in two ways.Activation level: 1 - Active2 - Active, except during 'batch input' processingBecause the activation in the financial accounting (FI) is company-code-specific, the validations or substitutions should be activated in both company codes in the case of cross-company code transactions.4. What must I take into account when transporting validations or substitutions?Usually, only table entries are transported when validations or substitutions are transported. The generated source code should not be transported, since this can cause problems. After the import into the target system, the source code is generated automatically when the RGUGBR00 report is started.If you would like to delete a validation/substitution, and do not want to do this in each system individually, proceed as described in Note 840981.II. Using user exits in validations or substitutions1. Where can I maintain user exits for validations and substitutions?The exits for validations and substitutions are stored in an Include of your choice.The following Includes are delivered as examples by default:RGGBR000 Val/Sub: Exits for rulesRGGBS000 Val/Sub: Exits for substitutionsYou should copy these into the customer namespace, for example ZGGBR000.The length of the name you choose should not exceed 8 characters. This isbecause the name is also generated in the source code, and so a certain line length may be exceeded as a result.You can also create a separate Include per client as this can improve performance.In Transaction GCX2, you should then define where your Include is used. To do this, enter the name of your Include as a form pool in the relevant application area.2. How should I create a user exit?Define your user exit in the FORM Routine GET_EXIT_TITLES with the correct exit category (EXITS-PARAM). You can use the existing sample entries as a model for this.The exit types required in the FORM Routine GET_EXIT_TITLES are organized as follows:∙C_EXIT_PARAM_NONE No parameterApart from the return value (B_TRUE or B_FALSE), you do not need anyparameters for the validation. If you do not want to substitute a field, use this parameter in the substitution (select "Only exit").However, you must then use a TABLE statement in the form pool (not in the actual form) to identify the structure concerned.∙C_EXIT_PARAM_FIELD A Field is transferred as a parameterYou only use this type in the substitution. Exactly one field is substituted. Enter user exits of this type in the substitution maintenance instead of assigning a constant value.∙C_EXIT_PARAM_CLASS A complete type is transferred as a parameter Matrix validations/substitutions ("Only exit"). This exit type can only be used in the case of callup points with complete documents, for example in the FI and the LC. You cannot use this exit category on any other callup points. The transferred type contains all information of a class. An example is the use of the documentheader and all corresponding line items in the FI area.In the FORM routine GET_EXIT_TITLES, change the NAME and TEXT field of the EXITS internal table to the values you want.Use one of the sample routines as a model and copy these to the names youselected. You can now implement the functions you want in this form routine.After you have finished creating the user exit, you can use it in your validations or substitutions.3. What must I take into account when implementing the user exit?No dialog boxes, warning messages, information messages and error messages can be issued in an exit nor can a "COMMIT WORK" be rejected. This would, for example, interrupt the batch processing or cause problems with the documents to be posted. If you find a serious error in the field contents in the exit, send a termination message (A or X), which will ensure that the transaction is terminated.Do not use any ABAP commands that cause the exit to be left directly, for example 'LEAVE (TO) SCREEN ...' or 'SUBMIT ...' or 'CALL TRANSACTION ...'In an exit, use only structure fields that belong to the Boolean class of the calling substitution, validation or rule. The other structure fields are not filled or are not filled properly on the callup point of the calls of the substitution, validation or rule.Changes to field contents may only be made in a substitution exit if this field can be substituted in the Boolean class. You can display such fields by selecting the "Add entry" function in the substitution maintenance.In the Includes of the substitution exits, you must not use the commands MODIFY, INSERT or DELETE in the internally used structures such as BSEG or BKPF. These structures are interpreted internally as database tables because they are defined by a TABLES statement. As a result, database records are written, deleted or changed when you use the commands mentioned above. This can cause serious inconsistencies and problems in the document processing.If you want to change field contents in Exit Types C_EXIT_PARAM_CLASS, you should make the changes in the internal table BOOL_DATA (for example BOLL_DATA-BSEG).III. Problem analysis1. What must I take into account before I analyze the problem?Before you analyze a problem with validations/substitutions, make sure that the generated source code is up-to-date. You can use Report 'RGUGBR00' to do this.Call this report in Transaction SE38. You receive the following selection screen:Application area ' 'Application callup point ' '' ' Regenerate main program' ' Generate table file' ' Generate rules' ' Generate validations' ' Generate substitutions' ' Generate sets' ' Generate rule use' ' Generate validation use' ' Generate substitution usage' ' Generate substitution export routines' ' Generate substitution routines in all clients' ' Generate trace program callsNow update the source code for the application area and application callup point in which the validation or substitution was created.To do this, enter the application area, for example FI, and the application callup point (0003/complete document), and set all indicators except for 'Generate substitution routine in all clients' and 'Generate trace program calls'. Then execute the report.The source code is now at its current status.2. How can the validation and substitution trace be used?a) Validation traceYou created and activated a validation.You can now activate the trace, for example in Transaction GGBO. To do this, place the cursor on the validation and select 'Extras -> Activate trace'. Example:You created an FI validation on the 'Line item' callup point. To test the validation, execute, for example, Transaction FB01. The trace is displayed as soon as the validation is run. You can now see different things in the trace, for example the values contained in the fields of the various structures. From this, you can deduce whether additional checks are required, or tell what the cause of a problem is.b) Substitution traceActivate the trace in the same way as you activate validations.Example:You created a substitution in the same way as you activated the trace in the case of the validation. The trace for substitutions has an additional function, in thatyou can view the field contents before the substitution as well as after the substitution. There, problems can be reproduced in the same way.3. How can I use the DEBUGGER to analyze a problem?a) Basic informationAll Includes for validations and substitutions are created in this form: GBTmmaa0. mm stands for two digit client key.You can use the G_CLIENT_ENCODE function module to convert a three-digit client (>099) to a two-digit client, for example: client 100 --> AAclient 800 --> TQAA stands for the application area, for example FI --> Financial AccountingCO --> Cost AccountingYou will find this abbreviation in the maintenance transaction.Therefore, GBTAAFI0 is the Include in client 100 for FI validations and substitutions.b) Structure of the Includes and form routines for validations and substitutions and tips on how to 'debug'The above-mentioned Includes are structured in the following way (sample Include in FI, Client 800):INCLUDE GBTTQFIA. " RulesINCLUDE GBTTQFIB. " SubstitutionsINCLUDE GBTTQFIC. " Substitution conditionsINCLUDE GBTTQFID. " ValidationsINCLUDE GBTTQFIE. " Validation conditionsINCLUDE GBTTQFIF. " Validation checksINCLUDE GBTTQFII. " Application rulesINCLUDE GBTTQFIJ. " Substitution export routinesINCLUDE GBTTQFIM. " Trace/simulationINCLUDE GBTTQFIS. " Substitution import routinesc) The form routines for validations have the following sample structure (sample validation with the name VAL01):FORM VAL_VAL01.G_BFOUND = B_TRUE.DATA: COND LIKE D_BOOL,CHECK LIKE D_BOOL,NVALSEVEREST LIKE SY-SUBRC VALUE -1.G_STEP = '001'.PERFORM VALCOND_1VAL01##001CHANGINGCOND.IF COND = B_TRUE .PERFORM VALCHCK_2VAL01##001CHANGINGCHECK.IF CHECK = B_FALSE .PERFORM MESSAGE_OUTPUTUSING" ...NachrichtenparameterCHANGINGNVALSEVEREST.ENDIF.ENDIF.ENDFORM. " VAL_VAL01Statement G_STEP = '001' indicates the step that is executed.The prerequisite of the step is defined in Form Routine VALCOND_..., the form routine VALCHCK_... checks the validation step.To analyze this step, you should create breakpoints on these two PERFORM statements and also on the code line 'IF CHECK = FALSE'. In doing so, you can determine whether your prerequisite or the check is causing the problem you have, for example a field that is to be checked does not contain the value that you expect.d) The form routines for substitutions have the following sample structure (sample substitution with the name SUB01):FORM SUB_SUB01.G_BFOUND = B_TRUE.DATA: COND LIKE D_BOOL.G_CLASSID = '009'.G_SUBST_PERFORMED = B_FALSE.IF G_TAB_FLAG-BSEG <> B_TRUE .PERFORM READ_MASTER_DATAUSING'BSEG'G_BFOUND.IF G_BFOUND = B_FALSE .MESSAGE E083 WITH 'BSEG'.ENDIF.ENDIF.G_STEP = '001'.PERFORM SUBCON_3SUB01##001CHANGINGCOND.IF COND = B_TRUE .BSEG-SGTXT = 'This is a Test'. " TextG_SUBST_PERFORMED = B_TRUE.ENDIF.ENDFORM. " SUB_SUB01As mentioned above for validations, 'G_STEP = '001' indicates the step, and the prerequisite of the substitution is defined in Form Routine SUBCON_.... The actual substitution is carried out by the statements in the 'IF COND = B_TRUE --> ENDIF' structure. These statements vary depending on the 'type' of substitution created (field allocation, constant value, user exit).In the substitutions, you should also set a breakpoint on the PERFORM on the prerequisite and the statement 'IF COND = B_TRUE'.4. Function modules that call validations and substitutionsValidations - Function module G_VSR_VALIDATION_CALLThe different structures/tables, the name of the validation, callup point and application area are assigned to this function module.Substitutions - Function module G_VSR_SUBSTITUTION_CALLThe parameters transferred to validations are also transferred to this function module. However, structures/tables that contain the changed values are also returned.You could set a breakpoint to analyze both function modules. In doing so, you could see which data was transferred, which data the validation or substitution attains, and which values are returned.5. What must I take into account during the set usage?When sets are used in validations or substitutions, source code is generated from the values in the sets.Performance problems can occur if a set is of a certain size, since the generated source code causes longer runtimes.A runtime error can also occur.To reduce the size of the source code of the sets used, you can proceed as follows:Use a smaller set in the validation, substitution or rule. To do so, group single values in the set into intervals (for example, instead of the single values 0001, 0002 and 0003, use theinterval 0001 - 0003)Instead of " IN SET", use the rule "( IN SET1 OR IN SET2)" in which SET1 and SET2 contain the values from SET (for example, subhierarchies on the highest hierarchy level).The simplest way to determine the number of single values or intervals in a set hierarchy is to execute Program RGSEX000.Enter the name of the set and execute the program. All contained sets and values/intervals are listed and the sequential number of the entries is contained in the first column.6. Why does a validation or substitution work in the development system,but not work in another system after a transport?You should make sure that validations and substitutions are activated in the target system. You can also use Report RGUGBR00 to execute the regeneration of the source code again.There could be another cause in the case of substitutions:You try to substitute a field that is not released as a default by SAP. To substitute a field, you have adjusted Table GB01 in your development system. However, this did not occur in the target system. The generated source code is correct and the value was changed in the substitution, but the change was not returned to the calling application via the export routines.。
sap替代方式说明
SAP中BOM组件替代方式:1、当物料A用完后(即库存数量为0),对于物料A将永远不再使用,且使用物料B替代物料A;2.、在某个产品中,在某个日期后,当物料A不够时,才使用物料B,该日期之前物料A不够用,只对物料A产生需求;3、多种物料之间存在用完为止的替代关系,且存在较明显的优先级关系,替换料用量可不一致;需由物料计划部门控制替代料的优先级。
4、多种物料之间存在替代关系,用量可不一致,各替代物料间无明显优先级关系,需按一定比率将需求传递到各替代组件;需有物料计划部门控制替代料使用可能性。
5、匹套替换,A与A1配套,B与B1配套,当A不够时,由B进行替代,此时A1也必须由B1替代,即B+B1替代A+A1;(注意:只有在执行可用性检查后,才可触发替代)BOM组件替代实现方式:一、替代需求:当物料A用完后,即库存数量为0,将永远不再使用,且使用物料B替代物料A;适用范围:两种物料之间存在替代关系,且用量相等,用完替代。
影响范围:所有BOM中该组件A用完时,都将被物料B替换业务场景:用完替代,物料A用完之后才使用B物料(系统执行可用性检查,当A 用完后系统才考虑B物料库存,当两者库存总量无法满足需求时,系统将给出物料B 缺料提醒)实现方式与测试:1.建立物料A与物料B之间的替代关系,MM02MRP4视图字段必填/可选输入值说明非连续标识必填1生效期不填后继物料必填1000000702替换料编码2.替换测试:CO01创建生产订单(生产订单30PC,物料A库存为10PC,物料B库存为10PC);,系统给出物料B缺料10PC提醒CO11N完工确认注意:此方法只适用于两种物料用完替代,且A、B物料用量相等。
二、替代需求:在某个产品中,在某一日期后,如果物料A不够时,用完物料A 后,使用物料B,在该日期之前物料A不够用仍然对物料A产生需求。
适用范围:两种物料之间存在替代关系,且用量相等,在某一日期后该替代关系生效。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAP替代料测试情况
根据前段时间的学习和测试,找到SAP系统中替代料和后继物料相关的前台配置主要有以下几种情况:
1、物料主数据中“后继的物料”字段
用MM02进入MRP4视图,维护“非连续标识”为“1”,“后继的物料”为将要取代的物料,如图-1所示:
图-1 物料主数据中后继物料的设置
注意:非连续标识不能为空,否则MRP运行的时候不考虑,后继设置无效!
此为针对工厂级别物料的后继设置,属于全局变量,在同一工厂所有的BOM 中,都生效。
顺便提一下,在历史的后继物料维护申请中,一共有3个料进行过维护:(1)2008.04.07(2100工厂,旧料库存24.6K)
物料:1001200008 后继料:1001200012(错维护到了2000工厂,非连续标识为空)
(2)2008.05.22(2100工厂,旧料库存21K)
物料:1005200154 后继料:1005200197(系统中未维护)(3)2008.06.17(2100工厂,旧料库存21K)
物料:1005200153 后继料:1005200196(非连续标识为空)
以上3个料,如果运行MRP,都会有问题,都不会实现物料的终止并被后继物料所取代。
注:“非连续标识”处维护1-单一/平行中断物料,维护3-相关平行不连续物料。
(1一般用于单个物料的后继,即A用完后切至B;3一般用于配套后继,如A与C同在一个BOM中,当A用完后切换至B,同时C立即切换至D,而不管C是否还有库存.这种情况下A维护成1,B维护成3.)维护成品9080010063的独立需求,如图-2所示:
图-2 维护成品的独立需求
分别用MMBE查看终止料1003200026和后继料1003200027的库存情况,结果为1003200026库存为非限制状态230EA,1003200027库存非限制状态2000EA。
如图-3所示为MMBE查询1003200026的结果:
图-3 MMBE查询BOM组件的库存数量
执行MD02-单项多层运行MRP,如图-4所示:
图-4 MD02运行MRP
然后执行MD04查看运行后结果,库存需求清单,如图-5所示:
图-5 MD04查看终止料1003200026的库存/需求清单
图-6 MD04查看终止料1003200027的库存/需求清单结论:主数据中的后继物料起到了作用,成功的实现了新旧物料的取代。
运行MRP时,消耗完1003200027的库存后跑出了“57-终止物料部分被后继取代”的例外信息,缺的4870EA由1003200027替代。
(注上图中1003200027原总需求为5202,1003200026原总需求为5100EA,是因为BOM里面1003200026的净ID标识未打勾)
这种后继关系,只需要在主数据中设置就行了,后继料不用在BOM中维护。
上述的1003200027之所以跑出8072的采购申请,就是因为其中有4870个是取代1003200026,剩下的3202个是因为其本身就是BOM中的组件。
2、BOM主数据中的物料后继
首先在物料主数据中设置非连续标识和后继的物料,如上图-1所示,然后执行CS02,进入BOM行项目,分别对终止料和后继料进行维护,如图2:
图-7BOM中终止料的“物料后继数据”维护内容
图-8BOM中后继料的“物料后继数据”维护内容
终止料中非连续标识即为从主数据中带过来的,只有在主数据中定义了
终止,才能维护其终止组。
与主数据不同的是,在BOM中,存在终止与后继关系的两个物料必须同时维护至这个BOM里面,并形成1个组,如上图-8中1003200026的终止组与1003200028的后继组均为“00”,表明是要用1003200028来后继1003200026的。
BOM中的后继关系的优先级要比主数据中的优先级高,这和上次说的“部件废品率”的情况是比较相似的。
如上,主数据和BOM中设定的后继关系分别为:
资材后继料
主数据:1003200026 1003200027
BOM :1003200026 1003200028
再次执行MD02运行MRP,的到结果为:
图-9 MD04查看终止料1003200026的库存/需求清单
图-10 MD04查看主数据中设置的后继料1003200027的库存/需求分析清单
图-11 MD04BOM中设置的后继料1003200028的库存/需求清单结论:主数据中后继物料的设置无效,BOM主数据中后继物料的设置优先级更高。
3、配套产品的后继
BOM中必须有一个主键A,即A的主数据中“非连续标识”维护成了“1”,则当A的库存消耗完毕后,A开始被其后继物料a后继,同时与A配套的组件B被B的后继物料b后继,而不管B的库存是否消耗完毕。
系统中维护内容如下:
主数据中设置如下:
物料非连续标识后继的物料
A:1003200026 1 a:1003200027
B:1040000140 3 b:1040000141
BOM主数据中设置如下:(9080010063)
物料终止组后继组备注A:1003200026 00 库存为230
B:1040000140 00 库存为2500
a:1003200028 00 库存为0
b:1040000141 00 库存为0
首先维护独立需求:9080010063 -3月15日1000EA,
MD02运行结果后,用MD04查看运行结果:
图-12 MD04查看1003200026的库存/需求清单
图-13 MD04查看1003200028的库存/需求清单
图-14 MD04查看1040000140的库存/需求清单
图-15 MD04查看1040000141的库存/需求清单
即:
主料1003200026和上述2-BOM主数据中物料后继设置测试结果相同,缺的料被1003200028后继,(物料主数据中维护的其后继1003200027的优先级较低,没起作用),同时当1003200026消耗完毕后其平行料1040000140被1040000141后继。
如果将1040000140的初始库存改为小于230,则跑出采购申请230,直至1003200023消耗完才被后继料后继,即实现了配套替换。
如果配套的是3个或3个以上的料,情况与上类似(已经测试)。
4、BOM中的“项目替代组”
如下图-16所示:在物料9080010063的BOM中为两个物料分别设置“使
用可能性”,可以控制MRP运行后采购计划数量的分配。
图-16 修改替代项目组中1003200026的使用可能性
图-17 修改替代项目组中1003200028的使用可能性维护物料9080010063的独立需求为1000,执行MD02运行MRP,用MD04查看结果如下:
图-18 运行MD04查看1003200026的库存/需求清单
图-19 运行MD04查看1003200028的库存/需求清单
即:替代项目组中维护的多个物料不是真正意义上的组件,是存在“替代”或者说“分配”关系的。
本例中的两个物料MRP运行完成后,按照替代比例分别跑出了采购申请,可是难题是:在我司,这种比例分配关系是较难确定的。
目前,在我们的系统中,替代关系的物料维护在一个BOM里面,其使用可能性分别维护成100%(新料,要购买),0%(老料,库存)...
5、物料主数据中设置物料状态
运行事物代码MM02,进入采购视图,修改1003200026的“特定工厂的物料状态”为01-因采购/仓库而被冻结,如图-20所示:
图-20 修改采购视图中的物料状态
再维护独立需求,MD02单项多层运行MRP,MD04查看库存/需求清单如图-21所示:
图-21 MD04查看1003200026的库存/需求清单
上述提示知识一个绿色报警信息,下面将手工创建该采购申请,然后转采购订单。
执行ME51N,采购申请类型为ZMR-京东方-手工采购申请,输入物料、数量、工厂、库存地和交货日期,将“固定”标识打勾,回车出现图-22所示的提示信息:
图-22 对照MRP的运行结果手工创建并固定采购申请
采购申请无法固定保存,也创建不了采购订单。
即该物料用完之后不能采购。
问题:
上述1、2、3都是关于物料的后继,能实现A用完了后用B取代的需求,但是都必须带全局变量,4可以实现按照比例分配采购申请,5只是实现物料用完后不让采购,均不能满足我司针对BOM级别的物料取代的需求。
关于BOM级别替代料的问题,还有点疑问:
假设前提:BOM1中A用完了用B替代,BOM2中A用完了不替代,直接跑采购申请,假设现在A的库存200EA,B的库存为0。
维护好独立需求,运行MRP,BOM1中A需求为1000,BOM2中A的需求为1000,那么怎么计算?
如果系统先计算BOM1,则A消耗完200库存后被B取代,跑出B的采购申请为800,再执行BOM2,跑出A的采购申请1000;
如果系统先计算BOM2,则A消耗完200库存不足,再跑出A采购申请800,再
计算BOM1,库存消耗完毕,直接被B取代,跑出B的采购申请1000;
那么,在实际中,又是采用那一种计算方法呢?总是感觉有点矛盾。
就目前我们测试和学习的情况看来,还无法实现物料的采购和生产投料的自动切换,大家如果有什么方法,欢迎一起交流。