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表发现,这些多余的系统状态设置为不显示在前台:
以上。
发表评论