• 自動秒收錄
  • 軟件:1973
  • 資訊:57811|
  • 收錄網站:279872|

IT精英團

一個沒有寫代碼的案例 讓我們看看Flowable為我們提供了哪些功能

一個沒有寫代碼的案例 讓我們看看Flowable為我們提供了哪些功能

瀏覽次數:
評論次數:
編輯: 溫瑜
信息來源: ITPUB
更新日期: 2022-09-13 21:45:31
摘要

其實松哥之前已經寫過文章和大家介紹了flowable-ui的玩法了,這是官方提供的一個工具,這個工具不僅可以用來繪制流程圖,還可以用來部署一個流程應用,通過這個流程應用我們可以體驗一把flowa

  • 正文開始
  • 相關閱讀
  • 推薦作品

事實上,宋歌之前已經寫過一篇文章,介紹過flowerable-ui的玩法,這是政府提供的一個工具。這個工具不僅可以用來繪制流程圖,還可以用來部署流程應用程序。通過這個流程應用,我們可以體驗一個可流動的流程引擎是做什么的,我們解決了什么問題,而這種體驗是不需要寫代碼的。對于一些沒有流動基礎的朋友來說,我覺得這樣很好。

所以今天,我想帶你再次體驗一下可流動的功能。有的朋友可能會說,上次不是已經體驗過了嗎?上次體驗比較簡單,沒有表單功能。今天我想結合表單功能,和大家一起捋一捋flow-ui的功能。特別好玩。

1.可流動用戶界面

說白了,Flowable-UI就是一堆Web應用,提供四個功能:

flowidm:身份管理的應用。為所有流動UI應用提供單點登錄認證功能,為IDM管理員權限的用戶提供管理用戶、組和權限的功能。

Able Modeler :允許具有建模權限的用戶創建流程模型、表單、選擇表和應用程序定義。

Flowtask :運行時任務應用,提供啟動流程實例、編輯任務表單、完成任務、查詢流程實例和任務的功能。

flowadmin :管理應用程序。擁有管理員權限的用戶可以查詢BPMN、DMN、表單和內容引擎,并提供許多用于修改流程實例、任務、作業等的選項。管理應用通過REST API連接到引擎,與可流動任務應用和可流動REST應用一起部署。

簡單來說:

可流動IDM用于創建用戶和分配角色。

可流動建模者,繪制流程圖的用戶。

測試和體驗過程的流動任務。

使用流動管理員進行后臺管理。

2.安裝方法

在之前的版本中,前面提到的應用都是不同的戰爭包,部署和訪問都非常麻煩,但是現在,官方已經將之前的五個戰爭整合為一個,所以現在訪問起來非常方便。

2.1運行war包

由于這些應用都是基于Spring Boot2.0開發的,所以也可以直接作為獨立的應用運行,通過執行Java-jarxxx.war就可以啟動這些應用。

這就需要大家先在GitHub上下載最新的可流動:

下載成功后,解壓。里面有一個wars文件夾,里面有我們需要的war包,如下:

然后輸入目錄并執行以下命令來啟動war文件:

java-jarflowable-ui.war

從靴子到日志我們可以看出這是一把Spring Boot:

由于是Spring Boot,如果想更改一些參數,可以直接在啟動命令中修改。例如,如果默認端口號是8080,而您現在想將其更改為8088,只需在啟動命令中添加參數- server.port=8088。

所以直接啟動這些應用并不麻煩,反而比較簡單。

2.2泊安培

我看了下他這個還支持 Docker 安裝,所以我還是用 Docker 吧,更省事,將來不想要了刪除也方便(對 Docker 不熟悉的小伙伴可以在微信公眾號后臺回復 docker,有松哥寫的入門教程)。

docker 安裝的話,直接如下命令即可:

docker run -d --name flowableui -p 8086:8080 flowable/flowable-ui

沒什么特別需要配置的地方,指定一下容器名字和端口映射即可。

2.3 訪問

無論是直接運行還是 Docker 運行,運行成功之后,瀏覽器輸入 http://localhost:端口/flowable-ui進行訪問,此時會彈出來如下頁面:

默認情況下,登錄的用戶名是 admin,密碼是 test,注意別把密碼寫錯了。

登錄成功之后,如果看到如下頁面,就表示安裝成功了(一般來說應該不會有安裝問題):

裝好之后,接下來我們就來逐步體驗這里的功能,因為之前和小伙伴們講過這里的大部分功能了,所以今天我主要和大家講講這里的身份管理和流程體驗功能(因為流程體驗中要用到身份管理)。

3. 身份管理(IDM)

身份管理就是用戶、用戶組的管理,我們點進到身份管理頁面之后,可以看到如下內容:

可以看到,默認只有一個 admin 用戶,也就是我們剛剛登錄時候的用戶。

3.1 用戶管理

接下來點擊左邊的創建用戶按鈕,我們可以創建新的用戶出來:

填入用戶的基本信息和密碼即可。

我一共創建了四個用戶,最終結果如下:

3.2 組管理

接下來點擊上面的,我們可以創建用戶組,這個用戶組相當于我們在 vhr 中所說的角色,給用戶分組,相當于給用戶分配一個角色。

默認情況下,沒有任何組,組是空的:

我們點擊創建組按鈕,先來創建一個經理組:

組添加成功之后,點擊添加用戶按鈕,為用戶組中添加用戶:

假設 zhangsan 是經理,最終添加結果如下:

利用相同的方式,我再創建一個主管的組,并為之添加兩個用戶 lisi 和 wangwu。

3.3 權限控制

我們前面創建的用戶現在是沒有任何權限的,例如現在如果使用 zhangsan/123 進行登錄,登錄成功后頁面是空的,沒有任何東西:

所以我們要為用戶添加相應的權限。點擊頂部的權限控制一欄,如下:

我們可以為這五種訪問分別設置對應的用戶/用戶組:

  • 訪問 idm 應用:這個就是訪問身份管理應用,如果用戶沒有訪問這個的權限,那么用戶在登錄成功的后的首頁上就看不到身份管理應用程序這個菜單項。
  • 訪問 admin 應用:這個是訪問管理員應用程式,如果沒有沒有這個的訪問權限,那么用戶在登錄成功之后的首頁上就看不到管理員應用程式這個菜單項。
  • 訪問 modeler 應用:這個是訪問建模器應用程序,如果沒有沒有這個的訪問權限,那么用戶在登錄成功之后的首頁上就看不到建模器應用程序這個菜單項。
  • 訪問 workflow 應用:這個是訪問任務應用程序,如果沒有沒有這個的訪問權限,那么用戶在登錄成功之后的首頁上就看不到任務應用程序這個菜單項。
  • 訪問 REST API:這個是指用戶通過 REST API 訪問工作流的權限。

以訪問 idm 應用為例,在設置的時候,我們可以直接設置用戶,也可以設置用戶組,設置用戶組的話,則這個組中的所有用戶都能訪問這個菜單項。

我這里設置的是經理和 javaboy 可以訪問所有應用,而主管只可以訪問 workflow 應用。

好啦,準備工作完成后,接下來我們就來繪制一個報銷的流程圖,這個流程圖稍微復雜一些,并且帶有表單,這是松哥之前從未寫過的內容。

4. 流程圖繪制

我先大致上用文字描述下我們的報銷流程:

  1. 啟動一個流程。
  2. 員工填寫報銷單,然后進行提交。
  3. 如果報銷金額小于等于 1000 元,則主管審批,主管審批通過后,流程結束;主管審批拒絕,則回到步驟 2 中員工重新填寫報銷單。
  4. 如果報銷金額大于 1000 元,則先由經理進行審批,經理審批通過后,再由 CEO 審批,兩者都審批通過,則流程結束;經理和 CEO 任意一個審批不通過,則流程重新回到步驟 2 中。

好啦,這就是我們一個大致的流程描述,接下來我們就在 Flowable-UI 中來繪制這樣一個流程圖我們來看下。

首先點擊建模器應用程序,我們開始繪制:

點擊右上角創建流程,創建一個流程:

然后就開始繪制。

首先第一步是用戶提交報銷材料,報銷材料需要填寫一個表單,所以我們在下面的屬性中,找到表單引用,為這個用戶任務設置一個外部表單:

如果有提前繪制好的表單,這里就會顯示出來,那么直接引用即可,如果沒有提前繪制好的表單,那么大家看到的就如同上圖那樣。

現在我們點擊新表單,創建一個新表單:

為新表單設置名稱、key 等內容:

創建成功之后,我們就可以看到表單設計頁面了:

左邊是表單組件區域,右邊是表單繪制區域。思考用戶需要提交哪些信息來報銷,直接將相應的表單拖過來即可。

其實大家看最上面一欄的頂部菜單,也自動切換到表單菜單了,這也就意味著,當我們想要創建一個表單的時候,也可以不用從流程繪制那個入口進來,可以直接提前繪制好表單,然后在畫流程的時候直接引用即可。

例如我首先拖一個文本框過來,作為用戶名,然后點擊右邊的編輯按鈕進行編輯,如下:

有如下屬性:

  • 標簽:這個文本框將來展示的信息。
  • 覆蓋 id:勾上這個,就可以自定義 id 了,否則 id 和標簽是一樣的。
  • id:這個是這個組件的唯一名稱,將來在代碼中,如果我們想要獲取這個表單的值,就需要通過這個 id 去訪問。
  • 設置表單是否只讀或者必填。
  • 默認值:這個相當于是這個表單的 placeholder。

好了,理解了這個,我們再來隨便加兩個組件,按照相同的思路進行配置:

報銷金額,這是一個小數組件:

報銷用途是一個多行文本組件:

最終設計結果如下:

標簽后面有一個 *表示這是一個必填項。

繪制完成后,點擊左上角的保存按鈕,保存成功后,會自動回到流程繪制頁面。

接下來,我們還需要設置這個用戶任務由誰來處理,如下:

很明顯,這個流程是誰發起的,誰就來填寫這個表單,所以,配置如下:

好了,這個用戶任務就配置完成了,接下來要根據報銷金額進行劃分了,我一口氣畫完吧,再來和大家逐步分析:

先來看報銷金額小于等于 1000 的那條線。

首先,我們要為這條線設置條件,也就是流程從互斥網關中出來之后,什么情況下會進入到主管審批這個節點中,選中這條出線,配置流條件,配置如下:

這里的 money 就是我們剛剛在表單中填寫的 money,表單中各個字段的值,都會被映射成為一個流程變量,我們可以直接訪問。

接下來配置主管審批,首先我們設置分配用戶,即由誰來執行這個用戶任務:

我們設置候選組為主管,也就是所有的主管都可以審批這個節點:

主管審批的時候,無非就是同意或者拒絕,通過表單我們可以定義出同意或者拒絕這兩個按鈕。配置方式如下,首先為主管審批設置表單引用:

給這個新建的表單取一個名字和 id,這個 id 大家要記牢了,將來我們會用到:

在表單設計的頁面,有一個結果選項卡,這個表示表單的輸出內容,這個結果選項卡決定了這個表單上的最終按鈕,默認情況下,只有一個完成按鈕,我們可以自定義配置:

我們為這個表單設置同意和拒絕兩個按鈕,方式如下:

這塊也有其他設置方式,我就先以這種方式來和大家演示,將來在視頻中再來和大家聊一聊其他方式。

表單配置完成后,保存即可,保存之后,就會回到流程繪制頁面。

接下來為同意這條出線設置條件:

大家注意這個表單的命名規則,是 form_表單名稱_outcome這個就表示表單的輸出結果,也就是我們剛剛在表單中配置的結果選項卡中的內容:

配置完成后,相同的方式,將同意改為拒絕,再來配置一下拒絕那條線。

好啦,上面這條線配置好之后,接下來相同的方式配置下面大于 1000 的情況,其中經理這個用戶任務就由經理這個組來處理,CEO 審批這個用戶任務就由指定用戶 javaboy 來審批即可,具體細節我就不多說了,都跟上面一樣。

繪制完成后,記得點一下左上角的勾,看下流程有沒有漏洞,如下圖:

至此,我們的流程圖就畫好了。

一個流程圖只能有一個開始,但是可以有多個結束。

5. 創建應用

流程圖畫好之后,接下來我們可以下載這個流程圖對應的 XML 文件,然后去開發自己的 Java 代碼。但是,這不是我們本文的工作,本文的工作是直接在 Flowable-UI 這個工具中,創建一個應用,然后發布這個流程。

點擊上面的應用程序菜單,然后點擊右上角的創建應用程序按鈕,如下:

接下來可以為你的應用設置圖標、主題啥的:

然后點擊編輯包含的模型按鈕,為這個應用選擇一個流程:

然后點擊左上角的保存按鈕,保存并發布這個應用,如下:

發布成功之后,回到首頁,就可以看到這個應用了,如下:

6. 體驗報賬

接下來我們就來體驗一把這個報賬流程,我們目前的身份是 admin,也就是說 admin 這個用戶現在要報賬了。

首先點擊應用圖標,進入到應用中,任務是空的,也就是目前沒有 admin 需要審批的任務:

然后我們點擊上方的流程菜單,如下:

首先點擊左邊的啟動流程,然后點擊右邊的啟動流程,流程啟動之后,我們可以點擊右上角的顯示圖按鈕,查看流程目前走到哪一步了:

可以看到,流程目前走到用戶提交報銷材料這一步了:

用戶提交報銷材料這一步是由流程的發起人完成的,也就是 admin 自己完成,此時我們回到任務菜單,就可以看到 admin 有需要完成的任務了:

填入報銷資料,然后點擊完成按鈕。

接下來再點擊流程菜單,查看流程圖,可以看到,此時進入到主管審批這一步了:

按照我們第 3 小節的配置,lisi 和 wangwu 是主管,所以,我們先注銷登錄,然后重新以 lisi 或者 wangwu 的身份登錄,假設我這里以 lisi 的身份登錄,登錄成功之后,進入到這個應用中,進來之后,首先將篩選規則改為我是其中一個候選人的任務:

然后在任務中就可以看到自己需要處理的任務了:

對于這種候選人或者候選組的任務,需要先點擊右上角的認領,然后再處理(如果是直接分配給某一個用戶的,就不需要認領了,可以直接處理了),認領之后,就可以選擇同意或者拒絕了,如下圖:

假設我們點擊拒絕按鈕,拒絕之后,我們點擊流程菜單,查看流程圖,如下:

可以看到,流程在進入到主管審批這個節點之后,被拒絕了,然后回到了用戶提交報銷材料這個節點上,現在 admin 要重新登錄,登錄之后,在自己的任務中又可以看到提交報銷材料了,如下:

隨便改一下,然后繼續提交。

切換到 wangwu 登錄,同意報銷,流程結束。

好啦,下面那條超過 1000 塊錢的線,小伙伴們可以自行測試,我就不演示啦~

今天這個文章的目的是讓大家體驗一把流程引擎,看看流程引擎是干嘛的,都有啥功能,松哥在未來的文章中,會逐步教大家如何用 Spring Boot+Vue 實現這一套功能。

完結撒花~


標簽:表單 流程 用戶
SQL SERVER存儲過程學習筆記
? 上一篇 2022-09-13
《2022 分布式數據庫發展趨勢研究報告》的解釋
下一篇 ? 2022-09-13
  • 如何在Ubuntu中保留文件系統并備份當前開發板鏡像
    0閱讀 0條評論 個贊
    在Ubuntu保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安……
  • 國產核心板全志T507助力消防系統升級
    0閱讀 0條評論 個贊
    9月16日下午,位于湖南長沙市區內的中國電信大樓發生火災,建筑高度218米,現場濃煙滾滾,數十層樓體燃燒劇烈。消防救援人員趕到現場后很快將火勢控制住,目前大樓火勢已被撲滅,所幸未發現人員傷亡。湖南電信……
  • 教大家如何處理Spring Boot易流中的用戶和群體!
    0閱讀 0條評論 個贊
    1.準備工作2.用戶操作2.1添加用戶2.2修改用戶2.3刪除用戶2.4查詢用戶3.組操作3.1添加組3.2修改組3.3刪除組3.4查詢組4.查看表詳情雖然說我們在實際開發中,……
  • 從PG15開始WAL壓縮優化
    0閱讀 0條評論 個贊
    PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,……
  • 深入了解美團葉子發射器開源方案
    0閱讀 0條評論 個贊
    大家好,我是樹哥。之前我們有聊過「如何設計一個分布式ID發號器」,其中有講過4種解決方案,分別是:UUID類雪花算法數據庫自增主鍵Redis原子自增美團以第2、3種解決方案為基礎,開發出……
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
  • 《2022 分布式數據庫發展趨勢研究報告》的解釋
    9閱讀 0條評論 個贊
    分布式數據庫近年來廣受關注,目前,對分布式數據庫的討論,已經從什么是分布式數據庫,為什么要用分布式數據庫,轉變為怎樣規劃應用分布式數據庫。但分布式數據庫有3條不同的技術路線,這無疑增加了選型難度,到底……
  • 數字人技術在直播場景中的應用
    0閱讀 0條評論 個贊
    作者|薄志浩導讀introduction本文介紹了在數字人AI技術發展迅猛,整體AI數字人市場呈現高速增長的趨勢下,與強調高實時性互動的直播業務場景的結合與應用,通過數字人渲染技術、強大的AI全棧能……
  • 開發者如何在應用后臺直接控制用戶的運動狀態?
    18閱讀 0條評論 個贊
    酷暑終于過去,很多人伴著涼爽的秋風開啟了新一輪的健身計劃。當用戶進行戶外運動或使用跑步機、橢圓機等器械時,他們會希望在運動健康類App里點擊即可開啟運動并記錄運動數據。而對于開發者自己開發的應用來說,……
  • python的環境,你再也不用愁康達
    1閱讀 0條評論 個贊
    CondaGuideConda簡介conda是一個包,依賴和環境管理工具,適用于多種語言,如:Python,R,Scala,Java,Javascript,C/C++,FORTRAN……
  • SQL Server數據庫性能優化
    0閱讀 0條評論 個贊
    分析比較執行時間計劃讀取情況1.查看執行時間和cpusetstatisticstimeonselect*fromBus_DevHistoryDatasetstatisticstime……
  • 從PG15開始WAL壓縮優化
    0閱讀 0條評論 個贊
    PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,……
  • 當老板讓我從Java8升級到Java11時
    4閱讀 0條評論 個贊
    老板讓我把一個項目從Java8遷移到Java11,我該怎么辦呢?最簡單的辦法,當然是直接強行升級,遇到一個錯就改一個錯,別看它low,但是對于一個小型且非核心的項目來說,已經足夠了。當然,……
  • 記錄在線超時的分析和故障排除過程
    0閱讀 0條評論 個贊
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • 碼頭工人日常工作的常用命令
    0閱讀 0條評論 個贊
    容器生命周期管理Docker創建新容器并運行[run]語法:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]OPTIONS說明:-astdin:指定標準輸入……
  • 適時變革 共創未來| 2022數字技能職業教育生態研討會圓滿落幕
    0閱讀 0條評論 個贊
    2022年8月25日,由恒利聯創主辦的“適時而變,聯創未來”2022數字技能職業教育生態研討會在線上舉行。本屆大會圍繞“數字技能職業教育和數字化人才培養”的話題,邀請了Oracle技術人才發展部總經理……
  • Oracle服務器遷移的一些經驗
    3閱讀 0條評論 個贊
    前言通過此文章來分享一下Oracle服務器遷移過程中的一些經驗,希望對大家有些許幫助。本文旨在幫助更多的同學,會提及一些基本命令或技巧,但不贅述,后續有機會再進一步分享各個細節。背景之前因機房遷移……
  • 新一代網絡請求庫:python-httpx庫
    0閱讀 0條評論 個贊
    目錄httpx庫一、概述1、簡介2、命令行模式3、快速開始3.1get請求3.2post請求3.2.1表單3.2.2文件3.2.3JSON3.2.4二進制3.3響應處理3.4流……
  • 【高并發】從源碼角度深入分析線程池如何優雅退出
    0閱讀 0條評論 個贊
    大家好,我是冰河~~在【高并發專題】中,我們從源碼角度深度分析了線程池中那些重要的接口和抽象類、深度解析了線程池是如何創建的,ThreadPoolExecutor類有哪些屬性和內部類,以及它們對線程池……
  • Javascript的異步循環打印主題
    0閱讀 0條評論 個贊
    這道題,我相信很多前端從業者都知道,它本質上來說并不復雜,但是卻可以有很深遠的擴展,最終核心的主題其實就是異步的執行,其中對于題目的解法,還涉及到一些作用域的知識。那么我們以最簡版的題目入手,逐步深入……
  • 數據倉庫及其維度(層次)建模(ODS DWD DWS DWT ADS)
    0閱讀 0條評論 個贊
    一.數倉及其維度1.什么是數倉?數據倉庫,簡稱數倉,(DataWarehouse)。從邏輯上理解,數據庫和數倉沒有區別,都是通過數據庫軟件實現存放數據的地方,只不過從數據量來……
  • c#異步高級————通道[1]
    0閱讀 0條評論 個贊
    前言該系列為異步編程的進階篇,其實也不能這么講。世界上本沒有進階篇,只能說是高級篇(高級篇不能說多高級,是對底層的封裝的意思),只要是加深理解都是進階。本章先介紹一下channel。正文下面沒什么好說……
  • 談談動態線程池的9個場景(改進版)
    0閱讀 0條評論 個贊
    大家好,我是小馬哥。線程池是一種基于池化思想管理線程的工具,使用線程池可以減少創建銷毀線程的開銷,避免線程過多導致系統資源耗盡。在高并發以及大批量的任務處理場景,線程池的使用是必不可少的?!?/div>
  • 舉例說明庫伯內特公司的豆莢核心資源
    3閱讀 0條評論 個贊
    目錄一、Pod定義二、Pod入門yaml描述文件三、共享NetworkNamespace四、共享PID五、容器生命周期六、初始化容器6.1、簡介6.2、與普通容器的區別6.3、實驗七、Pod探針7.1……
  • 基于位置變化的市縣彈出引導切換
    31閱讀 0條評論 個贊
    目錄1.背景2.模型方案產出3.總結01背景58App業務中有城市和縣域兩個首頁,兩者中間有一個過渡選擇頁,用戶通過點擊該頁面下的條目內容可以切換到對應條目的首頁;比如:點擊“北京”會跳轉到北京(市)……
  • 面試官:談談你對mysql事務的認識?
    0閱讀 0條評論 個贊
    引言今天回頭繼續講講數據庫系列的文章。這篇文章屬于mysql數據庫系列,我們來談談事務方面的常見面試題。那么,具體題目有下面這些:1、講講為什么用事務?事務的四大特性?事務的隔離級別知道吧,你們生產……
最近發布資訊
更多
十八禁试看120秒做受