真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

BPMN2.0規(guī)范

平臺使用Activit工作流引擎,其中流程圖的繪制使用BPMN2.0規(guī)范,BPMN2.0是一個工作流業(yè)界標(biāo)準(zhǔn),規(guī)范了大型廠商和開源工作流產(chǎn)品的實現(xiàn),Activiti5實現(xiàn)了該標(biāo)準(zhǔn)的大部分圖元定義和執(zhí)行語義解釋,功能強大,Activiti5可以與IBM、Oracle等大型商用工作流產(chǎn)品流程引擎節(jié)點的核心功能媲美,并且為了簡化應(yīng)用、擴(kuò)充原有功能,Activiti5又自定義了6個擴(kuò)展元素和15個擴(kuò)展屬性,這些元素和屬性能夠與BPMN規(guī)范相互組合可以實現(xiàn)更多、更實用的業(yè)務(wù)功能。
BPMN2.0對流程執(zhí)行語義定義了三類基本要素,它們是日常業(yè)務(wù)流程的“三板斧”:

在廣西等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需定制,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,廣西網(wǎng)站建設(shè)費用合理。

  • Activities(活動)——在工作流中所有具備生命周期狀態(tài)的都可以稱之為“活動”,如原子級的任務(wù)(Task)、流向(Sequence Flow),以及子流程(Sub-Process)等

  • Gateways(網(wǎng)關(guān))——顧名思義,所謂“網(wǎng)關(guān)”就是用來決定流程流轉(zhuǎn)指向的,可能會被用作條件分支或聚合,也可以被用作并行執(zhí)行或基于事件的排它性條件判斷

  • Events(事件)——在BPMN2.0執(zhí)行語義中也是一個非常重要的概念,像啟動、結(jié)束、邊界條件以及每個活動的創(chuàng)建、開始、流轉(zhuǎn)等都是流程事件,利用事件機(jī)制,可以通過事件控制器為系統(tǒng)增加輔助功能,如其它業(yè)務(wù)系統(tǒng)集成、活動預(yù)警等

這三類執(zhí)行語義的定義涵蓋了業(yè)務(wù)流程常用的Sequence Flow(流程轉(zhuǎn)向)、Task(任務(wù))、Sub-Process(子流程)、Parallel Gateway(并行執(zhí)行網(wǎng)關(guān))、ExclusiveGateway(排它型網(wǎng)關(guān))、InclusiveGateway(包容型網(wǎng)關(guān))等常用圖元
現(xiàn)實業(yè)務(wù)所有的業(yè)務(wù)環(huán)節(jié)都離不開Activities、Gateways和Events,無論是簡單的條件審批還是復(fù)雜的父子流程循環(huán)處理,在一個流程定義描述中,所有的業(yè)務(wù)環(huán)節(jié)都離不開Task、Sequence Flow、Exclusive Gateway、Inclusive Gateway,其中Task是一個極具威力的元素,它能描述業(yè)務(wù)過程中所有能發(fā)生工時的行為,它包括User Task、Manual Task、Service Task、Script Task等,可以被用來描述人機(jī)交互任務(wù)、線下操作任務(wù)、服務(wù)調(diào)用、腳本計算任務(wù)等常規(guī)功能。

  • User Task:生成人機(jī)交互任務(wù),主要被用來描述需要人為在軟件系統(tǒng)中進(jìn)行諸如任務(wù)明細(xì)查閱、填寫審批意見等業(yè)務(wù)行為的操作,流程引擎流轉(zhuǎn)到此類節(jié)點時,系統(tǒng)會自動生成被動觸發(fā)任務(wù),須人工響應(yīng)后才能繼續(xù)向下流轉(zhuǎn)。常用于審批任務(wù)的定義。

  • Manual Task:線下人為操作任務(wù),常用于為了滿足流程圖對實際業(yè)務(wù)定義的完整性而進(jìn)行的與流程驅(qū)動無關(guān)的線下任務(wù),即此類任務(wù)不參與實際工作流流轉(zhuǎn)。常用于諸如物流系統(tǒng)中的裝貨、運輸?shù)热蝿?wù)的描述。

  • Service Task:服務(wù)任務(wù),通常工作流流轉(zhuǎn)過程中會涉及到與自身系統(tǒng)服務(wù)API調(diào)用或與外部服務(wù)相互調(diào)用的情況,此類任務(wù)往往由一個具有特定業(yè)務(wù)服務(wù)功能的Java類承擔(dān),與User Task不同,流程引擎流經(jīng)此節(jié)點會自動調(diào)用Java類中定義的方法,方法執(zhí)行完畢自動向下一流程節(jié)點流轉(zhuǎn)。另外,此類任務(wù)還可充當(dāng)“條件路由”的功能對流程流轉(zhuǎn)可選分支進(jìn)行自動判斷。常用于業(yè)務(wù)邏輯API的調(diào)用。

  • Script Task:腳本任務(wù),在流程流轉(zhuǎn)期間以“腳本”的聲明或語法參與流程變量的計算,目前支持的腳本類型有三種:juel(即JSP EL)、groovy和javascript。在Activiti5.9中新增了Shell Task,可以處理系統(tǒng)外部定義的Shell腳本文件,也與Script Task有類似的功能。常用于流程變量的處理。

1.Activiti中文文檔

關(guān)于Activiti數(shù)據(jù)庫引擎,請查閱中文文檔:

http://www.mossle.com/docs/activiti/index.html

2.Activiti5 API應(yīng)用

ProcessEngine是Activiti系統(tǒng)的核心接口,七類基礎(chǔ)服務(wù)接口通過ProcessEngine獲取,均采用鏈?zhǔn)紸PI方式,直觀明了,易于使用:

  • RepositoryService:

流程資源服務(wù)的接口,主要用于對流程定義的部署、查詢和刪除操。新流程的部署使用createDeployment().addResourceXXX().deploy()方法;已部署流程的查詢使用createDeploymentQuery()附加查詢條件的方式獲?。涣硗饪梢允褂胐eleteDeployment和deleteDeploymentCascade方法進(jìn)行流程的刪除或級聯(lián)刪除。

  • TaskService

任務(wù)服務(wù)接口,該接口暴露了管理人機(jī)交互任務(wù)的操作,如任務(wù)領(lǐng)?。╟laiming)、任務(wù)完成(completing)和任務(wù)指派(assigning),還包括對任務(wù)的創(chuàng)建、查詢、保存、刪除等。

  • RuntimeService

運行時服務(wù)主要用于啟動或查詢流程實例,以及流程變量、當(dāng)前激活狀態(tài)活動的查詢、流程實例的刪除等。流程在運行過程中所產(chǎn)生的東西都可以使用該接口進(jìn)行相關(guān)處理。

  • HistoryService

流程歷史的服務(wù)接口。提供對歷史流程實例、歷史任務(wù)的查詢和刪除操作,從提供的API來看,歷史流程的查詢其提供了finished和unfinished流程的查詢,即是說,HistoryService提供了對已完成和當(dāng)前正在執(zhí)行流程的活動/任務(wù)查詢,這一點似乎與runtimeService提供的查詢有些沖突,但其實是有差別的,運行時的信息僅包含任意時刻活動的實際運行狀態(tài)信息(是從流程運行執(zhí)行性能上考慮的),而歷史信息是對已經(jīng)固化的信息做簡單查詢而優(yōu)化的,其所持有的對象是不同的。

  • IdentityService

用戶、組管理服務(wù)接口,用于管理Group、User的增刪改查,并維護(hù)Membership,涉及到的API有newUser、newGroup、saveUser、saveGroup、createMembership以及相關(guān)的deleteXXX方法。

  • FormService

表單服務(wù)用于訪問表單數(shù)據(jù)以及在啟動新的流程實例時或完成任務(wù)時所需的渲染后的表單,提供UI界面輔助用戶填寫相關(guān)值以保存至流程變量。該服務(wù)在實際業(yè)務(wù)應(yīng)用中并不常用,屬于引擎的非核心服務(wù)。

  • ManagementService

提供流程管理和控制操作的接口服務(wù),和業(yè)務(wù)流程的運行沒有關(guān)聯(lián)關(guān)系,比如查詢數(shù)據(jù)庫本身的內(nèi)容、Activiti的版本及序列生成ID規(guī)則等,屬于引擎的非核心服務(wù)。

工作流配置

1.任務(wù)節(jié)點配置

工作流人刷節(jié)點配置提供了一下配置選項:

一、當(dāng)前節(jié)點與流程啟動人:

  1. 同部門:dept_id相同

  2. 同公司:suborg_id相同

  3. 屬于上級部門:可選支持級別
    二、當(dāng)前節(jié)點與上一節(jié)點審批人:

    1. 同部門:dept_id相同

    2. 同公司:suborg_id相同

    3. 屬于上級部門:可選支持級別
      三、根據(jù)當(dāng)前單據(jù)Bean判斷根據(jù)bean.FieldValue指定部門
      四、根據(jù)當(dāng)前單據(jù)Bean判斷根據(jù)bean.FieldValue指定人
      五、自定義:提供接口適配器,實現(xiàn)完成后注冊到系統(tǒng)可自動掃描帶出來顯示為列表,用戶可打鉤配置,可選一個

2.流程線配置
3.消息抄送

消息抄送實現(xiàn)了在流程節(jié)點審批完成時,自動發(fā)送消息給指定的人員或用戶組,更多詳細(xì)的消息發(fā)送機(jī)制可以查閱平臺的消息處理模塊文檔

  • 站內(nèi)消息

站內(nèi)消息通過平臺內(nèi)置的websocket消息發(fā)送

  • 郵件抄送

郵件消息通過平臺內(nèi)置的郵件服務(wù)器配置接口發(fā)送消息

  • APP消息推送

APP消息當(dāng)前實現(xiàn)了Jpush的消息發(fā)送,詳細(xì)文檔資料可以查閱 http://www.jpush.cn

  • 短信

平臺支持實現(xiàn)與短信網(wǎng)關(guān)之間的接口,可以通過自定義一個API完成短信消息的發(fā)送

4.定時任務(wù)

通用流程場景

1.流程會簽

在流程業(yè)務(wù)管理中,任務(wù)是通常都是由一個人去處理的,而多個人同時處理一個任務(wù),這種任務(wù)我們稱之為會簽任務(wù)。
這種業(yè)務(wù)需求也很常見,如一個請款單,領(lǐng)導(dǎo)審批環(huán)節(jié)中,就需要多個部門領(lǐng)導(dǎo)簽字。在流程業(yè)務(wù)中,我們可以把每
個領(lǐng)導(dǎo)簽字的環(huán)節(jié)都定義為任務(wù),但若這樣,這個流程業(yè)務(wù)有一點是固定的,就是簽批人是固定的。而任務(wù)是由一個
領(lǐng)導(dǎo)簽完再到另一領(lǐng)導(dǎo),當(dāng)然也可以由多個領(lǐng)導(dǎo)同時簽字。

圖:串行會簽
BPMN2.0規(guī)范

傳統(tǒng)的用流程業(yè)務(wù)來解決可以采用以下的做法:
前者在流程業(yè)務(wù)中,叫串行會簽,也即是由一個領(lǐng)導(dǎo)簽完再至另一領(lǐng)導(dǎo)簽。后者我們稱之為并行會簽,表示幾個領(lǐng)導(dǎo)
同時進(jìn)行簽發(fā),而不清楚最終是誰先簽。

圖:并行會簽
BPMN2.0規(guī)范

以上的解決方式有兩大業(yè)務(wù)需求下是不能滿足的,若會簽的領(lǐng)導(dǎo)不是固定的,即可以由上一任務(wù)審批人提交前隨意進(jìn)
行選擇,另一種是對于會簽業(yè)務(wù)中,要求若其中一部分領(lǐng)導(dǎo)審批通過,即直接往下走,不需要全部領(lǐng)導(dǎo)進(jìn)行審批。另
外,對于這種情況下,統(tǒng)計最終領(lǐng)導(dǎo)會簽的結(jié)果也是比較困難的,即對審批單的意見是同意還是否決沒有辦法清楚。
以上兩種業(yè)務(wù)需求也是很常見的日常需求,但我們?nèi)舨捎昧斯潭ǖ牧鞒坦?jié)點,則不能實現(xiàn)。在這里,可以采用Activiti
的節(jié)點多實例來處理,以上流程則可以簡化為下:

圖:Activiti的多節(jié)點實例會簽
BPMN2.0規(guī)范

圖:activiti工作流的配置
BPMN2.0規(guī)范
如上圖所示,該流程實現(xiàn)了從配置的會簽節(jié)點,結(jié)合表單數(shù)據(jù)動態(tài)篩選會簽的用戶功能。

  1. 配置多實例類型為并行,指定流程用戶信息來自于一個自定義的表達(dá)式,多實例變量名為assignee,同時在多實例節(jié)點上可以配置一個用戶角色或
    多個用戶,與普通的節(jié)點配置類似。

  2. 編寫代碼,其中flowHelper為一個聲明的bean

//按用戶部門分組生成會簽需要的collection數(shù)據(jù)
public List getAssignGroupList(String usersValue) throws Exception {    
       if (!StrTool.isValid(usersValue)) {        
             log.warn("沒有找到對應(yīng)的流程分配人:" + usersValue);        
             return null;    
        }    
        HashMap ht = new HashMap<>();    
        List uids = new ArrayList<>();    
        String[] users = usersValue.split(",");    
        for (String user : users) {
                List list = OrgUtil.getUserDeptList(user);
                IUserDept dept = list.get(0);        
                String deptid = dept.getDeptId();        
                String userDeptId = dept.getUserDeptId();        
                if (ht.containsKey(deptid)) {
                            String data = ht.get(deptid) + "," + userDeptId;            
                            ht.put(deptid, data);        
                } else ht.put(deptid, userDeptId);    
        }    
        Iterator iter = ht.entrySet().iterator();    
        while (iter.hasNext()) {
                Map.Entry entry = (Map.Entry) iter.next();        
                uids.add(entry.getValue());    
       }    
       return uids;
 }
2.模塊內(nèi)的已辦待辦功能

平臺提供了一個統(tǒng)一的已辦待辦入口,如果在工作流內(nèi)部需要實現(xiàn)一個下拉的已辦待辦功能,在永新巡視平臺項目中,采用了通過SQL構(gòu)造出查詢結(jié)果的方式實現(xiàn)高性能的已辦待辦功能


        
    
                    
                
       
   
           
  • 我的待辦
  •                     
  • 所有記錄            
  •         

    本文標(biāo)題:BPMN2.0規(guī)范
    URL地址:http://weahome.cn/article/jcodpj.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部