您的位置:首页 > 其它

SE38标准程序ACCESS KEY被修改后处理方法

2012-07-04 11:48 323 查看
问题:

在dev上,程序SAPLSKEY下子程序LSKEYF00被修改(此为开发的ACCESS KEY 程序).笔者是通过一个自写的开发程序进行修改,此开发程序也不存在(程序见下列代码),导致现在在dev上,用se38所有的程序都不能正常修改,通过SE95也无法还原回去,程序LSKEYF00也恢复不回去,在程序LSKEYF00 第92行中多出了这一行(如图)。





如果LSKEYF00出了问题,那么这个程序是不能做修改的,正常情况下要改系统程序会要OBJECT ACCESS KEY的。但是该程序出问题后不会再提示这样的信息的。

第一步、我们要强行修改这个程序,那就要把这个程序设为可以修改的状态。
进入 类对象 程序(如定义ALV类)CL_WB_PGEDITOR 找到 CHANGE_MODE 对象,进入该程序,
(在程序CL_WB_PGEDITOR================CM00H)中设断点





这里的L_MODE值是DISPLAY,把它改为EDIT。这样这个程序不用OBJECT ACCESS KEY的情况下可以做修改。

改后要激活就出出错。
进入 SE37,进函数 TRINT_OBJECTS_CHECK_AND_INSERT
(在下面的FUNCTION程序TRINT_OBJECTS_CHECK_AND_INSERT)里这个断点:





正常情况下,LS_S-CHECK_LICENSE、S_X的值都是X,这样它们就会等式成立,然后会执行下面的CHECK_ACCESS_KEYS程序。把它们两个中的任何一个值改一下,使它们的值不相等,那么就可以跳过CHECK_ACCESS_KEYS.重复改三次就可以激活这个程序,一切问题都OK了。

本文出自 “itlingm” 博客,请务必保留此出处http://itlingm.blog.51cto.com/1774993/919465
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐