我想了這個非常簡單的場景:活動:如何知道執行是否鏈接到(子)進程的實例?
- 流程1有兩個任務(任務A - >任務B)
- 過程2有一個 「呼叫活動」 塊(調用過程1)。
於是,我開始處理2.它直接進入狀態,我們有2個處決:
- 直接映射到進程的實例的一個2.假設:123
- 與「呼叫活動」關聯的人。假設:456
問題是:如何輕鬆找到進程1當前所在的任務? (它應該是任務A)。
好了,我可以用這個REST查詢做到這一點:
- 首先我查詢屬於進程2的所有執行:運行時/執行processInstanceId = 123
在這裏,我得到什麼?: [{ID:123},{ID:456,activityId: 「calling_subproc」}]
好,我知道456是子過程的執行,因此,下一個查詢是:
- 運行/流程實例superProcessInstanceId = 123個& includeProcessVariables =真
在這裏,我得到:[{ID:789,activityId: 「任務1」}]
但是......,我可以那麼做是因爲我知道這是一個子流程,我設計了這個模型。但是......否則,一個程序(不知道這個事實)將如何發現它?查詢#1的響應中沒有任何內容表明456是一個子進程(這意味着我將不得不執行查詢#2 ...,而不是運行時/任務)executionId = 456 & includeProcessVariables = true,通過這種方式給我{data:[0],total:0,start:0,sort:「id」,order:「asc」,size:0})
----其他評論:我認爲REST服務運行時/執行應該支持「superExecutionId」參數(例如:runtime/executions?superExecutionId = 87519)...這樣給定執行ID(在調用過程中),我們可以直接導航到產生的子過程(數據庫結構已經支持):
由於提前, 拉嘎
有一段時間,解決方法似乎是「在調用進程和所有被調用的子進程之間共享/複製一個唯一的進程變量」:http://forums.activiti.org/content/get-all -active-tasks-including-sub-process-tasks – 2014-10-22 16:23:30
相關:它仍然沒有實現(直到版本5.16.4),但已經在JIRA中:https://jira.codehaus.org/browse/ACT-1805 ref:http://forums.activiti.org/content/getting-process-id-called-subprocess – 2014-10-22 16:27:31
運行時/進程實例和運行時/執行的REST json需要使用字段「superProcessInstanceId」和「superExecutionId」來豐富,分別。 – 2014-10-22 16:34:19