zoukankan      html  css  js  c++  java
  • BAPI审批采购订单

    * Program Name :   ZGER_BAPI_2                                    *
    * describe:                                                  *
    * Created by   :                                             *
    * Created on   :                                             *
    *                                                            *
    *------------------------------------------------------------*
    REPORT zger_bapi_2.
    TABLES ekko.
    DATA gc_frggr LIKE ekko-frggr."审批组
    DATA gc_frgsx LIKE ekko-frgsx."审批策略
    DATA gc_frgke LIKE ekko-frgke."批准标识:采购凭证
    DATA ret_code LIKE sy-subrc.
    DATA msg(255) TYPE c.
    DATA gt_t16fs LIKE t16fs OCCURS 0 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 0 WITH HEADER LINE.
    "DATA GC_NO_COMMIT       LIKE BAPIMMPARA-SELECTION.
    "DATA ET_LOG             LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.

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

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

    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.
    ELSE.
      SELECT SINGLE ekko~frggr ekko~frgsx
        INTO (gc_frggr,gc_frgsx)
        FROM ekko
      WHERE ekko~ebeln = po_num.
    ENDIF.

    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         =
    *     REL_INDICATOR_NEW      =
    *     RET_CODE               =
    * TABLES
    *     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
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        WRITE: '审批成功' .
      ENDIF.

    ENDIF.

  • 相关阅读:
    01、启动优先和安全设置
    5、bam格式转为bigwig格式
    1、蛋白质二级结构预测方法
    12、IGV-Integrative Genomics Viewer
    docker-compose 工具安装
    docker-compose.yml 语法说明
    docker 镜像和容器的批量清理
    rancher 笔记 之 rancher应用中心
    golang 学习笔记
    docker registry 搭建
  • 原文地址:https://www.cnblogs.com/lvdong18847870057/p/12422682.html
Copyright © 2011-2022 走看看