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

2022-07-22 11:41 更新

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


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

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

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


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

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

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

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

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

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


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


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

		

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

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

<sequence-flow to="部門經(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="請假天數(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="部門經(jīng)理審批"form-template="com.bstek.uflo.console.view.template.DefaultFormTemplate.d">

<sequence-flow to="判斷請假天數(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="請假天數(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="判斷請假天數(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="請假天數(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="請假天數(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>

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

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

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

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

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









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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號