3.1.設(shè)計(jì)流程模版

2022-07-22 11:41 更新

   我們?cè)O(shè)計(jì)的請(qǐng)假流程相對(duì)簡(jiǎn)單,總共有六個(gè)步驟,分別是填寫(xiě)請(qǐng)假單、部門(mén)經(jīng)理審批、判斷請(qǐng)假天數(shù)、總經(jīng)理審批、人事確認(rèn)及結(jié)束。如下圖所示:


對(duì)于所有請(qǐng)假人員來(lái)說(shuō),需要做的第一步就是填寫(xiě)請(qǐng)假單,對(duì)于流程來(lái)說(shuō),填寫(xiě)請(qǐng)假單也就是請(qǐng)假流程的開(kāi)始,也就是流程的開(kāi)始節(jié)點(diǎn),在UFLO當(dāng)中,開(kāi)始節(jié)點(diǎn)可以生成一個(gè)人工任務(wù),以實(shí)現(xiàn)類(lèi)似我們請(qǐng)假流程當(dāng)中的填寫(xiě)請(qǐng)假單之類(lèi)的操作。因?yàn)樘顚?xiě)請(qǐng)假單的開(kāi)始節(jié)點(diǎn)要產(chǎn)生任務(wù),所以可以在填寫(xiě)請(qǐng)假單時(shí)進(jìn)行填單的暫存,或?qū)徟鷷r(shí)的駁回修改之類(lèi)操作。對(duì)應(yīng)的,如果不允許在開(kāi)始節(jié)點(diǎn)產(chǎn)生人工任務(wù),要完成上述操作我們只能再添加一個(gè)新的人工任務(wù)節(jié)點(diǎn),以完成本該開(kāi)始節(jié)點(diǎn)完成的工作。

請(qǐng)假人員填好請(qǐng)假單好,即可提交給其所在的部門(mén)經(jīng)理審批,部門(mén)經(jīng)理在審批時(shí),如果覺(jué)得請(qǐng)假單有問(wèn)題可以進(jìn)行駁回修改操作,以讓填單人重新修改。如果部門(mén)經(jīng)理審批同意,那么下一步要判斷請(qǐng)假人的請(qǐng)假天數(shù),如果大于10天,那么還需要總經(jīng)理審批,小于等于10天則直接做人事確認(rèn)即可,人事確認(rèn)后,請(qǐng)假流程也就完成了。

開(kāi)始節(jié)點(diǎn)表單配置如下圖所示:


可以看到,我們的請(qǐng)假單只有三個(gè)字段,分別是請(qǐng)假的標(biāo)題,天數(shù)及備注,同時(shí)我們還要啟動(dòng)包含uflo-core及uflo-console兩模塊的標(biāo)準(zhǔn)的web項(xiàng)目,啟動(dòng)成功后就可以在表單配置里選擇渲染當(dāng)前定義的這三個(gè)字段的頁(yè)面的URL,單擊“渲染表單模版”的選擇按鈕,在彈出窗口中輸入如下格式地址:

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

UFLO中流程模版定義的所有選擇都是與我們的web服務(wù)關(guān)聯(lián),通過(guò)連接遠(yuǎn)程web服務(wù),來(lái)獲取定義好的合適的值,上述“渲染表單模版”的URL選擇就是這樣,關(guān)于“渲染表單模版”后面會(huì)有詳細(xì)介紹。地址輸入正確后,下一步后就可以看以可供選擇的兩個(gè)URL,我們這里選擇默認(rèn)的,如下圖所示:

在后面的幾個(gè)人工任務(wù)節(jié)點(diǎn)中,在它們的表單配置當(dāng)中,全部選擇在開(kāi)始節(jié)點(diǎn)中定義的這三個(gè)字段,同時(shí)設(shè)置他們的訪問(wèn)類(lèi)型為只讀,“渲染表單模版”的URL全部采用與開(kāi)始節(jié)點(diǎn)相同的URL。這里需要指出的是,對(duì)于當(dāng)前流程模版當(dāng)中唯一的決策節(jié)點(diǎn)“判斷請(qǐng)假天數(shù)”,在其“決策配置”中,我們采用條件表達(dá)式方式,在其中輸入下面的表達(dá)式:

${dayCount>10?"大于10天":"小于等于10天"}

上面的表達(dá)式表示將取名為dayCount的流程變量,并判斷它的值是否大于10,如果是由走名為“大于10天”的連接,讓總經(jīng)理審批,否則走“小天等于10天”直接由人事確認(rèn)。如下圖所示:


設(shè)計(jì)好的流程模版的XML內(nèi)容如下:


請(qǐng)假流程模版XML內(nèi)容

		

<?xml version="1.0" encoding="UTF-8"?><uflo-process name="leave-process">

<start g="60,38,65,62" name="填寫(xiě)請(qǐng)假單"form-template="com.bstek.uflo.console.view.template.DefaultFormTemplate.d">

<sequence-flow to="部門(mén)經(jīng)理審批"/>

<form-element authority="ReadAndWrite" data-type="String" name="title" caption="標(biāo)題"required="true" editor-type="TextEditor"/>

<form-element authority="ReadAndWrite" data-type="int" name="dayCount" caption="請(qǐng)假天數(shù)"required="true" editor-type="TextEditor"/>

<form-element authority="ReadAndWrite" data-type="String" name="cmnt" caption="備注"required="true" editor-type="TextArea"/>

</start>

<task g="221,44,129,50" allow-specify-assignee="false" assignment-type="ProcessPromoter"task-type="Normal" name="部門(mén)經(jīng)理審批"form-template="com.bstek.uflo.console.view.template.DefaultFormTemplate.d">

<sequence-flow to="判斷請(qǐng)假天數(shù)"/>

<form-element authority="Read" data-type="String" name="title" caption="標(biāo)題" required="true"editor-type="TextEditor"/>

<form-element authority="Read" data-type="int" name="dayCount" caption="請(qǐng)假天數(shù)" required="true"editor-type="TextEditor"/>

<form-element authority="Read" data-type="String" name="cmnt" caption="備注" required="true"editor-type="TextArea"/>

</task>

<decision expression="${dayCount&gt;10?&quot;大于10天&quot;:&quot;小于等于10天&quot;}"g="461,38,81,62" name="判斷請(qǐng)假天數(shù)" decision-type="Expression">

<sequence-flow to="總經(jīng)理審批" g="-58,-20" name="大于10天"/>

<sequence-flow to="人事確認(rèn)" g="-3,-19" name="小于等于10天"/> </decision> <task g="223,233,115,50" allow-specify-assignee="false" assignment-type="ProcessPromoter"

task-type="Normal" name="總經(jīng)理審批"form-template="com.bstek.uflo.console.view.template.DefaultFormTemplate.d">

<sequence-flow to="人事確認(rèn)" g="-76,-20" name="to 人工任務(wù)3"/>

<form-element authority="Read" data-type="String" name="title" caption="標(biāo)題" required="true"editor-type="TextEditor"/>

<form-element authority="Read" data-type="int" name="dayCount" caption="請(qǐng)假天數(shù)" required="true"editor-type="TextEditor"/>

<form-element authority="Read" data-type="String" name="cmnt" caption="備注" required="true"editor-type="TextArea"/>

</task>

<task g="491,233,115,50" allow-specify-assignee="false" assignment-type="ProcessPromoter"task-type="Normal" name="人事確認(rèn)"form-template="com.bstek.uflo.console.view.template.DefaultFormTemplate.d">

<sequence-flow to="審批結(jié)束"/>

<form-element authority="Read" data-type="String" name="title" caption="標(biāo)題" required="true"editor-type="TextEditor"/>

<form-element authority="Read" data-type="int" name="dayCount" caption="請(qǐng)假天數(shù)" required="true"editor-type="TextEditor"/>

<form-element authority="Read" data-type="String" name="cmnt" caption="備注" required="true"editor-type="TextArea"/>

</task>

<end g="523,394,54,62" terminate="true" name="審批結(jié)束"/></uflo-process>

值得注意的是,這里為了簡(jiǎn)單起見(jiàn),我們所有人工任務(wù)節(jié)點(diǎn)的處理人皆為默認(rèn)的流程開(kāi)啟人,也就是誰(shuí)開(kāi)啟誰(shuí)處理,同時(shí),我們可以看到,開(kāi)始節(jié)點(diǎn)的人工任務(wù),能配置的只有處理頁(yè)面的URL及任務(wù)名稱(chēng),不提供任務(wù)處理人之類(lèi)配置,這是因?yàn)殚_(kāi)始節(jié)點(diǎn)的任務(wù)處理人,引擎認(rèn)為肯定是由流程開(kāi)啟人自己處理,而不會(huì)是其它人,所以不允許配置。

流程模版配置完成后,我們可以右鍵選擇部署流程或點(diǎn)擊工具欄上的部署流程模版的按鈕,在彈出的窗口中輸入如下所示的URL格式:http://localhost:8080/uflo-test/dorado/uflo/deploy.process

當(dāng)然在部署前還可以驗(yàn)證當(dāng)前流程模版是否正確,無(wú)誤后再部署到服務(wù)器。成功部署流程后可以在我們應(yīng)用的如下格式的URL中看到部署成功的流程模版:

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

這個(gè)名為ProcessMaintain頁(yè)面,是一個(gè)采用dorado7開(kāi)發(fā)的流程模版的維護(hù)頁(yè)面,在其中不僅可以看到我們部署成功的流程模版,還可以利用這個(gè)模版開(kāi)始新的實(shí)現(xiàn),完成產(chǎn)生的任務(wù)或刪除流程實(shí)例、流程模版等操作。接下來(lái)我們就可以利用這個(gè)頁(yè)面,對(duì)設(shè)計(jì)好的流程模版進(jìn)行流轉(zhuǎn)驗(yàn)證了。









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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)