zoukankan      html  css  js  c++  java
  • SAP PP——生产订单的状态

    目录

    一、生产订单的状态说明

     

    状态 状态内文 说明
    CRTD 创建 标识生产订单刚刚创建,此时禁止做后续发料和报工确认等操作
    PREL 部分下达 当生产订单部分下达时,如仅下达部分工序时出现此状态
    REL 已下达 当生产任务已经明确可下发生产时,将生产订单转换为已下达状态,这个状态后可以继续后续业务操作,如打印订单、发料、报完工等操作
    MANC 未检查物料可用性 生产订单未进行零部件物料的可用性检查
    SETC  结算规则维护 生产订单已维护结算规则
    MSPT 物料短缺 生产订单的零部件物料在进行可用性检查后发现存在短缺
    MACM 已承诺的物料 生产订单的零部件物料在进行可用性检查后确认完全可用
    GMPS 已过帐的货物移动 生产订单已经进行过发料
    PCNF 部分确认 生产订单只进行了部分完工确认,比如说订单需求10个,只进行了5个生产,或者订单有2道工序,只完成了第一道工序
    CNF 已确认 生产订单已全部完工确认
    PDLV 部分交货 生产订单只有部分产品入库
    DLV 已完全交货 生产订单已经完全交货入库,这意味着生产订单业务全部完成。
    月末,系统根据订单的状态,判断是计算差异还是计算在制品。如果订单具有DLV或TECO状态,结算差异;如果没有这两个状态,订单结算在制品。
    VCAL 差异计算 生产订单进行过差异运算
    TECO 技术完成 在生产过程中,会出现订单未完成但是不再继续生产的情况,这时就可以打上技术完结标识,此时订单对零部件的需求同时删除。在很多项目中,为了简便处理,会对所有完成的订单进行技术完结处理(注:不再继续生产也是一种完成)。
    月末,系统根据订单的状态,判断是计算差异还是计算在制品。如果订单具有DLV或TECO状态,结算差异;如果没有这两个状态,订单结算在制品。
    RESA 进行结果分析 生产订单进行过结算
    CLSD 关闭 生产订单做账务关闭,不允许对订单发生任何过账,通常情况下,财务月末对订单进行结算后,如果确认不会再有追加发料等业务发生,则应该将订单进行关闭
    DLT 删除 对生产订单做删除标识,数据仍然存在数据库中,状态可恢复。如果想彻底删除,需对订单进行归档处理

     

    二、生产订单相关表(Table)和函数(Function)

    说明
    JEST 工单状态表
    TJ02T 状态说明表

    注意:表JEST栏位INACT有值"X"表示状态未启用,当前工单无该状态

    函数 说明
    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(  ).

    运行效果:

     

    木叶飞舞之处,火亦生生不息
  • 相关阅读:
    无法加载 DLL“librdkafka”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
    C#编码规范
    requests(五)
    python-requests(四):调用上传文件的接口的解决方案
    静态代码扫描工具
    推荐一款 python 管理工具:anaconda
    selenium 网页自动化-在访问一个网页时弹出的浏览器窗口,我该如何处理?
    静态代码扫描工具
    静态代码扫描工具
    静态代码扫描工具
  • 原文地址:https://www.cnblogs.com/StephenAmell/p/12341795.html
Copyright © 2011-2022 走看看