`
winter_leo
  • 浏览: 4173 次
  • 性别: 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)软件,旨在帮助企业通过可视化工具快速设计、管理和优化业务流程。该工具支持主流服务器...

    Matrix Analysis矩阵分析

    Matrix Analysis

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

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

    5.2.1.RC:iMatrix平台的5.2.1.RC

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

    ansys matrix27单元详解

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

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

    Matrix Maker S78A是一款专为BM SurePOS 500系列收款机设计的编程键盘设置程序,版本号为3.0.0.5。这款软件适用于Windows 7和XP操作系统,提供了便捷的键盘烧录功能,使得S78A键盘能够与BM SurePOS 500系列收款机...

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

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

    Matrix Maker 使用手册中文版

    ### Matrix Maker 可编程键盘使用手册知识点概览 #### 一、程序安装与配置 - **安装程序**:用户需运行`Setup.exe`文件来进行安装。默认安装位置为`C:\Program Files\MatrixMakerChinese\ProgrammableKeyboard`。 ...

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

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

    Matrix Analysis(矩阵分析)

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

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

    为了让用户能够充分掌握并利用这款先进的设备,得利捷(DATALOGIC)Matrix-320用户设置手册应运而生,它是一本详细记录设备选型、组网设置和单头调试的专业指南。 在开篇的设备说明部分,手册首先引导用户了解如何...

    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 220N说明书

    ### Datalogic MATRIX 220N 产品参考指南知识点详解 #### 一、产品概述与文档信息 **产品名称**:Datalogic MATRIX 220N **产品类型**:基于图像的读码器(Image-Based Reader) **制造商**:Datalogic S.r.l. **...

    FLASH AS3 3D引擎

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

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

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

Global site tag (gtag.js) - Google Analytics