此主题适用于 Dynamics 365 Customer Engagement (on-premises)。 有关此主题的 Power Apps 版本,请参阅: 配置实时工作流阶段和步骤
配置工作流时,需要考虑四个主要方面:
何时启动它们?
它们应作为实时工作流或后台工作流运行?
他们应该执行哪些作?
应在哪些条件下执行作?
工作流流程概述主题显示如何查找工作流进程、何时启动工作流,以及它们是否应以实时或后台方式运行。 本主题显示工作流可以执行的作和执行这些作的条件。
工作流阶段和步骤
设计工作流时,可以选择包含要在阶段和步骤中执行的逻辑。
阶段
阶段使工作流逻辑更易于阅读,并解释工作流逻辑。 但是,阶段不会影响工作流的逻辑或行为。 如果进程具有阶段,则该过程中的所有步骤都必须包含一个阶段。
步骤
步骤是工作流中的业务逻辑单元。 步骤可以包括条件、作、其他步骤或这些元素的组合。
工作流进程可以执行的作
工作流进程可以执行下表中列出的作。
| Action | Description |
|---|---|
| 创建记录 | 为实体创建新记录,并将你选择的值分配给属性。 |
| 更新记录 | 可以更新工作流正在运行的记录、链接到 N:1 关系中的记录或前面步骤创建的任何记录。 |
| 分配记录 | 可以分配工作流正在运行的记录、与 N:1 关系链接到该记录的任何记录,或由前面的步骤创建的任何记录。 |
| 发送电子邮件 | 发送电子邮件。 可以选择创建新的电子邮件,或使用为工作流正在运行的记录的实体配置的电子邮件模板,或与实体有 N:1 关系的任何实体,或由前面的步骤创建的任何记录的实体。 |
| 启动子工作流 | 启动已配置为子工作流的工作流进程。 |
| 更改状态 | 更改进程正在运行的记录的状态、与 N:1 关系链接到该记录的任何记录,或前面步骤创建的任何记录。 |
| 停止工作流 | 停止当前工作流。 可以设置 “成功 ”或 “已取消 ”的状态,并指定状态消息。 为事件配置实时工作流时,停止状态为“已取消”的工作流将阻止事件作完成。 有关详细信息,请参阅 使用实时工作流 。 |
| 自定义步骤 | 开发人员可以创建自定义工作流步骤来定义作。 默认情况下没有可用的自定义步骤。 |
设置记录值
创建记录时,可以为记录设置值。 更新记录时,可以设置、追加、递增、递减、乘或清除值。
选择 “设置属性”时,将打开一个对话框,其中显示了实体的默认窗体。
在对话框底部,可以看到窗体中不存在的其他字段的列表。
对于任何字段,可以设置静态值,该值将由工作流设置。
在对话框右侧, 表单助手 提供从当前记录的上下文中设置或追加动态值的功能。 这包括可从实体的 N:1(多对一)关系访问的相关记录中的值。
表单助手中可用的选项取决于您在表单中选择的字段。 设置动态值时,会看到一个名为“slug”的黄色占位符,用于显示动态数据将包含的位置。 如果要删除该值,只需选择 slug 并将其删除。 对于文本字段,可以使用静态和动态数据的组合。
对于动态值,你不知道字段或相关实体具有要设置的值。 实际上,可以设置多个字段来尝试设置值,并使用绿色箭头按顺序对其进行排序。 如果第一个字段没有数据,将尝试第二个字段,依此等。 如果没有任何字段具有数据,则可以指定要使用的默认值。
设置工作流作的条件
要应用的作通常取决于条件。 工作流过程提供了多种设置条件和创建分支逻辑来获取所需结果的方法。 可以检查工作流进程正在运行的记录的值、链接到该记录的任何记录(具有 N:1 关系)或进程本身中的值
| 条件类型 | Description |
|---|---|
| 检查条件 | 逻辑“if-condition<> then”语句。 可以检查工作流正在运行的记录的当前值、链接到 N:1 关系中的记录或先前步骤创建的任何记录。 根据这些值,可以在条件为 true 时定义其他步骤。 在“if-condition<> then”语句中,可以使用以下运算符:Equals、Not Equals、Contains Data、Not Contains Data、Not Contains Data、Under 和 NotUnder。 注意:Under 和 Not Under 是分层运算符。 它们只能在定义了分层关系的实体上使用。 如果尝试在未定义分层关系的实体上使用这些运算符,则会看到错误消息:“在未定义分层关系的实体上使用分层运算符。 使实体分层(通过将关系标记为分层)或使用其他运算符。有关分层关系的详细信息,请参阅 查询和可视化分层数据。 下表后面的屏幕截图是使用 Under 和 Not Under 分层运算符的工作流过程的定义示例。 |
| 条件分支 | 逻辑“else-if-then”语句,编辑器使用文本“否则,如果 <条件> 为:” 选择之前定义的检查条件,可以在检查条件返回 false 时添加条件分支以定义其他步骤。 |
| 默认作 | 逻辑“else”语句。 编辑器使用文本“否则:” 选择之前定义的检查条件、条件分支、等待条件或并行等待分支,可以使用默认作来定义与条件或分支元素中定义的条件不匹配的所有情况的步骤。 |
| 等待条件 | 使后台工作流能够暂停自身,直到满足条件定义的条件。 满足等待条件中的条件时,工作流将再次自动启动。 实时工作流无法使用等待条件。 |
| 并行等待分支 | 为后台工作流定义备用等待条件,其中包含一组相应的附加步骤,这些步骤仅在满足初始条件时才执行。 可以使用并行等待分支在工作流逻辑中创建时间限制。 它们有助于防止工作流无限期地等待,直到满足在等待条件中定义的条件。 |
| 自定义步骤 | 开发人员可以创建自定义工作流步骤来定义条件。 默认情况下没有可用的自定义步骤。 |
以下屏幕截图包含一个工作流进程定义示例,其中包含 “Under ”和 “Not Under ”分层运算符。 在我们的示例中,我们将两个不同的折扣应用于两组帐户。 在“添加步骤”中,我们选择了“检查条件”以指定包含 Under 或 Not Under 运算符的 if-then 条件。 第一个 if-then 条件适用于属于 Alpine Ski House 帐户的所有帐户。 这些帐户将获得 10% 购买的服务和服务的折扣。 第二个 if-then 条件适用于 所有不在 Alpine Ski House 帐户下的帐户,他们收到 5% 折扣。 然后,我们选择了 “更新记录 ”,以定义要基于条件执行的作。
使用实时工作流
可以配置实时工作流,但应谨慎使用它们。 通常建议使用后台工作流,因为它们允许系统在服务器上的资源可用时应用它们。 这有助于使服务器必须完成的工作,并帮助维护系统每个人的最佳性能。 缺点是后台工作流定义的作不是即时的。 无法预测何时应用它们,但通常需要几分钟时间。 对于业务流程的大多数自动化,这很好,因为使用系统的人不需要有意识地意识到该进程正在运行。
当业务流程要求某人立即查看流程结果或者希望能够取消作时,请使用实时工作流。 例如,你可能希望在第一次保存记录时为记录设置某些默认值,或者希望确保不会删除某些记录。
在实时工作流和后台工作流之间进行转换
可以通过选择 “转换为工具栏上的后台工作流 ”,将实时工作流更改为后台工作流。
可以通过选择 “转换为工具栏上的实时工作流 ”,将后台工作流更改为实时工作流。 如果后台工作流使用等待条件,它将变得无效,在删除等待条件之前,将无法激活它。
启动状态更改前后的实时工作流
为实时工作流配置 “自动进程选项” 时,状态更改事件的 “开始时间 ”选项允许为状态更改时选择 “之后 ”或“ 之前 ”。 默认选项为 After。
选择 “之前 ”时,表示希望在保存更改状态的数据之前应用工作流中的逻辑。 这样,就可以在作后应用其他逻辑之前检查值,并防止执行进一步的逻辑。 例如,你可能在插件或自定义工作流作中具有其他逻辑,该作可以在另一个系统上启动作。 通过停止进一步处理,可以避免外部系统受到影响的情况。 在此事件之前应用实时工作流也意味着取消作时,可能已保存数据的其他工作流或插件作不需要“回滚”。
将“停止工作流”作与实时工作流配合使用
在工作流中应用 停止工作流 作时,可以选择指定可 成功 或 取消的状态条件。 将状态设置为“已取消”时,将阻止该作。 包含停止作状态消息中的文本的错误消息将显示给具有 “业务流程错误”标题的用户。