SAP存放状态的几个常用表

SAP存放状态的几个常用表

在sap中,包括订单、项目、计划、设备主数据等,存在审批流程的业务单据,这些业务对象都会有状态的属性,用来控制和约束该业务当前的操作。

主要的表

JEST:存放了该对象编号的当前状态

JCDS:存在对象状态修改的历史记录

【系统状态】

以I开头,主数据表是TJ02,描述表TJ02T

表TJ04可以据业务对象号(如WBS是PRN),可以查出所有相关的状态

这个在SAP和点检集成时取通知单的系统状态传值时用到了。

【用户状态】

以E开头,每个用户状态都关联一个用户参数文件,相同的状态编码在不用的参数文件下意义不用, 主数据表为TJ30, 文本表是TJ30T

对于每笔业务,都有一个唯一的对象编号,字段名一般为 OBJNR ,存在在业务表中。

WCAAP 表:存放工作清理管理:应用程序的对象号的表,根据工作票、操作票编号可以查到对应的对象号。

AUFK 表:存放订单对象号的表,根据订单编号可以查找到对应订单的对象号。

PROJ 表:存放项目定义对象号的表,根据项目定义号可以查找到对应项目定义的对象号。

业务单据用户状态的变化存储在JEST表中,每一个业务单据都有唯一的对象号,业务单据用户状态的变化由对象号作为标识记录在JEST表中,通过修改JEST表的数据可以达到改变业务单据用户状态的效果。SAP也提供了三个函数满足开发者用以读取、批量修改、更新业务单据用户状态的需求。

函数读取示例:

FORM frm_get_status USING plan TYPE vimpla-warpl CHANGING status.
  DATA lt_status TYPE TABLE OF jstat.
  SELECT SINGLE objnr
    
FROM mpla
    
INTO @DATA(lv_objnr)
    WHERE warpl @plan.
  CALL FUNCTION 'STATUS_READ'  "获取订单状态
    EXPORTING
      client      sy-mandt
      objnr       
lv_objnr
      only_active 
abap_true
*     IMPORTING
*     OBTYP       =
*     STSMA       =
*     STONR       =
    TABLES
      status      lt_status
*     EXCEPTIONS
*     OBJECT_NOT_FOUND       = 1
*     OTHERS      = 2
    .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
  IF lt_status IS NOT INITIAL.
    SELECT txt04
      
INTO TABLE @DATA(lt_txt04)
      FROM tj02t
      
FOR ALL ENTRIES IN @lt_status
      
WHERE istat @lt_status-stat
      
AND  spras @sy-langu.
  ENDIF.
  CONCATENATE LINES OF lt_txt04 INTO status SEPARATED BY space.
ENDFORM.

SAP存放状态的几个常用表_第1张图片

你可能感兴趣的:(ABAP,ABAP)