最近开发了两个BDC程序,碰到了有关权限判断的问题。大致总结一下:
录屏使用的TCODE是MD61,是创建货需的!以为需求要实现在MD61上实现创建和修改!所以我将程序BDC处理这部分封装成了FUNCTION1.以方便调用!在ZBDC1中,执行BDC的部分是创建货需~~~(用户没有使用MD61的权限,但BDC 中的 call transaction 可以跳过权限检查),ZBDC1是执行成功的!可以实现创建!
但是在执行ZBDC2时(同样调用了FUNCTION1),我通过ZBDC2去修改ZBDC1创建的货需,问题发生了:提示没有授权!(这个消息是在执行BDC时内部抛出的)!感到很奇怪,BDC是可以跳过权限检查的但是为什么这时会提示没有授权呢。~~~~~再次执行ZBDC2----然后退出---输入SU53---发现这时检查了一个权限对象C_PPBD。(这个权限对象是在执行ZBDC1的时候不去检查的,我想这就是创建和修改的区别,虽然同样是调用一个BDC过程,但是却检查了不同的权限对象),然后通过BASIS那边确然该用户没有执行权限对象的权限!重新分配后问题解决了!!