12.4.5 changeStateAI(業務ステップの状態変更)
構文
boolean changeStateAI( java.sql.Connection aDBConnection, CIWServer aCIWServer, java.lang.Integer aProcessInstanceID, java.lang.Integer aActivityInstanceID, CIWActivityInstance.State aNewState, java.util.Collection<CIWBPMNProcessData<?>> aProcessDataCollection ) throws CIWFatalException, CIWTransientException, CIWTransitionFailedException, CIWStateException, CIWEntityNotExistException
機能
案件IDと業務ステップIDで指定された業務ステップの状態を変更します。また,指定されたプロセスデータを更新します。
変換前のタスク,イベントの種別に関係なく,どの業務ステップの状態も変更できます。
引数
changeStateAIの引数を次の表に示します。
項番 |
仮引数名 |
名称 |
I/O |
説明 |
---|---|---|---|---|
1 |
aDBConnection |
JDBCコネクション |
in |
CIWServerオブジェクトに関連づけられたJDBCコネクションを指定します。 |
2 |
aCIWServer |
CIWServerオブジェクト |
in |
CIWServerオブジェクトを指定します。 |
3 |
aProcessInstanceID |
案件ID |
in |
対象にする業務ステップの案件IDを指定します。 nullは指定できません。 |
4 |
aActivityInstanceID |
業務ステップID |
in |
対象にする業務ステップの業務ステップIDを指定します。 nullは指定できません。 |
5 |
aNewState |
業務ステップの状態 |
in |
変更する業務ステップの状態を指定します。 次の表に示す,CIWActivityInstance.State列挙型の定数を指定できます。 nullは指定できません。 |
6 |
aProcessDataCollection |
プロセスデータのコレクション |
in |
プロセスデータを更新しない場合はnullを指定します。 |
aNewStateに指定できる業務ステップの状態を次の表に示します。
現在の状態 |
指定できる状態 |
状態遷移の意味 |
||
---|---|---|---|---|
定数 |
意味 |
定数 |
意味 |
|
− |
未終了 |
TERMINATED |
強制終了 |
強制終了 |
RUNNING |
実行中 |
READY_FOR_TRANSITION |
遷移可 |
業務ステップ終了 |
- (凡例)
-
定数:CIWActivityInstance.State列挙型の定数を表します。
−:定数がないことを表します。
戻り値
業務ステップの状態変更を実行したかどうかを返します。
true:実行しました
false:業務ステップの状態変更が実行済み(指定された業務ステップの状態が変更後の業務ステップの状態)だったので実行しませんでした
例外
changeStateAIで発生する例外を次の表に示します。
項番 |
発生する例外 |
説明 |
---|---|---|
1 |
CIWFatalException |
処理を続行できない障害が発生した場合 |
2 |
CIWTransitionFailedException |
案件処理中にエラーが発生した場合 |
3 |
CIWTransientException |
一時的なエラーが発生した場合 |
4 |
CIWEntityNotExistException |
処理しようとしたオブジェクトが存在しない場合 |
5 |
CIWStateException |
状態や属性の変更に失敗した場合 |
注意事項
-
JDBCコネクションおよびCIWServerオブジェクトにnullを指定した場合は,例外(java.lang.IllegalArgumentException)が発生します。
-
JDBCコネクションとCIWServerオブジェクトが関連づけられていない場合の動作は保証しません。
-
案件ID,業務ステップID,または業務ステップ定義名にnullを指定した場合は,例外(java.lang.IllegalArgumentException)が発生します。
-
変更する業務ステップの状態にnullを指定した場合は,例外(java.lang.IllegalArgumentException)が発生します。
-
対象となる業務ステップが存在しない場合は,例外(CIWEntityNotExistException)が発生します。
-
対象となる業務ステップの状態と,変更する業務ステップの状態の組み合わせが不正な場合は,例外(CIWStateException)が発生します。ただし,対象となる業務ステップが変更する業務ステップの状態の場合は,例外は発生しないでfalseが返されます。
-
業務ステップを強制終了した場合は,次の業務ステップへは遷移しません。そのため,ほかに「実行中」状態の業務ステップが存在しない場合は,案件の強制終了以外の操作ができなくなります。また,実行中の業務ステップが存在した場合でも,待合ノードに続く業務ステップを強制終了すると,待合ノードから遷移しなくなります。
-
対象となる業務ステップが排他イベントゲートウェイから変換された業務ステップの場合は,業務ステップを終了すると,例外(CIWFatalException)が発生します。
-
サブプロセスに対する境界中断(タイマー),境界非中断(タイマー),イベント・サブプロセス中断開始(タイマー)およびイベント・サブプロセス非中断開始(タイマー)の受信用の業務ステップは,「遷移可」の状態に変更できません。「遷移可」の状態に変更しようとした場合は,例外(CIWStateException)が発生します。
-
境界中断(タイマー),境界非中断(タイマー),イベント・サブプロセス中断開始(タイマー)およびイベント・サブプロセス非中断開始(タイマー)が定義されたプロセス/サブプロセスの作業を強制終了した場合は,次のようになります。
-
プロセスまたはサブプロセス内に,ほかに実行中の業務ステップがあるとき,タイマーは受信待ちのままになります。
-
プロセスまたはサブプロセス内に,ほかに実行中の業務ステップがないとき,タイマーは強制終了します。
-
-
アドホック・サブプロセスの状態表示用の業務ステップ(業務ステップ定義名「<アドホック・サブプロセスのBPMN要素名>_<アドホック・サブプロセスのBPMN要素ID>」)は,状態変更できません。状態変更しようとした場合は,例外(CIWStateException)が発生します。