UFLO 2 : 6.2.任务过期页签

       在UFLO当中,人工任务节点具有任务过期功能,在启用任务节点的任务过期功能后,首先要配置任务过期时间,之后还可以配置任务过期提醒和任务过期动作;任务过期提醒在任务过期后立即生效,任务过期动作在任务过期后一段时间后(时间需配置)生效。

        任务过期时长由天、小时及分钟三部分构成,以满足我们实际业务需求的各种情况。在计算人工任务的过期时间时还可以添加节假日,以排除我们实际业务当中工作日计算需求。

       一旦配置了任务有过期时间,那就可以配置任务过期后的动作,也就是在任务过期以后,引擎该如何处理这些过期的任务,在UFLO当中,对于过期任务的处理就提醒的方式实现,可以设置不提醒,也就是任务过期后不做任务处理;还可以设置为提醒一次或周期性提醒。在提醒方式为提醒一次或周期性提供时就可以指定一个具体的提醒Bean。通过这个Bean来执行具体的提醒动作,这个动作可能是发系统内部消息,可能是发个Email,也可能是做些其它逻辑处理。如下图所示。

       在设置提醒方式为提醒一次或周期性方式时还可以排除指定的节点日,这样提醒动作在遇到这些节假日点就不会触发。对于提醒Bean,它需要一个实现了com.bstek.uflo.process.handler.ReminderHandler接口且已配置到spring当中的bean的id,同样可以通过右边的“选择”按钮来连接远程服务指定这个bean的id,其URL格式如下:

http://localhost:8080/uflo-test/uflo/handlerlist

说明

UFLO-1.0版本的URL为http://localhost:8080/uflo-test/dorado/uflo/list.handler

如果UFLO在一个包含权限的框架当中,要保证上述URL可匿名访问,否则将产生错误。

       对于需要排除的节假日,我们必须要通过“选择”按钮实现,点击“选择”按钮,在弹出的窗口中输入如下所示格式的URL:

http://localhost:8080/uflo-test/uflo/calendarproviderlist

说明

UFLO-1.0版本的URL为http://localhost:8080/uflo-test/dorado/uflo/list.calendar.provider

如果UFLO在一个包含权限的框架当中,要保证上述URL可匿名访问,否则将产生错误。

       这样就可以连接远程服务器,选择已定义好的实现了com.bstek.uflo.process.node.reminder.CalendarProvider接口且配置到spring中的bean的相关信息。在UFLO当中,我们已定义好一个节假日配置功能,通过可视化配置,就可以实现流程模版中节点日的选择,该配置界面的URL格式如下:

http://localhost:8080/uflo-test/uflo/calendar

       有了这个节假日维护页面,我们需要做的就是添加好需要的节假日,然后在流程模版设计器中选择即可。

       任务过期当中,除了可设置周期性提醒外,还可以在这个过期时间到达后的某个时间点内来触发一个固定动作,这里称之为任务过期动作。任务过期动作在任务过期后的某个时间点自动触发,时间配置支持按天、小时及分钟三部分配置,并且支持像上文提到的排除节假日功能,节假日使用方式和上文中方法相同。

       动作Bean需要是一个实现了com.bstek.uflo.process.handler.ReminderHandler接口且已配置到spring当中的bean的id,在这个动作Bean的实现当中, 可配置业务逻辑添加完成任务、任务回退、任务跳转、结束流程等功能。如果我们希望任务过期后立即触发,那么只需要设置“动作在过期后0天0小时0分钟后执行”即可。如下图所示。

 

 

支持任务过期动作的UFLO版本

"任务过期动作"是uflo-1.0.8版本新增功能,在此版本之前是不支持此功能的,使用时要注意。 

       值得一提的是,对于任务过期配置,在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即可。

Attachments:

task-reminder.png (image/png)
1111.jpg (image/jpeg)
6.2.任务过期页签.url (application/x-upload-data)
6.2.任务过期页签.url (application/x-upload-data)