Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3154268
  • 博文数量: 238
  • 博客积分: 864
  • 博客等级: 军士长
  • 技术积分: 2940
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-08 23:01
个人简介

Mobile: 135 8576 5961 / WeChat: IM_WILLIAM_C / Mail: william.chen.cn@outlook.com /

文章分类

全部博文(238)

文章存档

2018年(2)

2016年(35)

2015年(47)

2014年(104)

2013年(38)

2012年(12)

分类: IT业界

2014-06-25 15:22:26

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.

  
TYPESBEGIN OF t_t161,
    bstyp 
TYPE bstyp,
    bsart 
TYPE esart,
  
END OF t_t161.
  
DATAlt_values TYPE STANDARD TABLE OF us335.
  
DATAlw_value  LIKE LINE OF lt_values.
  
DATAlt_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.

  
FREElt_values,lt_t161.

ENDFORM.                    " f_check_m_best_bsa


阅读(8639) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~