工作流活动中的外部方法调用与外部工作流调用
1. CallExternalMethod 活动
CallExternalMethod 活动旨在接受一个接口以及该接口支持的方法,并调用该方法。但实现该方法的并非宿主应用程序,而是与 ExternalDataService 关联的数据连接器。数据服务会将方法调用转换为宿主应用程序订阅的事件。
直接使用 CallExternalMethod 活动虽可行,甚至能绕过部分服务代码,但会使宿主应用程序和工作流实例一一绑定。结合数据服务和关联机制,能让多个应用程序实例访问多个工作流实例的数据,而绕过数据服务则无法实现这一点。通常,创建自定义活动来调用外部方法更为可取,可借助工具根据数据交换接口生成派生自 CallExternalMethod 的活动,这些活动命名更合适且属性已配置好。
2. 创建和使用自定义外部数据服务活动
由于工作流与宿主应用程序交换的信息无法预先确定,需要编写代码来填补这一空白。不过,可利用工具根据带有 ExternalDataExchange 属性的数据传输接口自动生成工作流活动。
本次创建的应用是从工作流向宿主应用程序进行单向数据传输。使用 Workflow Communication Activity 生成工具 wca.exe 创建用于向宿主应用程序发送数据的活动,具体步骤如下:
1. 确保 MVDataService 项目构建成功并生成 MVDataService 程序集(MVDataService.dll),右键点击项目选择 Build 即可,不要构建整个解决方案,如有错误需先修正。
2. 点击开始按钮,选择运行,输入 cmd 并回车,打开 Window