上面两章讲了生产订单的创建。
SAP PP学习笔记24 - 生产订单(制造指图)的创建-CSDN博客
这一章继续讲生产订单的知识:
- 订单下达(Release)之后可以做的事情
- 生产订单的状态管理(System Status(系统状态)/User Status(用户状态))
- 物料的可用性检查及Customize
- 生产订单的打印
- 发料,退料及退料时注意点
1,订单下达之后,可以做什么事情
订单下达之后,可以做如下这些事情:
- Print documents 打印订单
- Material withdrawal 发料
- Processing 处理
- Confirmation 确认(报工)
- Goods receipt 收货
- Settlement 结算
- Print documents CO04
CO04 现场帐表印刷(SAP标准打印功能)
如果你想使用SAP标准打印功能的话,就必须先下达才可以
2,Status Management 状态管理
- System status:这就是BS22 t-code,可以参照这里
SAP PP学习笔记24 - 生产订单(制造指图)的创建-CSDN博客
- User status:用户状态
2-1,System status:系统状态
生产订单的User status 演变过程如下:
- 新建
CTRD
- 下达之后 ==》状态被覆盖
REL
- 发料 ==》状态没有被覆盖,即多个并行的状态
REL,GMPS(RMWB 货物移动)
- 部分确认(报工) ==》并行状态
REL,GMPS(RMWB 货物移动),PCNF(部分确认)
- 部分入库 ==》并行状态
REL,GMPS(RMWB 货物移动),PCNF(部分确认) ,PDLV(部分收货)
- 全部确认(报工) ==》并行状态
REL,GMPS(RMWB 货物移动),CNF(全部确认) ,PDLV(部分收货)
- 全部入库 ==》并行状态
REL,GMPS(RMWB 货物移动),CNF(全部确认) ,DLV(全部收货)
- 技术性关闭 ==》并行状态 (后勤来说,订单已关闭)
TECO,GMPS(RMWB 货物移动),CNF(全部确认) ,DLV(全部收货)
- 财务结算
- 彻底关闭
CLSD,GMPS(RMWB 货物移动),CNF(全部确认) ,DLV(全部收货)
- 技术性关闭
什么叫技术性关闭呢?
指的是一些扫尾的动作,比如退料,报废 等都做完了之后,
为了提高系统运行效率,比如防止误发料,或其他误操作,做的这个技术性关闭的动作。
意思是后勤这块来看,彻底结束了(对其他部门,比如FI 来说,并没有关闭)
- 财务结算
财务结算的条件是 System Status(系统状态) 为 TECO(技术性关闭)或 DLV(全部收货)
2-2,User status:用户状态 (无番号)
上面的 System Status 系统状态 是SAP定好了的,不能随便改。
那么当满足不了要求的时候,SAP还提供了 User Status 用户状态 这个东西。
但是要注意,用户状态也不是万能的。
意思是必须要SAP规定的范围内,做一些它允许做的控制。
CO02 左侧部分是系统状态,右侧部分是用户状态。
想要用 User Status,需要做后台设置的。
1),Status Profile 的 Customize
Spro > 生产计划/管理 > 指图管理 > MasterData > 指图
指图Type
Status 管理
- Head Status Profile:PP000001
那么这个 PP000001 具体是在哪里定义的呢?
Spro > 生产计划/管理 > 指图管理 > MasterData > 指图
Status Profile
注意这里可能还需要手动先改下语言,比如EN, ZH什么的,默认是DE
- CAP - Capacity availability checked(能力利用可能度Check済)
光看名称不知道啥意思,可以双击进去看看
有时候翻译挺怪的,我把EN的也一起贴一下
进到这个画面以后,点一下 新规 图标
这下出来好多选项
那如果你想禁用某项选项,比如下面的 差异计算,就点 禁止 那列即可
但是要注意,这个PP000001 是SAP自带的Profile,按咱们一直倡导的原则,最好是Copy一个,然后改那个,不要改SAP自带的东西。
做好之后呢,可以在某个订单里面选用,这样就只影响那张生产订单。
如果想应用到所有订单上面,可以在 【指图Type:PP01】 的Customize > Status 管理 里面选它,这样每次创建 PP01 类型的订单,就都会应用。
当然,同样的原则,最好还是 Copy PP01,做一个自定义订单类型,然后在那里改。
哎,总之吧,Customize是一件非常麻烦的事情,也是SAP的精华部分,做好了,指哪打哪,咱们大家一起努力吧。
咱们这里就简单Copy一个ZPP00001,然后直接应用到一个生产订单上面来做一下测试。
这样不影响后续的学习。
a),Copy PP000001 =》ZPP00001
b),双击 ZCAP
它怎么这么贴心,直接就给我搞好了呢?
难道刚才PP000001已经被保存了吗?
先保存 ZPP00001
还真是哈,哦,我好像刚才返回到上级列表之后,Copy完之后,点了下保存按钮 😓
这里面先给取消吧
2),CO01 新建生产订单
指图Type:PP01
输入数量,日期
点一下 i 图标
a),应用 ZPP00001
把 Status Profile 给改成 ZPP00001
这样就更新了 User Status
b),勾上用户状态 ZCAP
咱们把这个 ZCAP 给 勾上,然后点保存
这就表示咱们要实际使用这个 User Status 参数了
3),CO02 下达/技术性关闭
点下达 图标,出来一个警告
这个警告其实就是 ZCAP 这个参数影响的
就是下面第一行 Release(下达),咱们把警告点上了
所以CO02 里面点下达的时候才会出那个警告
点 Menu > 机能 > 处理制限 > 技术性完了
Status:TECO ...
然后点保存
4),KKS2 差异 > 个别处理
上面做的一系列准备动作,其实就是为了控制这个 KKS2,不想让别人在不恰当的时机执行。
SAP Menu > Logsitcs > 生产 > 制造管理 > 期末处理 > 差异
KKS2 - 个别处理
点执行,做一下差异计算
出错了哦
点一下红色的那个错误图标看到错误详细
User Status ZCAP 有效 (ORD 60003570)
OK,这就是通过User Status来控制一些东西的示例。
总结一下 User Status的用途:
User Status 可以加一些状态,来控制一些东西,
比如上面那个例子,本来 TECO(技术性完了)之后,财务部门就可以开始做结算了,
但是由于一些原因,比如一些未了事项,导致你暂时还不想让财务结算,那就可以打上这个标记。
那么当你处理完所有事情,可以开放给财务结算的时候,你只需要去掉这个勾就可以了。
至于如何去掉这个勾,可以手动去,也可以写个程序跑Batch批量去,看你想怎么搞了。
回到 KKS2
好像还是有错,但是错误已经变了
CO那块儿我好像还没太配好,等以后再说吧。
总之,结算是可以开始了。
5),作业(工作中心/工序)Status Profile
上面的1)~ 4),讲的是Header的Status Profile
其实还有一个类似的 Profile:
- 作业Status Profile
也是同样位置的Profile 定义
然后在 CO01 画面上有表示
双击也可以看详细
也有 System Status 和 User Status
也就是说也可以像 Header 的Profile 一样,工序(作业)也可以通过 User Status 来控制。
2-3,User status:用户状态 (有番号)
上面 2-2 讲了 User Status(无番号),本节来讲User Status(有番号)。
总结一下的话,
- 右侧上面那个部分,Text是 Status(有番号)
它的意思是这些项目是有顺序的。
项目前面是RadioButton的,即相关之间有互斥的关系,同一时刻只能选一个
而且它在Customize里面人为的加了一个顺序的控制,让这些项目有先后顺序。
- 右下侧的那个部分, Text是 Status(无番号)
它的意思是这些状态是无顺序的。
都是Checkbox,相互之间只是平级关系,没有谁先谁后
我们来详细看一下 Status(有番号)
Copy ZPP00002
注意以下几个项目:
- Status番号:1/2/3/4/5/6 这个是顺序的番号
- 下限Status番号,最高Status番号:这个范围决定了该行(即Status番号栏位)的活动范围
比如
- 1 - 范围为【1,2】(下限St番号,最高St番号) 的意思是可以在 Status1,2之间活动
换句话说它可以点自己那行的Radiobutton,也可以点下一行(Status2)的RadioButton
但是它是点不了其他行的Radiobutton的
想要点行3的Radiobutton,必须要经过行2的Radiobutton的意思,只能挨个顺毛捋是吧
默认选中 1/Z1 (默认选中的值也是可以在上面设定的,我上面都没设置,SAP默认选最上面的)
这个时候你选了 3/Z3,然后就报错了
比如现在我一直往下走,顺毛捋,已经走到 3/Z3 了
那么我现在要选 1/Z1,就是逆毛捋,它也报错了
这个东西的用途就是想做一个控制流,需要一直挨个往前走,不许往后走,那你就可以用这个。
举几个例子,比如
- 你想要做一个审批流,比如 科长,部长,经理,总经理这个审批流。
你一定要部长审批完才能到经理,不能跳过部长直接到经理或总经理审批
而且注意一旦你保存了,你只能原地不动或往前走,绝对不能往回走了
- 开生产订单之前需要几个要件,比如按顺序要 设计到位,机器到位,人员到位等等
那么到位一个你就往前走一步
等所有要素都集齐,就可以开单干活了
然后这里的 Z1/Z2/.../Z6,每个步骤里面 能做什么,不能做什么都可以在详细里面设定
这个和 用户状态(无番号) 的设置是一样的
比如经理审批完才可以下达之类的。
如果就设置成这样,那么这个东西不是太严谨。
比如我建好单之后就点2,然后回到生产订单主界面,然后再点状态图标进去,这次选3,如此反复,我一个人就把所有状态全干了呀
所以它本质上是一个运用的问题,没到那个步骤你就不要点,而不是系统上限制你不能点,系统不去限制的,因为这本来就是 User Status嘛,都由你自己控制。
当然要想限制应该可以的,
就是 权限 栏位,可以设置让谁才可以改那个状态,比如科长才能动 Z1,
这样就严谨多了。
3,Check Availability for Material 物料可用性检查
- 检查时机:
- 1:Creation 订单创建
- 2:Release 订单下达
- 检查方法
- 1:Checking Group
- 2:Checking Rules
3-1,检查时机
先来看一下Customize
生产计划/管理 > 指图管理 > 作业 > 利用可能在库确认(可用性检查)
确认管理(定义检查控制)
PP01:
- 1:指图登录时的利用在库确认
- 2:指图发行时的利用在库确认
a),1:指图登录时的利用在库确认
勾上了 选项【没有确认】,意思是登录生产订单的时候不会检查在库
b),2:指图发行时的利用在库确认
勾上了 选项【没有确认】,意思是发行生产订单的时候不会检查在库
我这里是勾上了选项【没有确认】,但是实际项目中,一般来说下达(发行)的时候要检查的吧
为了后面的实验,我先把勾给去掉
3-2,检查范围
如何做物料可用性检查呢?
首先,由下面两个东西来决定检查范围
- 1:Checking Group
- 2:Checking Rules
a),Checking Group (确认群组)
PP - 生产计划/管理确认规则
b),Checking Rules (确认规则)
确认规则(利用可能在库确认)是在 物料主数据 MRP 3 tab 中定义的,比如
- 01:日别所要量
- 02:个别所要量...
这样,对于指图Type PP01 ,品目 100-710-F15 的生产订单来说,
它的检查范围确定要素就齐全了:
- Checking Group(确认群组):PP - 生产计划/管理确认规则
- Checking Rules (确认规则):02 - 个别所要量
那么,确认群组 PP,确认规则 02 这两个东西怎么来确定物料的可用性检查范围呢?
这里也是属于Customize范围
生产计划/管理 > 指图管理 > 作业 > 利用可能在库确认(可用性检查)
确认范围(定义检查范围)
双击 02/PP 行,进入 利用可能在库确认 管理 详细页面
- 在库 Area ==》设置看哪些库存
- 内外在库移动 Area ==》设置看哪些PO(购买发注)/采购申请...
画张图简单阐述一下什么叫 ATP(Available To Promise)检查,以便理解上图Customize内容:
和上面的Customize图进行对照,就发现 看库存/ 看PO 之类的描述,都在Customize画面中。
就是说你通过Customize来确定你想看哪些在库(比如品检在库,转送中在库),
以及想看哪些在库移动(比如购买发注,购买依赖等)。
像【1,只看库存】:就是把右侧的【内外在库移动 Area】都得给勾掉吧;
像【2,也看PO】:就是右侧的【内外在库移动 Area】里面一些选项要勾上。
3-3,物料可用性检查的控制总结
1),Customize 中物料可用性检查 激活/关闭 的check (参照上面的 【3-1,检查时机】)
2),如果激活了检查,则查看 Check Group/ Check Rule(参照上面的 【3-2,检查范围】)
3),根据该Check Group/ Check Rule 确定检查范围
4,产能可用性检查控制
对照上面的 3-3,产能/物料可用性检查这两个东西的逻辑应该是类似的,
但是产能可用性检查好像一般用的比较少,
咱们这里就简单提一下
5,生产订单的打印 CO04N
生产订单下达之后,使用SAP的T-code(比如 CO04N )就可以打印出来了。
印刷制御 的Customize:
Spro > 生产计划/管理 > 指图管理 > 作业
印刷制御
比如说 打印 LG01 - 对象一览(BOM)
看一些参数:
这两个参数是说只能某个用户打印某个工厂
- User:
- Plant
- 出力Device:打印到哪个打印机上面去
这里是说可以设定使用某个Form(格式)来打印
双击上图的 Form(格式)栏位
Menu > Utility > Test 印刷
点击印刷 Preview
可以看到其实自带的打印程序打出来的报表格式挺丑的,
或者说不太符合咱们的审美
尽管它也是可以调整的,但是一般公司都会写一个自己的报表
那么自己的报表要怎么调用呢?
就是这里,写好了程序以后,填在下面这里即可被调用
当然也不是非得用它这个控制调用,你可以写好程序以后,自己搞个T-code 来打印
既美观又方便控制
6,Material Staging 发料
一张订单要发多少料怎么看呢?
CO01/02...
- 数量 Area
- 所要量(需求数量):60
- 引落数量(领料数量):0
所要量 - 引落数量 = 发料数量
比如咱们这里还没发过料,所以发料数量为60
有关发料的更为详细的内容以及操作,下面再说。
7,Options for Material Withdrawal 发料方式 (Ex CO27)
- Pick list items (Prod. Order)
生产订单一般用这种发料方式
CO27 Pick list (领料清单)
- Profile:000002(标准Picking Profile)
这个Profile里面有些参数,它的作用是决定一些东西的,比如画面的Layout之类的
比如上面的 000001 就会显示如下这种Layout
当然你可以通过本页面更改Layout,
如果想控制初始Layout,可以改 000001 这个Profile
选中某个行(某个品目),然后点 Picking 图标
输入发料数量,比如我这里发 1个
这样就发完了
刷新一下,未处理 栏位 200=》199,即已反映出来发了一个料
当然这是标准的功能
真实项目的话,可能会有一些处理,比如先打印出来,然后找领导签字,
签完字之后再发料
那么就会自己写一个程序替代这个标准的功能
8,退料时候的注意点(计划性退料,非计划性退料)
- 供应商提供的货有问题导致的退料 : 计划性退料
- 供应商提供的货没问题,产线使用不当等原因导致的损坏: 非计划性退料
a),计划性退料
一般指的是供应商的来料本身有问题,所以退货本身的成本归集要归到供应商身上,不能归到产线
- MB1A 出库登录
Menu > 参考取消 > 指图
通过这种方式,可以实现计划性退料的效果
a)-1,MB1A 发料
- 原材料 100-710-T17 发料200
- 原材料 100-710-T17-2 发料300
订单:60003575
- 所要量:200 / 300
- 引落数量:200 / 300 和所要量一致,表示说料都已经发齐全了
a)-2,MB1A Menu > 出库 > 参照取消 > 指图(计划性退料)
通过这种方式才能做计划性退料
输入指图 60003575
100-710-T17-2 只退1个料
CO03 - 制造指图照会 > 构成品目
可以看到引落数量已经变了 300==》299
这就是计划性退料
a)-3,用MIGO做计划性退料
MB1A是老T-code,新T-code是MIGO,难道MIGO就不能做计划性退料了吗?
终于搞明白了,是逻辑错了,MIGO也是可以做计划性退料的。
先搞明白一个概念:取消和退货
1,移动Type 262 属于取消,不属于退货,所以直接用262是取消行为,跟供应商无关
有关取消和退货参照下面文章
SAP MM学习笔记10-退货用移动Type 122 和 161 有什么区别_移动类型122-CSDN博客
2,那么MIGO中的退货要怎么做呢?
好像不能通过指图(生产订单)来做,而是通过入出库传票(物料凭证)来做。
比如
物料 100-710-T17-2 的入出库传票是 4940000044
我们就通过它来做退货
MIGO
- A02 仕入先返品
- R02 入出库传票 4940000044
- 100-710-T17-2 退货2个
这就退完了
这回就是计划性退料了吧
299=》297
再退 100-710-T17 一个吧
都是OK的
b),非计划性退料
一般指的是供应商的来料本身没问题,所以退货本身的成本不能归集到供应商身上,要归到产线
- MIGO方式
- MB1A 出库登录:不通过Menu,直接在画面上输入移动Type262来退料
b)-1,MIGO 出库
引落数量:200
引落数量并没有变化,
即通过MIGO的退料是非计划性退料,退料的原因都归集到生产线的原因导致的
再跑MRP,因为已经全部发料了,也不会产生购买依赖,不会再去买一个料了
但是实际上是供应商的问题,确实要再发一个料过来,这样就导致了不准确
b)-2,MB1A 直接退料(非计划性退料)
- 移动Type 262
输入
- 指图 60003575
- 品目 100-710-T17
保存,就退完料了
但是引落数量仍然为 200
已经通过 MB1A来退料了,为啥直接在画面上就不行呢?
这个直接在画面上用移动Type 262 和MIGO上用262的效果是一样的。
都是因为直接用移动Type262 是取消行为,跟供应商无关
SAP MM学习笔记10-退货用移动Type 122 和 161 有什么区别_移动类型122-CSDN博客
c),文档记录济在库移动
总结一下
- 1,用MIGO/MB1A(Menu)来做计划性退料,然后跑MRP,自动产生购买发注,再来一个料
这样比较完美,谁的错谁担着
- 2,用MIGO/MB1A(画面)来做非计划性退料,因为被认为是产线原因,只能报废,再去领1个料
很多工厂也是这么做的
缺点就是会增大产线成本,本来是供应商的原因嘛,凭啥要工厂担着呢
那么做领料分析的时候,怎么看当时的领料履历呢?
Menu > Jump > 文档记录济在库移动
这样就显示了所有在库移动,通过入出库栏位可以分析退料原因,确认责任归属:
入出库
- 1:计划出库(计划退料) ==》这个就是供应商原因
- 2:予定外出库(非计划退料)==》这个就是产线原因