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