關鍵字: 馳騁工做流程快速開發平臺 工做流程管理系統 工做流引擎 asp.net工做流引擎 java工做流引擎. 開發者表單 拖拽式表單 工做流系統CCBPM節點訪問規則接收人規則 java
適配數據庫: oralce,mysql,sqlserver,Informix, PostgreSQL 達夢 mysql
接受人規則,就是爲了解決下一步發送人的範圍所制定的各類規則。審批、生產環境有不少的不肯定性,更多的時候須要自動肯定接受人的範圍,爲了適應不一樣場合下的須要個人制定了以下接收人規則。 sql
按設置的SQL獲取接受人計算 數據庫
按SQL計算通俗好理解,就是CCBPM在執行一個查詢sql時,返回一個數據源,在數據源里約定該節點的接收人信息。 asp.net
設置方法: 在當前節點屬性裏 [接受人SQL]設置一個sql 語句. 這個select 查詢語句有一個列. No 分別表示,操做 sqlserver
編號, 操做員名稱. 這個sql能夠有參數. .net
好比: 1, SELECT No,Name FROM PORT_EMP WHERE FK_Dept=@WebUser.FK_Dept 線程
查詢出來當前操做員中的部門下的全部人員. 設計
2, SELECT xxx as No, yyy as Name FROM dbo.xxxx.YourTable WHERE 字段名稱=@表單字段名稱. orm
從您的業務系統中,查找一組人員,變量能夠是當前節點字段的編號,格式爲 @+字段英文名稱.
關於合流點的接受人按sql獲取接受的表達式的問題
注意子線程向合流點發送時,接受人規則的表達式的變量是臨近合流點的子線程節點變量。
好比: 流程編號爲ABC三個節點.
A 是分流點,B是合流點 C是子線程。
若是C的接受人員規則是按sql計算:
配置的表達式以下表達式是錯誤的:
select UserNo as No, xx as Name from ND2701 WHERE OID=@OID
以下表達式纔是正確的:
select UserNo as No from ND2701 WHERE OID=@FID
這是由於子線程在發送時獲取的變量OID 是子線程的ID而非,幹流上的WorkID.
關於子線程接受人的特殊約定:
若是遇到分組的維度,就約定返回4個列來解決問題,流程demo:\\流程樹\\同表單分合流\\一人多子線程模式(批次維度任務模式)流程.
在第2個子線程節點配置了以下SQL。
該數據源返回了三個列,分別是:No,Name, GroupMark
No=操做員編號,Name=操做員名稱, GroupMark就是分組的維度.
好比配置的SQL: SELECTNo,Name,FK_DeptFROMPort_EmpWHEREFK_Deptin('2','5')
應用場景: 有一批物品須要化驗,一我的員可能須要承擔多個化驗項目,這就須要這我的在這個子線程裏有n件工做。再好比:一件工做須要下發兩個部門處理,若是一個部門的一我的處理了,另外該部門的人員的工做就要自動去掉,屬於搶辦任務,也就是說,子線程也須要搶辦任務。
對動態表單樹的支持:
什麼是動態表單樹?請參節點屬性、表單、表單類型章節。簡單的說,該節點的表單是有上一步發送人員動態指定的。該節點大部分是子線程節點,也能夠是多人處理的普通節點。
應用場景:a節點發向b節點,張三須要分配給,甲乙丙丁四我的去工做,可是這四我的工做內容不一樣。雖然甲乙丙丁四我的均可以接受到該節點的工做,可是填寫的內容是由張三動態的分配的。
咱們就要在這裏約定數據源來表達接收人的信息,第一種狀況沒有批次號:返回的列須要有以下要求,No,Name,FrmIDs 第3列是表單ID,多個表單ID用逗號分開。
第二中狀況具備批次號:須要返回的列是, No,Name,BatchNo,FrmIDs.
CCBPM爲該種應用場景作了一個demo,請參考
在節點2屬性裏咱們作了以下設置
實現步驟:在開始節點裏CCBPM的節點表單裏設計了一個明細表。
按SQL肯定子線程接受人與數據源
此方法與分合流相關,只有當前節點是子線程纔有意義。