前两天货物移动接口调用时报错:“你没有权限维护利润中心[0000500888]相关的数据,行项目号:[000]”。大眼一瞅,应该是账号缺少权限吧。
因生产环境没有账号,无法直接su53查看,所以测试环境模拟一波,在调用过账函数BAPI_GOODSMVT_CREATE时监控AUTHORITY-CHECK。但理想很丰满,现实很骨感。走了一圈,没有找到检查利润中心的代码逻辑。那就不是用权限对象的方式检查的。
换个思路,我们查询消息表T100,看看这个消息的消息号是啥,在什么地方引用,结果也没有找到
好吧,这个方法也行不通,那试试代码检索吧。还真找到了,在财务校验规则里面有这么一层检查,消息内容是hard coding拼接的
财务里面做的比较多的就是规则、替代,所以也可以先直接找RGGBR000、RGGBS000增强后的程序,比如上图中的ZRGGBR000,然后去找报错信息。
不管是用哪种办法,只要最后能找到问题所在,找出解决办法就行。上面提到,消息内容是hard coding拼接的,一般项目上要求代码中不能有hard coding,如果他使用了文本符号,那该怎么查找呢?
基于这,最近在代码检索的程序中新增加了此部分逻辑,分享给大家。如果有问题的地方,还请各位斧正。
代码部分请点击下方“阅读原文”链接下载,谢谢!
Hello,伙伴们
长按二维码关注!