生产订单、工序状态

该代码段展示了在SAP环境中如何读取和处理生产订单的状态,包括调用函数`STATUS_READ`和`STATUS_TEXT_EDIT`来获取和编辑状态信息。主要涉及的状态有创建,释放,删除等,同时检查订单是否允许做计划。此外,还提到了一些关键状态表,如JEST,TJ02和TJ02T。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读取生产订单状态、工序状态(afvc-OBJNR)函数

DATA lt_status TYPE TABLE OF JSTAT WITH HEADER LINE.

    select single objnr

    into @data(lv_objnr)

          from aufk

          where aufnr = @et_data-aufnr.

    call function 'STATUS_READ'

      exporting

        objnr       = lv_objnr

        only_active = 'X' "仅显示激活状态

      tables

        status      = lt_status. "返回的状态表

  data(lv_rel) = ''.

  loop at lt_status.

    if lt_status-stat = 'I0076'. "删除

      ls_doc-sttxt = '删除'.

    endif.

    if lt_status-stat = 'I0002'. "下达

      lv_rel = 'X'.

    endif.

  endloop.

  if lv_rel = ''.

    return.

  endif.

 vsaufk

select single aufnr

        into @data(lv_aufnr2)

        from vsaufk

        where aufnr = @lv_aufnr and inact = ''

        and stat in ('I0045','I0046','I0076','I0012').

      if sy-subrc = 0.

        message e001(00) with '工单' lv_aufnr '不允许做计划,请与生管确认后再重新为该订单做排程'.

      endif.

函数STATUS_TEXT_EDIT可以直接取到和生产订单上显示一样的状态(生产订单上显示的不是所有激活的状态)

perform get_status using ls_out-aufnr changing  ls_out-stat.

form get_status using uv_aufnr  changing cv_stat.

  data:

    lv_objnr    like jest-objnr,

    lv_stat(40).

  select single objnr

    into lv_objnr

    from aufk

    where aufnr = uv_aufnr.

  if sy-subrc = 0.

    call function 'STATUS_TEXT_EDIT'

      exporting

        objnr            = lv_objnr

        only_active      = 'X'

        spras            = sy-langu

      importing

        line             = lv_stat

      exceptions

        object_not_found = 1

        others           = 2.

    if sy-subrc <> 0.

* Implement suitable error handling here

    endif.

  endif.

  cv_stat = lv_stat.

endform.

系统状态在表TJ02中,文本在表TJ02T中,分别为TXT04,TXT30两个字段

常用生产订单状态:

           'I0001' "创建  CRTD

           'I0002' "释放(下达)REL

          'I0009' 已确认 CNF 

           'I0013' 删除(订单工序状态,就‘删除’两个字)

           'I0074' 部分交货  PDLV

           'I0012' "完成交货 DLV 

           'I0076' "删除 标记(生产订单)DEL (也有删除两个字)

           'I0043' "冻结

           'I0045' "TECO 

           'I0046' "结算  CLSD 结算状态工单组件全部打上删除标记

          I0321 货物移动 GMPS

下达、技术性关闭、结算这三个状态是互斥的

下达和创建互斥

工序状态

CNF I0009 完全报工

PCNF I0010  部分报工

删除 I0013 已删除工序

常用状态表

JEST 单独状态(存放对象号对应的状态)

TJ30用户状态表

TJ02 系统状态

TJ02T系统状态描述

修改状态(函数的必输字段可以传入空值)

  CALL FUNCTION 'I_CHANGE_STATUS'

    EXPORTING

      OBJNR                = lt_resb-objnr

      ESTAT_INACTIVE       = ''

      ESTAT_ACTIVE         = 'I0013'

*   STSMA                =

   EXCEPTIONS

     CANNOT_UPDATE        = 1

     OTHERS               = 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值