
# 问题描述
openapi接口调用提示“用户无权限”,具体报错如下:

# 问题背景
开发者在openapi下自定义了一个接口,目的是将自研系统的对公报销单推送到星瀚,具体配置见如下:

# 原因分析
因为在调用对公报销单保存操作的时候,平台底层验权验的是费用核算(appId=em)下的对公报销单的权限,但是实际上开发人员只给用户分配了人人费用(appId=exp)的对公报销单权限。因为两者appId不相等,所以会提示无权。具体验权时的参数如下:

# 解决方法
根据上面的分析得知,是调用对公报销单保存操作时的应用ID不对,那么我们只要保证传入正确的appId即可。那如何传入呢?见截图:

# 方案分析
1. 在操作API中,当操作类型为保存操作的时候,我们可以选择参数控制,如图:

但是该配置低版本只能选择几个预置的选项,无法灵活配置。基于此,我们可以在请求接口当中模仿保存操作的请求传参,传入我们自定义的控制参数即可。
2. 为什么接口中传入currbizappid这个参数就可以验权通过了呢?因为操作api底层调用的就是实体的操作,代码类为:kd.bos.servicehelper.operation.OperationServiceHelper,具体接口