paulwong

          JBPM 4.4概念解釋

          概念解釋
          在實際的業務中,對于工作流一般是這樣定義的:
          定義完成某項工作需要多少個環節,每個環節由哪些人處理,完成這項工作的表單。
          實際處理的時候,通常由發起人填好表單,然后去找各個環節的負責人簽字審批,一直到流程結束。
          在JBPM的框架中,用ProcessDefinition來描述某項工作,Activity描述各個定義的環節,Transition描述環節中的路徑。
          ProcessDefinitionInstance來描述實際執行的工作,可能是繼承了ProcessDefinition,但又多出很多屬性,如建立時間,發起人等,
          Task或Excution來描述實際執行的步驟。
          相應地有RespositoryService,ExcutionService,TaskService,來操作ProcessDefinition,Excution,Task,使工作一步步地往定義好的步驟往下走。
          Excution表示實際流程中的當前環節,即以前的Token。

          編程實務
          畫好流程圖,即定義流程,畫好一堆的步驟。
          作好每個環節中要展示的JSP頁面,并配到流程定義中。
          寫好每個環節提交后要處理的JAVA代碼。

          JBPM流程定義
          流程定義的中間環節有兩種:
          一種是流程引擎碰到這種環節,會自動流轉到下一環節,如Decision,Java等。
          另一種是流程引擎碰到這種環節,會處于等待狀態,直到程序下指令如:excuSinal才流轉到下一環節,
          這里面又分兩種:一種是有處理人屬性的Task,由處理人決定下一環節的流向,另一種是沒設處理人,由程序決定下一環節的走向,如State。
          實際流程中可以放變量值,以供整個流程環節存取。
          如果流程定義中用了變量或表達式,則其實際值,會取實際流程中放進去的值。
          如Task節點:
          加一個Task節點時,將assignee設成表達式,這樣在生成Task記錄時,會讀取綁定到流程實例中變量的值,作為assignee的值,
          也可以指定一個CLASS,在生成Task記錄時,會運行其中的assign方法,讀取assignable中的getAssignee()的值,作為Task的分配人。

          退回的解決方案
          退回就是將此Task退回到上一環節的處理人處。
          畫圖的時候不畫退回的路徑,但在程序處理中用代碼加這一Task指向上一環節的路徑,complete(taskId,newTransition)使其回到上一環節,然后再刪除這一Transition。

          會簽的解決方案
          會簽指的是將同一任務同時分派給多人并行處理。
          用For-each和join實現,或動態增加子任務。

          posted on 2011-04-17 19:18 paulwong 閱讀(1171) 評論(0)  編輯  收藏 所屬分類: JBPM

          主站蜘蛛池模板: 读书| 盐源县| 历史| 通河县| 涿鹿县| 鸡西市| 金川县| 裕民县| 天长市| 姚安县| 临夏县| 洪洞县| 灌南县| 双鸭山市| 襄城县| 淳安县| 永清县| 错那县| 莫力| 南华县| 上饶市| 胶南市| 新乐市| 罗江县| 南通市| 页游| 措勤县| 鹤岗市| 盐池县| 莱芜市| 绿春县| 抚松县| 龙门县| 井陉县| 启东市| 余干县| 贵港市| 桑日县| 南投市| 宜兰县| 通州区|