12.4.4 adhocCreateAndMakeTransitionAI(強制的に任意の業務ステップに遷移させるアドホック処理)
構文
boolean adhocCreateAndMakeTransitionAI( java.sql.Connection aDBConnection, CIWServer aCIWServer, java.lang.Integer aProcessInstanceID, java.lang.Integer aActivityInstanceID, java.lang.String aTargetActivityDefName, java.util.Collection<CIWBPMNProcessData<?>> aProcessDataCollection ) throws CIWFatalException, CIWTransientException, CIWTransitionFailedException, CIWStateException, CIWEntityNotExistException
機能
案件IDと業務ステップIDで指定された業務ステップを強制終了し,指定された業務ステップ定義にフローとは関係なく強制遷移します。また,指定されたプロセスデータを更新します。
変換前のタスク,イベントの種別に関係なく,どの業務ステップも遷移元と遷移先の対象とします。
引数
adhocCreateAndMakeTransitionAIの引数を次の表に示します。
項番 |
仮引数名 |
名称 |
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 |
aTargetActivityDefName |
業務ステップ定義名 |
in |
強制遷移先である業務ステップの業務ステップ定義名を指定します。 空文字列およびnullは指定できません。 業務ステップ定義名は「<名前>_id」形式※で指定します。 |
6 |
aProcessDataCollection |
プロセスデータのコレクション |
in |
プロセスデータを更新しない場合はnullを指定します。 |
- 注※
-
BPMN要素のname属性値とid属性値
戻り値
業務ステップの強制遷移を実行したかどうかを返します。
true:実行しました
false:業務ステップが強制遷移済みだったので実行しませんでした
強制遷移済みの条件は次の両方が成立した場合です。
-
指定された遷移元の業務ステップの状態が強制終了
-
指定された遷移先に実行開始不可,実行中,実行停止,遷移済み,または強制終了のどれかの状態の業務ステップが存在する
例外
adhocCreateAndMakeTransitionAIで発生する例外を次の表に示します。
項番 |
発生する例外 |
説明 |
---|---|---|
1 |
CIWFatalException |
処理を続行できない障害が発生した場合 |
2 |
CIWTransitionFailedException |
案件処理中にエラーが発生した場合 |
3 |
CIWTransientException |
一時的なエラーが発生した場合 |
4 |
CIWEntityNotExistException |
処理しようとしたオブジェクトが存在しない場合 |
5 |
CIWStateException |
状態や属性の変更に失敗した場合 |
注意事項
-
JDBCコネクションおよびCIWServerオブジェクトにnullを指定した場合は,例外(java.lang.IllegalArgumentException)が発生します。
-
JDBCコネクションとCIWServerオブジェクトが関連づけられていない場合の動作は保証しません。
-
案件ID,業務ステップID,または業務ステップ定義名にnullを指定した場合は,例外(java.lang.IllegalArgumentException)が発生します。
-
指定された案件IDと業務ステップIDの業務ステップが存在しない場合は,例外(CIWEntityNotExistException)が発生します。
-
強制遷移先に指定した業務ステップ定義が存在しない場合は,例外(CIWEntityNotExistException)が発生します。
-
強制遷移元の業務ステップの状態が「実行中」以外の場合は,例外(CIWStateException)が発生します。ただし,強制遷移元の業務ステップが「強制終了」状態でも,強制遷移先に指定した業務ステップ定義に「実行開始不可」「実行中」「実行停止」「遷移済」または「強制終了」のどれかの状態の業務ステップが存在する場合は,例外は発生しないでfalseが返されます。
-
境界中断(タイマー),境界非中断(タイマー),イベント・サブプロセス中断開始(タイマー)およびイベント・サブプロセス非中断開始(タイマー)が定義されたサブプロセスの中に遷移した場合は,タイマーは受信待ちになりません。
-
境界中断(タイマー),境界非中断(タイマー),イベント・サブプロセス中断開始(タイマー)およびイベント・サブプロセス非中断開始(タイマー)が定義されたサブプロセスの外に遷移した場合,次のようになります。
-
サブプロセス内に,ほかに実行中の業務ステップがあるとき,タイマーは受信待ちのままになります。
-
サブプロセス内に,ほかに実行中の業務ステップがないとき,タイマーは強制終了します。
-
-
サブプロセスに対する境界中断(タイマー)および境界非中断(タイマー),イベント・サブプロセス中断開始(タイマー)およびイベント・サブプロセス非中断開始(タイマー)の受信用の業務ステップを,遷移元または遷移先に指定できません。指定した場合は,例外(CIWStateException)が発生します。
-
サブプロセス(マルチインスタンス)の中の業務ステップを,遷移元または遷移先に指定できません。サブプロセス(マルチインスタンス)の中の業務ステップを指定した場合は,例外(CIWStateException)が発生します。
-
アドホック・サブプロセスの中の業務ステップを,遷移元または遷移先に指定できません。アドホック・サブプロセスの中の業務ステップを指定した場合は,例外(CIWStateException)が発生します。