1. 程式人生 > >JBoss 系列七十四:使用 BPMN2 Modeler 建立 jBPM 6 流程

JBoss 系列七十四:使用 BPMN2 Modeler 建立 jBPM 6 流程

概述

流程設計在BPM中佔很重要的地位,本文演示如何使用 BPMN2 Modeler 建立一個BPMN流程,並執行該流程,如前面 jBPM 6 開發 eclipse 外掛安裝中介紹的,外掛安裝完成BPMN2 Modeler已經安裝,更多關於BPMN2 Modeler參照:

建立一個流程

1。開啟eclipse,選擇要儲存流程的目錄,New -> Other -> jBPM -> BPMN2 Process -> Next,輸入流程的名字,點選 Finish,建立初始化流程,只包含一個開始節點事件,如下圖所示:


2. 將滑鼠移動到開始節點之上,或出現相關的提示,點選這些快速提示圖示,可以快速建立流程,如下為快速提示圖示樣式:


從上到下,我們依次介紹這些快捷圖示:

  • 刪除當前節點
  • 顯示當前節點屬性
  • 新增新節點,可快速新增的包括任務(User Task, Rules Task, Send Task, etc),子流程等
  • 新增Gateway,Gateway包括聚合的,分散的,平行的,時間驅動的等
  • 新增一個事件,最常用的快捷方式,它可新增流程中間事件,結束事件等
  • 新增一個連線,連線到流程下一個節點
3. 使用新增節點方式新增一個Script Task,命名為Start, 如下:


雙擊 Start節點,或在Properties部分可編輯節點,我們首先Description部分修改節點名為Start,選擇Script Task可以進行編輯Script ,可選擇的Script 包括MVEL和java,我們次數選擇java,編輯Script如下:


如上所示,我們定義的Script 為java如下:

long id = kcontext.getProcessInstance().getId();
String name = (String)kcontext.getVariable("recipient");
String log = "process " + id + " started by " + name;
System.out.println(log);
即當流程執行到此節點執行如上的java程式碼端,如上程式碼端從流程中獲取變數recipient及流程ID,輸出日子。

4. 新增新的User Task節點,User Task是指流程必須有認為參與才能繼續進行,同樣雙擊節點,或在Properties部分可編輯節點,我們首先Description部分修改節點名為Start

Approval by PM,如下日圖所示:


Properties -> User Task -> Actors,新增一個Actor john,即john為執行該User Task的使用者,如下圖所示:


同樣 Properties -> User Task -> On Exit Script 處新增退出執行的Script,如下:


如上,當User Task(Approval by PM)節點被john執行後節點退出時執行如上Script中的java程式碼,該程式碼端是通過ProcessContext獲取到當前流程的ID,輸出日誌“john approved process ...”。

5. 完全類似於上面步驟4,新增“Approval by HR” User Task節點,設計actor名字為mary,及流程需要mary來執行,流行執行結束時同樣執行Java 程式碼,輸出相關的日誌,相關的Script如下:

long id = kcontext.getProcessInstance().getId();
String log = "mary approved process " + id;
System.out.println(log);
流程設計到此大致構造如下:


6. 完全類似於第3步新增End節點,該節點為Script節點,即此當節點執行時,相關Script java 程式碼如下:

long id = kcontext.getProcessInstance().getId();
String log = "process " + id + " finished";
System.out.println(log);
到目前流程如下:


7. 與開始節點相對應,我們新增一個結束節點,流程執行到該節點表示流程執行結束,最終流程如下圖所示:


執行流程

process 31 started by kylin
john approved process 31
mary approved process 31
process 31 finished


相關推薦

JBoss 系列使用 BPMN2 Modeler 建立 jBPM 6 流程

概述 流程設計在BPM中佔很重要的地位,本文演示如何使用 BPMN2 Modeler 建立一個BPMN流程,並執行該流程,如前面 jBPM 6 開發 eclipse 外掛安裝中介紹的,外掛安裝完成BPMN2 Modeler已經安裝,更多關於BPMN2 Modeler參照:

JBoss 系列jBPM 6 釋出,快速安裝,新功能介紹

概述 jBPM 6.0 最終版已與上月底釋出,本文主要從兩個方面去介紹jBPM 6.0 : 快速安裝新功能介紹 快速安裝 快速安裝包括如下三步: 下載安裝包 安裝 到jbpm-installer目錄下執行ant命令: ant install.demo ant命令執

Hulu機器學習問題與解答系列 | 二隨機梯度下降法

叠代 -s nbsp xib 大量 步長 空間 圖片 ges Hulu優秀的作者們每天和公式抗爭,只為提升你們的技能,感動的話就把文章看完,然後哭一個吧。 今天的內容是 【隨機梯度下降法】 場景描述 深度學習得以在近幾年迅速占領工業界和學術界的高地,重要原因之一是數

webpack4 系列教程()Clean Plugin and Watch Mode

作者按:因為教程所示圖片使用的是 github 倉庫圖片,網速過慢的朋友請移步《webpack4 系列教程(十四):Clean Plugin and Watch Mode》原文地址。更歡迎來我的小站看更多原創內容:godbmw.com,進行“姿勢”交流 ♪(∇*) 0.

skyfans之每天一個Liunx命令系列tcpdump

今天我們繼續來學習PERFORMANCE MONITORING AND STATISTICS(效能監測與統計),今天學習的是什麼命令呢,那就是tcpdump(獲取資料包資訊),通常我們運維人員稱之為抓包命令. 此命令是我們作為一個運維人員必須要知道並且會的命令。 Ready Go!!!

Unity 六邊形地圖系列(二) 地區和侵蝕

原文地址:https://catlikecoding.com/unity/tutorials/hex-map/part-24/ 機翻+個人潤色 在地圖周圍加一圈水域。 將地圖分割成多個區域。 對懸崖進行侵蝕。 移動土地來平滑地形。 這是關於六邊形地圖的系列教程

敏捷開發一千零一問系列敏捷開發加班嗎?

這是敏捷開發一千零一問系列的第十四篇。(在這裡提問,之一,之二,之三,問題總目錄)正逢週末,又是愚人節,群中有人正在加班,想起上次培訓中間休息的時候,討論起這個“敏捷開發加班嗎”的問題,雖然後來沒有作為課後投票入選,但這裡也完整回答一下。問題敏捷開發加班嗎?樓下有人問到“敏捷

Java併發程式設計系列阻塞佇列

阻塞佇列(BlockingQueue)是一個支援兩個附加操作的佇列。這兩個附加操作支援阻塞地插入和移除方法。支援阻塞插入的方法是指當佇列滿時會阻塞插入元素的執行緒,直到佇列不滿;支援阻塞移除的方法是指當佇列為空時獲取元素的執行緒無法繼續獲取元素直到佇列不空。

JBoss 系列 jBPM 6 中使用 jbpm-console 建立執行 BPM 流程

概述 如jBPM 6 中使用 jbpm-console 建立執行 BPM 流程 - I中所示,我們在jbpm-console 上建立執行了簡單的BPM流程,本文在前文的基礎之上演示如何建立執行一個較複雜的流程,即流程開始和執行User Task時需要輸入資料。 建立流程 如

JBoss 系列深入理解 jBPM Human Task

概述 Human Task 是BPM流程中的節點必需通過人為的手動操作才能夠執行。jBPM 5 通過 User Task(jBPM5示例之 User Task) 節點來支援Human Task。Human Task通常要求流程設計者在設計流程時指定流程執行相關的屬性,流程型

算法系列狼、羊、菜和農夫過河問題

題目描述:農夫需要把狼、羊、菜和自己運到河對岸去,只有農夫能夠划船,而且船比較小,除農夫之外每次只能運一種東西,還有一個棘手問題,就是如果沒有農夫看著,羊會偷吃菜,狼會吃羊。請考慮一種方法,讓農夫能夠安全地安排這些東西和他自己過河。        這個題目考察人的快速邏輯運算

SSE影象演算法優化系列二十三: 基於value-and-criterion structure 系列濾波器(如Kuwahara,MLV,MCV濾波器)的優化。 SSE影象演算法優化系列十四:區域性均方差及區域性平方差演算法的優化 SSE影象演算法優化系列七:基於SSE實現的極速的矩形核腐蝕和膨脹(

       基於value-and-criterion structure方式的實現的濾波器在原理上其實比較簡單,感覺下面論文中得一段話已經描述的比較清晰了,直接貼英文吧,感覺翻譯過來反而失去了原始的韻味了。        T

Hulu機器學習問題與解答系列 | 如何對高斯分布進行采樣

系列 number 神經網絡 res per 功能 rand 生成器 如果 歡迎回到“采樣”系列~ 今天的內容是 【如何對高斯分布進行采樣】 場景描述 高斯分布,又稱正態分布,是一個在數學、物理及工程領域都非常重要的概率分布。在實際應用中,我們經常需要對高斯分布進行

MySQL的高可用實現MySQL系列

一致性 ilo ply purge shutdown monitor 半同步 eve 延遲 MySQL的高可以有三種實現方式:多主模式(Multi Master MySQL),MHA(Master High Availability)和 Galera Cluster:wr

python學習第單表查詢

浮點型 contain creat 第一條 nvi int 長度 positive 位長 單表查詢 創建表 創建模型 在models.py中定義類,一個類就是一張表 from django.db import models class Book(models.Model

名詞解釋第梭哈

這裡是王團長區塊鏈學院,與最優秀的區塊鏈人一起成長!今天給大家講講梭哈。   幣圈梭哈就是指把本金全部投入,是一種非常激進的投資策略,往往出現在投資者極度看好後市或者情緒失控的時候。   在幣圈中,機遇和風險總是時刻相伴我們左右,而梭哈這朵奇葩策略,完全不在乎風險

linux系列head命令

1、命令格式:   head [引數] [檔案] 2、命令功能:   head 用來顯示檔案的開頭至標準輸出中,預設head命令列印其相應檔案的開頭10行。 3、命令引數: -q 隱藏檔名 -v 顯示檔名 -c<位元組> 顯示位元組數 -n<行數&g

OpenCV-Python系列·第二檢測瞳孔

Tip:載入OpenCV自帶.xml檔案。其實,這些的關鍵都是定位。注:微調引數。 # -*- coding: utf-8 -*- """ Created on Fri Sep 14 11:18:47

敏捷開發一千零一問系列之三如何弄清楚專案需求(需求開發步驟)?

這是敏捷開發一千零一問系列的第三十三篇。(在這裡提問,之一,之二,之三,問題總目錄)也是敏捷開發使用者故事系列的第十篇(欄目目錄)。問題需求清晰到什麼程度可以進行開發?一定要弄清楚需求才能開發嗎?怎樣才能弄清楚需求?注意下面的分析是在基於合同的專案開發的語境中的。產品和網際網

katalon系列執行Windows命令&獲取專案路徑

Katalon Studio中也可以執行Windows命令執行一些系統操作。 根據官方文件,在test case中輸入命令:cmd = 'del E:\\shot\\*.xlsx E:\\shot\\*.zip'Runtime.getRuntime().exec(cmd) 執行報錯 網上搜到解決方案,修