权限对象包含了若干权限字段、允许的 *** 作和允许的值,在透明表 AGR_1251中体现了ROLE/Object/Field/Value之间的关系;有一个特殊的权限对象用来包含了若干事务码。这个权限对象叫 “S_TCODE”,该权限对象的权限字段叫“TCD”,该字段允许的值(Field Value)存放的就是事务代码;有一种特殊的权限字段用来表示可以针对该权限对象做哪些 *** 作,是允许创建、修改、显示、删除或者其他呢。该权限字段叫 “ACTVT”,该字段允许的值(Field Value)存放的就是允许 *** 作的代码,01代表创建、02代表修改、03代表显示等;SAP 系统自带了若干权限对象、默认控制了若干权限字段(对应到透明表的某些字段)。可以用事务码SU20来查看系统有哪些权限字段,用SU21来查看系统有哪些默认的权限对象。于是我们知道了事务代码与权限对象的区别。从权限控制的范畴来看,事务代码属于一种特殊的权限对象;一个事务代码在执行过程中,为了判断某个ID是否有权限执行此事务代码,还可能检查其他若干普通的权限对象。使用SU22来查看某个事务代码包含了哪些权限对象。在透明表USOBX中,存放了事务码与权限对象的对应关系。
这里我想问一下,你所说的界面是SAP标准的,还是在标准屏幕上用子屏幕增强的,再或者是完全自开发的屏幕
如果是SAP标准的话,一般情况下是没有权限修改的(一般的开发人员是绝对没权限的)
如果是通过增强子屏幕或者自开发的屏幕,那实现起来其实很简单,这里说一下原理(以你本人有权限修改代码为前提):
让一个按钮不起作用,最简单的方法就是点击屏幕的Layout,在屏幕编辑界面中把你想让它失效的按钮的FctCode中的功能码删掉(然后激活即可),这样点击该按钮时,就不会触发PAI事件,它的功能就不起作用了
如果你非要将这个按钮变成灰色,会麻烦一点,首先,打开该按钮的属性(Attribute),在Groups后的第一个输入框中输入GR1,然后激活,退出屏幕编辑,去修改代码,双击该屏幕号,点开FlowLogic(逻辑流),看PROCESSBEFOREOUTPUT.下是否有Mole,如果有的话,在该Mole的代码中添加如下代码并激活程序
LOOPATSCREEN.
IFscreen-group1='GR1'.
screen-input='0'.
MODIFYSCREEN.
ENDIF.
ENDLOOP.
如果没有Mole,就新建一个,然后在Mole中添加上面的代码,激活程序
希望对你有用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)