前言:在ABAP开发中有时候会涉及到状态的变更,比如销售订单的系统状态变更未审批->已审批、设备的在运->报废等,在这里就需要用到标准函数I_CHANGE_STATUSSTATUS_CHANGE_EXTERN针对这些对象的状态进行变更。

1.状态更改

使用案例:I_CHANGE_STATUS

参数说明:

OBJNR——对象号;

ESTAT_INACTIVE——当前用户状态;

ESTAT_ACTIVE——要修改的用户状态;

STSMA——用户状态参数文件;

注意:修改状态之前要判断当前状态是否与要修改的状态相同,不相同则能修改,否则会出现系统异常。

以上参数可从SAP前台界面获取,举例销售订单:路径va03->菜单栏转到->抬头->状态



如果从前台找不到,也可以从以下表中知道对应的参数:

TJ02——系统状态表:CRTD.REL等系统状态对象值;

TJ02T——系统状态文本表:CRTD.REL等系统状态对象值;

TJ03——对象类型表:

TJ03T——对象类型文本表:

TJ20——状态参数文件:状态参数文件ZNPCON等值;

TJ30——用户状态表:根据参数文件找对应的用户状态:appr已批准用户状态等值;可根据状态参数文件在此表中查询对象号。

JEST——单独对象状态:输入OR+000000+工单号可查询该工单的所有状态Number;

JSTO——状态对象信息:

2.状态查询

使用系统标准函数:STATUS_TEXT_EDIT

FORM frm_get_order_status.
DATA:l_stsma TYPE jsto-stsma,
l_line TYPE bsvx-sttxt,
l_user_line TYPE bsvx-sttxt,
l_stonr TYPE tj30-stonr. DATA:lv_objnr TYPE jest-objnr.
"取对象号"
SELECT SINGLE objnr INTO lv_objnr FROM vbak WHERE vbeln = <fs_opt>-vbeln. CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
* CLIENT = SY-MANDT
flg_user_stat = 'X'
objnr = lv_objnr "对象号"
only_active = 'X'
spras = sy-langu
IMPORTING
e_stsma = l_stsma "对象状态参数文件"
line = l_line "状态文本:对象的状态拼接而成"
user_line = l_user_line "用户状态文本"
stonr = l_stonr
EXCEPTIONS
object_not_found = 1
OTHERS = 2. SEARCH l_user_line FOR 'B'. "如果存在B字符,则对象已审批"
IF sy-subrc = 0.
ENDIF.
ENDFORM.

最新文章

  1. 利用Generator解决异步回调原理
  2. TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之一
  3. 1、JS的数据类型
  4. SQL Server 维护计划实现数据库备份(Step by Step)
  5. DP/最短路 URAL 1741 Communication Fiend
  6. 深入研究java.lang.Runtime类【转】
  7. Project Euler 101 :Optimum polynomial 最优多项式
  8. 【图片处理】cocos2dx png图片压缩处理
  9. 武汉科技大学ACM:1005: 单位转换
  10. 32G sd卡格式化成fat
  11. 彻底明白Java的IO系统
  12. ACL in 和 out 区别 (重要)
  13. 由浅入深学习springboot中使用redis
  14. Python进阶8---面向对象基础1
  15. 安装Java8以后,Eclipse运行异常解决方案
  16. linux 软/硬链接详解
  17. cf-Global Round2-D. Frets On Fire(二分)
  18. 如何在HTML中播放flash
  19. jQuery之修改li下样式和图片
  20. 第196天:js---调用函数的五种方式

热门文章

  1. 1.4redis小结--队列在抢购活动的实现思路
  2. python学习2-博客-蓝图
  3. SQL-关联查询【转】
  4. 关于cgroup的几个核心名词及其关系
  5. VUE页面跳转方式
  6. Git提交时默认编辑器Vim换成Notepad++
  7. Superedge的新特性和未来之路
  8. 拥抱开源,共建生态 - 开源生态与效能提升专场 | CIF 精彩看点
  9. Snipaste屏幕截图的使用
  10. CSharp委托与匿名函数