自定义实体停用按钮的自定义字段配置及相关问题
问题1:自定义停用对话框添加必填字段
原生Dynamics 365确实不支持直接修改普通自定义实体(比如你的Projects)的默认停用对话框——只有Opportunity、Case这类系统预设的「解决型」实体,才能自定义解决/取消对话框的字段。
替代方案:
- 先隐藏原生的「停用」按钮,在实体表单上添加自定义按钮。
- 点击自定义按钮时,弹出自行开发的对话框:可以用Web资源写HTML+JS弹窗,或者用Power Apps组件框架(PCF)制作自定义对话框,在对话框里加入所需的必填字段。
- 用户填写并通过必填字段验证后,再调用Dynamics Web API修改Projects实体的状态为「停用」,此时会触发你的插件检查逻辑。
问题2:自定义页面提交后未显示插件错误、项目未停用
这是因为自定义页面的提交逻辑未正确捕获插件抛出的异常,也未处理API调用的错误响应。解决步骤:
- 捕获API错误:如果用Web API调用Update方法修改状态,要用try-catch块捕获响应错误。插件抛出的异常会包含在API的错误响应里,解析响应里的
error.message或error.details就能拿到插件的错误提示,然后在页面上展示给用户(比如用alert或者页面内的提示组件)。 - 检查状态参数:确保调用API时,正确传入了实体停用对应的状态码(statecode)和状态原因码(statuscode),比如Projects实体的停用状态码可能是1(具体看你实体的状态设置),参数传错会导致状态不更新。
- Power Apps自定义页面场景:如果用Patch函数修改状态,要用
Error()函数捕获错误,示例代码:
这样就能把插件抛出的错误通过Notify显示给用户。IfError( Patch(Projects, SelectedProject, {statecode: 1, statuscode: 2}), Notify(First(Errors(Projects)).Message, NotificationType.Error) )
内容的提问来源于stack exchange,提问作者SmallerMe
相关产品推荐
相关产品推荐

