论坛首页 Java企业应用论坛

Fire Workflow如何实现自动委派

浏览 2113 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-30  
需求描述:
某领导A休假,休假期间需要将他的工作自动委派给领导B,当A休假完毕后,取消委派。

实现访法:

1)首先在系统中建立一张表,记录委派关系,假设叫做“委派表”吧。里面有两个基本字段:委派人,代办人。

2)扩展BasicTaskInstanceManager里面的org.fireflow.engine.taskinstance.DefaultTaskInstanceEventListener 。将委派逻辑写在protected void afterWorkItemCreated(...)。
    委派逻辑如下:
    a)取得新创建的IWorkItem对象,假设为theNewWorkItem。如果是领导A的工单,则theNewWorkItem.getActorId()返回的就是A的ID

    b)通过theNewWorkItem.getActorId()到委派表里面去查找,看看有无匹配记录,如果有,则调用如下代码(假设代办人是B)
       theNewWorkItem.reasignTo(B);

    工作流系统同时会记录A和B的工单情况,而且可以清楚地表明B是代A工作。

总结:
这种方式实现的委派很灵活,委派和取消委派直接体现为对“委派表”的增删改操作。
   发表时间:2009-08-05  
委派是否包含两层含义:
1、当前已经给我的workitem,自动转发给受委派者;
2、新创建的workitem,re-asign-to受委派者,就是你说的这种情况。

前者怎么办?需要处理吗?听听你的高见
0 请登录后投票
   发表时间:2009-08-05  
"当前已经给我的workitem"
显然,已经发给我的工作,我是看到了的,这种情况下一般无法“自动”了。需要我点击一下界面的某个按钮,委派给其他人。最终仍然调用workItem.reasignTo();

万一,我没有看到呢?说是在的这时一个业务问题,不是一个技术问题。如果你一定要某种程度的“自动”,还是可以在workItem.reasignTo()上做文章。但我觉得很可能并不是业务的真正需求,已经发给我的Workitem还是让用户“手动”好一些。
0 请登录后投票
   发表时间:2009-08-06  
其实这种需求也满“中国国情”的:领导有了很多工作项,让秘书办,不可能“手工”(都懒成这样了还让他手工,找抽),给账号密码秘书也不是好提议。

我的做法就是在获取工作项的时候进行解析,逻辑比较复杂,对性能有一定的影响

有些时候,需要你这种坚持:)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics