資源描述:
《金蝶EAS BOS工作流開發(fā).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、金蝶EASBOS工作流開發(fā)1.?流程配置基本知識(shí)及示例1.1.重要概念1.1.1.流程變量流程變量是工作流引擎和業(yè)務(wù)系統(tǒng)的數(shù)據(jù)交互的橋梁。工作流承載業(yè)務(wù),驅(qū)動(dòng)業(yè)務(wù)流程,但是不會(huì)執(zhí)行業(yè)務(wù)。工作流中的業(yè)務(wù)執(zhí)行,全部都會(huì)委托給具體的業(yè)務(wù)模塊執(zhí)行。那么,這些被工作流分割的業(yè)務(wù)功能,在工作流中被調(diào)用執(zhí)行的時(shí)候,如何保證做操作的數(shù)據(jù)的一致性?通過流程變量,在每一步的業(yè)務(wù)功能執(zhí)行的過程中,將業(yè)務(wù)數(shù)據(jù)保存在流程變量中,那么整個(gè)流程的后續(xù)活動(dòng)中,都可以引用該流程變量,來完成業(yè)務(wù)功能,保證業(yè)務(wù)數(shù)據(jù)的一致性。例如:在憑證的審批流程中,新增憑證審批,審批的時(shí)候?yàn)槭裁纯梢哉_定為到
2、剛剛提交的那張憑證,而不是別的憑證?流程變量起到了重要的作用。在憑證新增之后,將可唯一標(biāo)示憑證的ID保存到流程變量中,在審批的時(shí)候?qū)⒘鞒套兞恐械闹祩鬟f給憑證,就可以根據(jù)這個(gè)ID獲取到一張憑證了。流程變量在流程實(shí)例的生命周期內(nèi)都是有效的。1.1.2.任務(wù)輸入輸出????????任務(wù)輸入:在業(yè)務(wù)發(fā)生之前,有工作流傳遞給業(yè)務(wù)的數(shù)據(jù)。以憑證的過賬為例,某個(gè)用戶收到一條憑證過賬的消息,雙擊消息處理。在雙擊之后、憑證的界面彈出之前,工作流會(huì)把定義的入口參數(shù)變量中的值傳遞給憑證,憑證根據(jù)這個(gè)值來展現(xiàn)特定的單據(jù),展現(xiàn)特定的功能。????????任務(wù)輸出:在業(yè)務(wù)發(fā)生之后,由
3、業(yè)務(wù)系統(tǒng)傳遞給工作流,需要保存在流程變量中的數(shù)據(jù)。仍以憑證過賬為例,在用戶操作完憑證過賬之后,工作流繼續(xù)流轉(zhuǎn)之前,如果流程定義中定義了任務(wù)的輸出,那么,就會(huì)將憑證對(duì)應(yīng)的屬性的數(shù)據(jù),保存在流程變量中。已備在后續(xù)的流程活動(dòng)中使用。1.2.注意事項(xiàng)l??繪畫工作流圖之前一定要先將業(yè)務(wù)流整理清楚,分析業(yè)務(wù)流的特性,提取可以抽象出來公用的東西,分析是否可以進(jìn)行優(yōu)化等,好的業(yè)務(wù)流程可以直接映射為工作流流程。l??利用“流程變量”的威力,建立單據(jù)和流程之間數(shù)據(jù)交換的橋梁。輸入輸出參數(shù)用來在流程和單據(jù)之間進(jìn)行數(shù)據(jù)的傳遞。輸入輸出參數(shù)和流程變量搭建了流程和單據(jù)之間的數(shù)據(jù)聯(lián)系
4、通道。l??流程變量賦值時(shí)需注意:變量是否在另外地方被改變,有子流程時(shí)變量關(guān)系如何匹配,對(duì)應(yīng)的是否正確,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的變量是否正確,不同的節(jié)點(diǎn)可能對(duì)應(yīng)不同的單據(jù)id,給變量賦值時(shí)需特別細(xì)心。l??如存在一些系統(tǒng)預(yù)定義功能無法滿足的需求,可以采用自己開發(fā)功能,根據(jù)輸入?yún)?shù)和輸出參數(shù)來與工作流交互,如在單據(jù)中增加function,綁定到自動(dòng)節(jié)點(diǎn)執(zhí)行,或者是利用腳本節(jié)點(diǎn),獲取一些有用的信息輸出到流程變量中在工作流中使用。還可以利用工作流的一些新增功能,比如利用函數(shù)節(jié)點(diǎn),BOTP節(jié)點(diǎn)等來執(zhí)行特殊需求。l??參與人動(dòng)態(tài)變化或根據(jù)條件變化時(shí),可以充分利用“參與人變量”
5、作為動(dòng)態(tài)值,變量的值可以通過各種方式獲取,比如腳本式(后置腳本或腳本活動(dòng))、或者任務(wù)輸出屬性方式等。(流程變量中可以定義類型為參與人的變量)l??利用條件參與人設(shè)置一些動(dòng)態(tài)的參與人場景。比如當(dāng)某條件滿足時(shí),設(shè)置為某些參與人,當(dāng)條件不滿足或?yàn)榱硗馇闆r時(shí),設(shè)置為另外的參與人,通過條件參與人和參與人變量可以滿足大部分復(fù)雜的參與人場景。條件參與人的參與人范圍還可以做為運(yùn)行期指定下一步活動(dòng)的參與人范圍。l??善于利用路由節(jié)點(diǎn),除了可設(shè)置模式外,還可以對(duì)流程圖進(jìn)行美化。l??一些公用的業(yè)務(wù)邏輯可以單獨(dú)抽取出來配置為子流程給其他流程共用,減少維護(hù)的流程數(shù)量,比如一些常用
6、的審批流程等。1.3.基本流程的配置示例1.3.1.單流程說明:流程只有一個(gè)人工型活動(dòng),完成憑證提交的任務(wù),流程結(jié)束。沒有具體的業(yè)務(wù)含義。以憑證提交的業(yè)務(wù)為例。流程圖如下:定義步驟:1、?拖入開始、結(jié)束活動(dòng)2、?拖入人工型活動(dòng),用連接弧連接起來。3、?定義人工型活動(dòng)首先,定義人工型活動(dòng)的任務(wù),選擇任務(wù)?????????選定任務(wù)后,定制任務(wù)的輸入輸出。?????????輸入?yún)?shù)是由任務(wù)定義帶出的????????根據(jù)任務(wù)輸入的意義,指的是在憑證提交之前,由工作流告知憑證的數(shù)據(jù)。新建一個(gè)流程變量,綁定該輸入。?????????這里綁定的意思是:在提交之前,工作流
7、會(huì)將billID這個(gè)流程變量中的數(shù)據(jù)傳遞給業(yè)務(wù)。業(yè)務(wù)拿到這個(gè)值之后,會(huì)根據(jù)業(yè)務(wù)需要做出判斷。????????[說明]所有人工型任務(wù)的輸入?yún)?shù),全部是在定義任務(wù)的時(shí)候就定義好的。每個(gè)任務(wù)的輸出參數(shù)可能不同,是由于各個(gè)不同的業(yè)務(wù)系統(tǒng)對(duì)于業(yè)務(wù)開始之前,所需要的數(shù)據(jù)不同導(dǎo)致。但是在EAS系統(tǒng)中,基本上任務(wù)的輸入?yún)?shù)只有一個(gè)BOID類型的參數(shù)。這是因?yàn)橐话銇碚f,通過這樣一個(gè)類型的值,就可以完全定位一個(gè)業(yè)務(wù)單據(jù),并且拿到這個(gè)業(yè)務(wù)單據(jù),就可以滿足大部分的業(yè)務(wù)需求了。????????這里,將ID屬性輸出,并且選定輸出的流程變量是billID?????????憑證提交完畢后
8、,將可以唯一標(biāo)示一張憑證的ID屬性保存在流程變量billID中,在