原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
SAP小技巧系列主要是记录一些项目中碰到的问题及解决思路与方式.这些问题可能你也碰到过,希望能给你一些帮助.
**正文:**
最近解决一个问题时需要查看SAP登录的处理代码, (程序名 SAPMSYST 中整合了SAP的登录处理逻辑). 但是发现这个程序无法用SE38查看.
跟踪SE38的过程发现, REPORT SOURCE 语句无法获取这个程序的内容. 估计SAP在底层通过特殊方式屏蔽了这个程序代码的读取.
• 创建一个程序 ZSAPMSYST
• 通过 DB02 的 SQL 语句把 SAPMSYST 的代码写入到 ZSAPMSYST .
• UPDATE REPOSRC SET DATA = ( SELECT DATA FROM REPOSRC WHERE PROGNAME = 'SAPMSYST' )
WHERE PROGNAME = 'ZSAPMSYST'
这样用SE38 查看ZSAPMSYST 代码就可以看到标准程序SAPMSYST的代码了.
这个技巧也可以解决一些因为SAPMSYST代码丢失(可以是因为使用了 READ REPORT ' S APMSYST ' INTO
INT_TAB . INSERT REPORT ' S APMSYST ' FROM INT_TAB .
之类的语句,因为之前的READ REPORT 语句读取不到这个程序的内容, 所以导致写入了一个空代码到SAPMSYST中.)
这样导致的后果是整个系统无法登陆了.
此时可以登录HANA数据库, 用SQL语句把另外一个SAP系统的SAPMSYST代码内容 REPOSRC-DATA 写入到无法登录的SAP系统.
从而解决这个问题.
最后慎重提示一下: **SAPMSYST是系统很核心的程序,所以SAP要隐藏该代码,避免用户编辑. 大家可以通过这个技巧查看它的内容.
理解一些SAP的标准登录逻辑. 但一定不要尝试修改它. 因为你可能面对无法登录系统的风险.**
如果你 对这篇文章感兴趣,请帮忙转发分享, 并且勾选微信 <看一看>.文章右上角的按钮点击后,点击<在看>(或者文章末尾的右下角<在看>),即可.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.
毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
扫码关注公众号,获取更多好用的SAP应用程序