Hitachi

uCosminexus Service Coordinator Interactive Workflow システム構築・運用ガイド


2.5.3 組み込み作業での案件の進み方

組み込み作業とは,CSCIWのAPIを組み合わせることで実現するような複雑な処理を1つの作業としてまとめたものです。組み込み作業は,通常の作業と同様にビジネスプロセスで定義できます。

CSCIWが提供している組み込み作業は,並列作業です。

組み込み作業の機能概要および案件実行時の動作について次に説明します。

〈この項の構成〉

(1) 機能および案件実行時の動作

並列作業は,案件の実行時に複数の作業を自動的に生成する作業です。並列作業をビジネスプロセスで定義する場合は,子作業(案件の実行時に生成される作業)と,子作業生成ルール(子作業を生成するためのルール)をあわせて定義します。

案件の実行時には,子作業生成ルールを評価して,子作業識別子のリストを取得します。リスト内の識別子を子作業名として,子作業が生成されます。

並列作業の概念(RDB検索の例)を次の図に示します。

図2‒35 並列作業の概念(RDB検索の例)

[図データ]

<説明>
  1. 並列作業の業務ステップが開始された場合,または設定されている発生条件が満たされた場合,並列作業が実行され,子作業生成ルールを評価します。

  2. 子作業生成ルールの記述内容に基づいて業務データベースが検索され,子作業識別子リストを取得します。

  3. 並列作業は,子作業識別子リストに対応させて子作業を生成します。

  4. 生成された子作業の動作は,通常の作業と同じです。また,並列作業の完了条件の評価タイミングも通常の作業と同じです。評価時に,完了条件が満たされた場合は,並列作業の状態が「実行済み」に遷移します。完了条件が満たされていない場合は,項番2.から項番4.の処理が繰り返されます。

子作業生成ルールが評価されるタイミング
  • 並列作業が実行された時点

  • 業務ステップの完了条件が偽に評価された時点

  • 並列作業の完了条件が偽に評価された時点

(2) 補足および注意事項

(a) 子作業生成ルールの種別

子作業生成ルールの種別に指定できるのは,「RDB検索」または「Javaオブジェクト呼び出し」のどちらかです。

(b) 識別子リストから子作業を生成するときの規則

  • リスト内の識別子が,生成済みの子作業の識別子と一致しない場合は,その識別子を持つ子作業を生成します。

  • リスト内の識別子が,生成済みの子作業の識別子と一致し,その子作業が実行中の場合は,子作業を生成しません。

  • リスト内の識別子が,生成済みの子作業の識別子と一致し,その子作業が完了している場合は,再度その識別子を持つ子作業を生成します。

  • リスト中に同一識別子が複数ある場合,その識別子を持つ子作業を1つだけ生成します。

  • リスト内の識別子が0件の場合は,子作業を生成しません。

(c) 子作業生成ルールを記述するときの注意事項

  • 子作業生成ルールは,その子作業生成ルールの適用時に,必要十分な識別子リストが作成されるように記述してください。子作業と識別子の対応が取れていない場合,不要に子作業が作成されるなどといったことが発生するためご注意ください。

  • 生成する子作業に完了条件を持たせている場合は,ユーザの判断なしに子作業が完了してしまうことがありますので,子作業生成ルールを記述する際は,子作業の動作を考慮して定義してください。

  • 生成する子作業の完了条件は,子作業生成ルールによる作業の発生と同時に成立しないように考慮して定義してください。同時に成立した場合,子作業の発生と完了が繰り返され,その状態が続くとCIWFatalException例外が発生します。

(d) 子作業名の長さについて

子作業生成ルールの評価によって返される子作業名の長さは,1バイト以上で,<SYSTEMID>_WORK_ITEMテーブルのNameカラムで定義したバイト数以内にしてください。範囲外の長さの子作業名が返された場合は,CIWTransitionFailedException例外が発生します。