BC V20本地AL扩展安装新许可证后无CodeUnit执行权限求助
代码层面排查点
- 核对权限集与CodeUnit的对象匹配:确认权限集
CustomFuncsYW中指定的codeunit CustomTrialBalancePopulator=X,其对象名称/ID与实际AL代码中的CodeUnit完全一致(包括拼写、大小写、ID编号)。BC对对象名称的匹配严格,细微差异都会导致权限不生效。 - 调整app.json的Target配置:当前默认
Target=Cloud,而本地环境为OnPrem,可能引发权限逻辑差异。尝试显式设置"target": "OnPrem"后重新部署扩展,验证权限是否生效。 - 排查权限冲突:检查用户被分配的所有权限集,是否存在对该CodeUnit设置
N(拒绝)权限的项。拒绝权限会优先覆盖允许权限,导致有效权限中执行权限不显示。 - 确认扩展安装范围:确保扩展已安装到当前操作的公司,而非仅部分公司。即便权限集针对所有公司,若扩展未部署到目标公司,权限也无法生效。
- 刷新权限缓存:分配权限集后,需完全退出BC客户端并重新登录,确保权限缓存已更新。
- 检查CodeUnit的RunOnClient属性:若CodeUnit设置了
RunOnClient = true,可验证客户端侧权限是否同步覆盖(通常权限集的X权限已覆盖此场景,但可作为补充排查点)。
许可证相关排查点
该问题大概率与新许可证相关,需检查以下内容:
- 自定义对象权限范围:确认新许可证包含你自定义对象的ID区间(比如你的CodeUnit、页面、报表等ID在50000-60000区间),且对这些对象授予了
X(执行)权限。本地BC的许可证需明确允许自定义对象的使用,否则即便权限集配置正确,也无法生效。 - 扩展运行权限:检查许可证是否允许安装和执行第三方/自定义扩展。部分本地许可证可能限制非微软官方扩展的运行权限,需确保许可证包含
Extension Management相关权限,或明确允许运行未签名的自定义扩展。 - 公司范围权限:确认新许可证包含当前操作的公司,且公司数量限制足够。若许可证未覆盖目标公司,会导致该公司下的所有自定义权限失效。
- 版本兼容性:验证新许可证是否适配BC20.0的平台版本(20.0.37114.38150)。部分许可证绑定了特定的BC版本区间,版本不匹配会引发权限异常。
内容的提问来源于stack exchange,提问作者NickSO
相关产品推荐
相关产品推荐

