5.3.2.任務(wù)過期頁簽

2022-07-24 10:38 更新

在UFLO當(dāng)中,人工任務(wù)節(jié)點(diǎn)在創(chuàng)建人工任務(wù)時,可以配置這些將被創(chuàng)建的人工任務(wù)多長時間后過期,過期時長由天、小時及分鐘三部分構(gòu)成,以滿足我們實(shí)際業(yè)務(wù)需求的各種情況。在計(jì)算人工任務(wù)的過期時間時還可以添加節(jié)假日,以排除我們實(shí)際業(yè)務(wù)當(dāng)中工作日計(jì)算需求,因?yàn)楣ぷ魅盏挠?jì)算是要去除節(jié)假日的。

一旦配置了任務(wù)有過期時間,那就可以配置任務(wù)過期后的動作,也就是在任務(wù)過期以后,引擎該如何處理這些過期的任務(wù),在UFLO當(dāng)中,對于過期任務(wù)的處理就提醒的方式實(shí)現(xiàn),可以設(shè)置不提醒,也就是任務(wù)過期后不做任務(wù)處理;還可以設(shè)置為提醒一次或周期性提醒。在提醒方式為提醒一次或周期性提供時就可以指定一個具體的提醒Bean。通過這個Bean來執(zhí)行具體的提醒動作,這個動作可能是發(fā)系統(tǒng)內(nèi)部消息,可能是發(fā)個Email,也可能是做些其它邏輯處理。如下圖所示。


在設(shè)置提醒方式為提醒一次或周期性提供時還可以排除指定的節(jié)點(diǎn)日,這樣提醒動作在遇到這些節(jié)假日點(diǎn)就不會觸發(fā)。對于提醒Bean,它需要一個實(shí)現(xiàn)了com.bstek.uflo.process.handler.ReminderHandler接口且已配置到spring當(dāng)中的bean的id,同樣可以通過右邊的“選擇”按鈕來連接遠(yuǎn)程服務(wù)指定這個bean的id,其URL格式如下:

http://localhost:8080/uflo-test/dorado/uflo/list.handler

對于需要排除的節(jié)假日,我們必須要通過“選擇”按鈕實(shí)現(xiàn),點(diǎn)擊“選擇”按鈕,在彈出的窗口中輸入如下所示的URL:

http://localhost:8080/uflo-test/dorado/uflo/list.calendar.provider

這樣就可以連接遠(yuǎn)程服務(wù)器,選擇已定義好的實(shí)現(xiàn)了com.bstek.uflo.process.node.reminder.CalendarProvider接口且配置到spring中的bean的相關(guān)信息。在UFLO當(dāng)中,我們已定義好一個節(jié)假日配置功能,通過可視化配置,就可以實(shí)現(xiàn)流程模版中節(jié)點(diǎn)日的選擇,該配置界面的URL如下:

http://localhost:8080/uflo-test/com.bstek.uflo.console.view.CalendarMaintain.d

有了這個節(jié)假日維護(hù)頁面,我們需要做的就是添加好需要的節(jié)假日,然后在流程模版設(shè)計(jì)器中選擇即可。

值得一提的是,對于任務(wù)過期配置,在UFLO當(dāng)中還允許我們在外部通過實(shí)現(xiàn)com.bstek.uflo.env.TaskDueDefinitionProvider接口來覆蓋我們在設(shè)計(jì)器中定義的任務(wù)過期屬性。如果我們需要覆蓋流程模版中定義的任務(wù)過期屬性,那么可以實(shí)現(xiàn)com.bstek.uflo.env.TaskDueDefinitionProvider接口,然后將其配置到Spring當(dāng)中,引擎在運(yùn)行當(dāng)前流程模版時,會自動檢測系統(tǒng)是否有該接口實(shí)現(xiàn)類,如果有的話,那么就會嘗試從該接口實(shí)現(xiàn)類中獲取任務(wù)過期配置對象,如果拿到了,那么就采用該接口提供的過期配置信息,而不再使用流程模版中定義的過期配置。

實(shí)現(xiàn)com.bstek.uflo.env.TaskDueDefinitionProvider接口時注意事項(xiàng)在我們實(shí)現(xiàn)com.bstek.uflo.env.TaskDueDefinitionProvider接口的getDueDefinition方法時,可以根據(jù)給出的Task及ProcessInstance參數(shù)決定是否覆蓋當(dāng)前流程模版當(dāng)前任務(wù)節(jié)點(diǎn)的過期屬性,如果要覆蓋,那么需要返回一個完整的DueDefinition對象,該對象當(dāng)中包含所有過期所需要的屬性,而不能只是過期的一兩個屬性,也就是說對流程模版過期屬性的覆蓋不能只覆蓋其中的一個,要覆蓋就是覆蓋其全部,而不能是一個;如果根據(jù)Task及ProcessInstance參數(shù)判斷,不需要覆蓋流程模版中定義的過期屬性,那么直接返回null即可。




以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號