BAIP审批采购订单2

* Program Name :   ZGER_BAPI_4                                    *
* describe:                                                  *
* Created by   :                                             *
* Created on   :                                             *
*                                                            *
*------------------------------------------------------------*
REPORT zger_bapi_4.


DATA:
  BEGIN OF ls_grp,
    frggr TYPE t16fc-frggr,  "审批组
    frgco TYPE t16fc-frgco,  "审批代码
  END OF ls_grp,

  lt_grp    LIKE TABLE OF ls_grp,
  lt_return TYPE STANDARD TABLE OF bapireturn,
  ls_return TYPE bapireturn.


PARAMETERS:p_EBELN TYPE EKKO-EBELN.
PARAMETERS:p_frgco TYPE t16fc-frgco.


* 根据PR获得审批组,从而获取审批码
SELECT t16fc~frggr
       t16fc~frgco
  INTO TABLE lt_grp
  FROM EKKO
 INNER JOIN t16fc ON EKKO~frggr = t16fc~frggr  "审批组
  WHERE EKKO~EBELN = p_EBELN.
 "   AND eban~frgrl = 'X'."FRGRL 字段标示审批是否结束(X未结束,需要审批, ''审批结束
*循环审批码将PR逐级
SORT lt_grp BY frggr frgco.

DELETE ADJACENT DUPLICATES FROM lt_grp  COMPARING frggr  frgco.

LOOP AT lt_grp INTO ls_grp.
CALL FUNCTION 'BAPI_PO_RELEASE'
  EXPORTING
    purchaseorder                = p_EBELN
    po_rel_code                  = P_FRGCO
*   USE_EXCEPTIONS               = 'X'
*   NO_COMMIT                    = ' '
* IMPORTING
*   REL_STATUS_NEW               =
*   REL_INDICATOR_NEW            =
*   RET_CODE                     =
 TABLES
   RETURN                       = lt_return
EXCEPTIONS
  AUTHORITY_CHECK_FAIL         = 1
  DOCUMENT_NOT_FOUND           = 2
  ENQUEUE_FAIL                 = 3
  PREREQUISITE_FAIL            = 4
  RELEASE_ALREADY_POSTED       = 5
  RESPONSIBILITY_FAIL          = 6
  OTHERS                       = 7
          .
  IF sy-subrc <> 0.
* Implement suitable error handling here

  ENDIF.

  LOOP AT lt_return INTO ls_return WHERE type = 'A'
                                       OR type = 'E'
                                       OR type = 'X'.
    "MESSAGE ls_return-MASSAGE TYPE 'S' DISPLAY LIKE 'E'.

  ENDLOOP.

ENDLOOP.
 MESSAGE '审批完成,请通过ME29N查看审批结果' TYPE 'S'.

原文地址:https://www.cnblogs.com/lvdong18847870057/p/12422696.html