“引发事件以加载工作流”示例
为了发送文档以供批准,此示例中的工作流使用绑定到 DocumentApprovalInterface 的 RequestDocumentApproval 方法的 CallExternalMethodActivity 活动。 工作流中的下一个活动是 HandleExternalEventActivity 活动,该活动用于处理 DocumentApproved 事件。
已对运行时进行了配置,以便每当工作流处于空闲状态时(也就是说,实例没有要完成的工作时)就卸载工作流实例。 此功能很重要,因为 HandleExternalEventActivity 活动可能需要很长时间(可能长达数天或数周)来等待文档批准。
DocumentApprovalInterface 定义用于发送和接收文档批准的方法和事件。 DocumentApprovalService 类为代理方法调用和事件处理实现 DocumentApprovalInterface,这些方法调用和事件处理可使数据流入和流出工作流及宿主应用程序。
工作流通过 RequestDocumentApproval 方法发送文档以供批准,从而启动文档批准流程,该方法随后将文档传送到目标(未实现)。 当工作流进入空闲状态时,将调用宿主 OnWorkflowIdled 事件处理程序。 同时,运行时将通过 FilePersistenceService 卸载工作流实例。 在 WorkflowIdled 处理程序中,会将 DocumentApproved 事件引发到工作流。 DocumentApproved 事件将被传送到 HandleExternalEventActivity documentApprovedInvoked 处理程序。
此示例还使用可将工作流状态序列化为文件的自定义持久性服务 (FilePersistenceService)。
生成并运行应用程序后,输出结果将类似下面所示:
生成示例
通过单击**“下载示例”**来下载该示例。
这会将示例项目提取到本地硬盘。
单击**“开始”,依次指向“程序”和“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。
转到示例的源目录。
在命令提示符处键入 MSBUILD RaiseEventToLoadWorkflow.sln
运行示例
- 在 SDK 命令提示窗口中,运行 DocumentApprovalWorkflow\bin\debug 文件夹(对于该示例的 VB 版本为 DocumentApprovalWorkflow\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。
请参见
其他资源
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。