在 Dataverse 中除了可以通过上期介绍的业务规则来控制逻辑以外,还可以通过工作流来实现 Dataverse 数据的流程自动化。本期将为大家介绍 Dataverse 经典工作流的概念和配置说明。
什么是工作流
经典工作流是 Dataverse 中的一种流程类型,它的设计目的是实现业务流程自动化,比如可以根据客户的积分变化来自动更新会员等级,或者在用户创建记录时,自动更新一些数据。这种情况下都可以使用工作流来实现。
每个工作流流程都与一个表关联,在配置工作流时,要考虑四个方面:
想要在什么情况下运行工作流?
工作流是后台运行还是前台运行?
在工作流中打算执行哪些操作?
这些操作想要在什么条件下执行?
如何创建工作流
只有在经典版的解决方案资源管理器界面才可以找到创建流程的选项 - Processes ,所以现在才叫经典流程。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510368-836626-794f8219544c2d7da71264055053e9f1.png)
工作流的配置属性
我们可以看到在流程的创建界面有几个内容需要用户进行配置。
Process name :表示流程的名字,这个名称不需要唯一,但是,最好是有一个较好的命名规范来区分系统中的工作流,比如去给工作流加些前缀之类的。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510383-9884-101da861911b61bb203a234670a2c260.png)
Category : 所创建的流程分类,支持四种流程,分别是 Action 操作, Business Process Flow 业务流程, Dialog 对话和 Workflow 工作流。
今天我们主要专注在 Workflow 上。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510394-721627-a66459638a097837d7c7473b2d9f8d77.png)
当我们将 Category 选为 Workflow 后,会出现一个选项,该选项用于确定工作流的两种 Workflow 类型:
后台运行的异步工作流:当我们勾选上配置后,该流程就属于后台运行的异步流程,推荐是使用这种方式,因为可以在工作流中设置一些等待条件,能实现的功能更多,并且性能压力更小,如果不需要用户马上获得流程结果,推荐使用后台流程。
前台运行的实时工作流:反之如果我们取消勾选,该流程就是会立即执行的工作流。这种工作流无法设置异步等待条件,流程会立刻运行,如果需要让用户立刻看到流程的结果,或者是希望能够在指定事件发生前执行一些操作的情况下(比如在用户保存记录时,想要给记录设置一些默认值),可以使用实时工作流。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510408-682301-2b27de578902ffc1c8b975d96cc32637.png)
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510413-320160-ca26779ced48f6c728390557f37d5905.png)
在 Entity 中可以选择 Dataverse 中的表,因为每个 Workflow 都是基于表来实现的自动化流程。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510422-504409-3d734419b1ecd225a4cdb1a8c1111094.png)
接下来就可以点击 ok 前往流程的配置界面。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510431-825573-1db064615489568e5ef5b72ccae85d7f.png)
附加属性
在这个界面中的内容比较多,这里挑几个重点的配置跟大家介绍。
Activate As : 激活类型,我们可以通过流程模板来快速创建流程
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510442-38317-544bfdc97af2a90434d79c13b821e751.png)
Available to Run:运行方式,主要用来配置流程如何运行。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510452-692806-6eb2173f42c16986d1cf690cf7dbd361.png)
Run this workflow in the background : 在后台运行流程,当我们选择将流程转化为实时流程后,该选项就可以被取消。
As an on-demand process : 按需运行流程,当我们将流程设置为按需运行后,该流程会出现在表的功能区中,可以在运行工作流的功能区找到我们创建的流程,并手动运行。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510467-78633-7f8ac6941ecafa23f3f963cc9e6f06c8.png)
As a child process : 作为子流程运行,允许该工作流可以从其他工作流启动。
Workflow Job Retention : 工作流作业保留,当勾选后在工作流执行完成后,允许自动删除工作流任务,用来清理空间。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510479-571028-0a77aec08b0e0267676aacc9541b8d0b.png)
Scope : 工作流生效范围,支持用户 ,业务单位, 父子业务单位和组织四种选项,如果 Scope 选择组织,则可将工作流逻辑应用到组织中的任何记录。否则,只能将工作流应用于处在该范围中的一部分记录。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510488-773036-b6beb840794a74f305ad1ce3d07819f0.png)
Start when : 用来配置流程何时被启动。如果类型选择为实时工作流,也可以将工作流设置为在指定事件前运行。
支持四种类型
创建记录:在创建记录后运行流程
状态更改:在记录的状态改变后运行流程
分配记录:在记录被分配后运行流程
记录字段更改:当字段被更改后运行流程
删除记录:当记录被删除后运行流程
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510502-93480-630e917a3545bf0608d83ced2640c03e.png)
一旦确认好这些工作流的附加配置后,我们就可以去涉及工作流中需要执行的任务。
操作
Dataverse 工作流提供了一些操作,用来帮助我们快速实现流程任务。
![](https://forum.power-platform.cn/assets/files/2022-03-17/1647510515-233536-59f714a3d2eabec56dea03e123883409.png)
整体来讲可以分为 Stage 阶段,和操作步骤两种类型。
Stage 阶段:
相当于解释这一阶段需要做哪些事情,用来帮助更好的理解整个工作流的逻辑。但是,工作流阶段不会影响工作流的逻辑或行为。
步骤:
步骤就是用来定义流程中的每一步需要执行哪些操作,或执行哪些条件判断。
这里给大家介绍其中几个常见的操作:
Create Record : 创建记录,可以给表创建新的记录,表中的数据都可以由我们在流程中填写。
Update Record : 更新记录,可以更新当前被触发的记录,或者通过关系关联的其他记录。
Assign Record : 分配记录,可以分配当前被触发的记录,或者通过关系关联的其他记录。
Send Email : 发送邮件,可以选择创建新电子邮件,或者基于当前表或者相关表的邮件模板来发送邮件。
Start Child Workflow : 可以启动其他的被设置为子流程的工作流。
Change Status : 更改当前记录的状态,或者通过关系关联的其他记录状态。
Stop Workflow : 停止当前工作流,表示流程成功或者被取消。
条件操作:
Check Condition : 条件判断,可以通过条件判断当前记录中的值是否符合特定的条件,符合条件可以执行哪些操作
Condition Branch : 条件分支,用来设置当条件判断结果为否时,再新添一个其他的条件来判断额外的情况下执行哪些操作。
Default Action : 默认操作,当所有条件都不满足时,执行哪些操作。
WaitCondition : 等待条件,只有后台工作流支持该操作,工作流可以一直等待,直到表满足了特定的条件才允许后面的操作。
Parallel Wait Condition : 并行等待条件分支,只有后台工作流支持该操作,用来定义备选等待条件。可以使用并行等待分支在工作流程中创建一些额外的条件,比如时间限制,从而防止工作流无限期等待。
以上就是 Dataverse 经典工作流中的绝大部分配置说明,虽然本期介绍的经典工作流已经快不被推荐使用了,但如果我们的需求仅仅是对于 Dataverse 内部数据进行一些修改的话,经典工作流还是比较合适的。