BSTEK Development Framework2(BDF2) : 5.6.任务过期处理

bdf2-jbpm4模块不再维护更新

2013年10月01日起,BDF2中集成的jBPM4模块将不再做任何更新,今后将主推锐道自己的流程引擎UFLO,项目地址为bsdn.org/projects/uflo ,UFLO文档教程地址为UFLO Home

        任务过期处理与任务到达提醒类似,唯一不同的地方是任务过期后,除了可以发送消息外,还允许用户自定义其它类型的动作,关于任务过期之后发送消息,这里就不描述了,因为和任务提醒发消息是一样的,我们着重来看看过期后如何进行动作的自定义。如下图所示:

      可以看到系统提供了默认自定义处理器只有一个,从其bean的id定义来看,这个bean对任务过期不作任何操作,所以我们必须要自己定义,自己定义的方法就是实现ITaskOverdueProcessor接口,该接口源码如下:

ITaskOverdueProcessor接口源码
package com.bstek.bdf2.jbpm4.job;
/**
 * @author Jacky.gao
 * @since 2013-4-26
 */
public interface ITaskOverdueProcessor {
	void process(String taskId);
}

      接口只有一个方法,非常简单,只有一个任务id的参数,实现好接口后,我们需要做的就是将实现类配置到spring当中即可(BDF2中几乎所有的接口实现类都是通过配置到spring当中,利用spring的类发现机制实现),这样在界面中自定义处理器中就可以看到我们自定义的处理器的bean的id。

      默认情况下,系统对任务过期天数的计算是以自然日为基础的,如果您需要除去节假日或其它一些日期,那么你可以实现ICalculateOverdueTaskReminder接口,自己决定当前任务是否过期,这个接口的源码如下:

ICalculateOverdueTaskReminder接口源码
package com.bstek.bdf2.jbpm4.job.reminder;
import java.util.Date;
/**
 * @author Jacky.gao
 * @since 2013-4-26
 */
public interface ICalculateOverdueTaskReminder {
	/**
	 * 根据业务环境计算当前日期下是否执行任务过期提供动作
	 * @param overdueDays 任务过期天数
	 * @param createDate 任务的创建日期
	 * @return 返回true表示执行任务过期提供动作,false表示不执行
	 */
	boolean calculateOverdue(int overdueDays,Date createDate);
}

      接口的实现类编写完成之后,同样需要将其配置到Spring环境当中。

      同样,一旦我们配置了任务过期消息提醒功能(非自定义处理器方式),那么在完成任务时,我们一定要记得调用IBpmService接口中的cancelTaskReminder,不然任务虽然完成了,但任务提醒还会继续运行。

Attachments:

task-due.png (image/png)