PowerApps模型驱动应用:视图关联表单编辑权限配置问询
模型驱动PowerApps视图权限与编辑控制方案
方案1:表单模式动态切换
- 在目标实体的主表单
OnLoad事件中添加逻辑:- 通过
Context.ViewId获取当前记录的来源视图ID(视图唯一ID可在解决方案的视图详情页查看)。 - 对比视图ID:如果是View1,将表单模式设置为
FormMode.View;如果是View2,再校验用户是否属于指定角色,符合条件则设置为FormMode.Edit。 - 角色校验可用
UserHasPermission函数,或直接读取用户角色列表:If("指定角色名称" in User().SecurityRoles, ...)
- 通过
方案2:实体权限+视图共享组合控制
- 给所有用户分配目标实体的只读权限,仅给特定角色分配编辑权限。
- 在视图的共享设置中,将View2仅共享给目标角色,普通用户无法看到该视图。
- 此方案下,普通用户只能通过View1打开记录(因只读权限无法编辑),特定角色可通过View2打开并编辑记录。
方案3:JavaScript Web资源控制表单字段状态
- 编写JS脚本,在表单加载时执行以下操作:
- 通过
Xrm.Page.context.getQueryStringParameters().viewid获取来源视图ID。 - 调用
Xrm.WebApi.retrieveMultipleRecords查询当前用户的安全角色。 - 根据视图ID和角色判断结果,批量设置表单字段的禁用状态:
- 禁用(只读):
Xrm.Page.getControl("字段逻辑名称").setDisabled(true) - 启用(可编辑):
Xrm.Page.getControl("字段逻辑名称").setDisabled(false)
- 禁用(只读):
- 通过
- 将脚本添加到表单的
OnLoad事件中并发布。
方案4:环境变量优化维护(可选)
- 创建环境变量存储View1、View2的ID以及目标角色的名称/ID,避免逻辑中硬编码固定值。
- 在表单逻辑或JS脚本中引用环境变量,后续视图或角色变更时只需更新环境变量即可。
内容的提问来源于stack exchange,提问作者RBK
相关产品推荐
相关产品推荐

