将进程和流部署为活动
默认情况下,在 Sandbox 或非生产组织中处于活动状态的进程和流会作为非活动状态部署到生产组织。在部署后,手动重新激活新版本。在生产组织中,您可以启用该设置,通过更改集或元数据 API 部署流程或流的新活动版本。如果您使用持续集成和持续交付模型来部署元数据变更,请启用将流程和流部署为活动的选项。
所需的 Edition
| 查看支持的版本。 |
| 所需用户权限 | |
|---|---|
| 编辑处理自动设置: | 自定义应用程序 |
| 创建、更新和删除流列表视图: | 管理流 |
备注 此设置应用于通过更改集和元数据 API 部署的进程和自动启动流。此设置在开发人员、Sandbox 或其他非生产组织中不可用,因为您始终可以部署新的活动版本。
- 从设置中,在快速查找框中,输入自动化,然后选择流程自动化设置。
- 选择将进程和流部署为活动。
- 输入流测试覆盖率。
- 保存更改。
在您可将流程或自动启动流部署为活动前,请确保满足流测试覆盖率要求。至少一个 Apex 测试必须覆盖活动流程和自动启动流的流测试覆盖率。流测试覆盖率要求不适用于拥有屏幕的流。
要计算流测试覆盖率,请确定具有或不具有测试覆盖率的所有活动流版本的数量。还要确定无效流版本的数量、最新版本和测试覆盖率。以下是示例查询。
SELECT count_distinct(Id)
FROM Flow
WHERE Status = 'Active' AND Id NOT IN (
SELECT FlowVersionId
FROM FlowTestCoverage
)
+
SELECT count_distinct(FlowVersionId)
FROM FlowTestCoverage
要确定具有测试覆盖率的所有最新流版本的数量,请运行所有测试并使用 Tooling API FlowTestCoverage 对象。以下是示例查询。
SELECT count_distinct(FlowVersionId)
FROM FlowTestCoverage 将第二个数字(具有测试覆盖率的所有最新流版本的数量)除以第一个数字(具有或不具有测试覆盖率的所有活动版本的数量以及作为最新版本并具有测试覆盖率的所有非活动版本的数量)。
例如,您总计拥有 10 个流。流 A 有两个版本。最新版本具有测试覆盖率,但未启用。第一个版本已启用,但没有测试覆盖率。对于流 B-E,每个只有一个版本,并且每个版本具有测试覆盖率,但未启用。对于流 F-J,每个只有一个版本,并且每个版本具有测试覆盖率,而且已启用。流测试覆盖率为 90%。
| 流标签 | 版本 | 状态 | 测试覆盖率 |
|---|---|---|---|
| 流 A | 2 | 未启用 | 是 |
| 流 A | 1 | 已启用 | 否 |
| 流 B | 1 | 未启用 | 是 |
| 流 C | 1 | 未启用 | 是 |
| 流 D | 1 | 未启用 | 是 |
| 流 E | 1 | 未启用 | 是 |
| 流 F | 1 | 已启用 | 是 |
| 流 G | 1 | 已启用 | 是 |
| 流 H | 1 | 已启用 | 是 |
| 流 I | 1 | 已启用 | 是 |
| 流 J | 1 | 已启用 | 是 |
SELECT FlowVersion.Definition.DeveloperName
FROM FlowTestCoverage
GROUP BY FlowVersion.Definition.DeveloperName提示 要获得没有测试覆盖率的所有活动自动启动流和进程的名称,使用此查询。
SELECT Definition.DeveloperName
FROM Flow
WHERE Status = 'Active'
AND (ProcessType = 'AutolaunchedFlow'
OR ProcessType = 'Workflow'
OR ProcessType = 'CustomEvent'
OR ProcessType = 'InvocableProcess')
AND Id NOT IN (SELECT FlowVersionId FROM FlowTestCoverage)本文章是否解决您的问题?
请与我们共享您的想法,以便我们进行改进!

