`
winter_leo
  • 浏览: 4061 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

针对iMatrix平台流程引擎之办理人设置分析

阅读更多

 学习了几天iMatrix平台的功能,自己对iMatrix平台的流程引擎下的办理人设置有几点研究,在这里跟大家分享下。

 

1)流程设计器设置:



 



 

 

可以有四种配置:文档创建人、上一环节办理人指定、文档字段中指定的人员、按条件筛选。

 

2) 办理人设置的监听类:


    xml中配置监听类,如下:

 

<task name="填单" g="251,75,80,40">

 

    <assignment-handler class="com.norteksoft.wf.engine.core.AssignmentHandler"/>

 

         … … … …

 

</task>

 

          监听类AssignmentHandler实现jbpmorg.jbpm.api.task.AssignmentHandler 接口

 

public class AssignmentHandler implements org.jbpm.api.task.AssignmentHandler

 

{

 

… … … …

 

//根据流程设计器配置的办理人,获得办理人列表:

 

candidates = TransactorConditionHandler.processCondition(conditions, execution,paramMap);

 

… … … …

 

if(candidates.size() == 1){

 

//将获得的办理人设置到jbpm任务中

 

     assignable.setAssignee(candidates.iterator().next());

 

}elseif(candidates.size() == 0){

 

      //没有办理人时抛出异常信息

 

     thrownew WorkflowException(WorkflowException.NO_TRANSACTOR);

 

}else{

 

     for(String candidate : candidates){

 

     //将获得的办理人设置到jbpm任务的办理人候选人列表中

 

            assignable.addCandidateUser(candidate);

 

     }

 

}

 

… … … …

 

}

 

我们再来看看TransactorConditionHandler.processCondition的实现:

 

public static  Set<String> processCondition(Map<TaskTransactorCondition, String> conditions, OpenExecution execution,Map<String,String> param){

 

… … … …

 

if("${documentCreator}".equals(userCondition)){

 

     //文档创建人,即为发起实例的人的登录名

 

     candidates.add(param.get(DOCUMENT_CREATOR));

 

  }elseif("${previousTransactorAssignment}".equals(userCondition)){

 

     //上一环节办理人指定,当是这种情况时,需要弹出选人界面让上一环节办理人选择该环节的办理人

 

     candidates.add(CommonStrings.TRANSACTOR_ASSIGNMENT);

 

  }elseif(userCondition.startsWith("${field[")){

 

     //文档字段中指定//${field[name_zn[name_en]]}

 

     … … … …

 

}else{

 

    //按条件筛选

 

… … … …

 

}

 

}

 

生成任务时的处理方式是,根据jbpm任务生成imatrix的任务实体:

 

TaskService.javagenerateTask方法:

 

public void generateTask(WorkflowInstance instance, String executionId, String parentExecutionId){

 

  … … … …

 

  for(org.jbpm.api.task.Task task : jbpmTasks){

 

            … … … …

 

            if(task.getAssignee() == null){//任务有多个办理人

 

                     //获得jbpm任务的候选人列表,此处获得的人员列表为监听类AssignmentHandleraddCandidateUser中的人员

 

Iterator<ParticipationImpl> it = ((TaskImpl)task).getParticipations().iterator();

 

… … … …

 

while(it.hasNext()){

 

     //创建imatrix的任务实体

 

     wfTask = createTask(instanceId, task.getExecutionId(), it.next().getUserId(), task.getActivityName(),groupNum);

 

//审批任务有多个办理人,且流程设计器中设置为多人办理时,将imatrix的认为设置为待领取

 

     if(!wfTask.getMoreTransactor()){                                                                                                     wfTask.setActive(TaskState.DRAW_WAIT.getIndex());

 

     }

 

… … … …

 

}else{//任务只有一个办理人

 

     tasks.add(createTask(instanceId, task.getExecutionId(), task.getAssignee(), task.getActivityName(),groupNum));

 

}

 

}

 

}

  • 大小: 75.8 KB
分享到:
评论

相关推荐

    iMatrix6.0.0Dev:iMatrix平台6.0.0.Dev

    iMatrix6.0.0Dev:iMatrix平台6.0.0.Dev源码

    Matrix BPM流程入门

    ### Matrix BPM 流程入门详解 #### 一、概述 Matrix BPM是一款专业的企业级业务流程管理(Business Process Management, BPM)软件,旨在帮助企业通过可视化工具快速设计、管理和优化业务流程。该工具支持主流服务器...

    5.2.1.RC:iMatrix平台的5.2.1.RC

    iMatrix平台的5.2.1.RC版本是该系统发展的一个重要里程碑,标志着系统功能和性能的持续改进。...开源社区的力量就在于此,每个人都可以为这个项目的进步贡献力量,共同打造更强大、更可靠的iMatrix平台。

    Matrix Analysis矩阵分析

    Matrix Analysis

    Matrix Maker S78A 编程键盘设置程序 3.0.0.5 (适用WIN7 XP)

    IBM SurePOS 500系列收款机在国内发售的搭配的S78A键盘的烧录软件。 支持WIN7 XP系统,支持自动安装PS2口驱动。不需要手动选择驱动安装。 需要注意的是,键盘生产厂商不同,即使外观和功能都相同,所需驱动也不一样...

    Matrix Analysis(矩阵分析)中文翻译版

    Matrix Analysis(矩阵分析)中文翻译版 pdf格式的

    THE Matrix 屏幕保护程序(附程序)

    【标题】"THE Matrix 屏幕保护程序(附程序)" 是一个基于计算机程序的屏幕保护应用,灵感来源于著名科幻电影《黑客帝国》(The Matrix)。这个屏幕保护程序在闲置时会模仿电影中经典的绿色代码雨效果,为用户的电脑...

    iMatrix-v6.5.RC1:平台v6.5.RC1版本对应的原始码,包含lib包-源码包

    《iMatrix-v6.5.RC1:深入解析开源平台的源码结构与技术栈》 iMatrix-v6.5.RC1是一个重要的里程碑,它标志着该开源平台发展到了v6.5版本的候选发布阶段(Release Candidate 1)。这个版本的原始码包含了构建平台所...

    ansys matrix27单元详解

    在ANSYS这款强大的有限元分析软件中,Matrix27单元是一种特殊的自定义单元类型,主要用于处理非线性问题,尤其是那些涉及到大变形、接触非线性和材料非线性的复杂工程问题。Matrix27单元的灵活性和强大的功能使其在...

    Matrix Analysis(矩阵分析)

    Matrix Analysis(矩阵分析),国外经典教材,中文译本

    DataMatrix的MFC程序

    在这个程序中,可能需要一个文本框让用户输入要编码的数据,一个按钮触发编码和显示DataMatrix,以及可能的设置选项,比如纠错级别、尺寸等。 4. **事件处理**: 对于用户输入和按钮点击等事件,MFC使用消息映射机制...

    DataMatrix 二维码生成 和解码 C#程序

    DataMatrix 二维码生成 和解码 C#程序,亲测可用。解码是Freytag DataMatrixDecoder A c# implementation to find DataMatrix 'barcodes' in bitmaps and decode them back into a string.

    Android应用源码之Matrix.zip

    1. **设置变换**:Matrix提供了多种方法来设置变换,如setTranslate(), setScale(), setRotate() 和 setSkew(),分别用于设置平移、缩放、旋转和倾斜。 2. **组合变换**:可以使用postTranslate(), postScale(), ...

    得利捷(DATALOGIC)matrix-320用户设置手册

    总的来说,得利捷(DATALOGIC)Matrix 320用户设置手册是一部全面且实用的操作指南,它涵盖了从设备基础操作到高级功能设置的所有环节,为用户提供了一条清晰的学习路径,帮助他们充分发挥这款固定扫描器的潜能。...

    Matlab有限元结构动力学分析(源程序)

    【Matlab有限元结构动力学分析(源程序)】是一个基于MATLAB的计算工具包,专为进行结构动力学分析而设计。这个源程序集合涵盖了有限元方法在工程中的实际应用,是工程师和学习者深入理解和实践结构动力学理论的理想...

    FLASH AS3 3D引擎

    这款由外国人研发的Flash AS3 3D引擎,不仅突破了2D平面的限制,更是将动态三维视觉效果带入了Web应用程序的领域,为用户带来了前所未有的3D环绕体验。 首先,让我们深入理解一下AS3,即ActionScript 3.0。这是...

    Data Matrix二维码解析程序小实例

    一个技术选型小实例,用上两个Data Matrix二维码解析库。 实例操作方法: 1. 运行程序 2.点Image File选一个有Data Matrix二维码的图片 3.在右边的Picture Box选择二维码范围区域 4. 分别有两个Read来解析二维码,...

Global site tag (gtag.js) - Google Analytics