业务工作流平台设计(五)
自定义活动(二)
数据交换
要想使自定义活动能够通用,那么活动所需要的数据来源也必须遵循一定的规范才可以,然而这很难做到。拿自定义审核活动来讲,它可能需要在三个方面的数据(实际还要多):
l 用户设计工作流时指定用于审核的人员列表,指定哪些人可参与这个审核活动。这里有一个技术点,就是如何实现自定义属性编辑器,这里不多讲。
l 工作流实例运行时获得当前用户信息,根据当前用户自定义审核活动可以判断此人是否可以执行此活动,即此人是否在用户列表中存在。如果不可以则中断活动的运行。有关如何中断活动的运行请看后面的文章。
l 活动执行时所需要的数据。业务工作流平台设计(四)中的“尽可能减少占有时间 ”中讲到将用户数据的收集从工作流中分离出来,以节省占有时间,同时也应将数据同工作流进行分离。工作流不负责这些数据的存储和查询,但自定义审核活动会应用这些数据进行处理以决定该活动是否运行到下一步去;或是继续等待其它用户的审核;或是退回(可经修改再次提交审核);或是不被采用(不能再次提交审核)。
这些数据的获取途径是不确定的,拿用户列表数据来讲,可能是直接访问数据库,也可能是访问Web Service,或是通过配置文件……另外我们是否要求用户采用统一的存储格式。所有这些都是不确定的。那么如何与应用系统进行集成?还是自定义一个接口让应用系统去实现吧。
我们有必要进行这样的隔离,否则这个活动的通用性就会大打折扣。但如果每个活动都有自己不同的数据需要,那么这种情况也是比较繁琐的,最好的方法是集中进行配置。对于每一个设计我们都有一个相应的配置文件,把这些内容放到那里面去我想会是不错的选择。
待续。