- 浏览: 680732 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (302)
- 知识库 (51)
- lucene (8)
- 数据结构 (7)
- 问题及解决方法 (97)
- Quartz (4)
- JavaScript (26)
- java 基础 (40)
- 休闲 (9)
- 数据库相关 (32)
- 面试题 (4)
- Hibernate (5)
- Struts (11)
- JBPM (2)
- Spring (3)
- ajax (7)
- Flex (0)
- 报表 (4)
- 打印 (2)
- prototype (3)
- Struts2 (3)
- JQUERY (4)
- Ruby (0)
- Linux (9)
- Android (3)
- Objective-c (2)
- Python (8)
- map (1)
- mybatis (3)
- php (2)
- ios (0)
- 问题及解决方法 struts2 spring ognl resion tomcat (0)
- 问题及解决方法 struts2 spring ognl resin tomcat (1)
- c++ (2)
- 问题及解决方法 upload.parseRequest(request) 为空 (1)
- Eclipse maven tomcat (1)
- 知识库 服务器配置 (1)
- sersync2 (1)
- Maven Jetty Plugin 配置指南(翻译) (1)
最新评论
-
jgroups:
...
遇到Causedby:java.lang.NoClassDefFoundError:javax/validation/ParameterNameProvider -
dmyccc:
第二种方法还是很佩服楼主的,但是多少感觉有点投机取巧了。但是确 ...
spring mvc整合kindeditor文件上传问题 -
du_bo:
在xx-servlet.xml中这样配置<bean id ...
spring mvc整合kindeditor文件上传问题 -
java梦之翼:
太感谢了, 问题得到解决, 感谢
异常org.mybatis.spring.transaction.SpringManagedTransactionFactory.newTransaction -
du_bo:
这是我的上传package com.sp.controller ...
spring mvc整合kindeditor文件上传问题
jbpm时间调度问题,公司有一个需求就是关于时间调度的问题,借用下面的流程实例来说明,
上面的流程图是一个公司报销流程。普通员工可以填写报销单,然后提交主管审批;主管审批可以有三种可能:一是主管可以驳回请求,那么报销人需要重填报销单,或者取消报销操作;二是主管不同意请求,请求直接结束;三是主管同意请求,那又存在两种情况,一是如果报销总费用大于1000的话那么会自动转到老板那里,如果小于1000就直接进入财务处理子流程,老板审批的话有两种可能,一是同意进入财务处理子流程,二是不同意请求直接结束。
现在想增加一个功能,当员工填写了报销单到达“部门主管审批”这里,如果主管在30分钟内没有做出审批那么就直接跳转到“申请人修改报销单”这个任务节点上(当然实际中也不一定有这个功能,我是为了想说明问题才设定的这个流向)
在报销的processdefinition.xml 文件中我是这样设定的(去掉其他无关的只列出来了关于timer的相关设置)
<task-node name="部门主管审核"> <task name="主管审核"> <timer duedate="30 minutes" name="reminder" transition='need mod' > <script> System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++执行到这里了"); </script> </timer> <controller> <variable name="baoxiaoId" access="read" mapped-name="报销ID"> </variable> </controller> <assignment class="demo.workflow.assignment.ManagerAssignment"> </assignment> </task> <transition name="need mod" to="申请人修改报销单"></transition> <transition name="to result" to="判断走向"></transition> </task-node>
在web.xml文件中设置了
<!--JbpmThreadsServlet --> <servlet> <servlet-name>JbpmThreadsServlet</servlet-name> <servlet-class>org.jbpm.web.JbpmThreadsServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JbpmThreadsServlet</servlet-name> <url-pattern>/threads</url-pattern> </servlet-mapping>
设置好了以后运行的时候就出现问题了
当员工“张三”填写完报销单后,报销单就流转到了“部门主管审核”这个节点,如果部门主管在30分钟内不去审批的话就按照流程定义文件中的流向就走到了“申请人修改报销单”这个节点,可是这个时候部门主管的待审批任务中还有这个任务,同时这个任务在“张三” 这个人的任务列表中出现了。就是一个报销单,现在同时出现在两个地方,“张三”需要重新填写,部门主管这里也可以看到这个公文。
我的问题:是怎么才能 在超过规定时间的时候 报销单只在“申请人修改报销单”这个任务节点下出现。即部门主管这个时候就看不到这个报销单???????
希望 各位大虾能够给出解释! 我在这里先谢谢大家了!
----------------------------------------------------------------------------------------------------------------------------------
现在 问题已经解决
就是在 processdefinition.xml 配置文件中修改一下
<task-node name="部门主管审核" end-tasks="true">
<task name="主管审核">
<timer duedate="100 seconds" name="reminder" transition='need mod' >
<script>
System.out.println("++++++++++++++++++++++++++++++++++++++执行到这里了");
</script>
</timer>
<controller>
<variable name="baoxiaoId" access="read" mapped-name="报销ID"></variable>
</controller>
<assignment
class="demo.workflow.assignment.ManagerAssignment">
</assignment>
</task>
<transition name="need mod" to="申请人修改报销单"></transition>
<transition name="to result" to="判断走向"></transition>
</task-node>
默认情况下 end-tasks="false" 意思是当离开节点的时候所有打开的任务将被关闭!
总结: 由于对jbpm不是很熟悉,所以才会碰到这样的问题。 下一步要好好研究一下。
谢谢大家的关注
发表评论
-
CentOS升级Python到2.7 遇到的问题 输入发不见了
2014-12-11 18:42 862CentOS 6.6 上安装的python版本是2.6,不 ... -
unable to ping server at localhost:1099
2014-12-10 10:30 5894开始使用linux开发环境,在配置idea 下tomcat ... -
Maven使用FAQ:与Maven版本和字符集编码有关的编译错误处理
2014-08-25 18:28 715在Maven3.0下创建了一个POM文件,可对项目进行正常的 ... -
遇到Causedby:java.lang.NoClassDefFoundError:javax/validation/ParameterNameProvider
2014-08-06 10:19 14226. 由于hibernate-validator-5.x.x ... -
Eclipse中导入或者Update Maven Project时的Null Pointer Exceptio
2014-03-19 11:02 835有时在Eclipse中导入Maven的Projects时,或 ... -
The reference to entity "characterEncoding" must end with the ';' delimiter
2014-01-13 15:04 1066数据源配置时加上编码转换格式后出问题了: The r ... -
java 图片涂抹功能
2013-12-30 16:19 1494今天遇到一个问题,用户上传图片的时候,有些敏感信息 ... -
Maven Jetty Plugin 配置指南(翻译)
2013-10-26 13:20 1117Jetty 版本信息 J ... -
jdk 1.6 下载地址
2013-10-16 14:14 864https://jdk6.java.net/download. ... -
java 截取汉字字符串
2013-10-11 11:49 1420对于汉字的切分 1个 汉字 占用2个字符 不能切出半 ... -
Spring MVC json 406 Not Acceptable
2013-09-12 17:41 1169使用SPring MVC 处理json 的时候老是 406 ... -
springMVC No mapping found for HTTP request with URI
2013-08-14 18:51 1202No mapping found for HTTP requ ... -
JSON和JSONP
2013-08-01 11:53 932由于Sencha Touch 2这种开 ... -
Eclipse 运行 maven web 项目
2013-07-19 14:00 20669eclipse 运行 maven web 项目 有两种方 ... -
Spring的quartz定时器同一时刻重复执行二次的问题解决
2013-07-18 17:49 1737最近用Spring的quartz定时器的时 ... -
Python2.7 安装 beautifulsoup4-4.2.1
2013-07-15 11:53 3047一个BeautifulSoup的模块,下载的是bea ... -
通过maven在eclipse中直接关联源码包
2013-07-01 16:21 965通过maven在eclipse中直接关联源码包 1、使用命 ... -
unicode 和 汉字转换
2013-06-18 15:23 1515// unicode转为本地 public sta ... -
eclipse freemarker 插件
2013-05-26 15:32 1195在写freemarkder 插件地址:http:// ... -
myeclipse maven plugin 插件 安装 和 配置
2013-05-15 17:34 2845环境: ...
相关推荐
在3.1.x版本中,是通过`jbpm_timer`表来存储定时任务,而在3.2版本中,这个表被`jbpm_job`表所取代。这意味着后台线程会持续检查`jbpm_job`表,当发现需要触发的任务时,会根据任务的属性进行定时或循环执行。 在...
2. **运行控制功能**:在运行环境中管理并调度工作流过程中的各项活动,保障流程顺畅。 3. **运行交互功能**:实现工作流管理系统与用户、外部应用程序的交互,增强流程的动态适应性。 采用工作流管理系统的优点...
14. **org.jbpm.pvm.internal.jobexecutor**: 提供任务执行器,包括`JobExecutorServlet`、线程池及各种命令和处理器,负责调度和执行job、message和timer。 15. **org.jbpm.pvm.internal.lob**: 处理流程发布时的...
5. **ejb服务与定时器**:jbpm-services-ejb-timer-7.3.0.Final.jar和jbpm-services-ejb-client-7.3.0.Final.jar提供了基于EJB的定时服务和客户端接口,使得jBPM能够集成到Java EE环境中,实现定时触发流程事件或...
7. **Job and Timer Tables**(作业和定时器表):用于调度和管理异步任务和定时触发的流程事件。 使用这些脚本时,开发者通常会根据自己的数据库环境(如MySQL、Oracle、PostgreSQL等)进行适当的调整,确保兼容性...
- **流程建模语言**:jBPM 提供了一套直观的流程建模语言,能够以图形化的方式表示业务流程,包括但不限于任务(task)、异步通信的等待状态(wait state)、定时器(timer)以及自动化动作(automated action)等元素。...
JBPM的`Scheduler`功能允许用户基于时间和日期对流程执行进行计划和控制,无论是C/S架构还是Web应用,都能够灵活地利用`Scheduler`功能来满足不同场景的需求。 #### 七、异步执行与流程建模 JBPM支持异步执行模式...
**日历功能** 是 JBPM 提供的一项高级特性,它允许用户为流程中的事件安排特定的时间: - **C/S 程序上的应用**: 在客户端/服务器架构中使用日历来调度任务。 - **Web 上的应用**: 在 Web 应用中使用日历来管理任务...
- **服务**:描述了流程虚拟机提供的各类服务功能,如调度服务、监控服务等。 #### 5. 实现基本活动 - **ActivityBehaviour**:介绍了实现自定义活动行为的方法和技术细节。 - **ExternalActivityBehaviour**:...
- 时间分类:定义不同的时间策略用于调度任务。 #### 七、异步执行 - **异步执行**:允许某些流程步骤异步执行,提高系统的响应性和效率。 #### 八、JBPM 流程建模与应用 - **建模工具**:使用图形界面工具来设计...
在Web环境下,Scheduler同样可以用于调度任务。 ##### 6.3 Scheduler时间的分类 Scheduler支持不同类型的定时任务,如一次性任务、周期性任务等。 #### 七、异步执行 JBPM支持异步执行流程,这意味着流程的某些...
任务调度............................................133 5.1 原理.........................................................133 5.2 业务日历.................................................134 5.3 Timer....
在3.1.x中,任务调度通过后台线程监控`jbpm_timer`表,当发现需要触发的定时器时,会根据定时器的属性进行触发。而在3.2中,`jbpm_timer`表被`jbpm_job`表取代,后台线程会持续检查这个新表。 3.1.x版本的`...
任务调度............................................133 5.1 原理.........................................................133 5.2 业务日历.................................................134 5.3 Timer....
- **调度**: Quartz,Java Timer Scheduler,Spring Scheduler。 - **连接池**: dbcp,c3p0等。 - **规则引擎**: jBoss Rules。 - **搜索引擎**: Lucene等。 - **商业智能**: Oracle BIEE,微软,IBM的BI解决...