SAP生产订单状态

本文详细介绍了SAP系统中生产订单的各种状态及其含义,包括创建、下达、物料可用性检查等多个阶段的状态,并提供了如何通过ABAP函数获取这些状态的方法。

SAP系统的常见订单状态如下:

·        CRTD (创建):标识生产订单刚刚创建,此时禁止做后续发料和报工确认等操作;

·        PREL (部分下达):当生产订单部分下达时,如仅下达部分工序时出现此状态;

·        REL    (已下达):当生产任务已经明确可下发生产时,将生产订单转换为已下达状态,这个状态后可以继续后续业务操作,如打印订单、发料、报完工等操作;

·        MANC (未检查物料可用性):生产订单未进行零部件物料的可用性检查;

·        SETC (结算规则维护):生产订单已维护结算规则;

·        MSPT (物料短缺):生产订单的零部件物料在进行可用性检查后发现存在短缺;

·        MACM (已承诺的物料):生产订单的零部件物料在进行可用性检查后确认完全可用;

·        GMPS (已过帐的货物移动):生产订单已经进行过发料;

·        PCNF (部分确认):生产订单只进行了部分完工确认,比如说订单需求10个,只进行了5个生产,或者订单有2道工序,只完成了第一道工序;

·        CNF (已确认) :生产订单已全部完工确认;

·        PDLV (部分交货):生产订单只有部分产品入库;

·        DLV (交货) :生产订单已经完全交货入库,这意味着生产订单业务全部完成。CO看到DLV状态或TECO状态时将对订单进行完工结算。

·        VCAL (差异计算) :生产订单进行过差异运算;

·        TECO (技术完成) :在生产过程中,会出现订单未完成但是不再继续生产的情况,这时就可以打上技术完结标识,此时订单对零部件的需求同时删除。在很多项目中,为了简便处理,会对所有完成的订单进行技术完结处理(注:不再继续生产也是一种完成)。CO看到DLV状态或TECO状态时将对订单进行完工结算;

·        RESA (进行结果分析):生产订单进行过结算;

·        CLSD (关闭):生产订单做账务关闭,不允许对订单发生任何过账,通常情况下,财务月末对订单进行结算后,如果确认不会再有追加发料等业务发生,则应该将订单进行关闭;

·        DLID (删除) :对生产订单做删除标识,数据仍然存在数据库中,状态可恢复。如果想彻底删除,需对订单进行归档处理。

 


函数:STATUS_READ。

输入参数OBJNR也是OR+订单号,ONLY_ACTIVE即只取出激活的状态。读出来后也需要转换下。STATUS_CHECK是检查生产订单状态,看是否具有某种状态,STATUS_TEXT_EDIT同STATUS_READ,但似乎不能读出所有的状态。

在JEST中,一个生产订单可能同时存在多个状态(比如DLV和TECO,TECO可能和其它状态都会同时存在),所以需要注意,单aufk和JEST关联是会存在多条记录,如果要做数量统计等。最后把TECO状态给过滤掉,或统计时不要统计TECO状态的条目,否则统计数据会错误。TJ02T表(系统状态文本)。

包含订单的所有状态和文本说明。

 
1.可以通过函数'STATUS_TEXT_EDIT' 。


复制代码
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
objnr = object_tab-objnr
spras = sy-langu
flg_user_stat = 'X'
IMPORTING
line = object_tab-sttxt
user_line = object_tab-ustxt
EXCEPTIONS
object_not_found = 01.

复制代码

函数不能直接用工单号码作输入参数,需使用工单的OBJNR栏位,可以通过用工单号码从视图VSAUFK中取得。 TMP_LINE就是返回的工单状态记录,如: TECO DLV PRC MANC RESA RMWB SETC

2.可以通过直接在JEST表中通过状态判定读取。


复制代码
SELECT SINGLE * FROM aufk WHERE aufnr = readrec-aufnr. ** 检查工单种类

* IF aufk-auart(1) <> 'A'.
* CONTINUE.
* ENDIF.

** 判定工单状态
CLEAR: jest.
SELECT SINGLE * FROM jest
WHERE objnr = aufk-objnr
AND ( stat = 'I0045' OR " TECO
stat = 'I0013' OR " DELETE
stat = 'I0076' OR " DELETE FLAG
stat = 'I0046' OR " CLSD
stat = 'I0012 ') "DLV
AND inact = space.
IF sy-subrc = 0.
CONTINUE.
ENDIF.
*
** 判定工单是否 RELASE
CLEAR: jest.
SELECT SINGLE * FROM jest
WHERE objnr = aufk-objnr
AND ( stat = 'I0002' OR " RELEASE
stat = 'I0042') " Partial RELEASE
AND inact = space.
IF sy-subrc <> 0.
CONTINUE.
ENDIF.

** 检查此笔作业是否需要 ( 必需 RELEASE)
** 判定作业是否 RELASE
CLEAR: afvc.
SELECT SINGLE * FROM afvc WHERE aufpl = readrec-aufpl
AND aplzl = readrec-aplzl. CLEAR: jest.

SELECT SINGLE * FROM jest
WHERE objnr = afvc-objnr
AND stat = 'I0002' . " RELEASE
IF sy-subrc <> 0.
CONTINUE.
ENDIF.

SAP系统中配置生产订单状态主要涉及用户状态(User Status)和系统状态(System Status)的设置。用户状态是供用户自定义的状态,用于满足企业的特定业务需求;而系统状态则是由SAP预定义的状态,通常不建议修改。以下为配置SAP生产订单状态的具体方法和步骤: ### 用户状态配置 1. **定义用户状态参数文件的授权码** 使用事务代码 `BS53`,路径为: `IMG > 流程行业的生产计划编制 > 流程订单 > 主数据 > 定义用户参数文件的控制码`。 在此步骤中,可以设置用户状态参数文件的访问权限和控制逻辑。 2. **定义用户状态参数文件** 使用事务代码 `BS02`,路径为: `IMG > 生产 > 商品底价控制 > 主数据 > 订单 > 定义状态参数文件`。 在此步骤中,选择允许的对象类型,并为每个用户状态配置允许的业务操作,例如是否允许修改订单、重新读取主数据等。 3. **分配用户状态参数文件给生产订单类型** 使用事务代码 `OPJH`,路径为: `IMG > 生产 > 商品底价控制 > 主数据 > 定义生产订单类型 > 状态参数文件抬头`。 将定义好的用户状态参数文件分配给特定的生产订单类型,以便在创建订单时自动应用相应的状态控制逻辑。 4. **测试权限的分配** 在权限对象 `B_USERSTAT` 中配置相应的权限,确保用户具有操作用户状态的权限[^1]。 ### 系统状态配置 系统状态是SAP标准定义的状态,通常包括以下常见状态: - **CRTD**:创建状态 - **REL**:已下达 - **CNF**:已报工 - **DLV**:已入库 - **TECO**:技术性完成 这些状态用于控制生产订单在不同业务阶段的行为,例如是否允许进行库存移动、订单修改等操作。系统状态的配置通常不需要用户干预,但可以通过状态配置控制订单在不同状态下的行为[^2]。 ### 状态控制的应用场景 - **订单审批流程**:通过自定义用户状态,可以实现订单的审批流程控制,例如“待审批”、“已批准”等状态。 - **防止订单修改**:当生产订单处于“TECO”状态时,系统会限制对订单的进一步修改,防止在订单结案后进行不合规的操作[^3]。 - **财务调整**:在某些行业,如石油化工或电子制造,财务部门可能需要在订单结案后调整发料或入库数据。此时可以通过特殊配置允许在特定状态下进行库存移动。 ### 示例:查看订单状态 可以通过以下ABAP代码查看生产订单的状态信息: ```abap DATA: lt_order TYPE TABLE OF aufk, ls_order TYPE aufk. SELECT * INTO TABLE lt_order FROM aufk WHERE aufnr = '1000001'. " 替换为实际的订单编号 LOOP AT lt_order INTO ls_order. WRITE: / '订单编号:', ls_order-aufnr, '系统状态:', ls_order-stat, '用户状态:', ls_order-usstt. ENDLOOP. ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值