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