サンプル・ルールセット

この項では、簡単な例でカスタム・ルーティングの動作を実装するルールの使用方法を説明します。費用請求の承認を管理するためのヒューマン・ワークフロー・タスクが作成されます。タスクの結果には、承認と却下があります。タスク定義には、ExpenseRequestペイロードの要素が含まれます。ExpenseRequestのフィールドの1つは、費用請求の総額です。タスクのルーティング・スリップは、単一参加者3人(assignee1assignee2assignee3)で構成されます。

デフォルトでは、タスクは各割当て先にルーティングされ、各割当て先ではタスクの承認または却下が選択されます。

このデフォルト動作のかわりに、次のように必要なルーティング動作を指定します。

  • 費用請求の総額が$100未満の場合は、参加者のいずれか1人の承認が必要です。それ以外の場合は、3人全員が承認する必要があります。

  • 参加者のいずれかが費用請求を却下した場合は、再評価のために前の参加者に費用請求を戻す必要があります。最初の参加者によって却下されると、費用請求は却下され完了としてマークされます。

次のルールを使用して、この動作を実装します。拡張ルーティング・ルールに対してルール・ディクショナリが生成されている場合、その拡張ルーティング・ルールはデフォルトのGO_FORWARD動作を実装するテンプレート・ルールを使用して作成されます。Oracle Business Rulesデザイナで「ルールのコピー」を右クリックして選択すると、このルールを編集し、テンプレート・ルールをコピーできます。

金額が$100より大きく、前の割当て先がタスクを承認した場合は、各割当て先に順番にタスクをルーティングするルールを指定する必要はありません。これは、ルールセットのルールがトリガーされない場合の戻り先のデフォルト動作となります。

反復設計の詳細は、Oracle SOA Suiteサンプルで使用可能なworkflow-106-IterativeDesignのサンプルを参照してください。