在UFLO當中,人工任務節(jié)點在創(chuàng)建人工任務時,可以配置這些將被創(chuàng)建的人工任務多長時間后過期,過期時長由天、小時及分鐘三部分構成,以滿足我們實際業(yè)務需求的各種情況。在計算人工任務的過期時間時還可以添加節(jié)假日,以排除我們實際業(yè)務當中工作日計算需求,因為工作日的計算是要去除節(jié)假日的。
一旦配置了任務有過期時間,那就可以配置任務過期后的動作,也就是在任務過期以后,引擎該如何處理這些過期的任務,在UFLO當中,對于過期任務的處理就提醒的方式實現,可以設置不提醒,也就是任務過期后不做任務處理;還可以設置為提醒一次或周期性提醒。在提醒方式為提醒一次或周期性提供時就可以指定一個具體的提醒Bean。通過這個Bean來執(zhí)行具體的提醒動作,這個動作可能是發(fā)系統(tǒng)內部消息,可能是發(fā)個Email,也可能是做些其它邏輯處理。如下圖所示。
在設置提醒方式為提醒一次或周期性提供時還可以排除指定的節(jié)點日,這樣提醒動作在遇到這些節(jié)假日點就不會觸發(fā)。對于提醒Bean,它需要一個實現了com.bstek.uflo.process.handler.ReminderHandler接口且已配置到spring當中的bean的id,同樣可以通過右邊的“選擇”按鈕來連接遠程服務指定這個bean的id,其URL格式如下:
http://localhost:8080/uflo-test/dorado/uflo/list.handler
對于需要排除的節(jié)假日,我們必須要通過“選擇”按鈕實現,點擊“選擇”按鈕,在彈出的窗口中輸入如下所示的URL:
http://localhost:8080/uflo-test/dorado/uflo/list.calendar.provider
這樣就可以連接遠程服務器,選擇已定義好的實現了com.bstek.uflo.process.node.reminder.CalendarProvider接口且配置到spring中的bean的相關信息。在UFLO當中,我們已定義好一個節(jié)假日配置功能,通過可視化配置,就可以實現流程模版中節(jié)點日的選擇,該配置界面的URL如下:
http://localhost:8080/uflo-test/com.bstek.uflo.console.view.CalendarMaintain.d
有了這個節(jié)假日維護頁面,我們需要做的就是添加好需要的節(jié)假日,然后在流程模版設計器中選擇即可。值得一提的是,對于任務過期配置,在UFLO當中還允許我們在外部通過實現com.bstek.uflo.env.TaskDueDefinitionProvider接口來覆蓋我們在設計器中定義的任務過期屬性。如果我們需要覆蓋流程模版中定義的任務過期屬性,那么可以實現com.bstek.uflo.env.TaskDueDefinitionProvider接口,然后將其配置到Spring當中,引擎在運行當前流程模版時,會自動檢測系統(tǒng)是否有該接口實現類,如果有的話,那么就會嘗試從該接口實現類中獲取任務過期配置對象,如果拿到了,那么就采用該接口提供的過期配置信息,而不再使用流程模版中定義的過期配置。
實現com.bstek.uflo.env.TaskDueDefinitionProvider接口時注意事項在我們實現com.bstek.uflo.env.TaskDueDefinitionProvider接口的getDueDefinition方法時,可以根據給出的Task及ProcessInstance參數決定是否覆蓋當前流程模版當前任務節(jié)點的過期屬性,如果要覆蓋,那么需要返回一個完整的DueDefinition對象,該對象當中包含所有過期所需要的屬性,而不能只是過期的一兩個屬性,也就是說對流程模版過期屬性的覆蓋不能只覆蓋其中的一個,要覆蓋就是覆蓋其全部,而不能是一個;如果根據Task及ProcessInstance參數判斷,不需要覆蓋流程模版中定義的過期屬性,那么直接返回null即可。
更多建議: