迷途书童

敏感、勤学、多思
随笔 - 77, 文章 - 4, 评论 - 86, 引用 - 0
数据加载中……

工作流合单的实现

最近碰到个流程实例合单的需求,具体场景类似支付宝合单的场景:
推断了一下该需求在工作流引擎中的实现方案,共享如下:
引擎可增加一个API,如List<ProcessInstance> getMergedProcessInstances(String processInstanceId, String workItemId, Map<String, Object> processVars ),该API用于根据“指定的流程实例Id,工作项ID(如果是类似BPMN的实现也可以是活动ID)以及一组能够用来鉴别可以合单的流程实例的流程变量的Map”来查询符合合单条件的流程实例。开发者可以调用该API来将返回的流程实例的信息显示到界面上,以支付宝的例子为例就是订单流水号。最终用户可以选择要合单的流程实例,然后填入表单其它信息,提交。server端如果发生根据表单信息设置流程变量,则可调用下面的API:void setVariable(Map<String, Object> processVars, String name, Object value),这个API表示为所有的流程实例中的流程变量值能match给定的processVars参数的流程实例的名称为name的流程变量设置值value。同理,完成工作项也可以是finishWorkitem(String processInstanceId, String workItemId, Map<String, Object> processVars). 这里每个api中要传的processVars参数相当于“相关集”的概念。
欢迎提出更好的方案或与我讨论。谢谢!

posted on 2009-07-06 23:22 迷途书童 阅读(1525) 评论(0)  编辑  收藏 所属分类: 随感系统设计java应用BPM


只有注册用户登录后才能发表评论。


网站导航: