2.3. ワークフロー定義データ生成ツール¶
2.3.1. 概要¶
2.3.2. 前提¶
- ワークフロー設計ガイドに従ってワークフロー定義ファイルが作られていること
- ツールで出力するテーブル・カラム名称について、ワークフローライブラリで使用するテーブル・カラム名称と同一であること
2.3.3. ツール配置場所¶
本ツールはサンプルプロジェクトのtool/workflowDefinitionGenerator
ディレクトリに配置されている。
配下のファイル/ディレクトリを以下に示す。
ファイル/ディレクトリ | 説明 |
---|---|
output | 自動生成されるワークフロー定義データの出力ディレクトリ。 |
resources | 本ツールの設定ファイル格納ディレクトリ。(利用の準備を参照) |
log | エラー情報出力ファイルの出力ディレクトリ。 |
WorkflowDefinitionGenerator_build.xml | 本ツールを実行するためのAntビルドファイル(通常、変更の必要なし)。 |
WorkflowDefinitionGenerator_build.properties | Antビルドファイルのプロパティファイル。 |
2.3.4. 利用の準備¶
本ツールの設定ファイルに、実行に必要な設定を記述する。 設定ファイルは下記の通り。
ファイル | 説明 |
---|---|
WorkflowDefinitionGenerator.config | 環境設定ファイル。(出力先ファイルパス、入力ファイル拡張子等を設定) |
WorkflowDefinitionGenerator.xml | コンポーネント定義ファイル。 |
2.3.4.1. 環境設定ファイル¶
実行に必要な設定を行う。設定内容は下記の通り。
キー名 | 設定内容 |
---|---|
inputFileDir | ワークフロー定義ファイルを格納するルートディレクトリ。 ツール実行時、ルートディレクトリ配下のファイルを再帰的に読み込む。 |
inputFileExtension | 入力ファイルの拡張子。(カンマ区切りで設定)|br| 例:bpmn,xml |
outputFilePath | 出力ファイルパス。 ※ファイルが既に存在する場合、既存の内容は破棄される。そのため、出力ファイルにワークフロー定義テーブル以外のデータを設定しないこと。 |
logFilePath | エラー情報出力ファイルパス。 |
workflowIdColumnLength | ワークフローID桁数。(※) |
laneIdColumnLength | レーンID桁数。(※) |
flowNodeIdColumnLength | フローノードID桁数。(※) |
boundaryEventTriggerIdColumnLength | 境界イベントトリガーID桁数。(※) |
※ID体系で定義された桁数。ワークフロー定義ファイル内に定義したIDの桁数指定が正しいか精査を行うための設定値。
2.3.4.2. コンポーネント定義ファイル¶
コンポーネント定義ファイルには以下の設定が記載されている。
- Reader、Writerクラスの設定
- モデリングツール上で入力する条件クラス用省略記法の設定
上記設定を変更する場合、プロジェクト固有の設定についてを参照。
2.3.5. 利用手順¶
2.3.5.1. ツール実行¶
ツールは以下のように実行する。
ant -f WorkflowDefinitionGenerator_build.xml
2.3.5.1.1. 精査エラー発生時の動作¶
fileName = [WF0001_交通費申請_ver1_20140805.bpmn] フローノードIDの桁数がID体系で定められた桁数と異なります。IDを修正してください。 id = [T00001] name = [確認] (設定値:10 実際:6)
2.3.6. 仕様¶
2.3.6.1. 読込対象¶
本ツールはModeler上の下記要素に設定された値を読込、ワークフロー定義データとして出力する。
- プール
- レーン
- ユーザタスク
- XORゲートウェイ
- 開始イベント
- 停止イベント
- 中断メッセージ境界イベント
- シーケンスフロー
2.3.6.2. データ作成対象テーブル¶
ワークフロー定義データとして出力するテーブルの項目と、値の取得元について以下に示す。
2.3.6.2.1. ワークフロー定義¶
定義 | 内容 |
---|---|
ワークフローID | ワークフロー定義ファイル名から取得する。(フォーマット:[ワークフローID]_[ワークフロー名]_ver[バージョン]_[適用日].bpmn) 例)ワークフロー定義ファイル名が「WF0001_交通費申請_ver1_20140805.bpmn」の場合 ワークフローID:「WF0001」 バージョン:「1」 ワークフロー名:「交通費申請」 適用日:「20140805」 |
バージョン | |
ワークフロー名 | |
適用日 |
2.3.6.2.2. レーン¶
定義 | 内容 |
---|---|
ワークフローID | レーンが属しているワークフローID。 |
バージョン | レーンが属しているワークフローのバージョン。 |
レーンID | Modeler上でレーンの「Id」に指定したID。 |
レーン名 | Modeler上でレーンの「Name」に指定した名称。 |
2.3.6.2.3. フローノード¶
定義 | 内容 |
---|---|
ワークフローID | フローノードが属しているワークフローID。 |
バージョン | フローノードが属しているワークフローのバージョン。 |
フローノードID | Modeler上でフローノードの「Id」に指定したID。 |
レーンID | フローノードが属しているレーンID。 |
フローノード名 | Modeler上でフローノードの「Name」に指定した名称。 |
2.3.6.2.4. シーケンスフロー¶
定義 | 内容 |
---|---|
ワークフローID | シーケンスフローが属しているワークフローID。 |
バージョン | シーケンスフローが属しているワークフローのバージョン。 |
シーケンスフローID | Modeler上でシーケンスフローの「Id」に指定したID。 |
接続元フローノードID | シーケンスフローの接続元フローノードID。 |
接続先フローノードID | シーケンスフローの接続先フローノードID。 |
フロー進行条件 | Modeler上でシーケンスフローに指定した「Condition」に応じた値。 「Condition」にクラスの完全修飾名を指定した場合:「Condition」に指定した値 「Condition」に省略記法を指定した場合:省略記法に紐付くクラスの完全修飾名 (省略記法については省略記法についてを参照) |
シーケンスフロー名 | Modeler上でシーケンスフローの「Name」に指定した名称。 |
2.3.6.2.5. 境界イベントトリガー¶
定義 | 内容 |
---|---|
ワークフローID | 境界イベントが属しているワークフローID。 |
バージョン | 境界イベントが属しているワークフローのバージョン。 |
境界イベントトリガーID | Modeler上で境界イベントの「Messages」に指定した値。 |
境界イベントトリガー名 | Modeler上で境界イベントの「Messages」に指定した値。 |
2.3.6.2.6. 境界イベント¶
定義 | 内容 |
---|---|
ワークフローID | 境界イベントが属しているワークフローID。 |
バージョン | 境界イベントが属しているワークフローのバージョン。 |
フローノードID | Modeler上で境界イベントの「Id」に指定したID。 |
境界イベントトリガーID | Modeler上で境界イベントの「Message」に指定した値。 |
接続先タスクID | 境界イベントが接続しているフローノードID。 |
2.3.6.2.7. タスク¶
定義 | 内容 |
---|---|
ワークフローID | タスクが属しているワークフローID。 |
バージョン | タスクが属しているワークフローのバージョン。 |
フローノードID | Modeler上でアクティビティに指定したID。 |
マルチインスタンス種別 | Modeler上でマルチインスタンス・アクティビティに指定した「Is Sequential」に応じた値。 「Is Sequential」のチェックをONにした場合:SEQUENTIAL(順次マルチインスタンス) 「Is Sequential」のチェックをOFFにした場合:PARALLEL(並行マルチインスタンス) アクティビティがマルチインスタンス・アクティビティではない場合、NONEが出力される。 |
完了条件 | Modeler上でマルチインスタンス・アクティビティに指定した「Completion condition」に応じた値。 「Completion condition」にクラスの完全修飾名を指定した場合:「Completion condition」に指定した値 「Completion condition」に省略記法を指定した場合:省略記法に紐付くクラスの完全修飾名 (省略記法については省略記法についてを参照) |
2.3.6.2.8. イベント¶
定義 | 内容 |
---|---|
ワークフローID | イベントノードが属しているワークフローID。 |
バージョン | イベントノードが属しているワークフローのバージョン。 |
フローノードID | Modeler上で開始イベント(または停止イベント)の「Id」に指定したID。 |
イベント種別 | Modeler上で配置したイベントの種類に応じた値。 開始イベントの場合:START 停止イベントの場合:TERMINATE |
2.3.6.2.9. ゲートウェイ¶
定義 | 内容 |
---|---|
ワークフローID | ゲートウェイが属しているワークフローID。 |
バージョン | ゲートウェイが属しているワークフローのバージョン。 |
フローノードID | Modeler上でゲートウェイの「Id」に指定したID。 |
ゲートウェイ種別 | Modeler上で配置したゲートウェイの種類に応じた値。 XORゲートウェイの場合:EXCLUSIVE |
2.3.6.3. 精査仕様¶
2.3.6.3.1. 構文精査¶
ワークフロー定義ファイルが、BPMN 2.0のxsd定義に準拠しているか精査を行う。(idの重複等)
ちなみに
ワークフロー定義ファイルがBPMN 2.0のxsd定義に違反している場合、そのファイルのワークフロー定義データを出力しない(正常に読み込みが行えたファイルのみ出力)
2.3.6.3.2. ワークフローライブラリの制約に関する精査¶
ワークフロー定義ファイルが、ワークフローライブラリが提供するワークフロー機能の制約に準拠し、正常動作する構文であるか精査を行う。(プール数、利用可能フローノード等)
ちなみに
精査エラーが発生した場合、そのファイルのワークフロー定義データを出力しない(正常に読み込みが行えたファイルについては出力する)
- クラス名(省略記法) + (パラメータ1, パラメータ2, ....)の形式であること。※パラメータが無い場合、括弧を書かないこと
- クラス名(省略記法)部分が、.(ピリオド)で開始、終了していないこと。
- クラス名(省略記法)部分に、連続する.(ピリオド)を含まないこと。
- クラス名(省略記法)部分に、空白文字(全角空白を含む)を含まないこと。
- 空白文字のみのパラメータが指定されていないこと。
2.3.7. プロジェクト固有の設定について¶
プロジェクトで以下の変更がある場合、コンポーネント定義ファイルを修正する必要がある。
変更内容 | 修正対象(コンポーネント定義ファイル内のコンポーネント名、及びマップ名) |
---|---|
ワークフロー定義ファイルの読込元、出力先 | workflowDefinitionReader、workflowDefinitionWriter |
フロー進行条件、完了条件クラスの省略記法 | flowProceedCondition、completionCondition |
2.3.7.1. ワークフロー定義ファイル読込元、ワークフロー定義データ出力先の変更¶
コンポーネント定義ファイル設定例
<component name="workflowDefinitionReader" class="please.change.me.sample.ss11.CustomWorkflowDefinitionReader"/><!-- PJ固有のReaderクラス -->
<component name="workflowDefinitionWriter" class="nablarch.tool.workflow.WorkflowDefinitionExcelWriter">
<property name="workflowDefinitionSchema" ref="workflowDefinitionSchema"/>
<property name="outputFilePath" value="${outputFilePath}"/>
</component>
2.3.7.2. フロー進行条件、完了条件クラスの省略記法の変更¶
2.3.7.2.1. 省略記法について¶
コンポーネント定義ファイル設定例
<!-- フロー進行条件クラスの省略記法設定 -->
<map name="flowProceedCondition">
<entry key="eq" value="nablarch.tool.workflow.EqFlowProceedCondition"/>
<entry key="ge" value="nablarch.tool.workflow.GeFlowProceedCondition"/>
<entry key="gt" value="nablarch.tool.workflow.GtFlowProceedCondition"/>
<entry key="le" value="nablarch.tool.workflow.LeFlowProceedCondition"/>
<entry key="lt" value="nablarch.tool.workflow.LtFlowProceedCondition"/>
<entry key="ne" value="nablarch.tool.workflow.NeFlowProceedCondition"/>
</map>
<!-- 完了条件クラスの省略記法設定 -->
<map name="completionCondition">
<entry key="all" value="nablarch.tool.workflow.AllCompletionCondition"/>
<entry key="or" value="nablarch.tool.workflow.OrCompletionCondition"/>
</map>
Modeler上の入力、及び出力結果
Modeler上の入力値 | 出力結果 |
---|---|
all | nablarch.tool.workflow.AllCompletionCondition |
or(1) | nablarch.tool.workflow.OrCompletionCondition(1) |
2.3.7.2.2. 省略記法の追加・変更¶
コンポーネント定義ファイル設定例
<!-- 完了条件クラスの省略記法設定 -->
<map name="completionCondition">
<entry key="all" value="please.change.me.sample.ss11.component.CM111004Component"/><!-- PJ固有の完了条件クラス -->
<entry key="or" value="nablarch.tool.workflow.OrCompletionCondition"/>
</map>