`

【转】JBPM4 - TaskService

 
阅读更多

TaskService的主要目的是提供对任务列表的访问途径。 例子代码会展示出如何为id为johndoe 的用户获得任务列表

List<Task> taskList = taskService.findPersonalTasks("johndoe"); 

一般来说,任务会对应一个表单,然后显示在一些用户接口中。 表单需要可以读写与任务相关的数据。

// read task variables 
Set<String> variableNames = taskService.getVariableNames(taskId); 
variables = taskService.getVariables(taskId, variableNames); 

// write task variables 
variables = new HashMap<String, Object>(); 
variables.put("category", "small"); 
variables.put("lires", 923874893); 
taskService.setVariables(taskId, variables); 


taskSerice也用来完成任务。
taskService.completeTask(taskId); 
taskService.completeTask(taskId, variables); 
taskService.completeTask(taskId, outcome); 
taskService.completeTask(taskId, outcome, variables); 

这些API允许提供一个变量map,它在任务完成之前作为流程变量添加到流程里。 它也可能提供一个“外出outcome”,这会用来决定哪个外出转移会被选中。 逻辑如下所示:

如果一个任务拥有一个没用名称的外向转移:
taskService.getOutcomes() 返回包含一个null值集合,。
taskService.completeTask(taskId) 会使用这个外向转移。
taskService.completeTask(taskId, null) 会使用这个外向转移。
taskService.completeTask(taskId, "anyvalue") 会抛出一个异常。

如果一个任务拥有一个有名字的外向转移:
taskService.getOutcomes() 返回包含这个转移名称的集合。
taskService.completeTask(taskId) 会使用这个单独的外向转移。
taskService.completeTask(taskId, null) 会抛出一个异常(因为这里没有无名称的转移)。
taskService.completeTask(taskId, "anyvalue") 会抛出一个异常。
taskService.completeTask(taskId, "myName") 会根据给定的名称使用转移。

如果一个任务拥有多个外向转移,其中一个转移没有名称,其他转移都有名称:
taskService.getOutcomes() 返回包含一个null值和其他转移名称的集合。
taskService.completeTask(taskId) 会使用没有名字的转移。
taskService.completeTask(taskId, null) 会使用没有名字的转移。
taskService.completeTask(taskId, "anyvalue") 会抛出异常。
taskService.completeTask(taskId, "myName") 会使用名字为'myName'的转移。

如果一个任务拥有多个外向转移,每个转移都拥有唯一的名字:
taskService.getOutcomes() 返回包含所有转移名称的集合。
taskService.completeTask(taskId) 会抛出异常,因为这里没有无名称的转移。
taskService.completeTask(taskId, null) 会抛出异常,因为这里没有无名称的转移。
taskService.completeTask(taskId, "anyvalue") 会抛出异常。
taskService.completeTask(taskId, "myName") 会使用名字为'myName'的转移。

任务可以拥有一批候选人。候选人可以是用户也可以是用户组。用户可以接收自己是候选人的任务。接收任务的意思是用户会被设置为被分配给任务的人。在那之后,其他用户就不能接收这个任务了。

人们不应该在任务做工作,除非他们被分配到这个任务上。用户界面应该显示表单,如果他们被分配到这个任务上,就允许用户完成任务。对于有了候选人,但是还没有分配的任务,唯一应该暴露的操作就是“接收任务”。

分享到:
评论

相关推荐

    jBPM4-app-forth4 源码实例 jbpm4

    jBPM4-app-forth4 是一个基于jBPM4框架的应用程序实例,它提供了深入理解jBPM4工作流引擎及其应用开发的宝贵资源。jBPM4是一款开源的业务流程管理(Business Process Management)和工作流系统,主要用于设计、执行...

    jbpm4.3-spring2.5整合

    创建或更新Spring配置文件(如 applicationContext.xml),在这里定义Jbpm所需的bean,如流程引擎工厂(ProcessEngineFactoryBean)、流程定义仓库(RepositoryService)、任务服务(TaskService)等。 2. **定义...

    深入浅出jBPM.1-6章测试代码_jbpm-test.rar

    - **TaskService**:提供任务相关操作,如获取任务列表、领取任务、完成任务等。 - **WorkItemHandler**:自定义任务处理器,实现特定业务逻辑。 5. **变量管理** - **Process Variables**:在流程实例中存储和...

    jBPM2-流程图与JBPM API.ppt

    ### 4. 使用流程图与API 利用jBPM的API,开发者可以: - 创建和启动流程实例:通过`JbpmContext`的`startProcessInstanceById()`或`startProcessInstanceByDeploymentId()`方法。 - 执行任务:处理任务节点,通过`...

    JBPM JAR包1

    - **编程交互**: 使用JBPM提供的API,如`ProcessRuntime`和`TaskService`,在代码中启动流程、完成任务、查询状态等。 - **事务管理**: 配置合适的事务策略,确保流程操作与数据库操作的一致性。 - **测试和调试**: ...

    jbpm中文文档--英文文档

    4. **JPDL详解**:JPDL(jbpm Process Definition Language)是jbpm的流程定义语言,类似于XML,用于描述流程实例的行为。文档会解释JPDL的各种元素,如start事件、end事件、任务、分支和并发等。 5. **运行与调试*...

    jbpm-4.4开发文档

    ### 4. JBPM入门手册 - **安装与配置**: 该文档会介绍如何在项目中集成jbpm,包括环境配置、库依赖和数据库设置等。 - **第一个流程**: 通常会有一个简单的示例来引导初学者创建并运行第一个流程,理解流程的启动...

    jbpm-7.18.0.Final-examples.zip

    jbpm-7.18.0.Final-examples.zip 是一个包含 jBPM 7 最新版本示例的压缩包,旨在帮助开发者更好地理解和学习如何使用 jBPM 进行业务流程管理(Business Process Management)的开发。jBPM 是一个开源的工作流和业务...

    JBPM4与Spring整合例子代码

    **JBPM4与Spring整合详解** JBPM4(Java Business Process Management 4)是一个开源的工作流管理系统,它提供了业务流程的建模、部署、执行和监控功能。Spring框架则是Java应用开发中的一个核心组件,主要负责依赖...

    jBPM4与Spring整合的2种方式

    4. **配置其他Service**:除了RepositoryService,还需要配置TaskService、ExecutionService和IdentityService等,以便于操作任务、流程实例和用户身份信息。 5. **注入Service到业务逻辑**:通过Spring的@Autowired...

    Jbpm4HelloWorld

    【Jbpm4HelloWorld】是基于JBPM(Java Business Process Management)框架的入门示例,这个项目旨在帮助初学者快速理解并掌握JBPM的基本用法。JBPM是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务...

    jbpm4实例源码,可直接运行

    8. **工作流服务(Services)**:jbpm4提供了各种服务接口,如流程服务(ProcessService)、任务服务(TaskService)等,用于执行流程操作。通过源码,你可以学习如何调用这些服务来与jbpm4引擎交互。 9. **持久化...

    Jbpm4学习文档chm

    **JBPM4学习文档CHM**是一份专为学习和理解JBPM4设计的工作流引擎技术文档,适合那些对工作流框架感兴趣的Java开发者,特别是希望将JBPM与Spring框架集成的人员。JBPM是一个开源的工作流程管理系统,它提供了一整套...

    JBPM4使用小结.doc

    JBPM4 使用小结 JBPM4 是 JBoss 开发的 Java 工作流引擎,它提供了可视化的流程设计界面和基于 Hibernate 的持久层框架。下面是对 JBPM4 的主要 API 介绍和使用。 ProcessEngine ProcessEngine 是 JBPM4 的流程...

    JBPM4介绍开发步骤简介

    ### JBPM4开发步骤详解与服务接口功能解析 JBPM4是JBPM系列的一个版本,专注于提供一个轻量级的工作流引擎,适用于企业级应用的流程自动化。它以简单直观的方式设计,使得开发者能够轻松地定义、部署和执行业务流程...

    jbpm.4.4.jar

    这个API定义了各种类和接口,如ProcessDefinition、ProcessInstance、TaskService等,使得开发者能够以面向对象的方式理解和操作流程。 jbpm-api-4.4-sources.jar是jbpm API的源代码包,对于开发人员来说,这是一个...

    jbpm4服务接口方法汇总

    ### jbpm4服务接口方法汇总 #### Process Engine与Service组件概览 在JBPM框架中,`ProcessEngine`是核心的工厂类,负责提供一系列的服务接口。这些接口为流程管理和控制提供了必要的支持。通过初始化`...

    JBPM4之基础学习及接口

    TaskService是JBPM4中的任务管理接口,用于管理任务。通过TaskService,可以查看任务、完成任务、删除任务等。 五、HistoryService HistoryService是JBPM4中的历史记录管理接口,用于管理流程实例的历史记录。通过...

Global site tag (gtag.js) - Google Analytics