2.4.1 ビジネスプロセスを作成する
BPMNエディタを使用してビジネスプロセスを作成します。
- 〈この項の構成〉
(1) BPMNビジネスプロセス定義ファイルの作成時の規則
BPMNビジネスプロセス定義ファイルを作成する際の規則について説明します。
規則によっては,プロパティ入力時,または検証時にチェックされます。
ビジネスプロセス定義ファイルのチェックの詳細については,「(2) BPMNビジネスプロセス定義ファイルのチェック」を参照してください。
- 入力必須の項目
-
BPMNビジネスプロパティ定義ファイルに入力必須の項目と,チェックのタイミングについて,次の表で示します。
入力必須の項目
チェックのタイミング
プロパティ入力時
検証時
各要素のIdプロパティ
○
-
Message refプロパティ
-
○
Error refプロパティ
-
○
Operation refプロパティ
-
○
Called elementプロパティ
-
○
Conditionプロパティ(排他ゲートウェイから流出するシーケンスフローが2本以上ある場合)※
-
○
Loop cardinalityプロパティ(マルチインスタンスを使用する場合)
-
○
- (凡例)
-
○:チェックする
-:チェックしない
- 注※
-
デフォルトシーケンスフローを除きます。
- プロパティ値の文字および文字列
-
プロパティ値の文字および文字列に関する規則と,チェックのタイミングを次に示します。
プロパティ
規則
チェックのタイミング
プロパティ入力時
検証時
Idプロパティ値
次に示す文字を使用してください。
-
半角英数字(0x30~0x39,0x41~0x5a,0x61~0x7a)
-
アンダースコア(0x5f)
「IW」から始まる値を指定しないでください。
○
-
Nameプロパティ値
次に示す文字を使用してください。
-
全角文字(ただし,”,^,および全角空白を除く)
-
半角英数字(0x30~0x39,0x41~0x5a,0x61~0x7a)
-
アンダースコア(0x5f)
「IW」から始まる値を指定しないでください。
○
-
-
Operation refプロパティ値
-
Called elementプロパティ値
次に示す文字を使用してください。
-
半角英数字(0x30~0x39,0x41~0x5a,0x61~0x7a)
-
アンダースコア(0x5f)
○
-
ファイル名として使用できない文字列(例:aux,con)を指定しないでください。
-
-
-
Message definitionsのIdプロパティ値
-
Error definitionsのIdプロパティ値
-
ProcessタブのNameプロパティ値
ファイル名として使用できない文字列(例:aux,con)を指定しないでください。
-
-
-
Conditionプロパティ(シーケンスフロー)
-
Loop cardinalityプロパティ(マルチインスタンスのBPMN要素)
-
Completion conditionプロパティ(マルチインスタンスのBPMN要素)
-
Completion conditionプロパティ(アドホック・サブプロセスのBPMN要素)
正しいXPathを指定してください。
-
-
- (凡例)
-
○:チェックする
-:チェックしない
-
- プロパティ値の長さ
-
プロパティ値の長さに関する規則,およびチェックのタイミングを次に示します。プロパティ値の長さは,次の範囲にしてください。
プロパティ
プロパティ値の長さの範囲
チェックのタイミング
プロパティ入力時
検証時
ProcessタブのId
59バイト以下
○
-
ProcessタブのName
64バイト以下※
○
-
プールのName
32バイト以下
○
-
レーンのName
32バイト以下
○
-
アクティビティのIdとNameの長さの合計
50バイト以下
○
-
イベントのIdとNameの長さの合計
50バイト以下
○
-
ゲートウェイのIdとNameの長さの合計
50バイト以下
○
-
サブプロセスのIdとNameの長さの合計
50バイト以下
○
-
イベント・サブプロセスのIdとNameの長さの合計
50バイト以下
○
-
アドホック・サブプロセスのIdとNameの長さの合計
50バイト以下
○
-
シーケンスフロー,およびデフォルトシーケンスフローのId
60バイト以下
○
-
コールアクティビティのCalled element
32バイト以下
○
-
サービスタスクのOperation ref
25バイト以下
○
-
ビジネスルールタスクのOperation ref
25バイト以下
○
-
Message definitionsのId
25バイト以下
○
-
Error definitionsのId
25バイト以下
○
-
Process data key name([Use the process data as the participant]がチェックされているとき)
64バイト以下
○
-
Process data key name([Use the process data as the timer rule]がチェックされているとき)
64バイト以下
○
-
- (凡例)
-
○:チェックする
-:チェックしない
- 注※
-
レーンのNameプロパティおよびプールのNameプロパティが0バイトの場合は,32バイト以下となります。
- プロパティ値の一意性
-
プロパティ値の一意性に関する規則,およびチェックのタイミングを次に示します。
対象
規則
チェックのタイミング
プロパティ入力時
検証時
GeneralタブおよびProcessタブで入力するIdプロパティ値
BPMNビジネスプロセス定義ファイル内のサポート対象要素に対して,すべての要素間で大文字と小文タイマー字を区別しないで一意になるようにしてください。
○
-
「Nameプロパティ値_Idプロパティ値」の規則で生成される文字列
すべての要素間で大文字と小文字を区別しないで一意になるようにしてください。
○
-
同一システム内のProcessタブのNameプロパティ値
大文字と小文字を区別しないで,同一システム内で一意になるようにしてください。例えば,"SampleBP1"と"samplebp1"は,同一システム内で共存できません。
-
-
同一システム内の次に示すプロパティ
-
Operation ref
-
Message definitionsのId
-
Error definitionsのId
-
Called element
大文字と小文字を区別しないで,同一システム内で一意になるようにしてください。例えば,"msgAAA"と"msgaaa"は,同一システム内で共存できません。
-
-
- (凡例)
-
○:チェックする
-:チェックしない
-
- BPMN要素の定義
-
排他ゲートウェイ以外の要素が複数の遷移先を持つときは,シーケンスフローの条件式(Conditionプロパティ)を指定しないでください。条件分岐するには,排他ゲートウェイを使用する必要があります。
- BPMN要素の配置
-
BPMN要素の配置に関する規則,およびチェックのタイミングを次に示します。
要素の種別
規則
チェックのタイミング
プロパティ入力時
検証時
開始イベント
次のどちらかの配置をした場合,開始イベントに対して同じMessage refの値を指定しないでください。
-
開始(メッセージ)イベントを1つのプールに2個以上配置
-
イベント・サブプロセス非中断開始(メッセージ)イベントとイベント・サブプロセス中断開始(メッセージ)イベントのどちらか,または両方を,1つのイベント・サブプロセスに2個以上配置
-
○
開始(タイプなし)イベントを,1つのプールに2個以上配置しないでください。
-
○
イベント・サブプロセス中断開始(エラー)イベントを,1つのイベント・サブプロセスに2個以上配置した場合,同じError refの値を指定しないでください。
-
-
サブプロセス / イベント・サブプロセス / アドホック・サブプロセス
イベント・サブプロセスを配置したプール,サブプロセス,またはイベント・サブプロセスの範囲内※1に,そのイベント・サブプロセス非中断開始(メッセージ)イベントまたはイベント・サブプロセス中断開始(メッセージ)イベントと同じMessage refの値を持つ次のイベントを配置しないでください。
-
イベント・サブプロセス非中断開始(メッセージ)イベント
-
イベント・サブプロセス中断開始(メッセージ)イベント
-
キャッチ(メッセージ)イベント
-
境界非中断(メッセージ)イベント
-
境界中断(メッセージ)イベント
-
○
イベント・サブプロセスを配置したプール,サブプロセス,またはイベント・サブプロセスの範囲内※1に,そのイベント・サブプロセス中断開始(エラー)イベントと同じError refの値を持つ次のイベントを配置しないでください。
-
イベント・サブプロセス中断開始(エラー)イベント
-
境界中断(エラー)イベント
-
○
サブプロセス(マルチインスタンス)の範囲内※2に,マルチインスタンス化したBPMN要素を配置しないでください。
-
○
アドホック・サブプロセスに,次の要素を配置しないでください。
-
開始イベント
-
終了イベント
-
プール
-
レーン
-
サブプロセス
-
イベント・サブプロセス
-
アドホック・サブプロセス
○
-
ゲートウェイ
排他イベントゲートウェイの遷移先に,Message refの値が同じキャッチ(メッセージ)イベントを複数配置しないでください。
-
○
排他イベントゲートウェイからキャッチイベントにシーケンスフローを接続する場合,キャッチイベントの入力シーケンスフローは,排他イベントゲートウェイから遷移するシーケンスフローの1つだけになるようにしてください(そのほかの要素からの入力シーケンスフローを,キャッチイベントに接続しないでください)。
-
○
境界イベント
境界非中断(メッセージ)イベントもしくは境界中断(メッセージ)イベントが付けられたサブプロセスまたはアドホック・サブプロセス内に,その境界非中断(メッセージ)イベントまたは境界中断(メッセージ)イベントと同じMessage refの値を持つ次のイベントを配置しないでください。
-
イベント・サブプロセス非中断開始(メッセージ)イベント
-
イベント・サブプロセス中断開始(メッセージ)イベント
-
キャッチ(メッセージ)イベント
-
境界非中断(メッセージ)イベント
-
境界中断(メッセージ)イベント
-
○
境界非中断(メッセージ)イベントまたは境界中断(メッセージ)イベントが付けられたアクティビティの境界に,その境界非中断(メッセージ)イベントまたは境界中断(メッセージ)イベントと同じMessage refの値を持つ次のイベントを配置しないでください。
-
境界非中断(メッセージ)イベント
-
境界中断(メッセージ)イベント
-
○
境界中断(エラー)イベントが付けられたサブプロセスまたはアドホック・サブプロセス内に,その境界中断(エラー)イベントと同じError refの値を持つ次のイベントを配置しないでください。
-
イベント・サブプロセス中断開始(エラー)イベント
-
境界中断(エラー)イベント
-
○
境界中断(エラー)イベントが付けられたアクティビティの境界に,その境界中断(エラー)イベントと同じError refの値を持つ境界中断(エラー)イベントを配置しないでください。
-
○
その他・共通
プールの中には,次のうち1つ以上の要素を配置してください。
-
ユーザタスク
-
サービスタスク
-
ビジネスルールタスク
-
コールアクティビティ
-
サブプロセス
-
アドホック・サブプロセス
-
キャッチ(メッセージ)イベント
-
スロー(メッセージ)イベント
-
キャッチ(タイマー)イベント
-
○
サブプロセスの中には,次のうち1つ以上の要素を配置してください。
-
ユーザタスク
-
サービスタスク
-
ビジネスルールタスク
-
コールアクティビティ
-
サブプロセス
-
アドホック・サブプロセス
-
キャッチ(メッセージ)イベント
-
スロー(メッセージ)イベント
-
キャッチ(タイマー)イベント
-
○
アドホック・サブプロセスの中には,次のうち1つ以上の要素を配置してください。
-
ユーザタスク
-
サービスタスク
-
ビジネスルールタスク
-
コールアクティビティ
-
○
- (凡例)
-
○:チェックする
-:チェックしない
- 注※1
-
サブプロセスまたはイベント・サブプロセス内にサブプロセス,イベント・サブプロセス,またはアドホック・サブプロセスを配置した場合は,内側のサブプロセス,イベント・サブプロセスまたはアドホック・サブプロセス内も範囲に含みます。
- 注※2
-
サブプロセス内にサブプロセス,イベント・サブプロセス,またはアドホック・サブプロセスを配置した場合は,内側のサブプロセス,イベント・サブプロセスまたはアドホック・サブプロセス内も範囲に含みます。
-
- ユーザタスクの設定
-
ユーザタスクの設定に関する規則,およびチェックのタイミングを次に示します。
規則
チェックのタイミング
プロパティ入力時
検証時
[Use the process data as the participant]がチェックされているとき,[Process data key name]を指定してください。
-
○
[Use the process data as the participant]がチェックされているとき,[Process data key name]を,次の規則で指定してください。
-
"$S"から開始する
-
"$S"のあとに,"IW"から始まる文字列は指定できない
-
"$S"のあとには,英数字,"{",および"}"だけが指定できる
○
-
- (凡例)
-
○:チェックする
-:チェックしない
-
- タイマーイベントの設定
-
タイマーイベントの設定に関する規則,およびチェックのタイミングを次に示します。
規則
チェックのタイミング
プロパティ入力時
検証時
[Type]を必ず指定してください。
-
○
[Use the process data as the timer rule]がチェックされているとき,[Process data key name]を指定してください。
-
○
[Use the process data as the timer rule]がチェックされているとき,[Process data key name]を,次の規則で指定してください。
-
"$S"から開始する
-
"$S"のあとに,"IW"から始まる文字列は指定できない
-
"$S"のあとには,英数字,"{",および"}"だけが指定できる
○
-
タイマールールの定期日時方式を使用する場合,存在する日付を指定してください(存在しない日付(4/31など)を指定しないでください)。
-
○
キャッチ(タイマー)イベント,イベント・サブプロセス中断開始(タイマー)イベント,および境界中断(タイマー)イベントの実行回数は,1以外を指定しても無効です。
-
-
開始(タイマー)イベントの場合,[Use the process data as the timer rule]をチェックしても無効です。
-
-
- (凡例)
-
○:チェックする
-:チェックしない
-
- シーケンスフローの接続
-
シーケンスフローの接続に関する規則,およびチェックのタイミングを次に示します。
対象
規則
チェックのタイミング
プロパティ入力時
検証時
中間イベント
アドホック・サブプロセス内の中間イベント(キャッチ(リンク)イベントは除く)には,入力シーケンスフローを接続してください。
-
○
アドホック・サブプロセス内の中間イベント(スロー(リンク)イベントは除く)には,出力シーケンスフローを接続してください。
-
○
ゲートウェイ
アドホック・サブプロセス内のゲートウェイには,入力シーケンスフローを接続してください。
-
○
アドホック・サブプロセス内の排他イベントゲートウェイには,出力シーケンスフローを接続してください。
-
○
- (凡例)
-
○:チェックする
-:チェックしない
(2) BPMNビジネスプロセス定義ファイルのチェック
BPMNビジネスプロセス定義ファイルは,BPMNエディタでの入力時,および検証実行時にチェックされます。
BPMNエディタでプロパティを入力した時のチェック
プロパティタブのテキストボックスの入力値は,次のフィールドにカーソルを移動したときなどの,カーソル移動時にチェックされます。
Message定義,Error定義の作成ダイアログの入力情報は,入力ダイアログボックスの[OK]をクリックしたときにチェックされます。
エラーがある場合は,エラーメッセージのダイアログが表示されます。
検証実行時のチェック
BPMNエディタのキャンバスを右クリックすると表示されるメニューで,[Validate Diagram]をクリックすると,チェックされます。
検証結果は,Eclipseコンソールに表示されます。[Validate Diagram]を繰り返し実行した場合,古いチェック結果の下に新しいチェック結果が表示されます。検証開始メッセージと終了メッセージから判断して,最新のチェック結果を確認してください。
(3) ビジネスプロセスの作成例
ビジネスプロセスの作成の流れを説明します。
-
BPMNエディタの[新規]メニューから[Activiti Diagram]ウィザードを実行して,BPMNビジネスプロセス定義ファイルを作成します。
-
プールを選択すると表示される[Process]タブの[Name]テキストボックスに,ビジネスプロセスの名前を入力します。
-
排他ゲートウェイを定義します。
-
デフォルトシーケンスフローを描く場合は,排他ゲートウェイを選択して,[Default flow]リストボックスからデフォルトシーケンスフローとするシーケンスフローを設定します。
-
分岐条件を設定する場合は,シーケンスフローを選択すると表示される[Main config]タブの[Condition]テキストボックスエリアに,XPath式を入力します。
- XPath式の入力例
-
$SJudgement='Yes'
"$SJudgement"は,文字列型の"Judgement"という名前のプロセスデータを表しています。
-
-
messageRefを定義します。
-
キャンバス上の何もないところをクリックすると[Messages]タブが表示されます。[New]ボタンをクリックして表示される[Message definition]画面で,[Id]と[Name]を入力します。[Id]に入力した値がmessageRef値になります。
-
メッセージイベントを選択すると,[Main config]タブが表示されます。[Message ref]リストボックスに,上記で[Id]に入力したメッセージを設定します。
-
-
サービスタスクでは,[Operation ref]テキストボックスにoperationRef値(任意)を入力します。この値が,アプリケーション呼び出し情報ファイルのファイル名として使用されます。
-
ビジネスプロセス定義を検証します。キャンバスを右クリックすると表示されるメニューで[Validate Diagram]をクリックします。チェック内容の詳細については「(1) BPMNビジネスプロセス定義ファイルの作成時の規則」を参照してください。
検証結果がEclipseコンソールに表示されます。表示される検証結果については,「(2) BPMNビジネスプロセス定義ファイルのチェック」の「検証実行時のチェック」の説明を参照してください。
(4) タイマーイベントの作成方法
タイマーイベントを作成する方法について説明します。
タイマーイベントの新規作成
パレットを使用してタイマーイベントを作成します。作成できるタイマーイベントの種類については,「1.4 タイマーイベントとは」を参照してください。
タイマーイベント作成後,タイマーイベントを選択すると,[Timer Definition]タブが表示されます。
タイマールールの設定方法
[Timer Definition]タブの[Type]リストボックスに,次のどれかのタイマールールを指定します。タイマールールの詳細については,「1.4.2 タイマーイベントのタイマールール」を参照してください。
-
固定日時方式の場合:Fixed date and time
-
間隔方式の場合:Duration
-
定期日時方式の場合:Periodic date and time
[Timer Definition]タブの入力エリアを次の図で示します。
[Type]リストボックスで選択したタイマールールによって,[Timer Definition]タブの入力エリアの表示が切り替わります。以降で,それぞれのタイマールールを選択した場合の入力エリアの表示と,設定方法を説明します。
固定日時方式(Fixed date and time)の設定
固定日時方式(Fixed date and time)を指定した場合の入力エリアの表示を次の図で示します。
入力エリアに次の設定をします。
-
Fixed date and time:
-
[YYYY/MM/DD] : タイマーイベントが発火する日付を選択。
-
[hh:mm] :タイマーイベントが発火する時刻を選択。
-
-
Process data:
-
[Use the process data as the timer rule] :タイマーイベントのタイマールールを動的に変更する場合にチェック。
-
[Process data key name] :プロセスデータキー名を入力。
-
間隔方式(Duration)の設定
間隔方式(Duration)を指定した場合の入力エリアの表示を次の図で示します。
入力エリアに次の設定をします。
-
Duration:
時間長の数値と単位を選択。
-
Number of executions:
-
[Specify the number of executions] :実行回数を指定する場合に,ラジオボタンを選択。また,実行する回数を選択。
-
[Do not specify the number of executions (unlimited)] :実行回数を無限とする場合にラジオボタンを選択。
-
-
Process data:
-
[Use the process data as the timer rule] :タイマーイベントのタイマールールを動的に変更する場合にチェック。
-
[Process data key name] :プロセスデータキー名を入力。
-
定期日時方式(Periodic date and time)の設定
定期日時方式(Periodic date and time)を指定した場合の入力エリアの表示を次の図で示します。
入力エリアに次の設定をします。
-
Periodic date and time:
-
[Month] : 「月」を選択。任意の月とする場合は「Every」を選択。
-
[Day] :「日」を選択。任意の日とする場合は「Every」を選択。
-
[Hour] :「時」を選択。任意の時とする場合は「Every」を選択。
-
[Minute] :「分」を選択。
-
-
Number of executions:
-
[Specify the number of executions] :実行回数を指定する場合に,ラジオボタンを選択。また,実行する回数を選択。
-
[Do not specify the number of executions (unlimited)] :実行回数を無限とする場合にラジオボタンを選択。
-
-
Process data:
-
[Use the process data as the timer rule] :タイマーイベントのタイマールールを動的に変更する場合にチェック。
-
[Process data key name] :プロセスデータキー名を入力。
-
(5) アドホック・サブプロセスの作成方法
アドホック・サブプロセスを作成する方法について説明します。
アドホック・サブプロセスの新規作成
パレットを使用してアドホック・サブプロセスを作成します。
アドホック・サブプロセス作成後,アドホック・サブプロセスを選択すると,[Main config]タブが表示されます。
アドホック・サブプロセスの属性の設定方法
[Main config]タブの入力エリアを次の図で示します。
入力エリアに次の設定をします。
-
Completion condition:
アドホック・サブプロセスの完了条件の評価式を入力。
-
Ordering:
-
[Parallel]:アドホック・サブプロセス内のフローノードを並列実行させる場合に選択。
-
[Sequential]:アドホック・サブプロセス内のフローノードを遂次実行させる場合に選択。
-
-
Cancel remaining instances:
-
[true]:完了条件(Completion condition)が成立した場合に,実行中のフローノードを強制終了させるときに選択。
-
[false]:完了条件(Completion condition)が成立した場合に,実行中のフローノードを強制終了させないときに選択。
-
(6) ユーザタスクのParticipantを動的に指定する方法
ユーザタスクのParticipantをプロセスデータで動的に指定するための,ユーザタスクのParticipantタブの設定方法を説明します。
ユーザタスクの新規作成
パレットを使用してユーザタスクを作成します。
ユーザタスクの作成後,ユーザタスクを選択すると,[Participant]タブが表示されます。
プロセスデータの設定方法
[Participant]タブの入力エリアを次の図で示します。
入力エリアに次の設定をします。
-
[Use the process data as the participant]
Participantをプロセスデータで動的に指定する場合にチェック。
-
[Process data key name]
プロセスデータキー名を入力。
(7) ビジネスプロセス作成時の注意事項
BPMNエディタでビジネスプロセスを作成する際の注意事項を説明します。
-
Idプロパティ値には,一意な値が自動的に付与されます。各要素のIdプロパティ値を変更する場合は,[ウィンドウ]−[設定]メニューをクリックすると表示される設定ダイアログで,次の項目にチェックを入れてください。
- [Activiti]−[Editor]
-
[Enable Id for BPMN Elements]のチェックボックス
Idプロパティ値は,ビジネスプロセス定義ファイル内で一意になるようにしてください。重複するとBPMNエディタ上で予期しない動作をするおそれがあります。
-
Idプロパティ値やNameプロパティ値の長さをチェックする必要があります。[ウィンドウ]−[設定]メニューをクリックすると表示される設定ダイアログで,次の項目のチェックを入れてください(チェックを外さないでください)。
- [Activiti]−[Editor]
-
[Apply length validation for Id and Name attributes]のチェックボックス
-
対応するスロー(リンク)イベントとキャッチ(リンク)イベントは,[Main config]タブの[LinkEventDefinition name]プロパティの値を一致させてください。
-
イベント・サブプロセス中断開始(メッセージ)イベントを描くには,イベント・サブプロセス非中断開始(メッセージ)イベント[Non-InterruptingMessage]を描き,[Main config]タブの[isInterrupting]プロパティをtrueに変更してください。
-
境界非中断(メッセージ)イベントを描くには,境界中断(メッセージ)イベントを描き,[Main config]タブの[Cancel activity]プロパティをfalseに変更してください。
-
イベント・サブプロセス中断開始(エラー)イベントおよび境界中断(エラー)イベントは,Error refプロパティで設定したエラーを受信します。エラーの定義(Error definitions)では,ErrorCodeプロパティの設定は必要ありません。
-
マルチインスタンスを描くには,対象となるユーザタスク,サービスタスク,コールアクティビティ,またはサブプロセスの[Multi instance]タブを開き,[Loop cardinality]プロパティに値を設定してください。
-
サブプロセスを折りたたむ場合,または展開する場合は,対象のサブプロセスにマウスカーソルを合わせると表示されるメニューの[Collapse SubProcess]または[Expand SubProcess]をクリックしてください。
-
イベント・サブプロセス中断開始(タイマー)イベントを描くには,イベント・サブプロセス非中断開始(タイマー)イベント[Non-InterruptingTimer]を描き,[Main config]タブの[isInterrupting]プロパティをtrueに変更してください。
-
境界非中断(タイマー)イベントを描くには,境界中断(タイマー)イベントを描き,[Main config]タブの[Cancel activity]プロパティをfalse に変更してください。