• 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'.

  • 相关阅读:
    ftp命令行敲不了
    转载 vsftpd安装
    ftp上传不了故障
    mysql导入数据方法和报错解决
    time使用方法
    python 进程Queue
    python 进程事件
    python 进程信号量
    python 进程锁
    python 守护进程
  • 原文地址:https://www.cnblogs.com/lvdong18847870057/p/12422696.html
Copyright © 2020-2023  润新知