- 浏览: 596020 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
通过任务id获得formkey
用处是用户点击办理任务时可以跳出业务信息的页面,而页面的位置则存放在对应节点的form key中。
当前任务是同时存在 ACT_RU_TASK 和 ACT_HI_TASKINST
ProcessDefinitionEntity -->TaskDefinition -->DefaultFormHandler -->Expression.getExpressionText()
用处是用户点击办理任务时可以跳出业务信息的页面,而页面的位置则存放在对应节点的form key中。
HistoricTaskInstance -->ProcessDefinitionEntity -->TaskDefinition-->DefaultFormHandler -->Expression -->Expression.getExpressionText() ;
当前任务是同时存在 ACT_RU_TASK 和 ACT_HI_TASKINST
/** * * @CreateUser:xxxx * @ReturnType:String * @param taskId * @param businessEventId * @return * @CreateDate:2014-6-10下午7:49:32 * @UseFor :根据任务id获得form key值 */ public String getBusinessInfoUrl(String taskId, String businessEventId) { String url = ""; String businessKey = ""; // 获得任务对象 HistoricTaskInstance taskInstance = (HistoricTaskInstance) historyService .createHistoricTaskInstanceQuery().taskId(taskId) .singleResult(); // 判断当前任务Task是否为空 if (taskInstance != null) { url = getTaskFormData(taskId); if (url == null || "".equals(url)) { String processDefinitionId = taskInstance.getProcessDefinitionId(); url = getProcessDefinitionFormData(processDefinitionId); } // 业务id 即eventid businessKey = ((HistoricProcessInstance) historyService .createHistoricProcessInstanceQuery() .processInstanceId(task.getProcessInstanceId()) .singleResult()).getBusinessKey(); } else { HistoricProcessInstance historicProcessInstance = (HistoricProcessInstance) historyService .createHistoricProcessInstanceQuery() .processInstanceBusinessKey(businessEventId).singleResult(); if (historicProcessInstance != null) { url = getProcessDefinitionFormData(historicProcessInstance .getProcessDefinitionId()); businessKey = businessEventId; } } // 拼接URL 把eventid接到url上面 url的格式是 xx.htm?eventid= return (new StringBuilder(String.valueOf(url))).append(businessKey) .toString(); } /** * * @CreateUser:xxxx * @ReturnType:String * @param taskId * @return * @CreateDate:2014-6-10下午5:21:27 * @UseFor :根据任务iD获得form Key 值 */ private String getTaskFormData(String taskId) { //表单key值 String formkey = ""; //获取需查询的任务实例 HistoricTaskInstance task = (HistoricTaskInstance) historyService .createHistoricTaskInstanceQuery().taskId(taskId) .singleResult(); //获取流程定义对象 ProcessDefinitionEntity processDefinition = getProcessDefinitionEntityByProcessDefinitionId(task .getProcessDefinitionId()); TaskDefinition taskDefinition = (TaskDefinition) processDefinition .getTaskDefinitions().get(task.getTaskDefinitionKey()); DefaultFormHandler defaultFormHandler = (DefaultFormHandler) taskDefinition .getTaskFormHandler(); Expression expression = defaultFormHandler.getFormKey(); if (expression != null) formkey = expression.getExpressionText(); return formkey; } /** * * @CreateUser:xxxx * @ReturnType:ProcessDefinitionEntity * @param processDefinitionId * @return * @CreateDate:2014-12-10下午7:39:01 * @UseFor :获得 ProcessDefinitionEntity */ private ProcessDefinitionEntity getProcessDefinitionEntityByProcessDefinitionId( String processDefinitionId) { ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService) .getDeployedProcessDefinition(processDefinitionId); return processDefinitionEntity; } /** * * @CreateUser:xxxx * @ReturnType:String * @param processDefinitionId * @return * @CreateDate:2014-12-10下午7:38:46 * @UseFor :获得第一个节点的Form key */ private String getProcessDefinitionFormData(String processDefinitionId) { StartFormData startFormData = formService .getStartFormData(processDefinitionId); return startFormData.getFormKey(); }
发表评论
文章已被作者锁定,不允许评论。
-
Activiti 学习总结内容
2016-11-04 14:50 1560Activiti总结内容 常用方法汇总 sequenceFl ... -
Activiti自我总结
2014-12-26 20:55 1303Spring代码 <?xml version=&qu ... -
Activiti根据Flowname进行转向
2014-06-29 18:13 719转向问题需要注意的是每次转向到其他节点时要把其他Transit ... -
Activiti小知识总结
2014-06-29 11:00 6111.ACT_HI_ACTINS表中Assignee字段没有值的 ... -
Activiti获取待办任务信息
2014-06-27 10:00 5228根据userid获得TaskQuery然后再获得Histori ... -
Activiti获取任务候选人
2014-06-27 09:33 2196IdentityLink是任务候选人的对象。来自于taskSe ... -
Activiti获得下一个节点
2014-06-26 14:37 1481用PvmTransition表示箭头的类。而这些类是从 Lis ... -
Activiti获取流程中的审批意见
2014-06-26 14:18 2435执行流程的过程中所有的变量信息都保存在ACT_HI_VARIN ... -
Activiti获取某个流程实例已经审批的节点记录
2014-06-25 16:15 2627已知businessid即eventid获得对应的审批记录 ... -
Activiti中流程对象之间的关系
2014-06-25 10:36 730在开始之前先看看下图,对整个对象结构有个了解,再结合下面的详细 ... -
Activiti学习-2
2014-06-08 17:12 8795.12乱码问题解决: <!-- Activiti ... -
activiti学习之task与execution的关系
2014-06-08 16:54 1435一.含义 task 即待办任务 execution 即流程 ... -
Activiti学习总结
2014-06-03 11:50 19191.获得流程图乱码问题 ... -
Activiti环境安装及项目下载基础学习
2014-06-01 23:10 595Activiti资料 官网:http://www.activ ...
相关推荐
可以通过Form Key与流程中的表单字段关联,实现数据的双向绑定。 6. **变量管理**:在流程执行过程中,可以设置和获取流程变量,这些变量可以用来传递信息和控制流程的走向。 7. **监听器与事件**:Activiti支持...
2. 部署完成后,可以通过流程定义Key(如“myprocess”)查询到对应的流程定义实例。 五、流程启动 1. 调用Activiti API启动流程实例,这将根据流程定义创建一个新的运行实例。 2. 在启动时,可以传递变量(如...
- **启动流程实例**:通过FormKey或BusinessKey启动流程实例。 - **处理任务**:TaskService可用于查询当前用户的任务,并完成或委托任务。 - **监控流程**:HistoryService提供对流程实例的历史记录,用于跟踪和...
4. **表单集成**:Activiti 支持与表单系统的集成,可以通过 Form Key 在流程图中关联表单,实现数据的输入和展示。 **四、优化与扩展** 1. **自定义服务任务**:通过实现 `JavaDelegate` 接口,可以创建自定义的...
111、前端页面与用户任务通过formkey进行关联,办理任务时,通过获取formkey值展示对应的前端页面。 1111、整合流程图在线设计器,设计后需要发布,完成流程的部署。 11111、如需添加新的流程,设计好后还需编写前后...
前端页面与用户任务通过formkey进行关联,办理任务时,通过获取formkey值展示对应的前端页面。 整合流程图在线设计器,设计后需要发布,完成流程的部署。 如需添加新的流程,设计好后还需编写前后端代码完成业务逻辑...
当需要启动一个流程实例时,可以调用`RuntimeService`的`startProcessInstanceByKey`方法,传入流程定义的key作为参数。这将触发流程的执行,并创建一个新的流程实例。 5. **处理任务** Activiti中的任务处理通常...
- **表单集成**:使用表单(如Form Key)与流程交互,收集和展示数据。 通过阅读"activiti实例开发.doc",你可以看到具体的编程示例,如何在Java代码中操作Activiti,以及如何设计和运行一个实际的业务流程。这将...
10. **流程审计和历史追踪(History and Auditing)**:Activiti 提供了完整的审计功能,记录了流程实例的完整生命周期。`HistoryService` 可以用来查询历史流程实例、任务和变量,这对于分析和优化流程非常有用。 ...
7. HistoryService: HistoryService用于获取正在运行或已经完成的流程实例的信息,与RuntimeService中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。 现在至少要知道有这些对象...
- 启动流程实例,`RuntimeService.startProcessInstanceByKey()` 方法传入流程定义的 key。 - 处理用户任务,`TaskService` 提供的接口如 `createTaskQuery()` 和 `complete(taskId)`。 6. **监听器与事件** - ...
1. 流程实例的启动:通过Runtime Service启动一个流程实例,指定流程定义的关键信息,如流程定义Key和业务键。 2. 任务分配与处理:利用Task Service获取当前用户的任务列表,实现任务的领取和完成,理解委托、定时...
5. **表单集成**:Activiti 可以与各种表单系统集成,如通过 FormKey 关联自定义表单,提供丰富的用户交互体验。 6. **监控与报表**:Activiti 提供了丰富的监控工具,包括流程实例统计、活动实例统计、任务统计等...
2. **流程启动**:示例代码可能演示了如何使用Activiti API启动新的流程实例,如 "StartProcess.java",它会调用`runtimeService.startProcessInstanceByKey()`方法启动一个由流程定义Key标识的流程。 3. **任务...
- **Form Key**:用于指定一个外置表单的URL,格式通常为`.form`或`.html`等。这种类型的启动事件常用于收集流程启动时所需的信息。 - **定时启动事件**:这类启动事件可以根据预设的时间条件自动触发流程实例的...
- `FORM_KEY_`: 表单键。 - `CATEGORY_`: 类别。 - `TENANT_ID_`: 租户ID。 - **索引说明**:针对`PROC_INST_ID_`、`PROC_DEF_ID_`和`START_TIME_`创建索引。 ##### 2.10 历史变量表 (act_hi_varinst) - **简要...
- **INDEX HI_PROC_INST_BUS**: 对 BUSINESS_KEY_ 字段建立索引,方便按业务键查询流程实例。 ##### 9. 历史任务实例表 (ACT_HI_TASKINST) **9.1 简要描述** - **用途**: 存储历史任务实例的信息。 **9.2 表结构...
Activiti支持集成表单,通过`formKey`属性与表单关联,用户在处理任务时可以填写和提交数据。此外,还可以通过表单字段(Form Field)与流程变量进行绑定,方便数据的存取。 六、流程实例的监控 在实际应用中,往往...
Activiti是一款开源的工作流引擎,用于简化业务流程的实现和管理。它支持BPMN 2.0标准,并且提供了强大的API来支持流程的设计、部署、执行以及监控等功能。Activiti能够很好地与Spring框架集成,这使得它成为了很多...
1. **设计流程定义**:在流程定义中,你需要为用户任务指定一个表单键(formKey)。这个键用于关联特定的表单。在Activiti的工作流设计器中,你可以直接编辑XML定义,或者使用图形化界面添加用户任务,并设置表单键...