zoukankan      html  css  js  c++  java
  • PR / PO审批

    PR审批的BAPI

    1、单个项目PR审批
    CALL FUNCTION 'BAPI_REQUISITION_RELEASE'
    EXPORTING
      number                 = l_banfn
      rel_code               = '01'
      item                   = l_bnfpo
        USE_EXCEPTIONS         = 'X'
    NO_COMMIT_WORK         = ''
    IMPORTING
    REL_STATUS_NEW           = LV_FRGZU
    rel_indicator_new      = l_frgkz
    TABLES
    return                 = l_return
    EXCEPTIONS
    authority_check_fail   = 1
    requisition_not_found  = 2
    enqueue_fail           = 3
    prerequisite_fail      = 4
    release_already_posted = 5
    responsibility_fail    = 6
    OTHERS                 = 7.
    
    USE_EXCEPTIONS默认填写X(填写X表示返回例外和问题的错误消息),NO_COMMIT_WORK默认填写空(如果填写X就表示只是测试不写数据库)。 多级审批的时候,REL_CODE参数填写当前审批的级数。比如2级审批,可以逐级审批,先填写’01’,执行该BAPI,然后再填写’02’,再次执行该BAPI,这样就完全审批。不可跨级审批,或者说一次审批多级。
    如果PR在被其他用户修改、审批占用,RETURN参数会返回消息“PR某行冻结”。如果审批成功,REL_STATUS_NEW参数返回批准状态(当前做到几级审批就是几个X,未审批是空),rel_indicator_new返回批准标识(对于华星未审批是X,一级审批时为A,二级审批时为2)。
    
    
    2、PR整体审批
            CALL FUNCTION 'BAPI_REQUISITION_RELEASE_GEN'
            EXPORTING
              number            = ls_outtab-banfn
              rel_code          = l_frgab 
    NO_COMMIT_WORK    = ''
            IMPORTING
              rel_status_new    = l_frgzu
              rel_indicator_new = l_frgkz
            TABLES
              return            = lt_return.
    可以同时审批PR的所有项目。输入参数填写类似单个审批,返回参数也是类似。
    
    
    3、单个项目取消PR审批
        CALL FUNCTION 'BAPI_REQUISITION_RESET_RELEASE'
          EXPORTING
          NUMBER                     = ITEM-BANFN
          ITEM                       = ITEM-BNFPO
          REL_CODE                   = '01'
        IMPORTING
          REL_INDICATOR_NEW          = HEAD-FRGKZ
        TABLES
            RETURN                   = ZRETURN
          EXCEPTIONS
            AUTHORITY_CHECK_FAIL     = 1
            REQUISITION_NOT_FOUND    = 2
            ENQUEUE_FAIL             = 3
            PREREQUISITE_FAIL        = 4
            RELEASE_ALREADY_POSTED   = 5
            RESPONSIBILITY_FAIL      = 6
            NO_RELEASE_ALREADY       = 7
            NO_NEW_RELEASE_INDICATOR = 8
            OTHERS                   = 9.
    
    USE_EXCEPTIONS默认填写X(填写X表示返回例外和问题的错误消息),NO_COMMIT_WORK默认填写空(如果填写X就表示只是测试不写数据库)。 多级取消审批的时候,REL_CODE参数填写当前取消审批的级数。比如2级审批,可以逐级取消审批,先填写’02’,执行该BAPI,然后再填写’01’,再次执行该BAPI,这样就完全取消审批(这时批准标识FRGKZ为X)。可以一次完全取消审批。不管当前处于几级审批状态,REL_CODE参数填写’01’,执行该BAPI,就会完全取消审批。
    如果PR在被其他用户修改、审批占用,RETURN参数会返回消息“PR某行冻结”。如果取消审批成功,REL_STATUS_NEW参数返回批准状态(当前取消审批后PR剩下的审批级数是几级就是几个X,完全取消审批是空),rel_indicator_new返回批准标识(对于华星未审批是X,一级审批时为A,二级审批时为2)。
    
    
    4、整体取消PR审批
       CALL FUNCTION 'BAPI_REQUISITION_RESET_REL_GEN'
    EXPORTING
      NUMBER            = BAPI2009OB-PREQ_NO
    REL_CODE          = RM06B-FRGAB 
    NO_COMMIT_WORK   = ''
    IMPORTING
      REL_STATUS_NEW    = EBAN-FRGZU
      REL_INDICATOR_NEW = EBAN-FRGKZ
    TABLES
      RETURN            = RETURN.
    
    可以同时取消审批PR的所有项目。输入参数填写类似单个取消审批,返回参数也是类似。

    PO 审批

    PO审批的BAPI
    1、    审批PO的BAPI
              CALL FUNCTION 'BAPI_PO_RELEASE'
              EXPORTING
                purchaseorder            = lt_ekko-ebeln
                po_rel_code              = '01'
                USE_EXCEPTIONS          = 'X'
                NO_COMMIT                  = ''
                IMPORTING
                  REL_STATUS_NEW            = LV_FRGZU 
    rel_indicator_new        = gt_ekpo-frgke
                TABLES
                  return                   = l_return
                EXCEPTIONS
                  authority_check_fail     = 1
                  document_not_found       = 2
                  enqueue_fail             = 3
                  prerequisite_fail        = 4
                  release_already_posted   = 5
                  responsibility_fail      = 6
                  no_release_already       = 7
                  no_new_release_indicator = 8
                  OTHERS                   = 9.
    
    USE_EXCEPTIONS默认填写X(填写X表示返回例外和问题的错误消息),NO_COMMIT默认填写空(如果填写X就表示只是测试不写数据库)。 多级审批的时候,PO_REL_CODE参数填写当前审批的级数。比如2级审批,可以逐级审批,先填写’01’,执行该BAPI,然后再填写’02’,再次执行该BAPI,这样就完全审批。不可跨级审批,或者说一次审批多级。
    如果PO在被其他用户修改、审批占用,RETURN参数会返回消息“用户某某已经处理采购订单”。如果审批成功,REL_STATUS_NEW参数返回批准状态(当前做到几级审批就是几个X,没有审批是空),rel_indicator_new返回批准标识(未审批时为B,全部审批完成时为R)。
    
    
    2、    取消PO审批的BAPI
                CALL FUNCTION 'BAPI_PO_RESET_RELEASE'
                  EXPORTING
                    purchaseorder            = lt_ekko-ebeln
                    po_rel_code              = '01'
                      USE_EXCEPTIONS          = 'X'
                  IMPORTING
                    REL_STATUS_NEW            = LV_FRGZU 
    rel_indicator_new        = gt_ekpo-frgke
                  TABLES
                    return                   = l_return
                  EXCEPTIONS
                    authority_check_fail     = 1
                    document_not_found       = 2
                    enqueue_fail             = 3
                    prerequisite_fail        = 4
                    release_already_posted   = 5
                    responsibility_fail      = 6
                    no_release_already       = 7
                    no_new_release_indicator = 8
                    OTHERS                   = 9.
    
    USE_EXCEPTIONS默认填写X(填写X表示返回例外和问题的错误消息)。 多级取消审批的时候,PO_REL_CODE参数填写当前取消审批的级数。比如2级审批,可以逐级取消审批,先填写’02’,执行该BAPI,然后再填写’01’,再次执行该BAPI,这样就完全取消审批(这时批准标识FRGKZ为B)。可以一次完全取消审批。不管当前处于几级审批状态,PO_REL_CODE参数填写’01’,执行该BAPI,就会完全取消审批。
    如果PO在被其他用户修改、审批占用,RETURN参数会返回消息“用户某某已经处理采购订单”。如果取消审批成功,REL_STATUS_NEW参数返回批准状态(当前取消审批后PR剩下的审批级数是几级就是几个X,完全取消审批是空),rel_indicator_new返回批准标识(未审批时为B,全部审批完成时为R)。
  • 相关阅读:
    python描述符(descriptor)、属性(property)、函数(类)装饰器(decorator )原理实例详解
    JVM内存模型、指令重排、内存屏障概念解析
    图解JVM的Class文件格式(详细版)
    图解JVM执行引擎之方法调用
    为何JAVA虚函数(虚方法)会造成父类可以"访问"子类的假象?
    小乖上学第一天
    FLEX RIA快速添加图标
    1,2,3,5,7,8,10,11,12,13,14,15,16,21,22 》1~3,5,7~8,10~16,21~22
    ABAP 函数编写
    ABAP子进程(字符串分割定位)
  • 原文地址:https://www.cnblogs.com/ckstock/p/15708067.html
Copyright © 2011-2022 走看看