1, 涉及到的表
生产订单的状态(PP order status)涉及到数据库表如下:
1,JEST:可以读取生产订单的全部状态(字段STAT),包括系统状态(I开始),用户状态(E开始),以及状态是否有效(字段INACT,X-无效,空-有效)
2,JCDS:状态的修改历史,在前台可以查看,如下:
3,TJ02T:保存系统状态文本
4,TJ02:保存系统状态配置信息,比如,是否显示在前台(字段NODIS),是否可用(字段SETONLY)
5,TJ30T:保存用户状态文本
2, 函数STATUS_READ读取生产订单状态
除了通过表JEST直接读取生产订单状态外,也可以调用函数STATUS_READ读取
本例子读取订单400000782的状态,前台CO03查看状态如下:
详细状态信息:
完整代码:
其中函数Read_status的输入参数objnr,可以从AUFK-OBJNR取得,
也可以自己组成字符串:‘OR'+生产订单号(带前导零)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
REPORT z_pp_status.
DATA: g_obtyp TYPE jsto-obtyp,
g_stsma TYPE jsto-stsma,
g_stonr TYPE tj30-stonr,
g_aufnr_str TYPE aufk-aufnr,
g_objnr TYPE jsto-objnr,
git_status TYPE TABLE OF jstat,
gwa_status LIKE LINE OF git_status.
" 加前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = '400000782'
IMPORTING
output = g_aufnr_str.
" 链接OR生成object号
CONCATENATE 'OR' g_aufnr_str INTO g_objnr.
* 读取PP order状态
CALL FUNCTION 'STATUS_READ'
EXPORTING
objnr = g_objnr
only_active = ''
IMPORTING
obtyp = g_obtyp
stsma = g_stsma
stonr = g_stonr
TABLES
status = git_status
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
* 输出状态
LOOP AT git_status INTO gwa_status.
WRITE:/ gwa_status-stat,
gwa_status-inact.
ENDLOOP.
ENDIF.
|
运行:
发现多了几个I打头的系统状态,查询TJ02表发现,这些多余的系统状态设置为不显示在前台:
以上。