プロセス定義のリファクタリングは、プロセス要素名の変更(動作条件の変更を除く)を意味します。一般的に、プロセス定義がほとんど完成したとき、可読性や保守性を改善するため、あるいは新しい一連の命名規則を採用するために行われます。Bonita BPM Studio では、要素名を変更した場合、その変更はその要素を参照しているすべての箇所に波及します。変更が単純な(たとえば、フローの遷移条件に使用される変数の改名)場合は、その変更は自動的に行われます。変更がもっと複雑な(Groovy スクリプト内で使用されている変数の改名)場合は、Bonita BPM Studio は、それを実装する前に変更箇所を検証するために更新対象を表示します。リファクタリングは、プロセス要素を削除する場合にも使用されます。要素を使用している式はダイレクトにクリアされ、それに依存している式は、その依存関係がクリアされ、Groovy スクリプト内の当該変数をブランクのプレースホルダに置きまえます。
要素
リファクタリングは次の要素タイプに適用されます:
- 変数
- フォームのフィールド
- アクター
- パラメータ
- ドキュメント
- 入力コントラクト
- ビジネス変数
- ページ
- 検索キー(Efficiency と Performance edition のみ)
これらのタイプのある要素名を変更したとき、その名前は、スクリプト内部やコネクタのインスタンス定義を含め、プロセス定義全体に渡って変更されます。
有効範囲
リファクタリングの有効範囲はプロセスです。プロセス内で上記の項目の1つを変更した場合、Bonita BPM Studio は、同一プロセス内でそれが使用されているすべての箇所を検出して変更します。リファクタリングはそのプロセスの外部に範囲を広げることはしません。
プロセスがデータをマップしたサブプロセスのコールアクティビティを含んでいる場合、そのデータマッピングは、親プロセスとサブプロセス(コールされるサブプロセス)の両方をチェックしながら手動で変更する必要があります。サブプロセスをリファクタリングする計画がある場合は、データマッピングの手動変更を行う前に、まずサブプロセスのリファクタリングを先行すべきです。
制限
次のプロセス定義要素に対しては、リファクタリングはできません:
- 7.0 からサポートされた UI デザイナーのページには、ビジネスデータ、ドキュメントおよび入力コントラクトの変更は反映しません。
- 「オプションリスト」要素は、リファクタリングによって管理されません。オプションリスト内の選択肢名を改名する場合は、その選択肢を内包するウィジェットの初期値を手動で変更する必要があります。
- 要素のタイプ変更には、リファクタリングが使用されません。改名のみに制限されています。
- 式の依存関係は、Groovy スクリプトの比較エディタ内では再計算されません。これは、各スクリプト式の依存関係フィールドに手動で戻り、「依存関係を自動解決」をアンチェックし、再度チェックする必要があることを意味します。
例
ある新商品機能について、顧客からのフィードバックを繰り返し収集するプロセスが調査票を埋める人数をカウントするために「カウンター」というプロセス変数を持っていると仮定します。その変数はプロセス定義内の次の箇所で使用されているとします:
- プロセスのインスタンスが生成されたとき、ゼロにセットされる。
- ユーザーが調査票を送信したときにデータ操作を使用してカウントアップされる。
- この機能のオーナーに e-メールで日時レポートを送信するため、そのメールコンテンツを作成するスクリプ内でその「カウンター」が使用される。そのレポートはe-メールのコネクタを使用して送られ、そのスクリプトはコネクタ定義の一部になっている。
明確にするため、その変数名はより分かりやすい名称にした方が良いだろうと考え、「カウンター」から「調査票の回答数」に変えたいとします:
- プールを選択し、[詳細] パネル -> [データ] ペインに進みます。
- プロセス変数の一覧の中から「カウンター」を選択し、[編集] をクリックします。
- 編集のポップアップ内で新しい名前を入力し [OK] をクリックします。
- 調査票が送信されたとき、データ操作の中でカウントアップされるその変数名は自動的に更新されます。
- ポップアップは、「カウンター」を使用しているコネクタ定義のコンテンツ スクリプトを表示、新しい名前を持つスクリプトを示します。スクリプトが望み通りに変更されることを確認したら、[終了] をクリックします。
注意: 表示されたスクリプト、またはコードに対し提案された変更を拒否するため、 [キャンセル] をクリックした場合、その変更は自動的に取り消されます。同名の変更で以前スクリプトに保存していた変更も、それが保存済みであったとしても取り消されます。変更をキャンセルするために Ctrl-Z を使用した場合、それを2回入力する必要があります。1回目の Ctrl-Z はウィジェット内の変更をキャンセルし、2回目は関係するスクリプトやコード内の変更をキャンセルします。