业务背景:项目上很多报表在取值的时候,都有前提条件,例如:只需要取已经下达的生产订单 或 需要排除掉删除的生产订单 等。开发的过程中,业务顾问就需要提供对应的生产订单状态的取值逻辑。
#1 我们先来了解下生产订单的状态都有哪些?
序号 | 生产订单状态 | 系统状态(表-TJ02T) | 状态描述 | 业务说明 |
1 | CRTD | I0001 | 已创建 | 生产订单已创建为初始化状态,无法进行工单投料、报工、入库等操作 |
2 | REL | I0002 | 已下达 | 生产订单已下达表示"已激活"状态,可以进行工单投料、报工、入库等操作 |
3 | GMPS | I0321 | 货物移动已过账 | ⽣产订单已有发料记录 |
4 | PCNF | I0010 | 部分确认 | ⽣产订单进⾏了部分报⼯,未进⾏最终完⼯确认 |
5 | CNF | I0009 | 已确认 | ⽣产订单已完⼯确认,不能再报⼯ |
6 | PDLV | I0074 | 部分交货 | 生产订单只进行部分产出入库,还有未未清数量 |
7 | DLV | I0012 | 交货 | ⽣产订单已完全⼊库,月结时财务对状态为DLV的订单进⾏完⼯结算 |
8 | TECO | I0045 | 技术性完成 | 在⽣产过程中,如果订单未完成,并且剩余部分不再⽣产,例如 订单数量是100,⽣产了80,剩余的20不再⽣产,此时需要对订单做技术性关闭。订单TECO之后,对零部件的需 求会⾃动删除,并且不再允许投料、完⼯确认等业务操作。⽉结时,系统会对状态为TECO的订单进⾏完⼯结算。在实际应⽤中,对于DLV状态的订单,如果已经完成投料、报⼯,⽣产部⻔需要将其TECO(技术性关闭),以免 后续错误地投料 |
9 | CLSD | IFO07 | 已结算 | ⽣产订单已账务关闭,不允许再对订单进⾏任何账务处理,如记账,计算差异,结算 等。TECO后订单不能进⾏业务处理(如投料、报⼯),但可进⾏账务处理(如记账,结算),CLSD后订单不能进 ⾏任何处理。通常情况下,⽉末财务对订单结算后,如果确认不会再有追加发料等业务发⽣,则应该将订单进⾏账 务关闭(订单只有结算后,余额为0时才能进⾏账务关闭) |
10 | PRC | I0016 | 预成本核算 | ⽣产订单已计算计划成本 |
11 | MACM | I0340 | 已承诺物料 | ⽣产订单组件可⽤性检查后完全满⾜,不会出现短缺 |
12 | SETC | I0028 | 结算规则已创建 | ⽣产订单的结算规则已被维护,创建⽣产订单时,系统⾃动创建结算规则 |
13 | VCAL | I0056 | 差异计算 | ⽣产订单进⾏过差异运算,即执⾏KKS1/KKS2计算了差异。 订单 结算后,状态要么为RESA,要么为VCAL,RESA表示有WIP,VCAL表示已结算 |
14 | 标记 | I0076 | 删除标记 | 对⽣产订单做删除标识,只是打上删除标记,⽽不是彻底删除,数据仍然存在,状态可恢复。建议关闭后的订单都打上删除标记,CO在对订单进⾏结算时,不考虑已标记删除的⽣产订 单,这样可以提⾼⽉结的效率。对于CLSD的订单,系统结算(KKAO/KKS1/CO88)时会考虑进去,只是不做处理 ⽽已(如计算WIP) |
15 | MANC | I0420 | 未检查物料可用性 | ⽣产订单未进⾏组件物料的可⽤性检查 |
16 | PCST | I0014 | 生产花费 | |
17 | MSCP | I0003 | 能力不足 | |
18 | MSPT | I0004 | 物料短缺 | ⽣产订单组件进⾏可⽤性检查后存在短缺 |
19 | ACAV | I0005 | 可用性控制有效 | |
20 | NCMP | I0015 | 未完成 | |
21 | ISSD | I0017 | 发货 | |
22 | SFMT | I0027 | 结算字段维护 | |
23 | SETC | I0028 | 结算规则已创建 | |
24 | DSEX | I0029 | 外部系统的数据集 | |
25 | CNC | I0033 | 非当前成本 | |
26 | SORL | I0034 | 下级定单已下达 | |
27 | SOCF | I0036 | 下级定单已确认 | |
28 | PREL | I0042 | 部分释放 | ⽣产订单部分下达,例如:部分⼯序下达 |
29 | CPCK | I0011 | 能力检查 | |
30 | NTUP | I0118 | 日期未更新 | 表明生产订单日期人工更改后未重新进行日期计划 |
31 | ESTC | I0006 | 估算成本 | |
32 | PRT | I0007 | 已打印 | |
33 | PPRT | I0008 | 已打印的部分 | |
34 | PCNF | I0010 | 部分确认 | |
35 | RESA | I0082 | 已进行结果分析 | ⽣产订单执⾏了结果分析,即执⾏KKAO/KKAX计算了 WIP |
备注:其中项目上使用比较多的生产订单状态就是REL(I0002)、TECO(I0045)、标记(I007
业务说明: 参考博客 SAP PP-生产订单状态-CSDN博客
#2 生产订单(工单)状态变化节点
序号 | 工单状态节点 | 工单状态 | 系统状态 | 工单状态描述 |
1 | 生产订单已创建 | CRTD | I0001 | 已创建 |
2 | 生产订单已下达 | REL | I0002 | 已下达 |
3 | 生产订单已投料 | REL、GMPS | I0002 I0321 | 已下达、货物移动已过账 |
4 | 生产订单已完全报工 | REL、GMPS、CNF | I0002 I0321 I0010 | 已下达 货物移动已过账 已确认 |
5 | 生产订单已入库 | REL、GMPS、CNF、DLV | I0002 I0321 I0010 I0012 | 已下达 货物移动已过账 已确认 交货 |
6 | 生产订单已技术性关闭 | TECO、GMPS、CNF、DLV | I0045 I0321 I0010 I0012 | 技术性完成 货物移动已过账 已确认 交货 |
#3 生产订单状态取值逻辑
涉及到的主表:
AUFK-生产订单主数据表
AFPO-生产订单行项目表
CAUFV-视图 "订单表头 PP/CO"
JEST-单独对象状态
TJ02-系统状态
TJ02T-系统状态文本
输入(Input):
根据AUFK/AFPO-AUFNR=CAUFV-AUFNR AND CAUFV-OBJNR OR AUFK-OBJNR=JEST-OBJNR,取OR+AUFNR
处理(T&T):
根据JEST-OBJNR=OR+AUFNR AND JEST-INACT=" " (表示已激活状态),取JEST-STAT
输出(Output):
根据JEST-STAT=TJ02T-ISTAT AND TJ02T-SPRAS="ZH",取TJ02T-TXT04 OR TJ02T-TXT30
字段说明:
AFPO-AUFNR:生产订单号
CAUFV-AUFNR:生产订单号
CAUFV-OBJNR :对象号
AUFK-OBJNR :对象号
JEST-OBJNR :对象号
JEST-INACT:状态未激活
JEST-STAT:生产工单系统状态代码
TJ02T-ISTAT:生产工单系统状态代码
TJ02T-SPRAS:语言
TJ02T-TXT04:生产工单状态代码
TJ02T-TXT30:生产工单状态描述
注意事项:如果生产订单被标记 删除 或 已结算 或 TECO状态的,RESB预留需求后台表删除字段RESB-XLOEK 都会打上X标记,在进行RESB需求汇总的时候,需要通过RESB-XLOEK(项目被删除)进行排除即可。
Done.
Created on 10th April, 2024
SAP 自开发程序取值逻辑目录(SAP Fields Fetching Logic Catalogue): To Be Continue...
上一篇(Previous Article): 2 采购订单审批状态取值逻辑,表EKKO
下一篇(Next Article): To Be Continue...