プロセス変数

このページは、プロセス内のデータの取り扱い方法、およびプロセスレベルとタスクレベルのデータの指定方法について説明します。

変数の有効範囲
一時的データ
サブプロセス データ
外部データ

変数の有効範囲

プロセス、タスク、またはフォームレベルで変数を定義できます:

  • プロセス変数は1つのプロセス全体にわたって使用可能です。プロセス変数はシーケンスフローの分岐判定条件のデータや外部データベース内に格納されているビジネスデータの格納先にもなり得ます。それらはプロセスの経路に影響を及ぼす、またはプロセスのいくつかのステップで使用される典型的なデータ項目ですが、プロセス インスタンスが完了すると不要になります。
  • タスク変数はタスクおよびそのタスクの流出シーケンスフローで使用可能です。同一ステップ内のコネクタにデータを渡すためにも使用できます。タスク変数はプロセス変数と同様ですが、タスクが活動中の間だけ存在します。
  • フォーム変数はそのフォーム内だけで使用可能で、フォーム内で使用されるデータの格納に使用されます。フォームに関連するコネクタでフォーム変数を使用することもできます。

次も参照してください:
データ型と変数の定義
複合(Complex)データ型
フォーム内でのデータ操作
ウィジェット グループ内に入力されたデータの保存

variables_scope

ベストプラクティス:

  • アプリケーションまたはプロセス間で共有される情報に対しては、XREF ビジネスデータを使用します。
  • データベースまたは他の情報システムに格納されている外部データに対しては、コネクタを使用して必要に応じデータを read/write します。そして、フォーム内で表示、更新される値を一時的に保持するためには、一時的なフォーム変数を使用します。***check still true for Page Designer***
  • プロセスフローで要求されるときだけプロセス変数を使用する場合は、変数を可能な限り最下位レベルで定義します。
  • 可能な限り最小数の変数を使用します。多岐にわたる不必要な変数はパフォーマンスに影響を及ぼします。

プロセス内にデフォルトで提供された多くの変数があります、例えば、現在利用中のユーザーID などです。それらは式エディタを介して使用可能です。

一時的データ

変数は一時的と永続的があります。一時的変数はメモリーだけに格納され、データベース トランザクションを節減します。永続的変数は Bonita BPM エンジンのデータベースに格納されます。

タスク内で一時的変数の値を更新することが可能ですが、これは推奨されません。タスク内の一時的変数はアプリケーションサーバーを再起動したとき、保存されていません。この変数は初期値にリセットされます。一時的か、永続的のいずれの変数を使用するかを判断する場合、その変数がデータ操作で使用されるかどうかを考えます。特にデータ操作スクリプトがいろいろなことを行い、その1つが一時的変数を更新するためのもので、そのスクリプトは実行したが、そのタスクの残るデータ操作スクリプトが未だ完了していない状態でアプリケーションサーバーが再起動された場合、一時的変数はリセットされますが、そのスクリプトで生じた他の変更は再起動しても残っていません。

  • タスク変数は一時的、または永続的のいずれかになり得ます。
  • フォーム変数は一時的です。

ベストプラクティス:

  • プロセスのステップまたはフォーム内で一時的に情報を格納するためには、一時的変数を使用する。
  • 一時的変数の値は更新しない。

一時的変数の値が更新された場合、ログに警告メッセージを記録します。 logging.properties を編集し、そのファイルの第三者セクションのコメントを外すことによって、これらの警告を停止することができます。

サブプロセス データ

イベントサブプロセスは、親プロセス内のデータにアクセスできます。これはパラメータとプロセスレベルの変数も対象にします。コールアクティビティというサブプロセスは、実際は独立した別のプロセスで、分離したプールで定義します。呼び出し元の親プロセス内のデータには直接アクセスできません。コールアクティビティを定義した場合、呼び出し元のプロセス内のデータコピーを作成しサブプロセス内で利用可能にするマッピングを定義できます。

外部データ

プロセス、またはアプリケーションは、データベース コネクタを使用して外部データベースのデータをアクセスしたり、格納することができます。例えば、年次休暇を申請するプロセスでは、従業員が取得可能休暇日数を取得するためにコネクタを使用し、このデータを一時的変数に格納するでしょう。この変数はさらに従業員が申請休暇日数を取得可能かどうか見極めるため、申請した休暇日数と比較されます。この申請が承認された後、後続のステップで取得可能休暇日数を更新するために他のコネクタを使用し申請休暇日数を差し引きます。

CRMのドキュメント・ストレージ・システムのような外部情報システムのコンポーネントに格納されているデータも使用できます。これらのシステムはコネクタを使用してアクセスされます。