001. kogito初體驗-環境準備及HelloWorld運行

工作流引擎一直都沒有納入我的知識範圍,所以我並沒有玩過jbpm, activiti這種傳統的工作流引擎。無奈業務永遠都做不完,所以終於要對BPM下手了。


1. 環境準備

截止到2020年10月19日,kogito最新版本是Pre-release 0.17.0,正式版1.0還在beta階段。中文資料還太少,學習主要是從官方文檔下手。還好kogito提供了很多的示例來滿足一個工作流小白對這個框架的初體驗。

$ git clone https://github.com/kiegroup/kogito-examples.git

準備工作可沒這麼簡單,你還需要

  • IDE: VSCODE(官方推薦)+ kogito插件
    在這裏插入圖片描述
  • JDK 11,爲了避免一些可能存在的麻煩,我使用了openjdk 當下最新的15版。
  • MAVEN 3.6.2 or later

2. 示例:hello-world

2.1 運行示例

example項目下第一個示例,定義了一個腳本流程,如下圖所示。

我們爲這個流程指定一個唯一的process-id叫作:
在這裏插入圖片描述

// 流程說明
1.開始-入參name
2.腳本任務-SayHello,java,System.out.println("Hello " + name);
3.腳本任務-UpdateMessage,java,kcontext.setVariable("message", "Hello " + name);
4.結束

如果前面環境都準備好,可以通過下面的命令,運行這個服務了。

$ cd /process-scripts-springboot
$ mvn spring-boot:run

2.2 流程調用

流程通過bpmn文件定義,包含了要處理的數據,工作步驟的定義。在這個示例中,這個流程通過springboot封裝爲一個http服務。調用的uri就是上面指定的process-id。

  1. 發出請求
    打開另一個terminal,通過curl請求,當然也可以使用postman
# http request 
$ curl --location --request POST '127.0.0.1:8080/scripts' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "GG"
}'
  1. 服務端輸出
    這是腳本任務1的輸出
# output from console
Hello GG
  1. http返回的響應
# http response
{
   
    "id":"2bf9ca54-4b66-4a75-8147-b823659ebad1","name":"GG","message":"Hello GG"}

2. 流程圖解析

既然我是工作流引擎的小白,自然是不懂工作流建模語言了。所以bpmn文件自然是要學一下的。

在這個HelloWorld示例中,僅涉及到了三個不同的對象

  • 開始節點,標記一個流程的開始
    在這裏插入圖片描述
  • 腳本任務,任務類型的一種,意爲通過腳本完成固定的操作。
    在這裏插入圖片描述
  • 結束,是一個十萬年魂環
    在這裏插入圖片描述
  • 數據
    在這個示例中,聲明瞭兩個參數,作爲入參和出參。後面可以看到更復雜的對象定義和引用。
String name
String message

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章