声明:本文章仅代表原作者观点,仅用于SAP软件的应用与学习,不代表SAP公司。注:文中所示截图来源SAP软件,相应著作权归SAP所有。文中所指ERP即SAP软件。
ERP小技巧系列主要是记录一些项目中碰到的问题及解决思路与方式.这些问题可能你也碰到过,希望能给你一些帮助。
最近解决一个问题时需要查看ERP登录的处理代码, (程序名 SAPMSYST 中整合了ERP的登录处理逻辑). 但是发现这个程序无法用SE38查看.。
跟踪SE38的过程发现, REPORT SOURCE 语句无法获取这个程序的内容. 估计ERP在底层通过特殊方式屏蔽了这个程序代码的读取。
解决办法.如下:
1.创建一个程序 ZSAPMSYST
2.通过DB02 的SQL语句把SAPMSYST的代码写入到 ZSAPMSYST .
3.UPDATE REPOSRC SET DATA = ( SELECT DATA FROM REPOSRC WHERE PROGNAME = 'SAPMSYST' )
WHERE PROGNAME = 'ZSAPMSYST'
这样用SE38 查看ZSAPMSYST 代码就可以看到标准程序SAPMSYST的代码了。
这个技巧也可以解决一些因为SAPMSYST代码丢失(可以是因为使用了
READ
REPORT 'SAPMSYST' INTO INT_TAB.INSERT REPORT 'SAPMSYST' FROM INT_TAB.之类的语句,因为之前的READ REPORT 语句读取不到这个程序的内容, 所以导致写入了一个空代码到SAPMSYST中.) 这样导致的后果是整个系统无法登陆了。
此时可以登录HANA数据库, 用SQL语句把另外一个ERP系统的SAPMSYST代码内容 REPOSRC-DATA 写入到无法登录的ERP系统. 从而解决这个问题.。
最后慎重提示一下: SAPMSYST是系统很核心的程序,所以SAP要隐藏该代码,避免用户编辑. 大家可以通过这个技巧查看它的内容. 理解一些SAP的标准登录逻辑. 但一定不要尝试修改它. 因为你可能面对无法登录系统的风险。
文章内容较原文有所修改,主要为保证微信公众号文章格式统一,方便阅读。
分享是一种精神