自己写的销售组织分销渠道的权限检查增强

DATA LT_TVKOT TYPE TABLE OF TVKOT WITH HEADER LINE.
  DATA LT_TVTWT TYPE TABLE OF TVTWT WITH HEADER LINE.


  SELECT * FROM TVKOT INTO TABLE LT_TVKOT WHERE VKORG IN svkorg AND SPRAS = '1'.
  SELECT * FROM TVTWT INTO TABLE LT_TVTWT  WHERE VTWEG IN svtweg AND SPRAS = '1'.
  LOOP AT LT_TVKOT.
    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
        ID 'VKORG' FIELD LT_TVKOT-VKORG
        ID 'VTWEG' DUMMY
        ID 'SPART' DUMMY
        ID 'ACTVT' DUMMY.
    IF SY-SUBRC NE 0.
      MESSAGE E899(MM) WITH '没有销售组织' LT_TVKOT-VKORG '的权限'.
    ENDIF.
    AUTHORITY-CHECK OBJECT 'V_VBRK_VKO'
          ID 'VKORG' FIELD LT_TVKOT-VKORG
          ID 'ACTVT' DUMMY.
    IF SY-SUBRC NE 0.
      MESSAGE E899(MM) WITH '没有销售组织' LT_TVKOT-VKORG '的权限'.
    ENDIF.
    CLEAR LT_TVKOT.
  ENDLOOP.


  LOOP AT LT_TVTWT.
    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'
    ID 'VKORG' DUMMY
    ID 'VTWEG' FIELD LT_TVTWT-VTWEG
    ID 'SPART' DUMMY
    ID 'ACTVT' DUMMY.
    IF SY-SUBRC NE 0.
      MESSAGE E899(MM) WITH '没有分销渠道' LT_TVTWT-VTWEG '的权限'.
    ENDIF.
    CLEAR LT_TVTWT.
  ENDLOOP.

*..........................................





   DATA LT_TVTWT  TYPE  TABLE  OF TVTWT  WITH  HEADER  LINE.
   SELECT FROM TVTWT  INTO  TABLE LT_TVTWT   WHERE VTWEG  IN S_VTWEG  AND SPRAS  '1'.

     AUTHORITY-CHECK OBJECT  'V_VBAK_VKO'
         ID  'VKORG'  FIELD P_VKORG
         ID  'VTWEG' DUMMY
         ID  'SPART' DUMMY
         ID  'ACTVT' DUMMY.
     IF SY -SUBRC  NE  0.
       MESSAGE E899 (MM WITH  '没有销售组织' P_VKORG  '的权限'.
     ENDIF.
     AUTHORITY-CHECK OBJECT  'V_VBRK_VKO'
           ID  'VKORG'  FIELD P_VKORG
           ID  'ACTVT' DUMMY.
     IF SY -SUBRC  NE  0.
       MESSAGE E899 (MM WITH  '没有销售组织' P_VKORG  '的权限'.
     ENDIF.

   LOOP  AT LT_TVTWT.
     AUTHORITY-CHECK OBJECT  'V_VBAK_VKO'
     ID  'VKORG' DUMMY
     ID  'VTWEG'  FIELD LT_TVTWT -VTWEG
     ID  'SPART' DUMMY
     ID  'ACTVT' DUMMY.
     IF SY -SUBRC  eq  0.
      s_VTWEG - sign  'I'.
      s_VTWEG -option  'EQ'.
      s_VTWEG -low  LT_TVTWT -VTWEG.
       APPEND s_VTWEG.

     ENDIF.
      CLEAR: s_VTWEG,LT_TVTWT.
   ENDLOOP.

  loop  at p_gt_fvkdfi.

if p_gt_fvkdfi -vtweg  not  in s_VTWEG[].
   delete p_gt_fvkdfi  where vtweg  p_gt_fvkdfi -vtweg.
         delete p_gt_fvkdfi   where vtweg  p_gt_fvkdfi -vtweg.
   ENDIF.

CLEAR p_gt_fvkdfi.
    endloop.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值