工作流程架构

 

发布日期: 2016年11月

适用于: Dynamics CRM 2015

Microsoft Dynamics 365 中的流程管理系统包括 Microsoft Dynamics CRM SDK、插件、窗体及其他组件。

本主题内容

流程体系结构关系图

流程和统一事件模型

流程生命周期

流程和异步服务:只对于工作流

流程持久化和关闭:只对于工作流

流程体系结构关系图

以下关系图说明 Microsoft Dynamics 365 的简要系统体系结构,并突出显示了特定于流程的系统部分。

流程体系结构

此图显示了 Microsoft Dynamics 365 的流程体系结构,包括内部组件、外部组件、基础结构和数据。

内部组件。 支持 Microsoft Dynamics 365 流程编程模型的内部组件包括 Web 服务、共享平台和业务逻辑。 共享平台由提供注册、元数据缓存和数据访问服务的常用 Microsoft Dynamics 365 组件组成。 业务逻辑包含 Microsoft Dynamics 365 业务实体的业务逻辑的实现。

外部组件。 外部组件如下所示:

  • Windows Workflow Foundation 对象模型,其中包含一组用于创建和分析 XAML 格式的工作流程定义的类。

  • Windows Workflow Foundation 执行,其中包含一组用于执行工作流程的类。

流程基础结构。Microsoft Dynamics 365 流程基础结构包括以下组件:

  • 流程实体模型,其中包含一组使用 Windows Workflow Foundation 对象模型并公开 Microsoft Dynamics 365 工作流活动的类。

  • 流程业务逻辑,它实现特定于流程的实体的业务逻辑。

  • 流程执行,它提供工作流执行服务,例如,工作流宿主和持久化。

流程数据。 以下数据支持 Microsoft Dynamics 365 流程编程模型:

  • 业务数据,其中包含与 Microsoft Dynamics 365 实体相关的信息。

  • 流程配置数据,其中包括工作流程定义、编译的工作流程和工作流程设置。

  • 流程运行时数据,这是执行工作流程和实现工作流程功能(例如持久化和通知)所必需的。

流程和统一事件模型

Microsoft Dynamics 365 使用在插件(标注)和流程中使用的统一事件模型。 该事件处理子系统通过引入管道执行模型可以更灵活地执行流程和插件。

使用该模型,会基于其注册、消息类型和预定义的可配置参数集合执行流程和插件。 核心平台操作参与执行序列,以便使执行模型更可靠、更易扩展。

流程生命周期

流程的生命周期说明了从创建到执行的状态转换。 流程可以处于以下状态中的一种:准备就绪、暂停、已锁定和已完成。 在流程的整个生命周期中发生的事件导致从一种状态转换为另一种状态。

工作流

工作流生命周期如下:

  1. 当您创建工作流时,它处于“草稿”状态。 您必须激活工作流,然后它才能运行。 当您激活工作流时,它会订阅特定 Microsoft Dynamics 365 事件。 当在平台中触发这些事件时,会创建工作流依赖项和输入参数的快照,并且会向异步服务队列管理器中添加一个新异步操作。 异步操作表示工作流执行作业,且会等待队列中状态为“准备就绪”的执行。

  2. 当处理异步操作时,Windows Workflow Foundation 运行时引擎会创建与该操作相关的工作流实例,且其状态会从“准备就绪”更改为“已锁定”。

  3. 在每次转变时会通过工作流实例状态的子状态更新异步操作。 当阻止异步操作时,Windows Workflow Foundation 运行时引擎会将工作流实例置于“暂停”状态,并从内存中移除它。 当满足“暂停”状态条件时,会将工作流实例加载回内存中。

  4. 通过将工作流实例设置为“准备就绪”状态,然后再设置为“已锁定”状态,可以继续执行工作流。 在简单的情况下,当所有工作流活动成功完成后,工作流实例会转变为“已完成”状态。

    异步操作的状态也可以由用户更改。 例如,“已挂起”状态的异步操作可以由用户显式重新启动。

对话框

对话生命周期如下:

  1. 当您创建对话时,它处于“草稿”状态。 您必须激活对话,然后它才能运行。 对话可以从其主实体窗体和网格运行,或直接使用对话的 URL 运行。 有关详细信息,请参阅使用 URL 启动对话

  2. 每次您运行对话时,都会为对话创建流程会话实例。 在您正在运行对话时,会使用运行对话期间执行的操作更新流程会话实体。

  3. 如果您成功运行完对话,则会创建具有“完成”状态的相应流程会话记录。 如果您取消对话而未完成它,则会创建具有“不完整”状态的相应流程会话记录。

流程和异步服务:只对于工作流

异步服务可以让您执行、监视和管理各种长期运行的操作,例如批量导入、批量邮件和工作流程。 为了提高 Microsoft Dynamics 365 的性能、可伸缩性和可靠性,这些操作是以异步方式运行的。 这意味着不会立即处理请求的操作,而是将其添加到队列中,然后由 Microsoft Dynamics 365 在合适的时间处理。

当在 Microsoft Dynamics 365 平台管道中引发事件时,所有与该事件关联的工作流都会由异步服务执行。 工作流事件处理程序会添加到异步队列,然后根据事件执行顺序进行处理。

流程持久化和关闭:只对于工作流

工作流可以是长期运行的业务操作,可能持续数个小时、数周,也可能会持续数月。 工作流可以长时间处于闲置状态,等待用户或其他系统输入内容。

为了提高 Microsoft Dynamics 365 的性能、可伸缩性和可靠性,诸如工作流这样长期运行的操作使用异步服务。

作为 Windows Workflow Foundation 运行时引擎宿主的异步服务无法始终缓存在持续工作流活动期间积累的所有对象,并保持其处于活动状态。 如果在工作流运行时发生某些情况(例如重新启动或关机),则工作流运行时引擎会使用持久化服务将工作流实例的状态保存到磁盘上。 而如果出现其他情况,比如某个工作流变为空闲并等待某外部事件发生,也会调用持久化服务。 继续执行这些空闲的工作流实例可节省内存,并极大地提高可伸缩性。 如果某个运行异步服务的服务器关闭,或工作流在执行时崩溃,则在服务器重新启动后,可从上次执行工作流的持续点继续执行该工作流。 当工作流不再空闲时,工作流实例的状态将在内存中还原到上个持续点的状态。

详细信息:工作流继续

另请参阅

Microsoft Dynamics CRM 2015 中的异步服务
事件执行管道
事件框架介绍
编写将业务流程自动化的工作流

© 2017 Microsoft。 保留所有权利。 版权