????? 所有管理類(lèi)軟件的開(kāi)發(fā)過(guò)程中,無(wú)論軟件規(guī)模大小,業(yè)務(wù)邏輯的編碼工作將占據(jù)整個(gè)開(kāi)發(fā)周期的半壁江山。往往軟件產(chǎn)品的成敗,很大程度上取決于此。
????? 我在2007之前做過(guò)的幾個(gè)項(xiàng)目當(dāng)中,業(yè)務(wù)邏輯基本是以程序代碼方式實(shí)現(xiàn),雖然也引入了配置方式,但是項(xiàng)目的開(kāi)發(fā)進(jìn)度也沒(méi)見(jiàn)提高多少。在我進(jìn)行資料收集時(shí),一個(gè)不算很新概念映入我的眼簾:工作流。經(jīng)過(guò)開(kāi)發(fā)過(guò)程中的總結(jié),目前我的工作流引擎也趨于穩(wěn)定,并開(kāi)發(fā)相應(yīng)的流程設(shè)計(jì)器。
????? 流程設(shè)計(jì)器采用純GDI+進(jìn)行繪制,并無(wú)采用與表單設(shè)計(jì)器相同方式實(shí)現(xiàn)(Designer)。我的一個(gè)同事曾問(wèn)我,為什么不用Designer的方式實(shí)現(xiàn)。確實(shí)那樣實(shí)現(xiàn)起來(lái)相對(duì)來(lái)說(shuō)開(kāi)發(fā)進(jìn)度會(huì)快很多,但使用GDI+繪制具備如下優(yōu)點(diǎn):
????? 1、性能比Designer方式高;
????? 2、程序移植性好;
????? 3、繪制邏輯與流程邏輯分離,程序易讀性高。
?????根據(jù)我的項(xiàng)目經(jīng)驗(yàn)和工作流標(biāo)準(zhǔn),將流程分為兩種類(lèi)型:
?????1、單表單流程:一個(gè)流程中的所有節(jié)點(diǎn)只能使用相同表單;
?????2、多表單流程:一個(gè)流程中的所有節(jié)點(diǎn)可以使用不同表單。
?????在引擎中我引入了以下節(jié)點(diǎn):
?????1、開(kāi)始:每個(gè)流程都由開(kāi)始節(jié)點(diǎn)開(kāi)始,它是流程的起始點(diǎn),目前平臺(tái)中只一個(gè)流程只允許擁有一個(gè)開(kāi)始節(jié)點(diǎn);
?????2、處理:該節(jié)點(diǎn)用于設(shè)置流程的處理者;
?????3、會(huì)簽:用于設(shè)置流程的多名參與者,參與者都作出響應(yīng)后才能進(jìn)入下一個(gè)節(jié)點(diǎn);
?????4、加簽:參考“會(huì)簽”進(jìn)行設(shè)置,與會(huì)簽區(qū)別主要是加簽的處理者由上一步驟處理人指定;
?????5、適配器:適配器允許您的工作流系統(tǒng)與企業(yè)內(nèi)部及外部的其他應(yīng)用系統(tǒng)數(shù)據(jù)進(jìn)行數(shù)據(jù)交互。執(zhí)行SQL和執(zhí)行存儲(chǔ)過(guò)程允許直接操作數(shù)據(jù)庫(kù),是為了一些不具備交互數(shù)據(jù)能力的系統(tǒng)交互數(shù)據(jù)而設(shè)計(jì)的;
?????6、通知:以郵件形式通知某人某件事情;
?????7、邏輯與:此時(shí)必須每個(gè)處理者都處理通過(guò)才能進(jìn)入下一步;
?????8、邏輯或:如果滿足完成條件時(shí),取消該節(jié)點(diǎn)的入口任務(wù),如不設(shè)條件,此時(shí)只要有一個(gè)處理者通過(guò)就能進(jìn)入下一步;
?????9、公有子流程:“公有子流程”可被其它流程所調(diào)用;
?????10、私有子流程:將一個(gè)流程作為一個(gè)節(jié)點(diǎn)放置在主流程中;
?????11、數(shù)據(jù)驗(yàn)證:驗(yàn)證當(dāng)前節(jié)點(diǎn)所處理的業(yè)務(wù)數(shù)據(jù);
?????12、數(shù)據(jù)統(tǒng)計(jì):統(tǒng)計(jì)當(dāng)前節(jié)點(diǎn)所處理的業(yè)務(wù)數(shù)據(jù);
?????13、數(shù)據(jù)導(dǎo)向:將當(dāng)前節(jié)點(diǎn)所處理的業(yè)務(wù)數(shù)據(jù),根據(jù)配置輸送到另一數(shù)據(jù)表;
?????14、結(jié)束:表示流程到此結(jié)束。
?????另:兩個(gè)節(jié)點(diǎn)之間的連接稱(chēng)為處理鏈。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

