最近在使用SAPLINK中函数组和类来进行程序转移中发现了一些BUG(不知道现在是否有最新的版本出来)后,于是去读取其原始代码后发现
对于函数而言是通过RS_FUNCTIONMODULE_INSERT来写数据到系统,所以在处理源代码的时候,需要把类似
FUNCTION NAME.
ENDFUNCTION
和*" 信息拿掉
因为RS_FUNCTIONMODULE_INSERT会添加FUNCTION& ENDFUNCTION&哪些接口参数信息。
那么问题就产生,是否存在会把一些信息拿掉了
同样RS_FUNCTIONMODULE_INSERT是无法添加已近存在函数的
类似的情况在创建类的时候也存在吧METHOD 和 ENDMETHOD的信息拿掉的方式不过SEO_CLASS_CREATE_COMPLETE提供overwrite的方法。
有了以上的疑问,那么自己就想是否有办法解决这些问题,于是去看了RS_FUNCTIONMODULE_INSERT和SEO_CLASS_CREATE_COMPLETE的代码,发现函数和方法在SAP系统都是以INCLUDE的方式存在的。
而大家都知道,通过INSERT REPORT的方式是可以把代码写入系统。
所示对应RS_FUNCTIONMODULE_INSERT而已,在插入之前先把函数删除,可以通过RS_FUNCTION_DELETE来删除函数后,RS_FUNCTIONMODULE_INSERT只是来创建函数的哪些参数信息,而把函数的代码写入则通过INSERT REPORT的方式,就可以解决上述的问题,同时也解决了自己写函数的时候一些不好习惯,不如在函数开头定义变量或在函数结尾定义FORM的问题。
同样道理SEO_CLASS_CREATE_COMPLETE的时候,只需要创建METHOD所对应的INCLUDE就行,后续通过SEO_CLASS_GET_METHOD_INCLUDES来获取METHOD所定义的INCLUDE NAME 那么就可以通过INSERT REPORT的方式把代码写入程序。
回到正题:既然在标准程序中都是通过INSERT REPORT的方式来写代码到函数和方法中,
那么之前我们在网络上有个高手给出了一段破坏性的代码来加密程序'*@#@@[SAP]'之前测试过对Report和INCLUDE是可行的,那么是否可以把函数和类也加密了,通过测试也是可行的(这个破坏性的方式,只能对TEST的函数和类进行哦)
函数
类方法
![](http://img.blog.itpub.net/blog/attachment/201504/11/203545_14287310889PGU.jpg?x-oss-process=style/bb)
![](http://img.blog.itpub.net/blog/attachment/201504/11/203545_1428731125Tm7m.jpg?x-oss-process=style/bb)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/203545/viewspace-1564227/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/203545/viewspace-1564227/