如何在导入解决方案后自动激活Dynamics CRM的Record Creation and Update规则
解决记录创建与更新规则导入后自动激活的问题
默认情况下,Dataverse的**记录创建与更新规则(Record Creation and Update Rule)**在从Dev环境导入目标环境后会自动变为草稿状态,这是系统的安全机制,避免导入后意外触发规则。以下是几种自动/编程式激活的解决方案:
方法一:用Power Automate云流自动激活
- 触发时机:当目标环境中新增或更新的记录创建与更新规则处于草稿状态时
- 操作步骤:
- 创建新云流,选择Dataverse的「当一行被添加、修改或删除」触发器,指定表为「Record Creation and Update Rules」,触发事件选「创建」
- 添加筛选条件:仅当规则的「状态」字段等于「草稿」时触发流
- 添加Dataverse的「更新行」操作,选择同一张表,传入触发记录的ID,将「状态」设为「激活」、「状态原因」设为「已激活」
方法二:通过Dataverse Web API编程激活
可以用PowerShell、C#等编写脚本调用API批量或单次激活规则,示例PowerShell片段:
$envUrl = "https://你的目标环境域名.crm.dynamics.com" $ruleGuid = "导入后规则的GUID" $accessToken = "你的Dataverse访问令牌" # 构造更新请求体 $updateBody = @{ statecode = 1 # 1对应激活状态 statuscode = 2 # 2对应已激活状态原因 } | ConvertTo-Json # 发送PATCH请求更新状态 Invoke-RestMethod -Uri "$envUrl/api/data/v9.2/msdyn_workflowrules($ruleGuid)" ` -Method PATCH ` -Headers @{Authorization = "Bearer $accessToken"; "Content-Type" = "application/json"} ` -Body $updateBody
注意:访问令牌需通过应用注册或用户凭据提前获取,确保有修改规则的权限。
方法三:用XrmToolBox批量激活(半自动化)
如果是小规模批量处理,XrmToolBox的Record Creation and Update Rule Manager工具可以快速操作:
- 打开XrmToolBox连接目标环境,加载该工具
- 筛选出所有「草稿」状态的规则,批量选中后点击「激活」按钮即可
补充说明
解决方案导出时规则的激活状态会被保留,但导入时Dataverse会强制将其转为草稿,无法通过导出设置直接跳过这一步,必须通过上述方式手动或自动触发激活操作。
内容的提问来源于stack exchange,提问作者andreas charidemou
相关产品推荐
相关产品推荐

