公司准备上SAP ERP系统,我作为ERP项目的成员之一,一至在积极的、努力的学习SAP ERP,无奈SAP ERP实再太大,大得一时让人摸不着头脑。我之前是做Net开发的,所以我一开始就想看看SAP ABAP长个什么样子,想法是好的,但是实现的过程是曲折的。要想写ABAP代码主必须向SAP申请Access Key,我就这样被Access Key无情的挡在了ABAP大门的外面,由于上网查阅资料,有高人提到,要想绕开Access Key有两种方法,一种是使用牛人提供的注册机,产生Key(我也试过这种方法,不过没成功,搞得我很没有面子)。另外一种方法就是修改SAP ERP检查Access Key程序的代码,下面要介绍的也是这种方法。
一、去掉检查Access Key程序"LSKEYF00"的Editor lock属性,使其可以修改。
a、在"T-code"编辑框中输入"se30"后按回车.
b、弹出一个对话框,点击其中一个按钮(随便一个都可以)。
c、出现一个窗口,在工具栏上点击"Tips & Tricks" 或者就直接按F6。
d、出现另外一个窗口,窗口中间有两个大大的编辑框,在右边的编辑框中输入
Update PROGDIR set edtx = ''
Where
name = 'LSKEYF00'
And
state = 'A'.
Where
name = 'LSKEYF00'
And
state = 'A'.
注意:是右边,一定是右边。俺当时就没注意这个,就直接把上面这段代码写在了左边的编辑框里面,怎么都继续不下去,郁闷了好几天,才发现是我自己搞错了,应该写在右边编辑框里面。所以这里特别的提个醒。
e、按F8 完成。
二、在权限判断文件里面加上断点,阻断权限判断
a、在"T-code"编辑框中输入"se38"后按回车。
b、出现一个窗口,在默认的编辑框中输入"LSKEYF00" 。
c、点击"Display" 按钮。
d、找到 JUMP_THE_WALL 块,然后在这块中找到下面这段
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
e、把光标放在dummy_key后面.点击页面上的背景是红色的stop(ecc6.0里面有两个,选第一个,第二个没有试),在这里添加一个断点,此时上面的最后一行会变为暗红色。
f、点击后面一串图标中倒数第四个(创建新的会话),会出现一个新的操作界面窗口,在新窗口的Tcode输入se38回车。(这里如果不这样打开新窗口的话,有可能会造成不能进入断点的状况。别人是这样说的,我没有验证过)
三、修改权限判断文件中的判断参数的值,达到绕过权限判断的目的。
a、 在默认的编辑框中输入"LSKEYF00"。
b、点击"Change"按钮。
c、程序会自动运行到断点处,窗口的下面Variables1标签里面会有三行空白的数据,(有人说是四行,但我这里只有三行),其中Variable列是可以编辑的,在第一行的Variable中输入"SY-SUBRC"后回车,其它列会自动填冲数据。
d、其中Val列的值是非0的值,而且是不可以修改的,我们需要点下下面的铅笔图标,使其可修改,将其值改为0。
e、按F6。
f、程序运行到下一行代码,重复d步。
g、e,f这两步循环,直到代码运行到 SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S52 { color: #0000FF; }
ENDFORM.且Val的值为0
h、按F8,程序会跳出一个或者几个信息框,不必理会,确认,就会出现一个白底灰字的界面,里面是程序源代码,但因为不能修改,所以是灰色的。
四、修改检查Access Key程序的代码。以后可以直接跳过。
四、修改检查Access Key程序的代码。以后可以直接跳过。
a、将光标停在 SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S33 { color: #4DA619; } .L0S52 { color: #0000FF; }
ID
'KEY'
FIELD DUMMY_KEY. 的下一行(空白行)
b、点击"insert",光标所在得会插入下面的代码:
SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S31 { font-style. italic; color: #808080; } .L0S32 { color: #3399FF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; }
* INSERT WSMK900002 3
*
*} INSERT
*} INSERT
第一行Insert 后面的字符可能会不一样,这不重要。
c、修改上面的代码,把第二行的*删掉,换成 SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S32 { color: #3399FF; } .L0S55 { color: #800080; } .L0S70 { color: #808080; } sy
-subrc
=
0. 即:
* INSERT WSMK900002 3
sy-subrc = 0.
*} INSERT
*} INSERT
d、最后,这段代码会是下面这个样子
CALL 'GET_DEVELOPER_KEY' ID 'NAME' FIELD 'ABCDEFGHIJKL'
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
ID 'CUSTID' FIELD '1234567890'
ID 'KEY' FIELD DUMMY_KEY.
*{ INSERT WSMK900002 1
sy-subrc = 0.
*} INSERT
CHECK SY-SUBRC EQ 2. "customer system!
sy-subrc = 0.
*} INSERT
CHECK SY-SUBRC EQ 2. "customer system!
*{ INSERT WSMK900002 2
sy -subrc = 0.
*} INSERT
MOVE SPACE TO DUMMY_KEY.
*{ INSERT WSMK900002 3
sy -subrc = 0.
*} INSERT
RC = 0.
ENDFORM. " JUMP_THE_WALL
e、点击"保存",程序又会跳到断点处,需要重复第三价段中从c开始的所有步骤。最后会保存成功。
f、点击"Program"菜单下面的"Activate"子菜单,激活程序。程序又会跳到断点处,需要重复第三价段中从c开始的所有步骤。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23353800/viewspace-716083/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23353800/viewspace-716083/