退货采购订单多级审批用增强的解决办法

本文详细介绍了如何使用增强的M06E0004功能退出和PROGRAM zxm06u22来根据审批策略,通过金额范围自动调整退货PO的多级审批流程。具体包括了三个审批等级:金额0~50000元的二级审批,50000~100000元的三级审批,以及100000元以上的四级审批。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用增强M06E0004      为发放采购凭证改变通讯结构
FUNCTION   EXIT_SAPLEBND_002
PROGRAM   zxm06u22
根据审批策略,修改i_cekko-usrc1。
usrc1 批准策略的用户字段的格式字符
01、02、03就是标准审批策略中的"批准组"
01 2 Z_PO 采购管理部总经理审批
02 2 Z_PO 运营经理审批
03 2 Z_PO 采购与计划管理部经理审批
代码
*& Creat on 2011.09.09
*& ZRE PO (退货PO) 多级审批
*& 1. 金额 0~~50000 两级审批
*& 2. 金额 50000~~100000 三级审批
*& 3. 金额 100000 以上 四级审批
data: wa_bekpo type bekpo.
data: z_amt type cekko-gnetw value 0.
if i_cekko-bsart = 'ZRE'.
loop at it_bekpo into wa_bekpo.
 
代码
*& Creat on 2011.09.09
*& ZRE PO (退货PO) 多级审批
*& 1. 金额 0~~50000 两级审批
*& 2. 金额 50000~~100000 三级审批
*& 3. 金额 100000 以上 四级审批
data: wa_bekpo type bekpo.
data: z_amt type cekko-gnetw value 0.
if i_cekko-bsart = 'ZRE'.
loop at it_bekpo into wa_bekpo.
i_cekko-gnetw = i_cekko-gnetw + wa_bekpo-netwr.
  endloop.

  if i_cekko-waers 'RMB'.
    call function 'CONVERT_TO_LOCAL_CURRENCY'
      exporting
*       CLIENT                  = SY-MANDT
        date                    = sy-datum
        foreign_amount          = i_cekko-gnetw
        foreign_currency        = i_cekko-waers
        local_currency          = 'RMB'
*       RATE                    = 0
*       TYPE_OF_RATE            = 'M'
*       READ_TCURR              = 'X'
     importing
*       EXCHANGE_RATE           =
*       FOREIGN_FACTOR          =
        local_amount            = z_amt
*       LOCAL_FACTOR            =
*       EXCHANGE_RATEX          =
*       FIXED_RATE              =
*       DERIVED_RATE_TYPE       =
     exceptions
       no_rate_found           = 1
       overflow                = 2
       no_factors_found        = 3
       no_spread_found         = 4
       derived_2_times         = 5
       others                  = 6
              .
    if sy-subrc 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
  else.
    move i_cekko-gnetw to z_amt.
  endif.
  if  z_amt > 0 and z_amt
    i_cekko-usrc1 = '03'.
  elseif z_amt >= 50000 and z_amt 
    i_cekko-usrc1 = '02'.
  else.
    i_cekko-usrc1 = '01'.
  endif.
endif.
move-corresponding i_cekko to e_cekko.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值