ABAP工单状态

1.REL / TECO
CASE is_item-stat.
WHEN ‘E0001’."将INACTI0001打上“X”。
PERFORM inact_change USING is_item-aufnr
CHANGING e_return .

  WHEN 'E0003'.
    lv_user_st = 'RELEASE'. "下达
  WHEN 'E0004'.
    lv_user_st = 'TECO_WITH_NOTIF'. "技术完成
ENDCASE.
IF is_item-stat <> 'E0001' .
ls_methods-refnumber  = 1.
ls_methods-objecttype = 'HEADER'.
ls_methods-method     = lv_user_st.       "用户状态
ls_methods-objectkey  = is_item-aufnr.
APPEND ls_methods TO lt_methods.

IF lt_methods IS NOT INITIAL.

  CLEAR ls_methods.
  ls_methods-method     = 'SAVE'.
  APPEND ls_methods TO lt_methods.

  CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'
    TABLES
      it_methods    = lt_methods
      return        = lt_return
      it_userstatus = lt_usrstat1.

  IF sy-subrc = 0.
    LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A' .
      lv_retmsg = ls_return-message && '-' && lv_retmsg.
      CLEAR ls_return.
    ENDLOOP.
    IF lv_retmsg IS INITIAL.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = abap_true.
      e_return-zmsgtp = 'S'.
      e_return-zmsgtx = TEXT-001.
      "          MESSAGE S022(ZPM01) INTO e_return-zmsgtx.
      MESSAGE s024(zpm01) INTO e_return-zmsgtx.
      "          e_return-message = '维护工单状态成功!'.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      e_return-zmsgtp = 'E'.
      "          e_return-zmsgtx = TEXT-002.
      MESSAGE e023(zpm01) INTO e_return-zmsgtx.
      e_return-message = lv_retmsg.
      RETURN.
    ENDIF.
  ENDIF.
ENDIF.
ENDIF.
2.状态激活、取消:
DATA: it_jstat TYPE TABLE OF jstat,
    is_jstat TYPE jstat.

DATA: lv_objnr TYPE jsto-objnr.

SELECT SINGLE objnr INTO lv_objnr
FROM aufk
WHERE aufnr = pv_aufnr.

is_jstat-stat = ‘I0001’.
is_jstat-inact = ‘X’."取消
APPEND is_jstat TO it_jstat .

CALL FUNCTION ‘STATUS_CHANGE_INTERN’
EXPORTING
client = sy-mandt "当前客户端
objnr = lv_objnr "
TABLES
status = it_jstat
EXCEPTIONS
object_not_found = 1
status_inconsistent = 2
status_not_allowed = 3
OTHERS = 4.
3.状态变更
DATA: ls_status TYPE jstat.

DATA: lt_status LIKE TABLE OF ls_status.

DATA: lv_objnr TYPE jsto-objnr,
lv_obtyp TYPE jsto-obtyp,
lv_stsma TYPE jsto-stsma,
lv_stonr TYPE tj30-stonr.

SELECT SINGLE objnr INTO lv_objnr
FROM aufk
WHERE aufnr = pv_aufnr.

IF lv_objnr IS NOT INITIAL.
CALL FUNCTION ‘STATUS_READ’
EXPORTING
client = sy-mandt
objnr = lv_objnr
IMPORTING
obtyp = lv_obtyp
stsma = lv_stsma
stonr = lv_stonr
TABLES
status = lt_status
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.

  • Implement suitable error handling here
    ENDIF.
    READ TABLE lt_status INTO ls_status WITH KEY stat = ‘E0001’.
    IF sy-subrc EQ 0.
    IF ls_status-inact IS INITIAL.
    " 将用户状态“创建”改为“审批中”
    CALL FUNCTION ‘I_CHANGE_STATUS’
    EXPORTING
    objnr = lv_objnr
    estat_inactive = ‘E0001’
    estat_active = ‘E0002’
    stsma = lv_stsma
    EXCEPTIONS
    cannot_update = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
  •     Implement suitable error handling here
      ENDIF.
    ENDIF.
    
    ENDIF.
    ENDIF.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值