`

jbmp装贴

 
阅读更多
JBPM入门(2010-05-24 17:58:20)转载标签: processrepositoryexecutiontasktaskserviceisactive工作流java 分类: 工作圈 
jBPM是一种基于J2EE的轻量级工作流管理系统,是JBoss开源项目中的一个组成部分。

JBPM核心类及接口介绍:
ProcessEngieen:central starting point for all process engine API interactions
          functions:getExecutionService(),getRepositoryService(),getTaskService() 

RepositoryService:Deployments contain a set of named resources. Those resources can represent  process definitions,forms,images and so on. The repository contains and manages the process definitions.

          functions:deleteDeployment(java.lang.String deploymentId)

ExecutionService:manages runtime process executions.
          functions:createProcessInstanceQuery(),deleteProcessInstance(java.lang.String processInstanceId),
          findExecutionById(java.lang.String executionId),findProcessInstanceById(java.lang.String processInstanceId),
          setVariable(java.lang.String executionId, java.lang.String name, java.lang.Object value),
          setVariables(java.lang.String executionId, java.util.Map<java.lang.String,?> variables),
          startProcessInstanceById(...),startProcessInstanceByKey(...),getVariableNames(java.lang.String executionId),
          getVariables(java.lang.String executionId, java.util.Set<java.lang.String> variableNames)

TaskService:task management
          functions:completeTask(java.lang.String taskId),deleteTask(java.lang.String taskId),
          findPersonalTasks(java.lang.String userId),getVariableNames(java.lang.String taskId),
          getVariables(java.lang.String taskId, java.util.Set<java.lang.String> variableNames)

Execution:The state of an execution is either active or locked.
          functions:getExecution(java.lang.String name) ,isActive(java.lang.String activityName),
                    isEnded() ,isSuspended()

ProcessInstance:extends Execution,a process instance is one execution of a process definition. One process instance can have many concurrent executions.Executions are structured in a tree of which the ProcessInstance is the root.

ProcessDefinition:a graphical process which is deployed in the RepositoryService.
          functions:getDeploymentId(),getName(),getKey()



开发中常用功能点介绍:
1.流程发布
  org.jbpm.api.ProcessEngine processEngine = Configuration.getProcessEngine();
  org.jbpm.api.RepositoryService repositoryService = processEngine.getRepositoryService();
  ZipInputStream zis = new ZipInputStream(this.getClass().getResourceAsStream("/xx.zip"));
  repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy();
  //repositoryService.createDeployment().addResourceFromClasspath("org/xx/process.xml).deploy();
2.删除已发布流程
  repositoryService.deleteDeployment(processId); // processId流程定义标识
  //repositoryService.deleteDeploymentCascade(deploymentId);
3.获取流程实例列表或某个实例
  org.jbpm.api.ExecutionService executionService = processEngine.getExecutionService();
  executionService.createProcessInstanceQuery().list();
  //创建新流程,processDefinitionKey:xml中process标签的key;processInstanceKey:用户给的key,实例标识
  executionService.startProcessInstanceByKey(processDefinitionKey, processInstanceKey);
  //创建新流程
  //processDefinitionKey:xx.xml中process标签的key ;variables:该流程实例要用到的变量;processInstanceKey(用户给定的业务key)
  //executionService.startProcessInstanceByKey(processDefinitionKey, variables, processInstanceKey);
  org.jbpm.api.ProcessInstance processInstance = executionService.startProcessInstanceByKey("xxx");
  //对应于数据库表jbpm4_execution中的KEY_字段
  //ProcessInstance processInstance =executionService.createProcessInstanceQuery().processInstanceKey(key).uniqueResult();
4.实现某个任务
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("condtion1", 1);
  map.put("condtion2", "2");
  //List<Task> taskList = taskService.findPersonalTasks(name);
  //获取指定用户名字的任务
  String taskId = taskService.findPersonalTasks(name).get(0).getId();
  taskService.setVariables(taskId, map);
  //根据任务id获取指定变量值 taskService.getVariable(taskId, variableName);
  //taskService.getVariable(taskId, "condtion1");
  ////让任务向下流转,提交任务
  taskService.completeTask(taskId);
5.节点(任务)执行情况判断
  task = taskService.getTask(taskId);

org.jbpm.api.Execution execution = executionService.findExecutionById(task.getExecutionId());
  boolean b = execution.getProcessInstance().isActive(taskname);

//判断是否是taskname对应的节点需要处理
  boolean c = execution.getProcessInstance().isActive(taskname1)
  if(b){
    ...map
    taskService.setVariables(taskId, map);
    taskService.completeTask(taskId);
  }else if(c){
    taskService.completeTask(taskId);
  }
分享到:
评论

相关推荐

    jbmp3.0.13

    【jbmp3.0.13】是一款基于Java的工作流管理插件,它在实际应用中表现出优秀的稳定性和功能性,因此被广泛使用并受到好评。jbmp,全称是Java Business Management Process,它是JBoss企业级中间件的一部分,主要用于...

    jbmp用户指南(工作流)

    jbmp用户指南(工作流) jbmp,全称为Java Business Process Management,是Java领域中一个强大的业务流程管理(Business Process Management)框架。它提供了一种可扩展且灵活的工作流引擎,能够独立部署在服务器...

    JBMP入门讲解附带实例一个

    **JBMP入门详解与实践案例** JBMP,全称为Java Business Management Process,是早期的一种业务流程管理(Business Process Management)框架,主要用于企业级应用中处理业务流程自动化。它基于Java平台,提供了...

    jbmp3.2学习笔记

    在jPDL中,与流程设计相关的文件有三个:processdefinition.xml、gdp.xml、processimage.jpg。其中processdefinition.xml是流程定义的描述文件;gpd.xml是对图形界面呈现的XML描述;而 processimage.jpg则是对图形...

    jbmp开发入门指南

    **jbpm开发入门指南** **一、工作流与jbpm简介** 工作流技术在企业管理中起着关键作用,它能够自动化处理复杂的业务流程,提高工作效率。尽管目前尚无统一的标准,但工作流框架的需求日益增长,尤其是在需要多步骤...

    jbmp入门教程,jBPM流程定义语言,业务日历,流程建模

    本教程将深入探讨jBMP的核心概念,包括流程定义语言、业务日历以及流程建模,帮助初学者快速入门。 一、jBPM流程定义语言 jBPM采用的是BPMN 2.0(Business Process Model and Notation)标准,这是一种图形化的流程...

    myeclipse6.0的jbmp插件

    【标题】:“myeclipse6.0的jbmp插件” 【描述】:“myeclipse6.0的jbmp插件.rarmyeclipse6.0的jbmp插件.rar”这个描述提到了一个针对MyEclipse 6.0版本的JBMP(Java Business Management Protocol)插件的压缩文件...

    jboss+jbmp5.3开发手册.rar

    JBMP 5.3 版本是JBoss工作流管理系统的一个重要里程碑,它带来了许多增强功能和优化。这个开发手册将帮助开发者深入了解如何在JBoss环境中集成和使用JBM进行业务流程的管理和实现。 1. **JBM5.3.chm** - 这个CHM...

    oa.rar_OA文档_SSH JBMP_jbmp oa_oa_oa ssh

    标题中的"oa.rar_OA文档_SSH JBMP_jbmp oa_oa_oa ssh"表明这是一个与OA(Office Automation,办公自动化)系统相关的压缩文件,其中包含了使用SSH(Spring、Struts、Hibernate)框架和JBMP(Java Business ...

    JBoss JBMP用户开发手册

    关于JBoss JBMP-java工作流用户开发手册

    jbmp4整合SSH的请假例子

    【SSH整合与JBMP4详解】 SSH(Spring、Struts、Hibernate)是Java Web开发中的经典框架组合,用于构建高效、可维护的企业级应用程序。在这个整合中,Spring作为整体架构的控制层,负责依赖注入和业务流程管理;...

    jbmp part 1 total 108

    jbmp part 3 total 108 for java develop tools

    jbmp part 2 total 108

    jbmp part 2 total 108 for java develop tools

    chen-jbpm_websale.zip_jbmp_jbmp java_jbpm_jbpm_websale_网上销售系统

    【标题】"chen-jbpm_websale.zip_jbmp_jbmp_java_jbpm_jbpm_websale_网上销售系统" 提供的是一个基于JBPM(Java Business Process Management)技术的网上销售系统的示例项目。JBPM是一个开源的工作流管理系统,它...

    工作流初介绍EOS+JBMP入门

    接下来是JBMP,它是Java平台上的一种开源工作流和业务流程管理解决方案。JBPM提供了完整的业务流程生命周期管理,包括设计、部署、执行、监控和优化。它的核心组件包括工作流引擎、规则引擎、事件处理和持久化服务等...

    jbmp 3.0 chm

    **jbmp 3.0 chm** JBMP(Java Business Management Process)是早期的一个Java业务流程管理框架,它主要用于在Java应用中实现工作流管理。jbpm 3.0是该框架的一个版本,旨在提供一个灵活且可扩展的平台,用于设计、...

    JBMP练习例子

    【JBMP练习例子】是一个关于Java Business Process Management Suite (JBPM) 的实践项目,它以Web应用程序的形式构建,能够在Apache Tomcat这样的应用服务器上运行。JBPM是一个开源的工作流和业务流程管理平台,用于...

    jBoss jBMP.chm

    JBoss jBPM 是一个复杂的可扩展的工作流管理系统. JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,JBoss jBPM 就有了最强大和易扩展性的...

    jbmp文档

    【jbmp文档】 jbpm(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它提供了对企业级工作流和业务规则的全面支持。jbpm旨在帮助开发者和业务分析师设计、执行、监控和优化业务流程。...

Global site tag (gtag.js) - Google Analytics