为工作流配置操作、阶段和步骤

此主题适用于 Dynamics 365 Customer Engagement (on-premises)。 有关此主题的 Power Apps 版本,请参阅: 配置实时工作流阶段和步骤

在配置时工作流时,要考虑四个重要方面:

  • 何时启动工作流?

  • 应作为实时工作流运行,还是作为后台工作流运行?

  • 工作流执行什么操作?

  • 操作应在什么条件下执行?

    工作流流程概述主题显示如何查找工作流流程、何时启动工作流以及工作流应以实时方式还是后台方式运行。 此主题显示工作流可执行哪些操作,以及执行这些操作的条件。

工作流阶段和步骤

在设计工作流时,您可以选择包含要在各阶段和步骤中执行的逻辑。

阶段
阶段可使工作流逻辑更加便于理解,并对工作流逻辑加以解释。 但是,工作流阶段不会影响工作流的逻辑或行为。 如果某个流程有阶段,则某个阶段必须包含该流程中的所有步骤。

步骤
步骤是工作流中的一个业务逻辑单位。 步骤可以包括条件、操作、其他步骤或这些元素的组合。

工作流流程可以执行的操作

工作流流程可以执行下表中列出的操作。

目的 说明
创建记录 为实体创建新记录并将您选择的值分派给属性。
更新记录 您可以更新对其运行工作流的记录、在 N:1 关系中与该记录关联的任何记录或者由之前的步骤创建的任何记录。
分派记录 您可以分派对其运行工作流的记录、使用 N:1 关系与该记录关联的任何记录或者由之前的步骤创建的任何记录。
发送电子邮件 发送一封电子邮件。 您可以选择创建新电子邮件,也可以使用为对其运行工作流的记录的实体、与该实体有 N:1 关系的任何实体或者之前创建的任何记录的实体配置的电子邮件模板。
启动子工作流 将已配置的工作流作为子工作流启动。
更改状态 更改对其运行流程的记录状态、使用 N:1 关系与该记录关联的任何记录或者由之前的步骤创建的任何记录。
停止工作流程 停止当前工作流。 可以设置成功取消状态并指定状态消息。

如果为事件配置了实时工作流,则停止状态为“取消”的工作流将使事件操作无法完成。 有关详细信息,请参阅使用实时工作流
自定义步骤 开发人员可以创建定义操作的自定义工作流步骤。 默认情况下,没有可用的自定义步骤。

设置记录值

在创建记录时,可以设置记录的值。 在更新记录时,可以设置、追加、减少、增加、加倍或清除值。

选择设置属性时,将打开一个显示实体的默认窗体的对话框。

在该对话框的底部,可以看到窗体中没有的其他字段列表。

对于任何字段,可以设置一个静态值(将由工作流设置)。

在对话框的右侧,可以使用窗体助理设置或追加来自当前记录上下文的动态值。 其中包括可以通过实体的 N:1(多对一)关系访问的相关记录中的值。

窗体助理中的可用选项取决于您在窗体中选择的字段。 在设置动态值时,您将看到一个称为“数据域”的黄色占位符,显示将包括动态数据的位置。 如果要删除该值,只需选择该数据域并将其删除。 对于文本字段,可以使用静态和动态数据的组合。

对于动态值,您肯定不知道某个字段或相关实体具有您要设置的值。 实际上,您可以设置多个字段进行尝试,然后设置值并使用绿色箭头对其排序。 如果第一个字段没有数据,则将尝试第二个字段,依此类推。 如果所有字段都没有数据,则可指定要使用的默认值。

设置工作流操作的条件

您要应用的操作通常依赖于条件。 工作流流程提供了多种设置条件和创建分支逻辑来获取所需结果的方法。 您可以检查对其运行工作流的记录的值、通过 N:1 关系与该记录关联的任何记录或者流程本身中的值

条件类型 说明
检查条件 “if-<条件> then”逻辑语句。

您可以检查对其运行工作流的记录的当前值、在 N:1 关系中与该记录关联的任何记录或者由之前的步骤创建的任何记录。 根据这些值,您可以定义条件成立时的其他步骤。

在“if-<condition> then”语句中,您可以使用以下运算符:EqualsDoes Not EqualContains DataDoes Not Contain DataUnderNot Under注意UnderNot Under 是分层运算符。 只能在定义了层次关系的实体中使用它们。 如果您想在没有定义层次关系的实体上使用这些操作符,您将会看到错误消息:“您正在一个没有层次关系的实体上使用分层操作符。 请设置实体为层次(标记层次关系)或使用一个不同的操作符。”有关层次关系的更多信息,请参阅查询和可视化分层数据。 表后面的屏幕截图是一个使用UnderNot Under分层操作符的工作流程定义的示例。
条件分支 一种“else-if-then”逻辑语句,编辑器使用“Otherwise, if <条件> then:”文本

选择一个您之前定义的检查条件;您可以添加条件分支来定义检查条件返回 False 时的其他步骤。
默认操作 “else”逻辑语句。 编辑器使用文本“否则:”

选择一个您先前定义的检查条件、条件分支、等待条件或平行等待分支;您可以使用默认操作为与条件或分支元素中定义的标准不匹配的所有情形定义步骤。
等待条件 使后台工作流程在满足条件定义的条件时自行暂停。 工作流程会在满足等待条件中的条件时自动重新启动。

实时工作流不能使用等待条件。
并行等待分支 使用仅在满足初始条件时执行的一组对应的额外步骤来定义后台工作流的备选等待条件。 可以使用并行等待分支在工作流逻辑中创建时间限制。 这有助于防止工作流程进行无限期等待,即不必等到等待条件中定义的条件得到满足的时候。
自定义步骤 开发人员可以创建定义条件的自定义工作流步骤。 默认情况下,没有可用的自定义步骤。

以下屏幕截图包含UnderNot Under分层操作符的工作流过程定义的示例。 在示例中,我们对两组客户应用不同的折扣。 在添加步骤中个,我们选择了检查条件以指定包含UnderNot Under操作符的 if-then 条件, 第一个 if-then 条件适用于UnderAlpine Ski House 客户的所有客户。 这些客户购买产品和服务时可以享受 10% 的折扣。 第二个 if-then 条件适用于Not UnderAlpine Ski House 客户的所有客户并可享受 5% 的折扣。 然后,选择更新记录以定义基于条件执行的操作。

带 Under/Not Under 运算符的工作流程。

使用实时工作流

您可以配置实时工作流,但是请慎重使用。 一般推荐使用后台工作流,因为当服务器上的资源可用时,系统可以应用它们。 这有助于促进服务器必须完成的工作,有助于让使用系统的每个人保持最佳表现。 缺点在于后台工作流定义的操作不会立即生效。 您无法预测它们的应用时间,但一般需要几分钟。 对于大多数业务流程自动化,这没有关系,因为使用系统的人不需要有意识地知道流程正在运行。

当业务流程需要有人立即看到流程的结果时,或者在您需要能取消操作的情况下,请使用实时工作流。 例如,在首次保存记录时,想要设置某些默认值或者想要确保某些记录未被删除。

实时工作流和后台工作流之间的转换

通过选择工具栏上的转换为后台工作流,您可以将实时工作流更改为后台工作流。

通过选择工具栏上的转换为实时工作流,您可以将后台工作流更改为实时工作流。 如果后台工作流使用等待条件,该条件将变得无效;在删除该等待条件之前,您将无法激活工作流。

在状态变化之前或之后启动实时工作流

在为实时工作流配置自动流程选项时,状态更改事件的启动时间选项可用于选择状态变化时的之后之前选项。 默认选项为之后

如果选择之前,则表示您希望在数据更改状态保存之前应用工作流中的逻辑。 这样,在操作之后,您可以在应用其他逻辑之前检查值,防止执行后续逻辑。 例如,您可能在某个插件或自定义工作流操作中有其他逻辑,该逻辑可能会启动对另一个系统的操作。 通过停止进一步处理,可以避免外部系统受影响的情况。 在此事件之前实时应用工作流还意味着:可能保存了数据的其他工作流或插件操作不需要在取消操作时“回滚”。

将停止工作流操作用于实时工作流

当您在工作流中应用停止工作流操作时,可以选择指定一个状态条件(可以为成功取消)。 将状态设置为“取消”时,就阻止了操作。 此时将会显示一条错误消息,其中包含停止操作状态消息中的文本,标题为业务流程错误

另请参阅

通过流程创建自定义业务逻辑
工作流流程概述
监视和管理工作流流程
工作流流程的最佳实践