SAP-PP模块-生产订单工单的各个状态
SAP-PP模块-生产订单工单的各个状态
也就是工单的各种状态,但是可以同时存在多种,比oracle EBS更详细
系统中的状态表:
表 | 说明 |
JEST | 工单状态表 |
TJ02T | 状态说明表 |
表JEST栏位INACT有值"X"表示状态未启用,当前工单无该状态
以一张工单为例:
状态 | 状态内文 | 说明 |
CRTD | 创建 | 标识生产订单刚刚创建,此时禁止做后续发料和报工确认等操作 |
PREL | 部分下达 | 当生产订单部分下达时,如仅下达部分工序时出现此状态 |
REL | 已下达 | 当生产任务已经明确可下发生产时,将生产订单转换为已下达状态,这个状态后可以继续后续业务操作,如打印订单、发料、报完工等操作 |
MANC | 未检查物料可用性 | 生产订单未进行零部件物料的可用性检查 |
SETC | 结算规则维护 | 生产订单已维护结算规则 |
MSPT | 物料短缺 | 生产订单的零部件物料在进行可用性检查后发现存在短缺 |
MACM | 已承诺的物料 | 生产订单的零部件物料在进行可用性检查后确认完全可用 |
GMPS | 已过帐的货物移动 | 生产订单已经进行过发料 |
PCNF | 部分确认 | 生产订单只进行了部分完工确认,比如说订单需求10个,只进行了5个生产,或者订单有2道工序,只完成了第一道工序 |
CNF | 已确认 | 生产订单已全部完工确认 |
PDLV | 部分交货 | 生产订单只有部分产品入库 |
DLV | 已完全交货 | 生产订单已经完全交货入库,这意味着生产订单业务全部完成。 月末,系统根据订单的状态,判断是计算差异还是计算在制品。如果订单具有DLV或TECO状态,结算差异;如果没有这两个状态,订单结算在制品。 |
VCAL | 差异计算 | 生产订单进行过差异运算 |
TECO | 技术完成 | 在生产过程中,会出现订单未完成但是不再继续生产的情况,这时就可以打上技术完结标识,此时订单对零部件的需求同时删除。在很多项目中,为了简便处理,会对所有完成的订单进行技术完结处理(注:不再继续生产也是一种完成)。 月末,系统根据订单的状态,判断是计算差异还是计算在制品。如果订单具有DLV或TECO状态,结算差异;如果没有这两个状态,订单结算在制品。 |
RESA | 进行结果分析 | 生产订单进行过结算 |
CLSD | 关闭 | 生产订单做账务关闭,不允许对订单发生任何过账,通常情况下,财务月末对订单进行结算后,如果确认不会再有追加发料等业务发生,则应该将订单进行关闭 |
DLT | 删除 | 对生产订单做删除标识,数据仍然存在数据库中,状态可恢复。如果想彻底删除,需对订单进行归档处理 |
函数 | 说明 |
STATUS_READ | 读取对象状态 |
STATUS_TEXT_EDIT | 跟STATUS_READ一样,只不过读取的结果是将订单状态拼接到一个字符串中,而且这个字符串是在前台订单上看到的状态,比较直接,这样做的结果就可能由于状态较多导致长度过长,在某些情况下取的数据可能不准 |
STATUS_CHECK | 检查状态是否启用 |
转载生产订单抓取状态的范例代码
代码:
*&---------------------------------------------------------------------* *& Report ZPPRTEST *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ZPPRTEST. TYPES: BEGIN OF ty_status, txt04 LIKE tj02t-txt04, END OF ty_status, BEGIN OF ty_jest, stat LIKE jest-stat, txt04 LIKE tj02t-txt04, END OF ty_jest. DATA: lt_status TYPE TABLE OF ty_status, lt_jstat LIKE TABLE OF jstat, lt_jest TYPE TABLE OF ty_jest. DATA: l_index LIKE sy-tabix, l_objnr LIKE aufk-objnr, l_txt TYPE string, l_txt2 TYPE string, l_txt3 LIKE bsvx-sttxt. *-->先找到生产订单的物件号码 SELECT SINGLE objnr INTO l_objnr FROM aufk WHERE aufnr = '000019009370'. *-->第一种方式 SELECT jest~stat tj02t~txt04 INTO TABLE lt_jest FROM jest INNER JOIN tj02t ON jest~stat = tj02t~istat WHERE jest~objnr = l_objnr AND jest~inact = space AND tj02t~spras = sy-langu. LOOP AT lt_jest INTO DATA(ls_jest). IF sy-tabix = 1. CONCATENATE l_txt ls_jest-txt04 INTO l_txt. ELSE. CONCATENATE l_txt ls_jest-txt04 INTO l_txt SEPARATED BY space. ENDIF. ENDLOOP. *-->第二种方式 CALL FUNCTION 'STATUS_READ' EXPORTING client = sy-mandt objnr = l_objnr only_active = 'x' TABLES status = lt_jstat EXCEPTIONS object_not_found = 1 OTHERS = 2. DELETE lt_jstat WHERE inact = 'X'. IF lt_jstat[] IS NOT INITIAL. SELECT txt04 INTO TABLE lt_status FROM tj02t FOR ALL ENTRIES IN lt_jstat WHERE istat = lt_jstat-stat AND spras = sy-langu. LOOP AT lt_status INTO DATA(ls_status). IF sy-tabix = 1. CONCATENATE l_txt2 ls_status-txt04 INTO l_txt2. ELSE. CONCATENATE l_txt2 ls_status-txt04 INTO l_txt2 SEPARATED BY space. ENDIF. ENDLOOP. ENDIF. *-->第三种方式 CALL FUNCTION 'STATUS_TEXT_EDIT' EXPORTING client = sy-mandt objnr = l_objnr only_active = 'X' spras = sy-langu IMPORTING line = l_txt3 EXCEPTIONS object_not_found = 1 OTHERS = 2. cl_demo_output=>write( l_txt ). cl_demo_output=>write( l_txt2 ). cl_demo_output=>write( l_txt3 ). cl_demo_output=>display( ).
具体对应的 T-CODE 控制码是 BS22,后台可以设定对应的事务状态控制,可以决定哪些事务处理如何来使用这些状态
具体涉及的表:
JEST | 输入工单号可查询工单的所有状态 | |
TJ01 | 用户自定义状态 | |
JJ01T | 自定义状态文本 | |
TJ02 | 系统状态 | |
TJ02T | 系统状态文本说明 | |
查询工单状态方法:系统在表AUFK中记录工单对应的系统状态对象号码(object number),在表JEST中记录对象所包含的状态,在表TJ02T记录状态的描述,AUFK-OBJNR > JEST-STAT >TJ02T-TXT04 |
作者: 轻烟随风
当前文章地址: https://www.zyxpp.com/sapcostatus/
来源: 轻烟随风的博客
文章版权归作者所有,欢迎转载
当前文章地址: https://www.zyxpp.com/sapcostatus/
来源: 轻烟随风的博客
文章版权归作者所有,欢迎转载
THE END
二维码
共有 0 条评论