5.3.2.任务过期页签
在UFLO当中,人工任务节点在创建人工任务时,可以配置这些将被创建的人工任务多长时间后过期,过期时长由天、小时及分钟三部分构成,以满足我们实际业务需求的各种情况。在计算人工任务的过期时间时还可以添加节假日,以排除我们实际业务当中工作日计算需求,因为工作日的计算是要去除节假日的。
一旦配置了任务有过期时间,那就可以配置任务过期后的动作,也就是在任务过期以后,引擎该如何处理这些过期的任务,在UFLO当中,对于过期任务的处理就提醒的方式实现,可以设置不提醒,也就是任务过期后不做任务处理;还可以设置为提醒一次或周期性提醒。在提醒方式为提醒一次或周期性提供时就可以指定一个具体的提醒Bean。通过这个Bean来执行具体的提醒动作,这个动作可能是发系统内部消息,可能是发个Email,也可能是做些其它逻辑处理。如下图所示。
在设置提醒方式为提醒一次或周期性提供时还可以排除指定的节点日,这样提醒动作在遇到这些节假日点就不会触发。对于提醒Bean,它需要一个实现了com.bstek.uflo.process.handler.ReminderHandler接口且已配置到spring当中的bean的id,同样可以通过右边的“选择”按钮来连接远程服务指定这个bean的id,其URL格式如下:
http://localhost:8080/uflo-test/dorado/uflo/list.handler
对于需要排除的节假日,我们必须要通过“选择”按钮实现,点击“选择”按钮,在弹出的窗口中输入如下所示的URL:
http://localhost:8080/uflo-test/dorado/uflo/list.calendar.provider
这样就可以连接远程服务器,选择已定义好的实现了com.bstek.uflo.process.node.reminder.CalendarProvider接口且配置到spring中的bean的相关信息。在UFLO当中,我们已定义好一个节假日配置功能,通过可视化配置,就可以实现流程模版中节点日的选择,该配置界面的URL如下:
http://localhost:8080/uflo-test/com.bstek.uflo.console.view.CalendarMaintain.d
有了这个节假日维护页面,我们需要做的就是添加好需要的节假日,然后在流程模版设计器中选择即可。值得一提的是,对于任务过期配置,在UFLO当中还允许我们在外部通过实现com.bstek.uflo.env.TaskDueDefinitionProvider接口来覆盖我们在设计器中定义的任务过期属性。如果我们需要覆盖流程模版中定义的任务过期属性,那么可以实现com.bstek.uflo.env.TaskDueDefinitionProvider接口,然后将其配置到Spring当中,引擎在运行当前流程模版时,会自动检测系统是否有该接口实现类,如果有的话,那么就会尝试从该接口实现类中获取任务过期配置对象,如果拿到了,那么就采用该接口提供的过期配置信息,而不再使用流程模版中定义的过期配置。
实现com.bstek.uflo.env.TaskDueDefinitionProvider接口时注意事项在我们实现com.bstek.uflo.env.TaskDueDefinitionProvider接口的getDueDefinition方法时,可以根据给出的Task及ProcessInstance参数决定是否覆盖当前流程模版当前任务节点的过期属性,如果要覆盖,那么需要返回一个完整的DueDefinition对象,该对象当中包含所有过期所需要的属性,而不能只是过期的一两个属性,也就是说对流程模版过期属性的覆盖不能只覆盖其中的一个,要覆盖就是覆盖其全部,而不能是一个;如果根据Task及ProcessInstance参数判断,不需要覆盖流程模版中定义的过期属性,那么直接返回null即可。
更多建议: