6.8. プロセス構成

ビジネスプロセスマネージャーは process-state を用いてプロセス構成をサポートします。 別のプロセス定義に関連する状態があります。 グラフ実行が process-state に入場すると、 サブプロセスの新しいインスタンスが作成されます。 そのサブプロセスはプロセス状態に入場した実行パスに関連付けされます。 親プロセスの実行パスは、 サブプロセスが終了するまで待機し、 サブプロセス終了後にプロセス状態を退場し、 スーパープロセスでグラフ実行を続けます。
<process-definition name="hire">
  <start-state>
    <transition to="initial interview" />
  </start-state>
  <process-state name="initial interview">
    <sub-process name="interview" />
    <variable name="a" access="read,write" mapped-name="aa" />
    <variable name="b" access="read" mapped-name="bb" />
    <transition to="..." />
  </process-state>
  ...
</process-definition>
上記の例では、 hire プロセスには interview プロセスを引き起こす process-state が含まれています。 実行が first interview に入場すると、 interview プロセスの新しい実行 (プロセスインスタンス) が作成されます。 バージョンを明示的に指定しないと、 サブプロセスの最新バージョンが使用されます。 ビジネスプロセスマネージャーが特定バージョンのインスタンスを作成するようにするには、 任意の version 属性を指定します。 サブプロセスが実際に作成されるまで指定バージョンまたは最新バージョンのバインディングを延期するには、 任意の binding 属性を late に設定します。
次に、 hire プロセス変数 ainterview プロセス変数 aa へコピーされます。 同様に、 hire 変数 b が interview 変数 bb へコピーされます。 interview プロセスが終了すると、 変数 aa のみが a 変数にコピーし直されます。
一般的に、 サブプロセスが開始すると、 読み取りアクセスを持つ変数はすべて、スーパープロセスから読み込まれ、 新たに作成されたサブプロセスへ送り込まれます。 これは、 開始ステートから退場するためシグナルが渡される前に発生します。 サブプロセスインスタンスが終了すると、 書き込みアクセスを持ったすべての変数は、 サブプロセスからスーパープロセスにコピーされます。 変数の mapped-name 属性を使用してサブプロセスで使用する変数名を指定します。