jBPM的业务日历实例
关键字: bpm, java, jbpm ,workflow ,工作流, j2ee
|
这次就说说jBPM的业务日历。 业务日历是关于业务时间的,并且被用于为任务和定时器计算预期的时间。 业务日历能够通过对一个期限和日期进行增加来计算日期。 这是官方的定义,现在看不明白没关系,我会慢慢解释。我们先看看业务日历的语法: xml 代码
什么叫业务时间,什么叫绝对时间?我就用jbpm的例子说明。文件org/jbpm/calendar/jbpm.business.calendar.properties指定了什么是业务时间,该配置文件可以被定制并且修改后的拷贝可被放在classpath根。 下面是业务时间规范的例子,它在jbpm.business.calendar.properties中被默认配置。 xml 代码
对于上面定义通俗的理解就是它归定了从星期一到星期五的9:00-12:00 & 12:30-17:00 这段时间为上班时间也就是业务时间,星期六和星期日没有定义也就是放假的时间,再往下就是定义了12个节假日,最后是一些工作时长的统计如一天8小时,一个星期40小时等。 从官方定义至少可以看出jbpm要与定时器结合使用,下面我们定义一个定时器: xml 代码
这里的定时器(timer)的名字是reminder,它的duedate定义的是3 business day,repeat定义的是2 business day也就是说从定时器启动开始在3个业务日的时间后每隔两个业务日执行一次action的方法,直到timer结束。现在就可以来区别业务时间和绝对时间了,假设我是在星期五的早上10点启动了这个timer,那它第一次执行action的方法是在什么时候呢?因为这里的定义是有加上business的所以要结束工作日历的定义来算了。工作日历中定义了星期六和星期天是不上班的(没有定义),所以在计算时间时就跳过,要到星期三到早上10点(这时只是执行完duedate的时间也就是第一次触发action的时间),到星期五早上10点第二次触发action,到下个星期二早上第二次触发action(因为星期六和星期日没定义不是业务时间),以此类推。如果在timer定义时没有加上business的话,就以绝对时间进行计算,也就是在星期一的10点第一次触发action,到星期三10点第二次触发action,以此类推。 |
发表评论
- 浏览: 10507 次
- 性别:

- 来自: 大连

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
国内外主要的bpm厂商
银狐999 写道my god。这已经是我4年前写的文档了。为啥现在还有人搬出来呢 ...
-- by 首席技术官 -
国内外主要的bpm厂商
原来太老了呀,我还奇怪怎么没提到我们公司呢
-- by yzj520hyy -
国内外主要的bpm厂商
my god。这已经是我4年前写的文档了。为啥现在还有人搬出来呢??? 建议斑 ...
-- by 银狐999 -
国内外主要的bpm厂商
这两年的产品中,国外的K2.Net不错,产品的可扩展性很好,可能对于实施人员的要 ...
-- by 首席技术官 -
国内外主要的bpm厂商
在04年时就看到这篇文章,应该说这篇文章的确反映了当时的国内工作流现状,但从过去 ...
-- by 首席技术官






评论排行榜