3. ワークフロー定義データ生成ツール¶
本ツールは、BPMN2.0に準拠したワークフロー定義ファイル(xmlファイル)を読み込み、 ワークフロー関連テーブル に投入用のCSVファイルを出力するMavenプラグインである。 CSVファイルの出力時には、ワークフロー定義ファイルの内容が、 ワークフローライブラリ で利用できるかのバリデーションも行う。
3.1. モジュール一覧¶
プラグインに対する設定値の詳細は、 プラグインに対する設定を行う を参照。
<plugin>
<groupId>com.nablarch.workflow</groupId>
<artifactId>nablarch-workflow-tool</artifactId>
</plugin>
3.2. 使用方法¶
3.2.1. プラグインに対する設定を行う¶
本プラグインを使用するためには、幾つかの設定を行う必要がある。 以下に設定値の詳細を及び設定例を示す。
- outputPath
- CSVの出力先ディレクトリ
- workflowBpmnDir
ワークフロー用のワークフロー定義ファイルの配置ディレクトリ
本ディレクトリ配下のワークフロー定義(拡張子が
bpmn
のファイル)が自動的に読み込まれ、CSVに出力される。- stateMachineBpmnDir
ステートマシン用のワークフロー定義ファイルの配置ディレクトリ
本ディレクトリ配下のステートマシン定義(拡張子が
bpmn
のファイル)が自動的に読み込まれ、CSVに出力される。- configurationFilePath
- テーブル名やカラム名を定義したコンポーネント設定ファイルのパス
- 設定例
<plugin> <groupId>com.nablarch.workflow</groupId> <artifactId>nablarch-workflow-tool</artifactId> <version>1.1.0</version> <configuration> <!-- CSV出力先ディレクトリ --> <outputPath>src/test/resources/data</outputPath> <!-- テーブル名やカラム名を定義したコンポーネント設定ファイル --> <configurationFilePath>src/design/workflow-tool.xml</configurationFilePath> <!-- ワークフローのワークフロー定義ファイルの配置ディレクトリ --> <workflowBpmnDir>src/design/workflow</workflowBpmnDir> <!-- ステートマシンのワークフロー定義ファイルの配置ディレクトリ --> <stateMachineBpmnDir>src/design/statemachine</stateMachineBpmnDir> </configuration> </plugin>
3.2.2. プラグインを実行する¶
本プラグインのゴールである generate-csv
を実行することで、設定に従いCSVファイルが出力される。
なお、以下の定義例のようにMavenのビルドプロセス内に組み込むことで、ビルド時に自動的にCSVファイルが生成されるようになる。
<plugin>
<groupId>com.nablarch.workflow</groupId>
<artifactId>nablarch-workflow-tool</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<id>generate-csv</id>
<phase>generate-resources</phase>
<goals>
<goal>generate-csv</goal>
</goals>
<configuration>
<!-- 設定値は省略 -->
</configuration>
</execution>
</executions>
</plugin>
3.2.3. バリデーション内容¶
本ツールでは、 ワークフローライブラリ が想定している要素のみを使用しているかや、各要素がシーケンスフローでつながっているかなどの簡易的なバリデーションを行う。
バリデーション内容は以下の通り
- 想定している要素のみを使用しているか
- プール
- レーン
- ユーザタスク(ワークフローの場合)
- タスク(ステートマシンの場合)
- XORゲートウェイ
- 開始イベント
- 停止イベント
- 中断メッセージ境界イベント
- シーケンスフロー
- 遷移可能な要素となっているか
- 開始イベントから始まり停止イベントで終了できるか
バリデーションエラーがある場合は、エラー内容を標準エラー出力に出力する。
- エラーの出力例
[ERROR] sm1_ステートマシン_ver1_20170101.bpmn [ERROR] 境界イベントに遷移先が設定されていません。 id:manual_sinsa_message, name:null [ERROR] wf1_ワークフロー_ver1_20170101.bpmn [ERROR] ゲートウェイから伸びるシーケンスフローの場合、フロー進行条件は必須です。[条件]を設定してください。 id = [SequenceFlow_06] name = [確認OK] [ERROR] サポート対象外の要素です。 id = [T001] name = [確認]
3.2.4. Java11で使用する場合の設定¶
重要
本プラグインをJava11で使用する場合は、Mavenのバージョンを3.6.1以上にする必要がある。
本プラグインをJava11で使用するためには、以下の設定をします。
<plugin>
<groupId>com.nablarch.workflow</groupId>
<artifactId>nablarch-workflow-tool</artifactId>
<version>1.1.0</version>
<!-- 中略 -->
<dependencies>
<!-- 以下を追加する。 -->
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
</plugin>