中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 综合文章
jbpm2.0中swimlane ,actorid,role在实际项目的演绎:
作者:未知 时间:2005-07-27 22:28 出处:CSDN 责编:chinaitpower
              摘要:jbpm2.0中swimlane ,actorid,role在实际项目的演绎:

 工作流程中的某些状态处于一个swimlane(泳道)中,参与工作流程的具体人如果具备涉足
这个泳道的能力,就可以对这些状态进行处理。如何在计算机系统表示个体的能力度?
在工作流系统中通过组织建模,从组织模型数据中取得一定属性赋给个体,比如通过role角色、
职务(或职务)来表示个体具有的能力度。
 在工作流程定义中,很少会把具体的个体定义进流程审批环节中。大多数系统会定义一个
角色(静态和动态)、职位,只要满足这些条件个体都可以处理这些环节(也即具备这些能力个体
进入系统后,系统会把他可以处理的工作全部列出来)。
 jbpm2.0通过swimlane这种抽象的能力度对象,把定义的swimlane赋给某些审批环节,系统
在实际运行中,根据swimlane的代理类计算出流程参与者(actorid),需注意一点是这个参与者
和系统用户登录id有所区别,他可以是用户登录id,也可以是role或position。jbpm2.0在这点
设计考虑很周到,仅提供流程引擎,不绑定任何组织模型。用户可以根据各自的组织定义自己
的流程。
如示例:

public class ChiefHandle implements AssignmentHandler {
  public ChiefHandle() {
  }
  public String selectActor(AssignmentContext parm1) {
    String actorid=parm1.getPreviousActorId();//比如可以通过前一步的actorid计算出流程参与者
    System.out.println("---previous actor id="+actorid);
    //userid是在流程发启时,赋的用户登录名,根据登录名可以从组织模型找到相关的数据
    //比如要求上级领导等
    String firstactorid=(String)parm1.getVariable("userid");
    System.out.println("---root actor id="+firstactorid);
    if(actorid.equals("US010101"))
      return "POS0102";//返回职位代码或登录id等
    else
      return "POS0103";
  }
}

 所以用户登录系统中,工作列表不仅仅是根据登录id查找,而且需根据此用户具备的角色或职位等
相关信息查找。
 我在实际项目中也碰到一些问题,提出来大家一起讨论,主要是在一些动态角色计算方面没有找到
一个切实可行办法。比如怎样定义:处理上一个状态环节的个体的同事这样的角色等,我想是否可以通过
登录用户的单位代码、部门或项目组代码(selectActor)?


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有