對近期「工作流」方面的一些總結

2021-05-23 22:15:37 字數 1360 閱讀 8939

工作流有四個重要組成部分:

1.物件:也稱實體或資源,是工作流程中的「被關注或被操作的物件」。在乙個公文審批流程中,公文就是物件。在休假申請流程中,假條就是物件。

2.參與者:是流程中各個步驟上的負責人。它可能是具體的人也可能是某個部門或自動化裝置。

3.流程定義:對整個流程乙個描述,指明流程應該按照怎樣的方式一步步推進執行。

4.工作流引擎:根據流程定義驅動參與者從乙個流程到下一下流程的一套機制。

關於activiti中一些概念的解釋:

首先:對於task來說,它指的是當前正等待執行的activity,也就是乙個進行中的流程所處的當前節點。所以task表中是沒有結束時間的,一旦這個task完成,它就不再是乙個task,它將從task表中刪除。而在activity_instance表中則會出現一條新記錄,用於記錄剛剛完成的那個task,也就是說對於每個activity,只要執行一次就會生成乙個instance,這與process的處理機制是一至的.

activiti支援任何型別的變數以序列化的方式存入資料庫,下次可以通過反系列化取出。也就是說你可以將任何物件做為變數存入activiti的資料庫,下次使用時能從資料庫中直接該對像取出。

對於activiti查詢效能的擔憂:

activiti的實體類只儲存關聯物件的id,如果需要得到關聯物件時,需要獲得id後重新通過query查詢。如果需要返回一組集合時,就有可能生成n條sql,這與hibernate中存在的n+1次查詢非常相似。

例如:想要得到乙個processinstance的name,只能從processdefinition中獲得:

org.activiti.engine.repository.processdefinition processdefinition =

repositoryservice.createprocessdefinitionquery().processdefinitionid(activitiprocessinstance.getprocessdefinitionid()).singleresult();

processinstance.setname(processdefinition.getname());

而想要得到乙個processinstance當前task的名字,只能從task中獲得:

string executionid = activitiprocessinstance.getid();

org.activiti.engine.task.task currenttask = taskservice.createtaskquery().executionid(executionid).singleresult();

processinstance.setcurrenttaskname(currenttask.getname());

Vue關於元件方面的一些總結

新舊虛擬dom經過diff比對,形成乙個補丁 patch s 區域性更新真實dom 按dom樹的層級分解比較 嚴格的資料結構劃分 同key值對比 v for寫key,其他的元素會預設分配key 注意 在v for對乙個陣列迴圈渲染的時候千萬別用索引值當做key值。因為在是涉及陣列的增刪時候,索引值每...

AIX方面的一些資源

常用aix論壇位址介紹 aix論壇 http loveunix.style images 1 logo4.gif img url 愛u家園 是大家的快樂空間 aix使用者論壇 chinaunix的aix論壇 aix中國論壇 思達奇公司的aix 技術區 itpub的unix論壇 銀信公司 aix練習 ...

一些語言方面的技巧

1.數字轉string int x string id stringstream ss ss id 2.字串轉數字 int num string s stringstream ss s ss num char str sscanf str,d num 將字串轉換成整數 sscanf str,f fl...