- 開発技術
ワークフローエンジン「Flowable」を動かしてみる
- #flowable
- Docker

はじめに
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
今回は「Flowable」というワークフローエンジンを動かしてみます。FlowableはBPMN2.0という業務プロセスの標準記法で定義されたプロセス図を基に、タスクを実行・管理できるOSSです。
今回はBPMNの説明は省き、Flowableの動作に焦点を当てます。
環境構築
FlowableはDockerで簡単に動作確認できます。Docker Desktopが導入済みであれば、以下のコマンドでREST API対応の環境を構築できます。
|
1 |
docker run -p 8080:8080 flowable/flowable-rest |
Docker Hub:https://hub.docker.com/r/flowable/flowable-rest
起動後、以下のURLにアクセスするとAPI一覧が確認できます。
http://localhost:8080/flowable-rest/docs
送信時のログイン情報は、Docker Hubに記載の情報を入力します。
基本的な流れ
Flowableでの基本的な操作の流れは以下の通りです。
使用APIはSwaggerの表記を基に記載します。

- プロセス図をアップロードする
・アップロード:POST /repository/deployments
BPMN2.0はXMLで表現できるため、XMLファイルのプロセス図をアップロードします。アップロードすると、プロセス定義として登録されます。・プロセス定義の確認:GET /repository/process-definitions
プロセス定義の一覧を確認します。ここで取得できるidかkeyを指定してプロセスを開始します。
- プロセス定義を基にフローを開始する
・インスタンス生成:POST /runtime/process-instances
プロセス定義のidかkeyを指定してワークフローを開始します。開始すると最初のタスクが実行中タスクに登録されます。・実行中タスクの取得:GET /runtime/tasks
実行中タスクの一覧を取得します。取得したタスクに完了登録することで、次のタスクに移ります。
- 実行中タスクに対して完了登録する
・実行中タスクを更新:POST /runtime/tasks/{taskId}
実行中タスクを完了登録します。登録時に変数を指定することができ、承認/差し戻しといった制御はこの変数を基に行います。例えば、承認時は次のタスクへ、差し戻し時は前のタスクへ進むように、プロセス図上でフローを定義します。
- 全てのタスクを完了するとインスタンスが完了する
・履歴インスタンスを取得:GET /history/historic-process-instances
全てのタスクが完了して終了イベントに到達すると、実行中インスタンスから削除されますが、履歴インスタンス一覧から過去履歴を確認できます。
まとめ
FlowableはJavaで開発されているため、Javaアプリに組み込むこともできます。他にも様々な機能がありますので、必要に応じて利用していくのも良いかと思います。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>





