小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

一個(gè)基于數(shù)據(jù)庫的簡單工作流引擎

 duduwolf 2005-08-14

最近,公司里要做一個(gè)管理型的功能性內(nèi)部網(wǎng)站。

其中,數(shù)據(jù)流轉(zhuǎn)部分,我設(shè)計(jì)了一個(gè)簡單的工作流引擎,說簡單是因?yàn)槲覜]有在服務(wù)器中對(duì)每個(gè)任務(wù)建立自己的實(shí)例,也不涉及到分布式的應(yīng)用程序。因?yàn)檫@些對(duì)我們的要求來說,是不太必要的。

我的想法是,

首先,一個(gè)任務(wù)是由多個(gè)節(jié)點(diǎn)組成,節(jié)點(diǎn)之間是有條件地流動(dòng)的。每個(gè)節(jié)點(diǎn)中都定義使用者范圍、附件和相關(guān)的子任務(wù)。其實(shí)任務(wù)就是一個(gè)節(jié)點(diǎn)集,從事務(wù)的導(dǎo)航上來說,任務(wù)其實(shí)是沒有必要的,只是為了對(duì)事務(wù)進(jìn)行考評(píng),才人為地把一系列節(jié)點(diǎn)劃歸一個(gè)任務(wù)。節(jié)點(diǎn)間不是一個(gè)線性的關(guān)系,而是一個(gè)網(wǎng)格狀的關(guān)系。

具體的實(shí)現(xiàn)是,在數(shù)據(jù)庫中,建立一個(gè)任務(wù)模板庫,在這個(gè)庫里,將任務(wù)按類型進(jìn)行定義,定義其相對(duì)應(yīng)的屬性,然后定義一個(gè)節(jié)點(diǎn)流轉(zhuǎn)關(guān)系庫,將節(jié)點(diǎn)的流轉(zhuǎn)順序和相對(duì)應(yīng)的條件寫入。每一個(gè)節(jié)點(diǎn),都有一個(gè)對(duì)應(yīng)的操作角色,可以是一個(gè)人也可以是一群人,這里的“一群人”其實(shí)是指“一群人中的任何一人”,是“或”的關(guān)系。對(duì)于一個(gè)節(jié)點(diǎn)來說,在建立下一個(gè)節(jié)點(diǎn)時(shí),定義的下一節(jié)點(diǎn)操作角色如是“群組”則該角色中的人都是“與”的關(guān)系,因?yàn)?,如果?#8220;且”關(guān)系,就自動(dòng)產(chǎn)生多個(gè)節(jié)點(diǎn)了。而對(duì)于一個(gè)被產(chǎn)生的節(jié)點(diǎn)來說,只要定義其“如果其有未完成前驅(qū),則等待”,這樣可以保證所有的條件都滿足時(shí)才會(huì)被產(chǎn)生。

還要再定義一個(gè)節(jié)點(diǎn)庫,在這個(gè)庫里記錄每個(gè)節(jié)點(diǎn)角色中的操作和附件條件,比如“至少有一個(gè)文檔”或者“最多建立3個(gè)子任務(wù)”等等。

上面的結(jié)構(gòu)只一個(gè)任務(wù)的模板,而具體的業(yè)務(wù)內(nèi)容,則在另外的數(shù)據(jù)表中體現(xiàn)。所以在任務(wù)模板庫中,有關(guān)分支條件,只是一個(gè)條件分類,而不是具體的內(nèi)容,因?yàn)閷?duì)于不同的業(yè)務(wù)過程,具體的條件變量是千差萬別的。

在實(shí)際應(yīng)用時(shí),傳入用戶名、任務(wù)號(hào)和條件,就可以自動(dòng)導(dǎo)航到正確的節(jié)點(diǎn)。然后讀出這個(gè)節(jié)點(diǎn)的操作要求和對(duì)應(yīng)的表單進(jìn)行數(shù)據(jù)的操作。當(dāng)不傳入條件時(shí),就用默認(rèn)的條件導(dǎo)航。

這樣,只要做一個(gè)可視化的界面,將流程的定義轉(zhuǎn)化為數(shù)據(jù)模板格式保存到數(shù)據(jù)庫中,就可以讓上面的庫起到一個(gè)導(dǎo)航和提醒的功能。而將任務(wù)的流轉(zhuǎn)控制和具體的業(yè)務(wù)數(shù)據(jù)分離開來,這樣的話有一個(gè)好處,就是可以把現(xiàn)有的業(yè)務(wù)系統(tǒng),集成到這個(gè)引擎上來。

事實(shí)上,這個(gè)數(shù)據(jù)庫就成了一個(gè)大的實(shí)例庫,實(shí)例運(yùn)行的狀態(tài)都保存在數(shù)據(jù)庫中。這種方法在實(shí)現(xiàn)中應(yīng)該是比較簡單和有效的,但是其效率可能有點(diǎn)問題,但對(duì)于一般企業(yè)ERP應(yīng)用是絕對(duì)不成問題的。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多