ABAP 代码中实现权限Check的两种方式

原创 2015年07月08日 10:00:10
1. 针对SU01中Parameter的check,获取用户Parameter的语句如下

n  获取用户Parameter
 
GET PARAMETER ID 'ZPBOM' FIELD ID.


2. 对于用户权限对象的Check,举例:

FORM f_check_m_best_bsa USING    i_bsart TYPE esart
                       
CHANGING o_power TYPE c.

 
TYPES: BEGIN OF t_t161,
    bstyp
TYPE bstyp,
    bsart
TYPE esart,
 
END OF t_t161.
 
DATA: lt_values TYPE STANDARD TABLE OF us335.
 
DATA: lw_value  LIKE LINE OF lt_values.
 
DATA: lt_t161   TYPE STANDARD TABLE OF t_t161.

 
AUTHORITY-CHECK OBJECT 'M_BEST_BSA' ID 'ACTVT' FIELD '09'
                                     
ID 'BSART' FIELD '*'.
 
IF sy-subrc = 0.
    o_power
= 'X'.
   
EXIT.
 
ENDIF.

CALL FUNCTION 'GET_AUTH_VALUES'
   
EXPORTING
      object1          
= 'M_BEST_BSA'
      user             
= sy-uname
      tcode            
= sy-tcode
   
TABLES
      values           
= lt_values
   
EXCEPTIONS
      user_doesnt_exist
= 1
     
OTHERS            = 2.

 
LOOP AT lt_values INTO lw_value.

   
IF lw_value-field = 'ACTVT' AND lw_value-lowval = '09'.
     
READ TABLE lt_values TRANSPORTING NO FIELDS
          
WITH KEY auth = lw_value-auth
                  
field = 'BSART'
                  lowval
= i_bsart.
     
IF sy-subrc = 0.
        o_power
= 'X'.
       
EXIT.
     
ENDIF.
   
ENDIF.

   
IF lw_value-highval IS NOT INITIAL.
     
SELECT bstyp bsart
       
INTO TABLE lt_t161
       
FROM t161
      
WHERE bstyp = 'F'
        
AND bsart >= lw_value-lowval
        
AND bsart <= lw_value-highval.

     
READ TABLE lt_t161 TRANSPORTING NO FIELDS
          
WITH KEY bsart = i_bsart.

     
IF sy-subrc = 0.
       
READ TABLE lt_values TRANSPORTING NO FIELDS
            
WITH KEY auth = lw_value-auth
                    
field = 'ACTVT'
                    lowval
= '09'.
       
IF sy-subrc = 0.
          o_power
= 'X'.
         
EXIT.
       
ENDIF.
     
ENDIF.
   
ENDIF.

   
CLEAR lw_value.
 
ENDLOOP.

 
FREE: lt_values,lt_t161.

ENDFORM.                    " f_check_m_best_bsa

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【转载】SAP ABAP中自定义权限对象(AUTHORITY-CHECK)

SAP系统自带了很多的权限对象,每一个运行画面都有非常多的权限用到。不过标准的权限对象并不一定适合于用在客户自己开发的程序里面,所以每个ABAPer都应该会自己开发一套权限对象,并引用在程序代码里面。...

Java实现权限管理的两种方式

第一种方式:利用filter、xml文件和用户信息表配合使用来实现权限管理。   1.过滤器filter   package cn.com.aaa.bbb.filter;   import ja...

ABAP 发送邮件的两种方式

第一种:Call the FM to post the message to SAPMAIL, CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' C...

Java基础 - 多线程,两种实现方式(继承Thread,实现Runnable接口),设置获取名字,同步代码块、方法,死锁

Java基础 - 多线程,两种实现方式(继承Thread,实现Runnable接口),设置获取名字,同步代码块、方法,死锁...

谈谈从库函数API和C代码中嵌入汇编两种方式来实现系统调用

程  序 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000         先来谈谈...
  • p222p
  • p222p
  • 2017年03月09日 10:31
  • 112

快速排序法两种代码实现方式讲解

快速排序法代码实现
  • zlhn55
  • zlhn55
  • 2015年10月15日 17:04
  • 162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ABAP 代码中实现权限Check的两种方式
举报原因:
原因补充:

(最多只允许输入30个字)