工作流系统体系结构

应用于: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

工作流基础结构包括在应用程序对象服务器 (AOS) 上承载的两个组件:X++ 工作流运行时和管理的工作流运行时。

X++ 工作流运行时包括:

  • 工作流运行时 API

  • 消息传送批处理作业

  • 消息队列

如果需要,消息传送批处理作业或工作流运行时 API 可以调用应用程序代码。X++工作流运行时编译为 .NET Framework 的公共中间语言 (CIL)。有关详细信息,请参阅X++ Compiled to .NET CIL

管理的工作流运行时包括 Windows Workflow Foundation 和 Microsoft Dynamics AX 扩展。

逻辑上,工作流基础结构是 Microsoft Dynamics AX 的扩展,并且对用户是透明的。实际上,X++ 工作流和管理的工作流运行时承载在 AOS 上。工作流基础结构使用 AOS 上的批处理和 .NET 互操作集成两个子系统,并将消息从一个子系统传递到到另一个子系统。批处理器中指定的 X++ 代码编译为 .NET CIL。批处理在 .NET 公共语言运行时 (CLR) 中运行。

下图说明工作流基础结构的高层体系结构。

Workflow architecture

用户可以使用 Microsoft Dynamics AX 客户端和 适用于 Microsoft Dynamics AX 的企业门户 中的工作流窗体和控件参与业务流程。

开发人员可以为其添加到 Microsoft Dynamics AX 的对象创建工作流。有关详细信息,请参阅Implementing Workflow for Microsoft Dynamics AX

下表描述用户提交支出报表给工作流系统进行审核时发生的工作流步骤。

步骤

运行时

活动

1

X++ 工作流运行时

用户通过单击一个工作流控件上的“提交”按钮提交支出报表。这导致 X++ 代码通过调用工作流运行时 API 激活工作流实例。工作流运行时 API 将消息发布到消息队列。消息传送批处理作业读取消息,并向管理的工作流运行时发送工作流启用请求。

备注

消息传送批处理作业按一分钟的间隔处理消息队列。

2

管理的工作流运行时

X++ 的 .NET 互操作接收消息并通过 Windows Workflow Foundation 启动新的工作流实例。此工作流实例通过 .NET互操作对 X++ CIL 执行 X++ 工作流运行时 API 的回调并发布工作流启动的消息。

发布消息后,管理的工作流运行时将空闲工作流实例保存到 Microsoft Dynamics AX 数据库。然后,运行时将其从内存中删除。管理的工作流运行时从 X++ 工作流运行时接收工作流实例的另一条消息时,它将工作流实例重新存储到内存中并恢复。

每个工作流实例都是唯一的。如果您具有两个提交其支出报表以供审核的用户,则启动两个工作流实例。

3

X++ 工作流运行时

消息传送批处理作业从消息队列读取启动的工作流,并调用应用程序事件处理程序处理启动的工作流事件。然后,批处理作业发布已处理消息事件的确认信息。

4

双向

根据需要,在工作流实例的生命周期中重复此相同的传送模式。

工作流体系结构帮助提供可靠持久的消息传送系统,并帮助确保工作流的状态始终与应用程序的状态同步。在硬件或软件意外故障情况下,工作流实例状态返回到其最后的已知保存点,并且消息仍在该队列中。因此,从体系结构角度,恢复模块用于解决问题和恢复工作流。