ABAP 采购申请反审批/取消审批BAPI_REQUISITION_RESET_REL_GEN

*&---------------------------------------------------------------------*
*& Form frm_reject_pr
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> PS_HEAD
*&      <-- PS_RETINFO
*&---------------------------------------------------------------------*
FORM frm_reject_pr  USING    ps_head      TYPE  zmms035
                    CHANGING ps_retinfo   TYPE  zmms037.

  DATA: lv_number   TYPE bapi2009ob-preq_no,
        lv_rel_code TYPE bapimmpara-rel_code,
        lt_return   TYPE TABLE OF bapireturn,
        ls_return   TYPE bapireturn,
        lv_subrc    TYPE sy-subrc.

  lv_number = ps_head-banfn.  " 采购申请编号  EBAN-BANFN
  lv_rel_code = 'SA'.         " 采购申请批准代码  T16FC-FRGCO

  SELECT SINGLE
    frgkz
  FROM eban
  WHERE
    banfn = @ps_head-banfn
  INTO @DATA(lv_frgkz).
  IF sy-subrc = 0 AND lv_frgkz = gc_b.  " 此时尚未审批
    ps_retinfo-code     = gc_e.
    ps_retinfo-message  = TEXT-m20. " 采购申请尚未审批,请先审批;
    EXIT.
  ENDIF.

  "采购申请取消审批
  CALL FUNCTION 'BAPI_REQUISITION_RESET_REL_GEN'
    EXPORTING
      number   = lv_number
      rel_code = lv_rel_code
    TABLES
      return   = lt_return.

  lv_subrc = sy-subrc.
  LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'.
"    ps_retinfo-code     = gc_e.
"    ps_retinfo-message  = ps_retinfo-message && ls_return-message.
  ENDLOOP.
  IF sy-subrc = 0 OR lv_subrc NE 0.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = abap_true.
    WAIT UP TO '0.5' SECONDS.
  ENDIF.

ENDFORM.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值