采购订单审批BAPI ---BAPI_PO…

来源:互联网 发布:剑灵天族女身材数据 编辑:程序博客网 时间:2024/04/27 16:11
采购订单审批BAPI---BAPI_PO_RELEASE 
REPORT  z_release_po.

DATA gc_frggr LIKE ekko-frggr.                                     "Release Group
DATA gc_frgsx LIKE ekko-frgsx.                                      "Release Strategy
DATA gc_frgke LIKE ekko-frgke.                                      "Release Status.
DATA ret_code LIKE sy-subrc.
DATA msg(255) TYPE c.
DATA: gt_t16fs LIKE t16fs OCCURS WITH HEADER LINE.
DATA: gc_new_status LIKE bapimmpara-rel_status.
DATA: gc_indicator_new LIKE bapimmpara-po_rel_ind.
DATA: gt_log LIKE bapiret2 OCCURS WITH HEADER LINE.
DATA: gc_no_commit LIKE bapimmpara-selection.
DATA: et_log LIKE bapiret2 OCCURS WITH HEADER LINE.

DATA:BEGIN OF it_po_rel_code OCCURS 0,
      rel_code TYPE frgco,
     END OF it_po_rel_code.

SELECTION-SCREEN BEGIN OF BLOCK block WITH FRAME TITLE title.
PARAMETERS:po_num LIKE ekko-ebeln,"采购订单号
           rel_code TYPE frgco."审批代码

SELECTION-SCREEN END OF BLOCK block.



SELECT SINGLE ekko~frgke INTO gc_frgke FROM ekko WHERE ekko~ebeln po_num.
IF gc_frgke '1'.
  ret_code -1.
  CONCATENATE: po_num '已经通过审核' INTO msg.
 EXIT.
ELSE.
  SELECT SINGLE ekko~frggr ekko~frgsx INTO (gc_frggr,gc_frgsx) FROM ekko WHERE ekko~ebeln po_num.

  IF gc_frggr IS NOT INITIAL AND gc_frgsx IS NOT INITIAL ).
    REFRESH gt_t16fs.
    CLEAR gt_t16fs.
    SELECT INTO CORRESPONDING FIELDS OF TABLE gt_t16fs FROM t16fs WHERE t16fs~frggr gc_frggr AND t16fs~frgsx gc_frgsx.
  ELSE.
    ret_code -1.
    msg ='未找到对应审批策略,请检查输入'.
    EXIT.
  ENDIF.


  IF rel_code IS NOT INITIAL.
    CLEAR gc_new_status.
    CLEAR gc_indicator_new.

    CALL FUNCTION 'BAPI_PO_RELEASE'
      EXPORTING
        purchaseorder                po_num
        po_rel_code                  rel_code
        use_exceptions               'X'
          no_commit                    =
      IMPORTING
        rel_status_new               gc_new_status
        rel_indicator_new            gc_indicator_new
               ret_code                     =
      TABLES
        return                       gt_log.
    .
    IF sy-subrc 0.
      et_log-type 'S'.
      CONCATENATE: '采购订单通过审核码' rel_code '的审核成功!' '返回采购订单审批状态为:' gc_new_status 审批标识为:'
             gc_indicator_new INTO et_log-message.
      APPEND et_log.
      IF NOT gt_log[] IS INITIAL.
        et_log-type gt_log-type.
        et_log-message gt_log-message.
        APPEND et_log.
      ENDIF.
    ENDIF.

  ELSE.
    ret_code -1.
    msg '未找到对应审批策略,请检查输入'.
    EXIT.
  ENDIF.

  IF et_log[] IS NOT INITIAL.
    READ TABLE et_log WITH KEY type 'E'.
    IF sy-subrc 0.
      msg 'po审核存在错误,请查看错误日志'.
      ret_code -1.
      EXIT.
    ELSE.
      msg 'PO已审核成功,请查看日志'.
      ret_code 0.

    ENDIF.
  ENDIF.
ENDIF.
WRITE:msg.

原博文地址:http://blog.chinaunix.net/uid-15016030-id-12202.html
0 0
原创粉丝点击