前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAP 之SD模块常用权限检查

SAP 之SD模块常用权限检查

作者头像
百里丶落云
发布2022-12-15 15:54:25
1K0
发布2022-12-15 15:54:25
举报
文章被收录于专栏:享~方法享~方法

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情

HELLO,这里是百里,一个学习中的ABAPER,在SAP中分成了很多个模块,其中SD模块主要是业务相关的模块,包括销售订单,发货单,收货单,发票等等数据.今天所讲述的内容是SD模块的常用权限检查.包括销售组织,工厂,部门等数据的检查.

什么是权限检查

权限检查顾名思义,就是有某个权限查看某个东西,因为SAP中的工厂和销售组织等有很多很多,但是我们的代码只有一个代码.如果不同公司对应的数据都可以展示出来那么慢是一说,如果相互泄密不是更不好.这个时候就需要使用数据检查. 就是在我们输入选择屏幕时候,只能选择对应的数据内容,如果选择其他的非规定部门这提示,没有权限.

语法解析

我们主要是调用系统中自带的检查函数,来进行权限检查.

如检查销售组织和部门 V_VBAK_VKO

代码语言:javascript
复制
AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'  
  ID 'VKORG' FIELD 'xxxxxxxx'  
  ID 'VTWEG' FIELD 'xxxxxxxx'  
  ID 'SPART' FIELD 'xxxxxxxx'  
  ID 'ACTVT' FIELD 'xxxxxxxx'.  
IF sy-subrc <> 0.  
* Implement a suitable exception handling here  
ENDIF.

如检查销售组织和产品组的V_KONH_VKO

代码语言:javascript
复制
AUTHORITY-CHECK OBJECT 'V_KONH_VKO'  
  ID 'VKORG' FIELD 'xxxxxxxx'  
  ID 'VTWEG' FIELD 'xxxxxxxx'  
  ID 'SPART' FIELD 'xxxxxxxx'  
  ID 'ACTVT' FIELD 'xxxxxxxx'.  
IF sy-subrc <> 0.  
* Implement a suitable exception handling here  
ENDIF.

调用方式

我们在SE38中,点击上面的模式,点击对应位置的权限检查. 输入检查函数名称.

image.png
image.png

系统就会自动带出对应检查数据. 通过修改对应的参数和字符串拼接达到检查的目的 .

实例演示

我们这里拿V_VBAK_VKO做个案例 . 包括单选时和区间使用两种方式 .

数据准备

检查函数前我们需要先准备数据集,这里通通都要调用基础表数据,如果不调用基础表数据会时的界面非常的卡顿.比如我们这里检查的是销售组织和部门两个字段. 我们这里就取基础表tvkos的字段 .

代码语言:javascript
复制
DATA:l_err TYPE string.  
  SELECT DISTINCT  
         vkorg,spart  
         INTO TABLE @DATA(lt_vkorg)  
         FROM tvkos  
         WHERE vkorg IN @s_vkorg AND spart IN @s_spart.

区间时使用方式

在区间时使用方法是将上述结果内容放在内表中,我们通过循环内容的内容将数据放在工作区中,再逐一检查.

代码语言:javascript
复制
LOOP AT lt_vkorg INTO DATA(ls_vkorg).  
    AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'  
     ID 'VKORG' FIELD ls_vkorg-vkorg  
     ID 'SPART' FIELD ls_vkorg-spart.  
  
    IF sy-subrc <> 0.  
      l_err = '销售组织' &amp;&amp; ls_vkorg-vkorg &amp;&amp; '部门' &amp;&amp; ls_vkorg-spart &amp;&amp; '无权限'.  
      MESSAGE l_err TYPE 'S' DISPLAY LIKE 'E'.  
      STOP.  
    ENDIF.  
  ENDLOOP.

单选时使用方式

单选是使用方式,比较简单,直接将获取数据内容的值放入到对应的工作区内即可.调用时我们只需要调用一次就可以.

代码语言:javascript
复制
AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'  
     ID 'VKORG' FIELD ls_vkorg-vkorg  
     ID 'SPART' FIELD ls_vkorg-spart.  
  
    IF sy-subrc <> 0.  
      l_err = '销售组织' &amp;&amp; ls_vkorg-vkorg &amp;&amp; '部门' &amp;&amp; ls_vkorg-spart &amp;&amp; '无权限'.  
      MESSAGE l_err TYPE 'S' DISPLAY LIKE 'E'.  
      STOP.  
    ENDIF.  

注意:我们在发现权限不对时一定要跟带着一条STOP使程序,停止下来,毕竟人家没有权限肯定需要权限停止 .

技术总结

今天讲述的内容是在ABAP 自开发程序中肯定会用到的内容,权限检查,当然不同模块的权限检查是不一样的,我们需要逐一的发现记录,百里也是初学者,本次只是针对对应的SD模块的常用检查进行讲解 .

百里鸡汤

朝为田舍郎,暮登天子堂。将相本无种,男儿当自强.

这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.

wallhaven-gp8rwq.jpg
wallhaven-gp8rwq.jpg
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是权限检查
  • 语法解析
    • 调用方式
    • 实例演示
      • 数据准备
        • 区间时使用方式
          • 单选时使用方式
          • 技术总结
          • 百里鸡汤
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档