可以在SE38打开的程序代码开头第一行写入:*@#@,
这样在代码打开时就会提示代码 被加密 不能打开了。但这方法好像是在新版本的SAP中不起作用了,下面是另外 的两种代码保护的方法,也能算是加密代码了。
1.法一
这方法是在SAP的SE38中写入增强,使用SE38不能打开代码,

其实这种保护也只是能限制不懂ABAP的人,懂ABAP的人要不了几分钟,也就能找到原因,找到这里的代码控制了。
2.法二
大概的的意思 就是当代码激活后,READ REPORT读取到的代码是没用的,程序系统使用的是激活的代码,所以可以修改成其它的任意代码,这样别人打开的得到的代码就只能是你想给他看到的内容,而不是运行的代码,
上面的网络上的完整例子有使用说明,以下是我整理的代码,
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
*&********************************************************************* *& PROGRAM NAME : ZTEST29 *& Module Name : $TMP *& Apply Author : 业务顾问/IT *& Author : *& Started on : 2025-10-24 *& Transaction : ZTEST29 *& Program type : Report *& Program ID : ZTEST29 *& Program Description :test *&*&******************************************************************* *& REVISION LOG -程序修改历史 * *& * *&********************************************************************* REPORT ZTEST29 MESSAGE-ID $TMP01. PARAMETERS: PROGRMM(40). DATA: BEGIN OF SRC_LINES OCCURS 0, LINES(1500), END OF SRC_LINES. DATA: BEGIN OF EXE_LINES OCCURS 0, LINES(1500), END OF EXE_LINES. READ REPORT PROGRMM INTO EXE_LINES. SRC_LINES[] = VALUE #( ( LINES = '啥也不是11111111111' ) ). INSERT REPORT PROGRMM FROM src_lines. SELECT SINGLE * INTO @DATA(ls_src) FROM zreposrc WHERE progname EQ @PROGRMM. INSERT REPORT PROGRMM FROM exe_lines. GENERATE REPORT PROGRMM. MODIFY Zreposrc FROM ls_src. WRITE sy-subrc. EXIT. |
