ワークフロー開発の基礎
intra-martのワークフロー開発では、開発スタイルや目的によって3つの開発パターンがあることを説明してきました。どの開発パターンを採用するにしても実際に開発を進める前に、IM-Workflowの概要を知っておくことをおすすめします。
IM-BISやAccel Studioを利用する場合でも内部的にIM-Workflowと同じ仕組みが使われています。また、画面上や関連ドキュメントでも同じ用語が使用されています。このため、IM-Workflowの概要を理解しておくと、どの開発パターンを選択しても開発をスムーズに正しく進めることができます。
ワークフローを構成する3つの定義
IM-Workflowでは、ルート定義、コンテンツ定義、フロー定義の3つを組み合わせてひとつのワークフローを構成します。
この構成により、同じルート定義を複数のワークフローで再利用したり、異なるコンテンツ定義を差し替えて別の業務に転用したりできます。
構築の流れ
IM-Workflowでワークフローを構築する際の標準的な手順は以下のとおりです。
分岐がないシンプルなワークフローであれば、コンテンツ定義でのルール設定は不要です。
ルート定義
ルート定義は、ワークフローの承認経路を視覚的に設計する機能です。「誰」が「どの順番」で処理するかの基本構造をここで決定します。
ノードの配置
ルート定義では、ノードと呼ばれるパーツを配置して承認経路を組み立てます。
| ノードの種類 | 説明 |
|---|---|
| 開始ノード | ワークフローの起点 |
| 終了ノード | ワークフローの終点 |
| 承認ノード | 承認処理を行うポイント |
| 分岐ノード | 条件により経路を分ける |
| 同期ノード | 並列処理の合流点 |
ノードを縦や横に配置することで、直線的なルートだけでなく、分岐や並列処理を含む複雑なルートも表現できます。
分岐ノードを配置しても、この時点では分岐条件は設定しません。分岐条件はコンテンツ定義で指定します。
処理対象者の設定
各ノードに対して、処理を担当するユーザや組織を設定します。
| 設定方法 | 説明 | 用途 |
|---|---|---|
| 固定指定 | 特定のユーザや組織を直接指定 | 決まった担当者がいる場合 |
| 動的指定 | 条件に応じて処理者を自動決定 | 申請内容や金額で承認者を変える場合 |
動的指定を利用すると、申請者の所属部門の上長を自動的に承認者に設定するなど、柔軟な処理者決定が可能です。
ルート定義の詳細な設定方法については、以下のドキュメントを参照してください。
コンテンツ定義
コンテンツ定義は、ワークフローで利用する画面、処理、メッセージ、ルールを指定する機能です。フロー定義で利用できるリソースをここで絞り込むことで、設定作業を効率化できます。
画面の設定
ワークフローの各場面で表示する画面を設定します。
| 画面種別 | 説明 |
|---|---|
| 申請画面 | 申請者が入力・申請する画面 |
| 承認画面 | 承認者が内容を確認・承認する画面 |
| 参照画面 | 案件の内容を参照するための画面 |
画面の作成方法は以下の3パターンがあります。
| 作成方法 | 説明 |
|---|---|
| スクリプト開発 | JavaScriptで画面を作成 |
| JavaEE開発 | Javaで画面を作成 |
| URL指定 | IM-BloomMakerなど外部で作成した画面のURLを指定 |
IM-FormaDesignerで作成した画面は、IM-FormaDesigner側からIM-Workflowへの連携設定を行います。
処理の設定
ワークフローの各タイミングで実行する処理を設定します。
| 処理タイミング | 説明 |
|---|---|
| 案件開始時 | 申請が行われたときに実行 |
| ノード到達時 | 処理がノードに到達したときに実行 |
| 処理完了時 | 承認などの処理が完了したときに実行 |
| 分岐処理 | 分岐ノードで経路を判定するときに実行 |
処理の実装方法は以下のとおりです。
| 実装方法 | 説明 |
|---|---|
| スクリプト開発 | JavaScriptで処理を実装 |
| Java開発 | Javaで処理を実装 |
| IM-LogicDesigner | ローコードで処理を実装 |
メッセージの設定
ワークフローの処理状況に応じて通知するメッセージを設定します。
| 通知タイミング | 説明 |
|---|---|
| 処理依頼 | 次の処理者に承認依頼を通知 |
| 処理完了 | 申請者に処理完了を通知 |
| 引戻し | 引戻しが行われたことを通知 |
| 差戻し | 差戻しが行われたことを通知 |
通知先は、IMBox、IM-Notice(intra-mart内の通知機能)、メールから選択できます。メッセージの内容は、事前にメッセージ定義で作成したものを選択します。
ルールの設定
分岐ノードで使用する分岐条件を設定します。
ルールを設定するには、以下の準備が必要です。
- 案件プロパティの定義(分岐条件で参照する項目)
- ルール定義の作成(案件プロパティに対する条件式)
ルール定義では、案件プロパティに対して「〇〇以上」「〇〇と一致」などの条件を指定できます。
コンテンツ定義の詳細な設定方法については、以下のドキュメントを参照してください。
フロー定義
フロー定義は、ルート定義とコンテンツ定義を紐づけてワークフローを完成させる機能です。
基本設定
| 設定項目 | 説明 |
|---|---|
| ルート定義の選択 | 使用する承認経路を選択 |
| コンテンツ定義の選択 | 使用する画面・処理のセットを選択 |
| 処理と画面の紐づけ | 各ノードに画面や処理を割り当て |
その他の設定
フロー定義では、ワークフローの基本情報として以下の設定も行えます。
| 設定項目 | 説明 |
|---|---|
| 参照者設定 | 案件を参照できるユーザの設定 |
| 添付ファイル | ファイル添付の可否や制限の設定 |
| 一括処理 | 複数案件の一括承認の可否 |
| 例外処理 | エラー発生時の挙動設定 |
フロー定義の詳細な設定方法については、以下のドキュメントを参照してください。
IM-BIS/Accel Studioを利用した開発
IM-BISやAccel Studioを利用する場合、ここまで説明したルート定義・コンテンツ定義・フロー定義は自動的に作成されます。
IM-BISの場合
IM-BISでワークフローを作成すると、内部的に3つの定義が自動生成されます。IM-FormaDesignerと連携することで、画面とデータテーブルがセットで作成され、ノンプログラミングでワークフローを構築できます。
基本的にはIM-BISの画面から編集することをおすすめしますが、ユーザプログラムの追加など一部の設定はIM-Workflow側の管理画面から行う必要があります。
Accel Studioの場合
Accel Studioでワークフローを作成すると、ルート定義・コンテンツ定義・フロー定義が1:1:1のセットで自動生成されます。独自のUIでワークフロー設定やユーザプログラムの反映が可能なため、IM-BISよりも複雑なワークフローを実現しやすい利点があります。
Accel Studioで作成されたワークフローの各定義は、IM-Workflow側の管理画面から変更しないでください。Accel Studio側との整合性が失われ、正常に動作しなくなる可能性があります。