ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

PR / PO审批

2021-12-19 18:35:29  阅读:227  来源: 互联网

标签:PR BAPI rel REL 审批 填写 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)。

 

标签:PR,BAPI,rel,REL,审批,填写,PO
来源: https://www.cnblogs.com/ckstock/p/15708067.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有