Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド

11g リリース1 (11.1.1.6.2)

B61409-05(原本部品番号:E15176-09)

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

このガイドに記載されているリリース11.1.1.6.xの新機能

第I部 Oracle BPM Studioの概要

1 Oracle Business Process Management Suiteの概要

- 1.1 Oracle Business Process Management Suiteの概要

- 1.2 Oracle BPMのユーザー・ペルソナ

- 1.3 Oracle BPM Suiteのコンポーネント

- 1.3.1 プロセス・モデリングおよび実装

- 1.3.1.1 Oracle BPM Studio

- 1.3.1.2 Oracle Business Process Composer

- 1.3.1.3 Oracle Metadata Service(MDS)リポジトリ

- 1.3.1.4 Oracle BPMプロジェクト

- 1.3.2 Oracle BPMランタイム・コンポーネント

- 1.3.2.1 Oracle BPMエンジン

- 1.3.2.2 Oracle Human Workflow

- 1.3.2.3 Oracle Business Rules

- 1.3.2.4 Oracle WebLogic Application Server

- 1.3.2.5 Oracle Enterprise Manager

- 1.3.3 Oracle BPM Suiteプロセス参加者アプリケーション

- 1.3.3.1 Oracle Business Process Managementワークスペース

- 1.3.3.2 Oracle Business Process Managementプロセス・スペース

- 1.3.4 その他のOracle BPM Suiteのコンポーネント

- 1.3.4.1 プロセス分析

- 1.3.4.2 ガイド付きビジネス・プロセス

- 1.4 Oracle Business Process Analysis (BPA) Suite

- 1.5 アプリケーション開発ライフサイクルの概要

- 1.5.1 プロセス・モデリング

- 1.5.2 実装

- 1.5.3 デプロイメント

- 1.5.4 Oracle BPMランタイム

- 1.6 Oracle BPMのユース・ケース

- 1.6.1 ユース・ケース: BPM Studioを使用したプロジェクト・テンプレートの作成

- 1.6.2 ユース・ケース: BPM Studioを使用したプロセス・モデリングおよびアプリケーションのデプロイ

- 1.6.3 ユース・ケース: Business Process Composerを使用したプロセス・ブループリントの作成

- 1.6.4 ユース・ケース: Business Process Composerを使用したOracle Business Rulesの修正

- 1.6.5 ユース・ケース: Oracle BPA Suiteを使用したビジネス・プロセスのモデリング

2 ビジネス・プロセス設計の概要

- 2.1 Business Process Management Notation (BPMN)の概要

- 2.1.1 Business Process Management Notation (BPMN)の概要

- 2.1.2 ビジネス・プロセス

- 2.1.2.1 プロセス・インスタンス

- 2.1.2.2 プロセス・トークン

- 2.1.3 フロー・オブジェクト

- 2.1.3.1 タスク

- 2.1.3.2 イベント

- 2.1.3.3 ゲートウェイ

- 2.1.3.4 シーケンス・フロー

- 2.1.4 データ・オブジェクト

- 2.2 営業見積サンプル・プロジェクトの概要

- 2.2.1 営業見積サンプルの詳細

- 2.2.1.1 営業見積の開始

- 2.2.1.2 ビジネス実行確認の決定

- 2.2.1.3 見積の承認

- 2.2.1.4 承認結果

3 Oracle BPM Studioの概要

- 3.1 Oracle BPM Studioの概要

- 3.1.1 Oracle BPM Studioのユース・ケース

- 3.1.2 JDeveloperロールの概要

- 3.2 アプリケーション開発ライフサイクルの概要

- 3.2.1 モデリング、実装およびデプロイメントの概要

- 3.2.2 ワークフロー: アプリケーションのモデリング、実装およびデプロイ

- 3.2.3 ワークフロー: プロセス・ブループリントに基づいたアプリケーションの作成

- 3.2.4 ワークフロー: プロジェクト・テンプレートの作成

- 3.2.5 ワークフロー: Oracle BPM SuiteとOracle BPAとの統合

- 3.3 Oracle BPM Studioユーザー・インタフェースの概要

- 3.3.1 Oracle BPMのプロジェクト・ナビゲータ

- 3.3.2 アプリケーション・ナビゲータ

- 3.3.3 BPMNプロセス・エディタ

- 3.3.4 BPMNコンポーネント・パレット

- 3.3.5 プロパティ・インスペクタ

- 3.3.6 Oracle BPM MDSブラウザ

- 3.3.7 「構造」ビュー

- 3.3.8 「サムネイル」ビュー

- 3.3.9 「シミュレーション」ビュー

- 3.3.10 「ログ」ウィンドウ

- 3.3.11 「ドキュメント」ウィンドウ

第II部 Oracle BPM Studioの使用

4 プロジェクトおよびプロジェクト・テンプレートの使用

- 4.1 Oracle BPMプロジェクトの概要

- 4.1.1 プロジェクト・リソースの概要

- 4.1.2 Oracle BPMユーザー間でのプロジェクトの共有

- 4.2 プロジェクトの作成および使用

- 4.2.1 新規のプロジェクトを作成する方法

- 4.2.2 ファイル・システムからプロジェクトを開く方法

- 4.2.3 プロジェクトをエクスポートする方法

- 4.2.4 エクスポート済のプロジェクトをインポートする方法

- 4.2.5 プロジェクト・プリファレンスを編集する方法

- 4.3 プロジェクト・テンプレートの概要

- 4.3.1 編集ポリシーの概要

- 4.3.1.1 プロセス・レベルの編集ポリシー

- 4.3.1.2 アクティビティ編集ポリシー

- 4.3.2 プロジェクト・テンプレートでのデータ・オブジェクトおよび変数の使用

- 4.3.3 プロジェクト・テンプレートでのビジネス・カタログの使用

- 4.4 プロジェクト・テンプレートの使用

- 4.4.1 新規のプロジェクト・テンプレートを作成する方法

- 4.4.2 既存のBPMプロジェクトからプロジェクト・テンプレートを作成する方法

- 4.4.3 プロジェクト・テンプレートでプロセスの編集ポリシーを設定する方法

- 4.4.4 プロジェクト・テンプレートでアクティビティの編集ポリシーを設定する方法

- 4.5 Oracle BPM Metadata Service (MDS)リポジトリの使用

- 4.5.1 Oracle Metadata Service (MDS)リポジトリの概要

- 4.5.2 Oracle BPM Metadata Service (MDS)リポジトリの概要

- 4.5.3 Oracle BPM Metadata Serviceブラウザの概要

- 4.5.4 Oracle BPM Metadata Serviceリポジトリへの接続を構成する方法

- 4.5.5 Oracle BPM MDSリポジトリをリフレッシュする方法

- 4.5.6 プロジェクトまたはプロジェクト・テンプレートをOracle BPM MDSに公開する方法

- 4.5.7 Oracle BPM MDS内のプロジェクトをチェックアウトする方法

- 4.5.8 Oracle BPM MDS内のプロジェクトをロックまたはロック解除する方法

- 4.5.9 プロジェクトのMDSステータス情報を表示する方法

5 プロセスおよびプロセス・エディタの使用

- 5.1 プロセスを使用する前に

- 5.1.1 ビジネス・プロセスの概要

- 5.1.1.1 プロセスのタイプ

- 5.1.2 新しいビジネス・プロセスの作成方法

- 5.1.3 ビジネス・プロセスを開く方法

- 5.1.4 ビジネス・プロセスの削除方法

- 5.1.4.1 ビジネス・プロセスの削除に関する注意事項

- 5.1.5 プロセス・プリファレンスを編集する方法

- 5.2 プロセス・エディタの概要

- 5.3 プロセスの使用

- 5.3.1 プロセスをイメージとしてエクスポートする方法

- 5.3.2 プロセスでメッセージの強調表示レベルを変更する方法

- 5.3.3 プロセスでズーム・レベルを変更する方法

- 5.3.4 プロセスでレイアウト・プロパティを構成する方法およびグリッドを使用する方法

- 5.4 プロセス内でのフロー・オブジェクトの使用

- 5.4.1 コンポーネント・パレットからフロー・オブジェクトを追加する方法

- 5.4.2 プロセス・エディタ・ツールバーからフロー・オブジェクトを追加する方法

- 5.4.3 コンテキスト・メニューからフロー・オブジェクトを追加する方法

- 5.4.4 フロー・オブジェクト・プロパティを編集する方法

- 5.4.5 フロー・オブジェクトのエラーまたは警告を表示および修正する方法

- 5.4.6 フロー・オブジェクトをドラフトとしてマーク/マーク解除する方法

- 5.4.7 フロー・オブジェクトをコピーして貼り付ける方法

- 5.4.8 シーケンス・フローを追加および使用する方法

- 5.5 ドラフト・プロセスの使用

- 5.5.1 ドラフト・プロセスの概要

- 5.5.2 フロー・オブジェクトをドラフトとしてマークする方法

- 5.6 プロセスのドキュメント化

- 5.6.1 ドキュメント・エディタの概要

- 5.6.2 ドキュメントをプロセスに追加する方法

- 5.7 プロセス・モデルのインポートおよびエクスポート

- 5.7.1 Oracle BPMへのプロセス・モデルのインポート

- 5.7.2 Oracle TutorへのBPMNプロセスのエクスポート

第III部 プロセスのモデリング

6 Oracle BPMを使用したビジネス・プロセスのモデリング

- 6.1 スイムレーンを使用したプロセスの整理

- 6.1.1 ロールの概要

- 6.1.1.1 コンテキスト内のロール

- 6.1.2 スイムレーンの概要

- 6.1.2.1 コンテキスト内のスイムレーン

- 6.1.3 プロセスへのロールおよびスイムレーンの追加

- 6.1.4 Business Process ComposerとBPM Studioとの間でのロールの共有

- 6.1.5 更新タスクの概要

- 6.2 プロセスの開始点および終了点の定義

- 6.2.1 開始イベントと終了イベントの概要

- 6.2.1.1 プロセスの各種のパターンおよびサブプロセスのデフォルト開始イベント

- 6.2.1.2 プロセス・インスタンスのトリガー方法の定義

- 6.2.1.3 1プロセスでの複数の開始イベントの使用

- 6.2.1.4 1プロセスでの複数の終了イベントの使用

- 6.2.2 None開始イベントの概要

- 6.2.2.1 コンテキスト内のNone開始イベント

- 6.2.2.2 データ・アソシエーション

- 6.2.3 メッセージ開始イベントの概要

- 6.2.3.1 コンテキスト内のメッセージ開始イベント

- 6.2.3.2 プロセスの入力引数と出力引数の使用

- 6.2.4 シグナル開始イベントの概要

- 6.2.4.1 コンテキスト内のシグナル開始イベント

- 6.2.5 タイマー開始イベントの概要

- 6.2.6 None終了イベントの概要

- 6.2.6.1 コンテキストにおけるNone終了イベント

- 6.2.7 エラー終了イベントの概要

- 6.2.8 メッセージ終了イベントの概要

- 6.2.9 強制終了イベントの概要

- 6.3 プロセスへのユーザー相互作用の追加

- 6.3.1 ヒューマン・ワークフローの概要

- 6.3.1.1 ヒューマン・タスクの概要

- 6.3.2 ユーザー・タスクの概要

- 6.3.2.1 コンテキスト内のユーザー・タスク

- 6.3.2.2 対話型アクティビティの使用

- 6.3.2.3 プロジェクト・テンプレートでのユーザー・タスクの使用

- 6.3.3 手動タスクの概要

- 6.3.3.1 コンテキスト内の手動タスク

- 6.4 他のプロセスおよびサービスとの通信

- 6.4.1 サービス・タスクの概要

- 6.4.1.1 コンテキスト内のサービス・タスク

- 6.4.1.2 プロジェクト・テンプレートでの再使用可能なサービスの実装

- 6.4.2 通知タスクの概要

- 6.4.3 コール・アクティビティの概要

- 6.4.3.1 再使用可能なプロセス

- 6.4.3.2 再使用可能なプロセスをコールする際のコール・アクティビティの動作

- 6.4.4 送信タスクの概要

- 6.4.4.1 コンテキスト内の送信タスク

- 6.4.5 受信タスクの概要

- 6.4.5.1 コンテキスト内の受信タスク

- 6.4.5.2 受信タスクによるプロセスの開始

- 6.4.6 送信タスクおよび受信タスクを使用した、プロセス間の通信

- 6.4.7 メッセージ・スロー・イベントの概要

- 6.4.8 メッセージ・キャッチ・イベントの概要

- 6.4.9 メッセージのスローおよびキャッチを使用した、プロセス間の通信

- 6.5 Oracle Business Rulesを使用したビジネス・ロジックの追加

- 6.5.1 Oracle Business Rulesの概要

- 6.5.2 ビジネス・ルール・タスクの概要

- 6.5.2.1 コンテキスト内のビジネス・ルール・タスク

- 6.6 シーケンス・フローを使用したプロセスの制御

- 6.6.1 シーケンス・フローの概要

- 6.6.2 無条件シーケンス・フローの概要

- 6.6.3 条件シーケンス・フローの概要

- 6.6.4 デフォルト・シーケンス・フローの概要

- 6.7 ゲートウェイを使用したプロセス・フローの制御

- 6.7.1 ゲートウェイの概要

- 6.7.1.1 スプリットとマージのペア

- 6.7.2 排他ゲートウェイの概要

- 6.7.2.1 コンテキスト内の排他ゲートウェイ

- 6.7.2.2 排他ゲートウェイのスプリットとマージ

- 6.7.3 包含ゲートウェイの概要

- 6.7.3.1 包含ゲートウェイのスプリットとマージ

- 6.7.4 パラレル・ゲートウェイの概要

- 6.7.4.1 コンテキスト内のパラレル・ゲートウェイ

- 6.7.4.2 パラレル・ゲートウェイのスプリットとマージ

- 6.7.5 複合ゲートウェイの概要

- 6.7.6 Event-based Gatewayの概要

- 6.7.6.1 Event-based Gatewayを使用したプロセスの開始

- 6.8 中間イベントを使用したプロセス・フローの制御

- 6.8.1 中間イベントの概要

- 6.8.2 タイマー・キャッチ・イベントの概要

- 6.8.3 エラー・キャッチ・イベントの概要

- 6.9 サブプロセスを使用したプロセスの整理

- 6.9.1 サブプロセスとシーケンス・フロー

- 6.9.2 コンテキスト内のサブプロセス

- 6.9.3 ループ・サブプロセス

- 6.10 プロセス内のデータ・オブジェクトの値の変更

- 6.10.1 スクリプト・タスクの概要

- 6.10.1.1 コンテキスト内のスクリプト・タスク

- 6.11 測定マークを使用したプロセス・パフォーマンスの測定

- 6.11.1 プロセスへの測定マークの追加方法

- 6.12 ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの設定

- 6.12.1 ガイド付きビジネス・プロセスの概要

- 6.12.1.1 アクティビティ・ガイドおよびマイルストンの概要

- 6.12.2 ガイド付きビジネス・プロセスの使用

7 組織のモデリング

- 7.1 組織の概要

- 7.1.1 組織エディタの概要

- 7.2 ロールの概要

- 7.3 組織図の概要

- 7.3.1 組織単位の概要

- 7.3.2 カレンダの概要

- 7.3.3 休日の概要

- 7.4 ロールの使用

- 7.4.1 新規のロールを作成する方法

- 7.4.2 メンバーをロールに追加する方法

- 7.5 組織の使用

- 7.5.1 組織単位を作成する方法

- 7.5.2 カレンダを作成する方法

- 7.5.3 休日を作成する方法

8 プロセス設計の情報の処理

- 8.1 プロセス設計の情報の処理の概要

- 8.1.1 基本データ・オブジェクトと複合データ・オブジェクト

- 8.2 データ・オブジェクトの概要

- 8.2.1 データ・オブジェクトに対してサポートされているデータ型

- 8.2.2 デフォルト値

- 8.3 プロセス・データ・オブジェクトの使用

- 8.3.1 プロセス・データ・オブジェクトを追加する方法

- 8.3.2 プロセス・データ・オブジェクトを編集する方法

- 8.3.3 データ・オブジェクトを削除する方法

- 8.3.4 プロセス・データ・オブジェクトに値を割り当てる方法

- 8.4 アクティビティ・インスタンス属性の概要

- 8.5 アクティビティ・インスタンス属性の使用

- 8.6 サブプロセス・データ・オブジェクトの概要

- 8.7 サブプロセス・データ・オブジェクトの使用

- 8.7.1 サブプロセスへのデータ・オブジェクトの追加

- 8.7.2 サブプロセス内のデータ・オブジェクトの編集

- 8.7.3 サブプロセスからのデータ・オブジェクトの削除

- 8.8 プロジェクト・データ・オブジェクトの概要

- 8.8.1 ビジネス・インジケータ

- 8.8.2 プロジェクト・データ・オブジェクトに対してサポートされているデータ型

- 8.9 プロジェクト・データ・オブジェクトの使用

- 8.9.1 プロジェクト・データ・オブジェクトを追加する方法

- 8.9.2 プロジェクト・データ・オブジェクトを編集する方法

- 8.9.3 プロジェクト・データ・オブジェクトを削除する方法

- 8.9.4 プロジェクト・データ・オブジェクトに値を割り当てる方法

- 8.10 引数の概要

- 8.11 ネーミング規則

- 8.12 スコープおよびアクセス

- 8.13 データ・アソシエーションの概要

- 8.13.1 データ・アソシエーション・エディタの概要

- 8.14 変換の概要

- 8.15 変換の定義

- 8.15.1 変換を定義する方法

- 8.15.2 変換を定義した後の結果

9 BPAリポジトリからのBPMNプロセスのインポート

- 9.1 BPAリポジトリからのプロセスのインポートの概要

- 9.2 BPAプロジェクトからのBPMプロジェクトの作成

- 9.2.1 Oracle BPMから使用するためにBPAプロジェクトを構成する方法

- 9.2.2 BPAプロジェクトからBPMプロジェクトを作成する方法

- 9.2.3 BPAサーバーを追加する方法

- 9.2.4 BPAプロジェクトからBPMプロジェクトを作成した後の結果

- 9.3 更新されたBPAモデルからの変更内容のマージ

- 9.3.1 更新されたBPAモデルから変更内容をマージする方法

- 9.3.2 更新されたBPAモデルから変更内容をマージした後の結果

第IV部 プロセス・パフォーマンスの分析

10 Oracle BPMでのシミュレーションの実行

- 10.1 Oracle BPMでのシミュレーションの実行の概要

- 10.1.1 シミュレーション・モデルおよびシミュレーション定義

- 10.2 シミュレーション・モデルの作成

- 10.2.1 ビジネス・プロセスからシミュレーション・モデルを作成する方法

- 10.2.2 シミュレーション・モデルを作成および構成する方法

- 10.3 境界イベントの構成

- 10.4 シミュレーション定義の作成

- 10.4.1 シミュレーション定義を作成する方法

- 10.5 シミュレーションの実行

- 10.5.1 シミュレーションを実行する方法

- 10.5.2 シミュレーションを実行した後の結果

- 10.5.3 「シミュレーション」ビューの理解

- 10.6 シミュレーション結果の分析

- 10.6.1 チャートを使用してシミュレーション結果を分析する方法

- 10.6.2 シミュレーション・レポートを生成する方法

- 10.6.3 シミュレーション・レポートを生成した後の結果

11 プロセス分析の使用

- 11.1 プロセス分析の概要

- 11.1.1 「プロセス・パフォーマンス」および「アクティビティ・パフォーマンス」メトリック

- 11.1.2 「ワークロード」メトリック

- 11.1.3 ヒューマン・リソース・メトリック

- 11.2 一般的なプロセス分析ワークフロー

- 11.3 サンプリング・ポイントを生成するためのプロジェクト、プロセスおよびアクティビティの構成

- 11.3.1 プロジェクトのサンプリング・ポイント生成を構成する方法

- 11.3.2 サンプリング・ポイントを生成するようにプロジェクトを構成した後の結果

- 11.3.3 プロセスのサンプリング・ポイント生成を構成する方法

- 11.3.4 プロセスのサンプリング・ポイント生成を構成した後の結果

- 11.3.5 アクティビティのサンプリング・ポイント生成を構成する方法

- 11.3.6 アクティビティに対してサンプリング・ポイントを構成した後の結果

- 11.4 プロジェクトへのビジネス・インジケータの追加

- 11.4.1 ビジネス・インジケータをプロジェクトに追加する方法

- 11.4.2 ビジネス・インジケータをプロセスに追加した後の結果

- 11.5 プロセスへの測定マークの追加

- 11.5.1 単一測定マークをプロセスに追加する方法

- 11.5.2 単一測定をプロセスに追加した後の結果

- 11.5.3 測定マークを使用してプロセス・セクション内でビジネス・インジケータを測定する方法

- 11.5.4 測定マークを使用してプロセス・セクション内でビジネス・インジケータを測定した結果

- 11.6 プロセス内のアクティビティへのカウンタの追加

- 11.6.1 プロセス内のアクティビティにカウンタ・マークを追加する方法

- 11.6.2 プロセス内のアクティビティにカウンタ・マークを追加した後の結果

- 11.6.3 カウンタ・マークを削除する方法

- 11.6.4 カウンタ・マークを削除した後の結果

- 11.7 分析ビュー識別子の定義

- 11.7.1 分析ビュー識別子の定義方法

- 11.8 プロジェクト内でのキューブ生成の構成

- 11.8.1 BPMプロセス・キューブ

- 11.8.2 プロジェクト内でBPMプロセス・キューブ生成を構成する方法

- 11.8.3 プロジェクト内でBPMプロセス・キューブを有効にした後の結果

- 11.9 プロジェクト内でのOracle BAMの有効化

- 11.9.1 プロジェクト内でOracle BAMを有効化する方法

- 11.9.2 Oracle BAMを有効化した後の結果

第V部 ビジネス・コンポーネントの使用

12 ビジネス・カタログの使用

- 12.1 ビジネス・カタログの概要

- 12.1.1 非合成コンポーネント

- 12.1.2 合成コンポーネント

- 12.1.3 ビジネス・カタログへのコンポーネントの追加

- 12.1.4 モジュールを使用したビジネス・コンポーネントの編成

- 12.1.4.1 事前定義済モジュール

- 12.2 新規モジュールの追加

- 12.2.1 新規のモジュールを追加する方法

- 12.2.2 新規のモジュールを追加した後の結果

- 12.3 モジュールの削除

- 12.3.1 モジュールを削除する方法

- 12.3.2 モジュールを削除した後の結果

- 12.4 合成タイプのカスタマイズ

- 12.4.1 合成タイプをカスタマイズする方法

- 12.4.2 合成タイプをカスタマイズした後の結果

13 ビジネス・オブジェクトのモデリング

- 13.1 ビジネス・オブジェクトの概要

- 13.1.1 ビジネス・オブジェクトのタイプ

- 13.1.2 ビジネス・オブジェクトを使用したモデリングのメリット

- 13.1.3 ビジネス・オブジェクトのネーミング規則

- 13.2 ビジネス・オブジェクトの使用

- 13.2.1 ビジネス・オブジェクトを追加する方法

- 13.2.2 ビジネス・オブジェクトを追加した後の結果

- 13.2.3 ビジネス・オブジェクトを変更する方法

- 13.2.4 ビジネス・オブジェクトを削除する方法

- 13.2.5 ビジネス・オブジェクトを削除した後の結果

- 13.2.6 ビジネス・オブジェクトをドキュメント化する方法

- 13.2.7 ビジネス・オブジェクトをドキュメント化した後の結果

- 13.3 プロセス内でのビジネス・オブジェクトの使用

- 13.3.1 プロセス内でのビジネス・オブジェクトの使用方法

- 13.3.2 プロセス内でビジネス・オブジェクトを使用した後の結果

- 13.4 XMLスキーマ要素またはタイプに基づくビジネス・オブジェクトの追加

- 13.4.1 XMLスキーマ要素またはタイプに基づいてビジネス・オブジェクトを追加する方法

- 13.4.2 XMLスキーマ要素またはタイプに基づいてビジネス・オブジェクトを作成した後の結果

- 13.4.3 XMLスキーマをBPMプロジェクトに追加する方法

- 13.4.4 スキーマ・ファイルをプロジェクトに追加した後の結果

- 13.5 ビジネス・オブジェクト属性の概要

- 13.5.1 ビジネス・オブジェクト属性でサポートされるデータ型

- 13.5.2 ビジネス・オブジェクト属性のネーミング規則

- 13.6 ビジネス・オブジェクト属性の使用

- 13.6.1 ビジネス・オブジェクト属性を追加する方法

- 13.6.2 ビジネス・オブジェクト属性を削除する方法

- 13.6.3 ビジネス・オブジェクト属性をドキュメント化する方法

- 13.6.4 ビジネス・オブジェクト属性をドキュメント化した後の結果

- 13.7 ビジネス・オブジェクトの共有

- 13.7.1 ビジネス・オブジェクトのエクスポート方法

- 13.7.2 複数のビジネス・オブジェクトおよび例外のエクスポート方法

- 13.7.3 ファイルからのビジネス・オブジェクトのインポート方法

14 ヒューマン・タスクの使用

- 14.1 BPMのヒューマン・タスクの概要

- 14.2 Oracle BPMでのヒューマン・タスク・パターンの使用

- 14.3 更新タスクを使用したユーザー・タスクの更新

- 14.3.1 更新タスク操作

- 14.3.2 更新タスクを使用したユーザー・タスクの更新方法

- 14.3.3 更新タスクの構成方法

15 サービスおよび参照の使用

- 15.1 サービスおよび参照の概要

- 15.1.1 サービスの概要

- 15.1.2 参照の概要

- 15.1.3 コールバックの概要

- 15.2 Oracle BPMのサービス・アダプタの概要

- 15.3 Oracle BPMのOracleメディエータの概要

- 15.4 Oracle BPMのBPELプロセスの概要

- 15.5 Oracle BPMでのサービスの使用

- 15.6 Oracle BPMでの参照の使用

- 15.7 サービスおよび参照のカスタマイズ

- 15.7.1 サービスまたは参照のカスタマイズ方法

- 15.7.2 操作のカスタマイズ手順

- 15.7.3 サービスまたは参照のカスタマイズ時に行われる処理

16 ビジネス・ルールの使用

- 16.1 Oracle BPMのビジネス・ルールの概要

- 16.1.1 BPMNプロセスでのビジネス・ルールの使用

- 16.2 既存のビジネス・ルールのビジネス・ルール・タスクへの割当て

- 16.2.1 既存のビジネス・ルールのビジネス・ルール・タスクへの割当て手順

- 16.2.2 既存のビジネス・ルールのビジネス・ルール・タスクへの割当て時に行われる処理

- 16.2.3 ビジネス・ルール・タスクに関連付けられたジネス・ルールの編集方法

- 16.3 Oracle BPM Studioによるビジネス・ルールの作成

- 16.3.1 Oracle BPM Studioによるビジネス・ルールの作成手順

- 16.3.2 ビジネス・ルール・コンポーネント作成時の入力および出力引数の追加手順

- 16.3.3 ビジネス・ルール・コンポーネント作成時の拡張プロパティの構成手順

- 16.3.4 Oracle BPMによるビジネス・ルール・タスクの作成時に行われる処理

17 通知の送信

- 17.1 通知の概要

- 17.2 電子メール通知の送信

- 17.2.1 電子メール通知の送信方法

- 17.2.2 電子メール通知の「一般」プロパティの構成方法

- 17.2.3 電子メール通知の「コンテンツ」プロパティの構成方法

- 17.2.4 電子メール通知の「添付ファイル」プロパティの構成方法

- 17.2.5 電子メール通知の「ヘッダー」プロパティの構成方法

- 17.3 ユーザー通知の送信

- 17.3.1 ユーザー通知の送信方法

- 17.3.2 ユーザー通知の「一般」プロパティの構成方法

- 17.3.3 ユーザー通知プロパティの構成方法

- 17.4 SMS通知の送信

- 17.4.1 SMS通知の送信方法

- 17.4.2 SMS通知の「一般」プロパティの構成方法

- 17.5 音声通知の送信

- 17.5.1 音声通知の送信方法

- 17.5.2 音声通知の「一般」プロパティの構成方法

- 17.6 IM通知の送信

- 17.6.1 IM通知の送信方法

- 17.6.2 IM通知の「一般」プロパティの構成方法

18 BPMプロジェクトを使用したSOAコンポジットの使用

- 18.1 SOAコンポジットの概要

- 18.1.1 SOAコンポジットとSOAコンポーネント間の関係の理解

- 18.1.2 SOAコンポーネントの使用

- 18.1.3 SOAコンポジット内のBPMNプロセス

- 18.1.4 BPMNエラーがSOAコンポジットのステータスに与える影響

- 18.2 BPMプロジェクトでSOAコンポジットを開く

- 18.2.1 BPMプロジェクトでSOAコンポジットを開く方法

- 18.3 BPMプロジェクトでSOAコンポジットからBPMNプロセスを開く

- 18.3.1 BPMプロジェクトでSOAコンポジットからBPMNプロセスを開く方法

- 18.4 SOAコンポジット・エディタからのBPMNプロセスの追加

- 18.4.1 SOAコンポジット・エディタからBPMNプロセスを追加する方法

- 18.4.2 SOAコンポジット・エディタからのBPMNプロセスの追加時に行われる処理

- 18.5 SOAコンポジットを使用したBPELプロセスとの統合

- 18.6 BPELプロセスでのパートナ・リンクとしてのBPMNプロセスの追加

- 18.6.1 BPELプロセスでのパートナ・リンクとしてBPMNプロセスを追加する方法

- 18.6.2 BPELプロセスでのパートナ・リンクとしてのBPMNプロセスの追加時に行われる処理

- 18.7 Webサービスを使用したBPMNプロセスへの接続

- 18.8 BPMプロジェクトのビルド

- 18.8.1 BPMプロジェクトをビルドする方法

- 18.8.2 BPMプロジェクトをビルドした後の結果

第VI部 プロセス・フローの制御

19 プロセス・フローの制御

- 19.1 プロセス・フローの制御の概要

- 19.1.1 ゲートウェイ

- 19.1.2 タイマー・イベント

- 19.1.3 エラー

- 19.1.4 メッセージ・イベント

- 19.1.5 送信タスクおよび受信タスク

- 19.1.6 ループ・マーカー

- 19.1.7 マルチインスタンス・ループ・マーカー

- 19.2 サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要

- 19.2.1 ループ・マーカーの構成方法

- 19.2.2 マルチインスタンス・マーカーの構成方法

20 プロセスへの遅延、期限および時間ベース・サイクルの追加

- 20.1 タイマー・イベントの概要

- 20.2 プロセス・フローへの遅延の追加

- 20.2.1 プロセス・フローへの遅延の追加方法

- 20.2.2 プロセス・フローへの遅延の追加時に行われる処理

- 20.3 時間条件に基づいて起動するプロセスの設計

- 20.3.1 時間条件に基づいて起動するプロセスの設計方法

- 20.3.2 時間条件に基づいて起動するプロセスの設計時に行われる処理

- 20.4 アクティビティの期限の構成

- 20.4.1 アクティビティの期限の構成方法

- 20.4.2 アクティビティの期限の構成時に行われる処理

- 20.5 BPMNプロセスの期限の構成

- 20.5.1 BPMNプロセスの期限の構成方法

- 20.5.2 BPMNプロセスの期限の構成時に行われる処理

- 20.6 追加アクティビティの実行

- 20.6.1 アクティビティ実行中の追加アクティビティの実行方法

- 20.6.2 アクティビティ実行中の追加アクティビティの実行時に行われる処理

- 20.6.3 プロセス実行中の追加アクティビティの実行方法

- 20.6.4 プロセス実行中の追加アクティビティの実行時に行われる処理

- 20.7 タイマー・イベントの構成

- 20.7.1 特定の日付および時間を使用するタイマー・イベントの構成方法

- 20.7.2 特定の日付および時間を使用するタイマー・イベントの構成時に行われる処理

- 20.7.3 間隔を使用するタイマー・イベントの構成方法

- 20.7.4 間隔を使用するタイマー・イベントの構成時に行われる処理

21 エラーの処理

- 21.1 エラー処理の概要

- 21.1.1 例外を使用したエラーの処理

- 21.2 ビジネス例外の使用

- 21.3 システム例外の使用

- 21.4 例外の一般的なフロー

- 21.4.1 タスクでスローされた例外の一般的なフロー

- 21.4.2 サブプロセス内の例外の一般的なフロー

- 21.4.3 再使用可能なプロセス内の例外の一般的なフロー

- 21.5 ビジネス・プロセスでの例外の処理

- 21.5.1 境界エラー・キャッチ・イベントを使用した例外処理の方法

- 21.5.2 境界キャッチ・イベントを使用した例外処理時に行われる処理

- 21.5.3 イベント・サブプロセスを使用した例外処理の方法

- 21.5.4 イベント・サブプロセスを使用した例外処理時に行われる処理

- 21.5.5 エラー・イベントを構成してビジネス例外を捕捉する方法

- 21.5.6 キャッチ・イベントを構成してシステム例外を捕捉する方法

- 21.6 サブプロセスまたは再使用可能なプロセスでの例外のスロー

- 21.6.1 例外をスローする方法

- 21.6.2 例外のスロー時に行われる処理

- 21.6.3 ビジネス例外の作成方法

- 21.6.4 ビジネス例外の作成時に行われる処理

- 21.6.5 ビジネス例外でのErrorInfo属性の構成方法

- 21.7 サブプロセスでの例外の処理

- 21.8 メッセージ・イベントを使用したピア・プロセスのエラー処理

- 21.8.1 メッセージ・イベントを使用してピア・プロセス内でエラーを処理する方法

- 21.8.2 メッセージ・イベントを使用してピア・プロセスでエラー処理をした後の結果

- 21.9 BPMプロセスでのフォルト・ポリシーの処理

- 21.9.1 BPMプロセスでフォルト・ポリシーを処理する方法

- 21.9.2 例外を使用したフォルト・ポリシー・エラー処理時に行われる処理

22 他のBPMNプロセスおよびサービスとの通信

- 22.1 他のBPMNプロセスおよびサービスとの通信の概要

- 22.1.1 同期および非同期操作の概要

- 22.2 メッセージ・イベントを使用した他のBPMNプロセスおよびサービスとの通信

- 22.3 メッセージ・イベントを使用した非同期サービスおよび非同期BPMNプロセスの起動

- 22.3.1 メッセージ・イベントを使用した非同期サービス操作の起動方法

- 22.3.2 メッセージ・イベントを使用した非同期サービスのコールバック操作の受信方法

- 22.3.3 メッセージ・イベントを使用した非同期サービス操作の起動時に行われる処理

- 22.3.4 メッセージ・イベントを使用した非同期BPMNプロセス操作の起動方法

- 22.3.5 メッセージ・イベントを使用した非同期BPMNプロセスのコールバック操作の起動方法

- 22.3.6 メッセージ・イベントを使用した非同期BPMNプロセスの起動時に行われる処理

- 22.4 境界イベントとして構成されたメッセージ・イベントの使用

- 22.5 サービス・タスクを使用したサービスおよびBPMNプロセスの同期操作の起動

- 22.5.1 サービス・タスクを使用した同期サービス操作の起動方法

- 22.5.2 サービス・タスクを使用した同期サービス操作の起動時に行われる処理

- 22.5.3 サービス・タスクを使用した同期BPMNプロセス操作の起動方法

- 22.5.4 サービス・タスクを使用した同期BPMNプロセス操作の起動時に行われる処理

- 22.6 送信および受信タスクを使用した他のBPMNプロセスおよびサービスとの通信

- 22.7 送信および受信タスクを使用した非同期サービスおよび非同期BPMNプロセスの起動

- 22.7.1 送信タスクを使用した非同期サービス操作の起動方法

- 22.7.2 受信タスクを使用した非同期サービスのコールバック操作の起動方法

- 22.7.3 送信および受信タスクを使用した非同期サービスの起動時に行われる処理

- 22.7.4 送信タスクを使用した非同期BPMNプロセス操作の起動方法

- 22.7.5 受信タスクを使用した非同期BPMNプロセスのコールバック操作の起動方法

- 22.7.6 送信および受信タスクを使用した非同期BPMNプロセスの起動時に行われる処理

- 22.8 コール・アクティビティを使用したプロセス起動の概要

- 22.9 コール・アクティビティを使用したプロセスの起動

- 22.9.1 コール・アクティビティを使用してプロセスを起動する方法

- 22.10 シグナル・イベントを使用したプロセス間の通信の概要

- 22.11 シグナル・イベントを使用したプロセス間の通信

- 22.11.1 複数のプロセスへのシグナルのブロードキャスト方法

- 22.11.2 シグナルのブロードキャスト時に行われる処理

- 22.11.3 特定のシグナルに反応するプロセスの構成方法

- 22.11.4 特定のシグナルに反応するプロセスの構成時に行われる処理

23 プロセス・インタフェースの定義

- 23.1 プロセス・インタフェースの定義

- 23.2 メッセージ・イベントを使用したBPMNプロセス・インタフェースの定義

- 23.2.1 メッセージ・イベントを使用したBPMNプロセスのコールバック・インタフェースの定義

- 23.3 メッセージ・イベントを使用したBPMNプロセス内の非同期操作の定義

- 23.3.1 メッセージ・イベントを使用した、BPMNプロセスの開始操作を非同期として構成する方法

- 23.3.2 メッセージ・イベントを使用したコールバック操作の定義方法

- 23.3.3 メッセージ・イベントを使用した、BPMNプロセスの開始操作を非同期として構成するときに行われる処理

- 23.3.4 中間メッセージ・イベントを使用したBPMNプロセス・インタフェースへの非同期操作の追加方法

- 23.3.5 メッセージ・イベントを使用したBPMNプロセス・インタフェースへの非同期操作の追加時に行われる処理

- 23.4 メッセージ・イベントを使用したBPMNプロセス・インタフェースの同期操作の定義

- 23.4.1 メッセージ・イベントを使用した、BPMNプロセスの開始操作を同期として構成する方法

- 23.4.2 同期プロセスの終了イベントの構成方法

- 23.4.3 メッセージ・イベントを使用した、BPMNプロセスの開始操作を同期として構成するときに行われる処理

- 23.5 ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義

- 23.5.1 ビジネス・カタログのインタフェースを使用して、メッセージ開始およびキャッチ・イベントを使用するBPMNプロセス・インタフェースの操作を定義する方法

- 23.5.2 メッセージ・イベントを使用するビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成する方法

- 23.5.3 操作の定義にビジネス・カタログのインタフェースを使用したときに行われる処理

- 23.6 送信および受信タスクを使用したBPMNプロセス・インタフェースの定義

- 23.6.1 送信タスクを使用したBPMNプロセスのコールバック・インタフェースの定義

- 23.7 送信および受信タスクを使用した非同期プロセス操作の定義

- 23.7.1 送信および受信タスクを使用した非同期プロセス操作の定義方法

- 23.7.2 受信タスクを使用したプロセス・インタフェースへの非同期プロセス操作の追加方法

- 23.7.3 送信タスクを使用したコールバック・プロセス操作の定義方法

- 23.7.4 送信および受信タスクを使用した非同期操作の定義時に行われる処理

- 23.8 送信および受信タスクを使用したBPMNプロセス内の同期操作の定義

- 23.8.1 送信および受信タスクを使用した、プロセス操作を同期として定義する方法

- 23.8.2 送信および受信タスクを使用した同期操作の定義時に行われる処理

- 23.9 ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義

- 23.9.1 ビジネス・カタログのインタフェースを使用して、送信および受信タスクを使用するBPMNプロセス・インタフェースの操作を定義する方法

- 23.9.2 送信および受信タスクを使用するビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成する方法

- 23.9.3 操作の定義にビジネス・カタログのインタフェースと送信および受信タスクを使用したときに行われる処理

- 23.10 プロセスの入力および出力の定義

- 23.10.1 BPMNプロセスへの入力および出力引数の追加手順

- 23.10.2 BPMNプロセスの入力および出力引数の編集手順

- 23.10.3 BPMNプロセスの入力または出力引数の削除手順

24 相関を使用したビジネス・プロセスの通信

- 24.1 相関の概要

- 24.2 相関のコンポーネントについて

- 24.3 一般的な設計ワークフロー

- 24.4 BPMN要素の相関の定義

- 24.4.1 フロー・オブジェクトの相関を定義する方法

- 24.4.2 簡易モードを使用して相関を定義する方法

- 24.4.3 拡張モードを使用して相関を定義する方法

- 24.5 相関キーの作成

- 24.5.1 相関キーを作成する方法

- 24.5.2 相関キーを構成する方法

25 会話の定義

- 25.1 会話の概要

- 25.1.1 デフォルトの会話の定義

- 25.2 様々なタイプの会話について

- 25.3 会話の作成

- 25.3.1 会話を作成する方法

- 25.3.2 プロジェクトのデフォルトの会話の変更

- 25.4 BPMN要素の会話の定義

- 25.4.1 BPMN要素の会話を定義する方法

- 25.4.2 BPMN要素の会話を定義した後の結果

- 25.5 コラボレーション・ダイアグラムの表示

- 25.5.1 コラボレーション・ダイアグラムを表示する方法

- 25.5.2 コラボレーションを非表示にする方法

- 25.5.3 コラボレーションを表示する方法

26 式の記述

- 26.1 Oracle BPMでの式の概要

- 26.2 条件シーケンス・フローでの条件の記述

- 26.2.1 条件シーケンス・フローの実装方法

- 26.3 複合ゲートウェイでの式の記述

- 26.3.1 複合ゲートウェイの実装方法

- 26.4 タイマー・イベントでの式の記述

- 26.4.1 タイマー・イベントでの式の使用方法

- 26.5 データ・アソシエーションでの式の記述

- 26.5.1 データ・アソシエーションでの式の使用方法

- 26.6 サブプロセス内のループ・マーカーおよびマルチインスタンス・マーカーでの条件の記述

- 26.6.1 ループ・マーカーの構成方法

- 26.6.2 マルチインスタンス・マーカーの構成方法

- 26.7 シンプルな式ビルダーを使用した式および条件の記述

- 26.7.1 式内のデータ・オブジェクトの使用方法

- 26.7.2 式内の関数の使用方法

- 26.8 シンプルな式ビルダーでサポートされている演算子

- 26.8.1 演算子の優先順位

- 26.9 シンプルな式ビルダーでサポートされている関数

- 26.9.1 文字列関数

- 26.9.1.1 length

- 26.9.1.2 連結

- 26.9.1.3 contains

- 26.9.1.4 startsWith

- 26.9.2 数値関数

- 26.9.2.1 floor

- 26.9.2.2 ceil

- 26.9.2.3 round

- 26.9.2.4 abs

- 26.9.3 日付/時刻関数

- 26.9.3.1 now

- 26.9.3.2 加算

- 26.9.3.3 減算

- 26.9.3.4 year

- 26.9.3.5 month

- 26.9.3.6 day

- 26.9.3.7 hours

- 26.9.3.8 minutes

- 26.9.3.9 seconds

- 26.9.3.10 timezone

- 26.10 XPath式ビルダーを使用した式の記述

- 26.10.1 XPath式への変数の追加方法

- 26.10.2 XPath式内の関数の使用方法

- 26.11 配列の使用

- 26.11.1 配列内の要素の属性へのアクセス

- 26.11.2 配列の長さの取得

- 26.12 リテラルの使用

- 26.12.1 文字列リテラルの使用

- 26.12.2 時間リテラルの使用

- 26.12.3 時間隔リテラルの使用

- 26.12.4 配列リテラルの使用

- 26.13 XPath BPM拡張関数

- 26.13.1 getActivityInstanceAttribute

- 26.13.2 getDataInput

- 26.13.3 getDataObject

- 26.13.4 getDataOutput

- 26.13.5 getGatewayInstanceAttribute

- 26.13.6 getProcessInstanceAttribute

第VII部 ユーザー相互作用コンポーネントの使用

27 ヒューマン・ワークフローの開始

- 27.1 ヒューマン・ワークフローの概要

- 27.2 ヒューマン・ワークフローの概要

- 27.2.1 設計時および実行時の概念の概要

- 27.2.1.1 タスクの割当ておよびルーティング

- 27.2.1.2 静的、動的およびルールベースのタスク割当て

- 27.2.1.3 タスクのステークホルダ

- 27.2.1.4 タスク期限

- 27.2.1.5 通知

- 27.2.1.6 タスク・フォーム

- 27.2.1.7 拡張概念

- 27.2.1.8 レポートおよび監査証跡

- 27.2.2 ヒューマン・ワークフローの設計ステージの概要

- 27.3 ヒューマン・ワークフロー機能の概要

- 27.3.1 ヒューマン・ワークフローのユースケース

- 27.3.1.1 ユーザーまたはロールへのタスクの割当て

- 27.3.1.2 様々な参加者タイプの使用

- 27.3.1.3 エスカレーション、有効期限および委任

- 27.3.1.4 自動割当ておよび委任

- 27.3.1.5 タスク・コンテンツに基づいたユーザーの動的割当て

- 27.4 ヒューマン・ワークフロー・アーキテクチャの概要

- 27.4.1 ヒューマン・ワークフロー・サービス

- 27.4.2 ヒューマン・タスクの使用

- 27.4.3 サービス・エンジン

28 Oracle BPMでのヒューマン・タスクの設計

- 28.1 Oracle BPMでのヒューマン・タスクの設計の概要

- 28.1.1 一般的な設計ワークフロー

- 28.2 Oracle BPM Studioによるヒューマン・タスクの作成

- 28.2.1 Oracle BPM Studioによるヒューマン・タスクの作成手順

- 28.2.2 ヒューマン・タスクの結果の構成方法

- 28.2.3 ヒューマン・タスクへのパラメータの追加方法

- 28.2.4 ヒューマン・タスクの結果ターゲットの構成方法

- 28.2.5 Oracle BPM Studioによるヒューマン・タスクの作成時に行われる処理

- 28.3 Oracle BPM Studioからのヒューマン・タスクの編集

- 28.3.1 ユーザー・タスクのプロパティ・ダイアログを使用したヒューマン・タスクの編集方法

- 28.4 SOAコンポジット・エディタによるヒューマン・タスクの作成

- 28.4.1 SOAコンポジット・エディタからのヒューマン・タスクの作成方法

- 28.4.2 SOAコンポジット・エディタからのヒューマン・タスクの作成時に行われる処理

- 28.5 既存のヒューマン・タスクを使用したユーザー・タスクの実装

- 28.5.1 既存のヒューマン・タスクを使用したユーザー・タスクの実装方法

- 28.5.2 既存のヒューマン・タスクを使用したユーザー・タスクの実装時に行われる処理

- 28.5.3 プロセス・ペイロードをヒューマン・タスク・ペイロードに関連付ける方法

- 28.6 ヒューマン・タスク・エディタを使用したヒューマン・タスクの編集

- 28.6.1 ヒューマン・タスク・エディタを使用したヒューマン・タスクの編集方法

- 28.7 ヒューマン・タスク・エディタを使用したヒューマン・タスクの構成

- 28.7.1 通知の受信者の電子メール・アドレスを指定する方法

- 28.7.2 タスクの添付を格納するようにOracle UCMリポジトリを構成する方法

29 ヒューマン・タスクの構成

- 29.1 ヒューマン・タスク・エディタのセクションへのアクセス

- 29.1.1 ヒューマン・タスク・エディタのセクションへのアクセス方法

- 29.2 タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストの指定

- 29.2.1 タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストの指定方法

- 29.2.2 タスクのタイトルの指定方法

- 29.2.3 タスクの説明の指定方法

- 29.2.4 タスクの結果の指定方法

- 29.2.5 タスク優先度の指定方法

- 29.2.6 タスク・カテゴリの指定方法

- 29.2.7 タスク所有者の指定方法

- 29.2.7.1 ユーザー・ディレクトリまたはアプリケーション・ロールのリストを介したタスク所有者の静的な指定

- 29.2.7.2 XPath式によるタスク所有者の動的な指定

- 29.2.8 アプリケーション・コンテキストの指定方法

- 29.3 タスク・ペイロード・データ構造の指定方法

- 29.3.1 タスク・ペイロード・データ構造の指定方法

- 29.4 タスク参加者の割当て

- 29.4.1 ステージ名を指定してパラレルおよび順次ブロックを追加する方法

- 29.4.2 タスク参加者の割当て方法

- 29.4.3 単一参加者タイプの構成方法

- 29.4.3.1 単一タスク参加者リストの作成

- 29.4.3.2 タスクの操作に対する時間制限の指定

- 29.4.3.3 タスクへの他の参加者の招待

- 29.4.3.4 タスク参加者のバイパス

- 29.4.4 パラレル参加者タイプの構成方法

- 29.4.4.1 投票結果の指定

- 29.4.4.2 パラレル・タスク参加者リストの作成

- 29.4.4.3 タスクの操作に対する時間制限の指定

- 29.4.4.4 タスクへの他の参加者の招待

- 29.4.4.5 タスク参加者のバイパス

- 29.4.5 シリアル参加者タイプの構成方法

- 29.4.5.1 シリアル・タスク参加者リストの作成

- 29.4.5.2 タスクの操作に対する時間制限の指定

- 29.4.5.3 タスクへの他の参加者の招待

- 29.4.5.4 タスク参加者のバイパス

- 29.4.6 FYI参加者タイプの構成方法

- 29.4.6.1 FYIタスク参加者リストの作成

- 29.5 ルーティング・ポリシーの選択

- 29.5.1 指定した順序でタスクを全参加者にルーティングする方法

- 29.5.1.1 全参加者による他の参加者の招待の許可

- 29.5.1.2 他の参加者へのタスクのルーティングの停止

- 29.5.1.3 パラレル・サブタスクでの早期完了の有効化

- 29.5.1.4 早期完了するサブタスクの親サブタスクの完了

- 29.5.2 ビジネス・ルールを使用した詳細タスク・ルーティングの指定方法

- 29.5.2.1 ビジネス・ルールを使用した詳細タスク・ルーティングの概要

- 29.5.2.2 ファクト

- 29.5.2.3 アクション・タイプ

- 29.5.2.4 サンプル・ルールセット

- 29.5.2.5 リンク・ディクショナリのサポート

- 29.5.2.6 拡張ルーティング・ルールの作成

- 29.5.3 外部ルーティングの使用方法

- 29.5.4 エラー割当て先の構成方法

- 29.6 多言語設定とスタイルシートの指定

- 29.6.1 添付ファイルとしてのWordMLスタイルシートとその他のスタイルシートの指定方法

- 29.6.2 多言語設定の指定方法

- 29.7 タスクのエスカレート、期限更新または終了

- 29.7.1 エスカレーションおよび有効期限ポリシーの概要

- 29.7.2 期限切れがないポリシーの指定方法

- 29.7.3 期限切れがあるポリシーの指定方法

- 29.7.4 有効期限ポリシー期間の延長方法

- 29.7.5 タスク・ポリシーのエスカレート方法

- 29.7.6 エスカレーション・ルールの指定方法

- 29.7.7 期日の指定方法

- 29.8 参加者通知プリファレンスの指定

- 29.8.1 受信者へのタスク・ステータス変更の通知方法

- 29.8.2 通知メッセージの編集方法

- 29.8.3 リマインダの設定方法

- 29.8.4 キャラクタ・セットのエンコーディングの変更方法

- 29.8.5 詳細を除く通知をセキュア化する方法

- 29.8.6 通知でのOracle BPM Worklist URLの表示方法

- 29.8.7 電子メール・メッセージをアクション可能にする方法

- 29.8.8 電子メール通知によるタスクの添付ファイルの送信方法

- 29.8.9 グループおよびアプリケーション・ロールへの電子メール通知の送信方法

- 29.8.10 通知ヘッダーのカスタマイズ方法

- 29.8.11 通知の受信者の電子メール・アドレスを指定する方法

- 29.9 タスク・コンテンツへのアクセス・ポリシーとタスク・アクションの指定

- 29.9.1 タスク・コンテンツへのアクセス・ポリシーの指定方法

- 29.9.1.1 アクセス・ルールの概要

- 29.9.1.2 タスク・コンテンツの操作に対するユーザー権限の指定

- 29.9.1.3 タスクの操作に対するアクションの指定

- 29.9.2 ワークフロー・デジタル署名ポリシーの指定方法

- 29.9.2.1 認証局の指定

- 29.10 タスク割当てに対する制限の指定

- 29.10.1 タスク割当てに対する制限の指定方法

- 29.11 Javaコールバックまたはビジネス・イベント・コールバックの指定

- 29.11.1 タスク・ステータスのコールバック・クラスの指定方法

- 29.11.1.1 Javaコールバックの指定

- 29.11.1.2 ビジネス・イベント・コールバックの指定

- 29.11.2 BPELコールバックのタスクとルーティング・カスタマイズの指定方法

- 29.11.3 BPELコールバックを無効にする方法

- 29.12 Oracle Enterprise Content Managementでのドキュメントの格納

- 29.12.1 タスクの添付を格納するようにOracle UCMリポジトリを構成する方法

30 ガイド付きビジネス・プロセスの使用

- 30.1 ガイド付きビジネス・プロセスの概要

- 30.1.1 ガイド付きビジネス・プロセスのデザインタイム・アーキテクチャ

- 30.1.2 ガイド付きビジネス・プロセスのコンポーネント

- 30.1.3 ガイド付きビジネス・プロセスのランタイム・アーキテクチャ

- 30.1.3.1 クライアント層

- 30.1.3.2 ビジネス・ロジック層

- 30.1.3.3 データ層

- 30.2 ガイド付きビジネス・プロセスのユース・ケース

- 30.2.1 オンラインの公共部門のフォーム処理

- 30.2.2 オンラインのローン申込みプロシージャ

- 30.3 ガイド付きビジネス・プロセスの使用の標準およびガイドライン

- 30.4 ガイド付きビジネス・プロセスの開発の一般的なフロー

- 30.5 ガイド付きビジネス・プロセスの開発の概要

- 30.6 BPMNガイド付きビジネス・プロセスの開発

- 30.6.1 BPMNガイド付きビジネス・プロセスを開発する方法

- 30.6.2 BPMNガイド付きビジネス・プロセスの開発時に行われる処理

- 30.6.3 新規マイルストンをガイド付きビジネス・プロセスに追加する方法

- 30.6.4 マイルストンのガイド付きビジネス・プロセスへの追加時に行われる処理

- 30.6.5 ユーザー・タスクのマイルストンへの追加方法

- 30.6.6 ユーザー・タスクのマイルストンへの追加時に行われる処理

- 30.6.7 ユーザー・タスクの別のマイルストンへの移動方法

- 30.6.8 ユーザー・タスクの別のマイルストンへの移動時に行われる処理

- 30.6.9 BPMNガイド付きビジネス・プロセスのマイルストンを順序付けする方法

- 30.6.10 ガイド付きビジネス・プロセスのマイルストンを順序付けするときに行われる処理

- 30.6.11 ガイド付きビジネス・プロセスからタスクを削除する方法

- 30.6.12 ガイド付きビジネス・プロセスからのタスクの削除時に行われる処理

- 30.6.13 マイルストンの削除方法

- 30.6.14 マイルストンの削除時に行われる処理

- 30.6.15 オプション・タスクの構成方法

- 30.6.16 オプション・タスクの構成時に行われる処理

- 30.6.17 BPMNガイド付きビジネス・プロセスのパラレル・タスク・フローを構成する方法

- 30.6.18 BPMNガイド付きビジネス・プロセスでタスク・フローを分岐する方法

- 30.6.19 ブロックされたアイコンを表示するタスクの構成方法

- 30.6.20 ブロックされたアイコンおよびメッセージを表示するタスクの構成時に行われる処理

- 30.6.21 ガイド付きビジネス・プロセスのアイコンを構成する方法

- 30.6.22 ガイド付きビジネス・プロセスのアイコンの構成時に行われる処理

- 30.6.23 マイルストンのアイコンを構成する方法

- 30.6.24 マイルストンのアイコンの構成時に行われる処理

- 30.6.25 ガイド付きビジネス・プロセスの表示モードを構成する方法

- 30.6.26 ガイド付きビジネス・プロセスの表示モードの構成時に行われる処理

- 30.6.27 マイルストンの表示モードを構成する方法

- 30.6.28 マイルストンの表示モードの構成時に行われる処理

- 30.6.29 ユーザー・タスクの表示モードを構成する方法

- 30.6.30 ユーザー・タスクの表示モードの構成時に行われる処理

- 30.6.31 ガイド付きビジネス・プロセスのタスク・アクセス・モードを構成する方法

- 30.6.32 ガイド付きビジネス・プロセスのタスク・アクセス・モードの構成時に行われる処理

- 30.6.33 BPMNガイド付きビジネス・プロセスをローカライズする方法

- 30.6.34 マイルストンのローカライズ方法

- 30.6.35 ユーザー・タスクのローカライズ方法

- 30.6.36 ガイド付きビジネス・プロセスのローカライズ時に行われる処理

- 30.7 アクティビティ・ガイド・プロパティの構成

- 30.8 ガイド付きビジネス・プロセスのOracle Weblogic Serverへのデプロイ

- 30.8.1 ガイド付きビジネス・プロセスをデプロイする方法

- 30.8.2 ガイド付きビジネス・プロセスのOracle WebLogic Serverへのデプロイ時に行われる処理

- 30.9 ガイド付きビジネス・プロセスのテスト

- 30.9.1 ガイド付きビジネス・プロセス・インスタンスの作成時に行われる処理

31 ガイド付きビジネス・プロセスのクライアント・アプリケーションの構築

- 31.1 ガイド付きビジネス・プロセスのクライアント・アプリケーションの構築の概要

- 31.2 Oracle ADFを使用したガイド付きビジネス・プロセスのクライアント・アプリケーションの開発

- 31.2.1 ガイド付きビジネス・プロセスのクライアント・アプリケーションを開発する方法

- 31.2.2 Oracle ADFを使用したガイド付きビジネス・プロセスのアプリケーションの開発時に行われる処理

- 31.2.3 ランタイムで行われる処理: Oracle ADFを使用してガイド付きビジネス・プロセスのアプリケーションを開発する方法

- 31.3 ガイド付きビジネス・プロセスのクライアント・アプリケーションの保護

- 31.4 ガイド付きビジネス・プロセス・クライアント・アプリケーションのローカライズ

- 31.4.1 ガイド付きビジネス・プロセス・クライアント・アプリケーションでサポートされるロケールの構成方法

- 31.5 ガイド付きビジネス・プロセスのランタイムAPI

- 31.5.1 ガイド付きビジネス・プロセス問合せサービスAPI

- 31.5.2 ガイド付きビジネス・プロセスEnterprise Java BeansのJNDI名

- 31.6 ガイド付きビジネス・プロセスのランタイム・サービスを使用したガイド付きビジネス・プロセスのタスクのユーザー・インタフェースの例の開発

- 31.7 ガイド付きビジネス・プロセスのロギングの使用

- 31.7.1 クライアント側でロギングを行う方法

- 31.7.2 サーバー側でロギングを行う方法

- 31.7.3 ログ・レベルの構成

- 31.7.4 ガイド付きビジネス・プロセスのログ・メッセージを表示する方法

- 31.7.5 ガイド付きビジネス・プロセスのログ・メッセージについて

32 承認管理の使用

- 32.1 承認管理の概要

- 32.1.1 AMXコンポーネント

- 32.2 承認管理の概念について

- 32.2.1 タスク

- 32.2.2 サービス・データ・オブジェクト

- 32.2.3 ステージ

- 32.2.4 リスト・ビルダー

- 32.2.5 タスク操作

- 32.2.6 承認のビジネス・ルール

- 32.2.6.1 リスト作成

- 32.2.6.2 承認者の置換

- 32.2.6.3 リストの変更

- 32.3 Oracle JDeveloperでの承認管理タスクの設計

- 32.3.1 モデリング・プロセスの概要

- 32.3.2 作業の前に

- 32.3.3 一般的な情報の指定

- 32.3.3.1 タスク・タイトル・グローバリゼーション

- 32.3.4 タスク・パラメータの指定

- 32.3.4.1 サービス・データ・オブジェクト(SDO)参照を作成する方法

- 32.3.4.2 エンティティ・パラメータを定義する方法

- 32.3.4.3 コレクションを定義する方法

- 32.3.5 マップ済属性の指定

- 32.3.5.1 属性ラベルおよび属性ラベル・マッピングについて

- 32.3.5.2 属性ラベル・マッピングを定義する方法

- 32.3.6 ルーティングおよび承認ポリシーの指定

- 32.3.6.1 ステージをモデリングおよび構成する方法

- 32.3.6.2 タスク参加者をモデリングする方法

- 32.3.6.3 リスト・ビルダーをモデリングおよび構成する方法

- 32.3.6.4 ビジネス・ルールを使用してリスト・ビルダーを指定する方法

- 32.3.6.5 割当てコンテキストを使用する方法

- 32.3.6.6 タスク承認を集計する方法

- 32.3.7 エスカレーションおよび更新ポリシーの定義

- 32.3.8 通知設定の指定

- 32.3.9 詳細設定の使用

- 32.3.9.1 ノート、添付および検証のコールバックを追加する方法

- 32.3.9.2 セキュリティ・アクセス・ルールを定義する方法

- 32.4 エンドツーエンドの承認管理サンプルの使用

- 32.5 Oracle BPM Worklistおよびプロセス・ワークスペースの承認管理機能の使用

- 32.5.1 タスク・フォームを使用する方法

- 32.5.1.1 ヘッダー・ビュー

- 32.5.1.2 タスク・ペイロード・ビュー

- 32.5.1.3 タスク履歴ビュー

- 32.5.1.4 コメントと添付ファイル・ビュー

- 32.5.2 マップ済属性ラベルを作成する方法

- 32.5.2.1 属性ラベル定義のインポートおよびエクスポート

- 32.5.2.2 属性ラベルの国際化

- 32.5.3 承認グループの管理

- 32.5.3.1 承認グループの表示方法

- 32.5.3.2 承認グループの検索方法

- 32.5.3.3 静的承認グループの追加方法

- 32.5.3.4 静的承認グループに新しいメンバーを追加する方法

- 32.5.3.5 承認グループからメンバーを削除する方法

- 32.5.3.6 承認グループのメンバーを移動する方法

- 32.5.3.7 承認グループをネストする方法

- 32.5.3.8 承認グループの名前を変更する方法

- 32.5.3.9 動的承認グループの使用

- 32.5.3.10 承認グループの削除方法

- 32.5.4 タスク構成の使用

- 32.5.4.1 イベント駆動の設定を編集する方法

- 32.5.4.2 データ駆動の設定を編集する方法

- 32.5.5 タスク・リスト・リージョンの使用

- 32.5.5.1 タスク・リスト・リージョンをアプリケーションに埋め込む方法

- 32.5.5.2 タスク・リスト・リージョン・パラメータを使用する方法

- 32.5.6 タスク履歴リージョンを使用して承認者をプレビューする方法

- 32.6 ユーザー・メタデータ移行ユーティリティの使用

第VIII部 付録

A Oracle Business Process Management Workspaceでの実行中のプロセス・インスタンスの変更

- A.1 プロセス・ワークスペースでの実行中のプロセス・インスタンスのフローの変更

- A.1.1 プロセス・ワークスペースで実行中のプロセス・インスタンスのフローを変更する方法

- A.2 プロセス・ワークスペースでのプロセス・インスタンスの移行

- A.2.1 プロセス・ワークスペースでプロセス・インスタンスを移行する方法

- A.2.2 一時停止していたコンポーネントを再開する方法

- A.3 プロセスの再デプロイに関する注意事項

B プロセス・スター・スキーマ・ビューを使用したビジネス・インテリジェンスとの統合

- B.1 Oracle BPMプロセス・スター・スキーマとビジネス・インテリジェンス(BI)の統合について

- B.2 標準ビュー

- B.2.1 ディメンション・ビュー

- B.2.2 標準ファクト・ビュー

- B.2.2.1 ファクト表を表すビュー

- B.2.2.2 標準ディメンション表を表すビュー

- B.2.2.3 BPM_ACTIVITY_PERFORMANCE_V

- B.2.2.4 BPM_PROCESS_PERFORMANCE_V

- B.2.2.5 BPM_ACTIVITY_INSTANCE_V

- B.2.2.6 BPM_PROCESS_INSTANCE_V

- B.2.2.7 BPM_PROCESS_DEFINITION_V

- B.2.2.8 BPM_ACTIVITY_DEFINITION_V

- B.2.2.9 BPM_ROLE_DEFINITION_V

- B.3 プロセス固有のビュー

- B.3.1 BPM_ACTV_PERF_<IDENTIFIER>_V

- B.3.1.1 データの粒度

- B.3.1.2 一意キー

- B.3.1.3 メトリック情報

- B.3.2 BPM_PRCS_PERF_< IDENTIFIER >_V

- B.3.2.1 データの粒度

- B.3.2.2 一意キー

- B.3.2.3 メトリック情報

- B.3.3 BPM_ACTV_INST_<IDENTIFIER>_V

- B.3.3.1 データの粒度

- B.3.3.2 一意キー

- B.3.3.3 メトリック情報

- B.3.4 BPM_PRCS_INST_<IDENTIFIER>_V

- B.3.4.1 データの粒度

- B.3.4.2 一意キー

- B.3.4.3 メトリック情報

例一覧

- 26-1 複合ゲートウェイでの条件

- 26-2 配列の要素にアクセスする式

- 26-3 配列の要素の属性にアクセスする式

- 26-4 配列の長さを取得する式

- 27-1 電子メール・メッセージ

- 29-1 APIコール

- 30-1 アクティビティ・ガイド・プロパティ・ファイル

- 30-2 Antスクリプトを使用したガイド付きビジネス・プロセスのデプロイ

- 30-3 Oracle Enterprise Manager Fusion Middleware ControlコンソールのURL

- 31-1 ツリー・タスク・フローへのShowRefreshButtonパラメータの追加

- 31-2 activityguide.propertiesファイルを参照するadfc-config.xmlファイル

- 31-3 ワークフロー・サービス・クライアント構成ファイル

- 31-4 faces-config.xmlファイル

- 31-5 EJBを使用したガイド付きビジネス・プロセスのランタイム・サービスへのアクセス

- 31-6 ログ・メッセージの例

- 32-1 ルール1

- 32-2 ルール2

- 32-3 承認者の置換の使用方法

- 32-4 リストの変更の使用方法

- 32-5 workflow-identity-config.xml構成ファイル

- 32-6 実装クラス

- 32-7 testSamplePagedef.xmlのコード

- 32-8 bpm-services.jarの権限付与コード

- 32-9 wf_client_config.xmlのコードのサンプル

- 32-10 単一サーバーの定義

- 32-11 ワークフロー・コンテキスト

図一覧

- 1-1 Oracle BPM Suite

- 1-2 Oracle BPMアプリケーション開発ライフサイクルのステージ

- 2-1 営業見積サンプル・プロジェクト

- 2-2 営業見積の開始

- 2-3 ビジネス実行確認の決定

- 2-4 見積の承認

- 2-5 承認結果

- 3-1 Studioを使用したモデリング、実装およびデプロイメント

- 3-2 Oracle Business Process Composerを使用したプロジェクト・ブループリントの作成

- 3-3 BPM Studioを使用したプロジェクト・テンプレートの作成

- 3-4 Studioを使用したOracle BPAからのプロセスの実装

- 3-5 Oracle BPM Studio

- 3-6 BPMプロジェクト・ナビゲータ

- 3-7 アプリケーション・ナビゲータ

- 3-8 「プロセス」エディタ

- 3-9 コンポーネント・パレット

- 3-10 プロパティ・インスペクタ

- 3-11 Oracle BPM MDSブラウザ

- 3-12 「構造」ビュー

- 3-13 「サムネイル」ビュー

- 3-14 「シミュレーション」ビュー

- 3-15 「ドキュメント」ウィンドウ

- 4-1 Oracle BPM MDSブラウザ

- 4-2 「プロジェクト・ステータス」パネルが開いているBPM MDSナビゲータ

- 5-1 「プロセス」エディタ

- 5-2 プロセス・エディタのステータス・バー

- 5-3 メッセージ領域が展開されたプロセス・エディタ

- 5-4 エラー・メッセージおよび警告メッセージが表示されたプロセス・エディタ

- 5-5 「データ・アソシエーション」ダイアログ

- 5-6 ドキュメント・エディタ

- 6-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス

- 6-2 更新タスク

- 6-3 1プロセスでの複数の開始イベントの使用

- 6-4 None開始イベント

- 6-5 営業見積サンプル・プロセス内のNone開始イベント

- 6-6 メッセージ開始イベント

- 6-7 営業見積サンプル・プロセス内のメッセージ開始イベント

- 6-8 シグナル開始イベント

- 6-9 タイマー開始イベント

- 6-10 None終了イベント

- 6-11 営業見積サンプル・プロセス内のNone終了イベント

- 6-12 エラー終了イベント

- 6-13 メッセージ終了イベント

- 6-14 ユーザー・タスク

- 6-15 見積入力ユーザー・タスク

- 6-16 手動タスク

- 6-17 手動タスクの例

- 6-18 サービス・タスク

- 6-19 営業見積サンプル・プロセス内のサービス・タスク

- 6-20 インスタント・メッセージ通知タスク

- 6-21 電子メール通知タスク

- 6-22 SMS通知タスク

- 6-23 ボイスメール通知タスク

- 6-24 ユーザー通知タスク

- 6-25 コール・アクティビティ

- 6-26 送信タスク

- 6-27 受信タスク

- 6-28 送信タスクおよび受信タスクを使用した、プロセス間の通信

- 6-29 メッセージ・スロー・イベント

- 6-30 メッセージ・キャッチ・イベント

- 6-31 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用

- 6-32 ビジネス・ルール・タスク

- 6-33 営業見積サンプル・プロセス内のビジネス・ルール・タスク

- 6-34 無条件シーケンス・フロー

- 6-35 条件シーケンス・フローとデフォルト・シーケンス・フロー

- 6-36 排他ゲートウェイ

- 6-37 営業見積サンプル・プロセス内の排他ゲートウェイ

- 6-38 包含ゲートウェイ(スプリット)

- 6-39 包含ゲートウェイ(マージ)

- 6-40 パラレル・ゲートウェイ(スプリット)

- 6-41 パラレル・ゲートウェイ(マージ)

- 6-42 パラレル・ゲートウェイの例

- 6-43 複合ゲートウェイ(スプリット)

- 6-44 複合ゲートウェイ(マージ)

- 6-45 Event-based Gateway

- 6-46 タイマー・キャッチ・イベント

- 6-47 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント

- 6-48 閉じられたサブプロセスの例

- 6-49 開かれたサブプロセスの例

- 6-50 サブプロセスの例

- 6-51 スクリプト・タスク

- 6-52 営業見積サンプル・プロジェクト内のスクリプト・タスク

- 6-53 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション

- 6-54 割引プロジェクト変数の値の変更に使用される式

- 7-1 組織エディタ

- 7-2 ネストされた組織単位の例

- 8-1 「構造」ウィンドウ

- 8-2 基本データ・オブジェクトと複合データ・オブジェクト

- 8-3 プロセス内のデータ構造のスコープ

- 8-4 プロジェクト・データ・オブジェクトのスコープおよび存続期間

- 8-5 データ・アソシエーション・エディタ

- 9-1 BPA Architectを使用して実装された営業見積サンプル・プロセスのBPMNモデル

- 9-2 プロセスの差異ダイアログ

- 10-1 複数の境界イベントを持つ見積の承認ユーザー・タスク

- 10-2 見積の承認タスクの「送信フロー」タブ・ページ

- 10-3 シミュレーション定義の「プロジェクト」ページ

- 10-4 シミュレーション定義の「リソース」ページ

- 10-5 「シミュレーション」ページの例

- 10-6 シミュレーションの「チャート」ページ

- 11-1 プロセス分析データのサイクル

- 11-2 単一測定マーク

- 11-3 「間隔の開始」および「間隔の停止」測定マーク

- 11-4 「測定マーク・プロパティ」ダイアログ

- 12-1 カスタム・モジュールおよび事前定義済モジュール

- 13-1 ビジネス・オブジェクト・エディタ

- 14-1 ビジネス・カタログ内のヒューマン・タスク・コンポーネント

- 15-1 コールバック・インタフェースを使用したサービス

- 15-2 Oracle BPMのアダプタ・サービス

- 15-3 ビジネス・カタログ内のメディエータ・コンポーネント

- 15-4 メディエータを使用してBPMNプロセスを起動するBPELプロセス

- 15-5 ビジネス・カタログ内のBPELプロセス・コンポーネント

- 16-1 ビジネス・カタログ内のビジネス・ルール・コンポーネント

- 16-2 営業見積サンプル内のビジネス・ルール・タスク

- 18-1 SOAコンポジット内のBPMNプロセス

- 18-2 BPELプロセスのパートナ・リンクとしてのBPMNプロセス

- 20-1 プロセス・フローの遅延

- 20-2 時間条件に基づくプロセスの起動

- 20-3 アクティビティの期限

- 20-4 プロセスの期限

- 20-5 アクティビティ実行中の追加アクティビティの実行

- 20-6

- 21-1 境界エラー・キャッチ・イベント

- 21-2 開始エラー・イベントのあるイベント・サブプロセス

- 22-1 メッセージ・イベントを使用した非同期サービスまたはBPMNプロセスの起動

- 22-2 サービス・タスクを使用した同期BPMNプロセスまたはサービスの起動

- 22-3 送信および受信タスクを使用した非同期サービスまたはBPMNプロセスの起動

- 22-4 シグナルのブロードキャスト

- 23-1 メッセージ開始イベントを操作として公開するBPMNプロセス

- 23-2 インタフェースでメッセージ開始およびメッセージ・キャッチ・イベントを公開するBPMNプロセス

- 23-3 開始操作と対応するコールバックを公開する非同期BPMNプロセス

- 23-4 ビジネス・カタログのインタフェースを使用するプロセス

- 23-5 送信および受信タスクを使用して定義された非同期操作を公開するBPMNプロセス

- 23-6 送信および受信タスクを使用して定義されたビジネス・カタログのインタフェースを使用するBPMNプロセス

- 26-1 シンプルな式ビルダー

- 26-2 XPath式ビルダー

- 27-1 ヒューマン・ワークフロー

- 27-2 タスクの参加者

- 27-3 ディレクトリ内のユーザーまたはロールに対するタスクの割当て

- 27-4 フロー・パターンとルーティング・ポリシー

- 27-5 エスカレーションと通知

- 27-6 ワークフロー・サービス・コンポーネント

- 27-7 ワークフロー・サービスとビジネス・プロセス間の相互作用

- 28-1 「ヒューマン・タスクの作成」ダイアログ

- 28-2 ユーザー・タスクのプロパティ・ダイアログ

- 28-3 ヒューマン・タスク・エディタ

- 29-1 ヒューマン・タスク・エディタ

- 29-2 ヒューマン・タスク・エディタ - 「一般」セクション

- 29-3 Oracle BPM Worklist内の結果

- 29-4 結果ダイアログ

- 29-5 ユーザー・ディレクトリまたはアプリケーション・ロールの参照によるタスク所有者の指定

- 29-6 「アイデンティティ・ルックアップ」ダイアログ

- 29-7 レルムが選択された状態の「アイデンティティ・ルックアップ」

- 29-8 「アイデンティティ・ルックアップ」ダイアログのユーザー階層

- 29-9 ユーザーまたはグループの詳細

- 29-10 アプリケーション・ロール

- 29-11 タスク所有者の動的な指定

- 29-12 式ビルダー

- 29-13 ヒューマン・タスク・エディタ — 「パラメータ」セクション

- 29-14 「タスク・パラメータの追加」ダイアログ

- 29-15 パラメータ・タイプ

- 29-16 ヒューマン・タスク・エディタ — 「割当て」セクション

- 29-17 「編集」ダイアログ

- 29-18 第2ステージの追加

- 29-19 パラレル・ステージ

- 29-20 順次ステージ

- 29-21 「タイプ」リスト

- 29-22 参加者タイプの編集 - 「単一」タイプ

- 29-23 参加者タイプの編集 — 「単一」タイプ(展開された「詳細」セクション)

- 29-24 参加者のリストの作成

- 29-25 タスク割当て先の割当

- 29-26 「割当てパターン」の選択および構成

- 29-27 値ベースの名前と式

- 29-28 値ベースの管理チェーン

- 29-29 ルールセット

- 29-30 ルールセット

- 29-31 ビジネス・ルール

- 29-32 ビジネス・ルール

- 29-33 「参加者タイプの編集」の「詳細」セクション — 「単一」タイプ

- 29-34 参加者タイプの編集 — 「パラレル」タイプ(ダイアログの上部セクション)

- 29-35 参加者タイプの編集 — 「パラレル」タイプ(ダイアログの下部セクション)

- 29-36 「投票結果」セクション

- 29-37 参加者タイプの編集 - 「シリアル」タイプ

- 29-38 参加者タイプの編集 — 「シリアル」タイプ(展開された「詳細」セクション)

- 29-39 参加者タイプの編集 — 「FYI」タイプ

- 29-40 ヒューマン・タスク・エディタ — 「割当て」セクション

- 29-41 割当ての構成

- 29-42 全参加者へのタスクのルーティング

- 29-43 中途完了の詳細

- 29-44 パラレル・サブタスクの早期完了

- 29-45 早期承認ルール

- 29-46 却下されたルールのプッシュバック

- 29-47 Assignee1が却下したルールの完了

- 29-48 ルール・ディクショナリの作成

- 29-49 ヒューマン・タスク・ルール・ディクショナリ

- 29-50 「外部ルーティングを使用」の選択

- 29-51 「外部ルーティングを使用」ダイアログ

- 29-52 エラー割当て詳細

- 29-53 「プレゼンテーション」セクション

- 29-54 「リソースの詳細」ダイアログ

- 29-55 ヒューマン・タスク・エディタ — 「期限」セクション

- 29-56 「期限切れまでの時間」ポリシー

- 29-57 「期限切れまでの時間」ポリシー

- 29-58 「期限更新までの時間」ポリシー

- 29-59 「エスカレートまでの時間」ポリシー

- 29-60 ヒューマン・タスク・エディタ — 「通知」セクションの「一般」タブ

- 29-61 「通知」セクション - 「詳細」タブ

- 29-62 「通知メッセージの編集」ダイアログ

- 29-63 タスク・コンテンツ・アクセスの設定

- 29-64 「アクション・アクセス・ルールの追加」の選択

- 29-65 デジタル署名

- 29-66 Javaが選択された状態の「コールバック詳細」ダイアログ

- 29-67 ビジネス・イベントが選択された状態の「コールバック詳細」ダイアログ

- 29-68 イベント・コールバック

- 29-69 ヒューマン・タスク・エディタ — 「ドキュメント」セクション

- 30-1 アクティビティ・ガイド

- 30-2 ガイド付きビジネス・プロセスの例

- 30-3 ガイド付きビジネス・プロセスのデザインタイム・アーキテクチャ

- 30-4 ガイド付きビジネス・プロセスのランタイム・アーキテクチャ

- 30-5 織り合わされたローン処理サービスおよびプロシージャ

- 32-1 アーキテクチャ全体

- 32-2 承認リスト構造

- 32-3 ステージおよびそのリスト・ビルダー

- 32-4 ステージおよびコレクションのマッピング

- 32-5 タイトル・グローバリゼーション・アイコン

- 32-6 「新規キーの作成」ダイアログ

- 32-7 追加された新規キー

- 32-8 翻訳可能なテキストおよび値

- 32-9 Webサービス参照

- 32-10 タスク・パラメータの追加: コレクションの定義

- 32-11 コレクションの定義

- 32-12 「マップ済属性」セクション

- 32-13 「マップ済属性の追加」ダイアログ

- 32-14 ステージの作成

- 32-15 順次ステージの追加

- 32-16 パラレル・ステージの追加

- 32-17 「ステージの編集」ダイアログ

- 32-18 「ステージの編集」ダイアログ: ステージの繰返し

- 32-19 値ベースの承認グループ・リスト・ビルダー・ダイアログ

- 32-20 ルールベースの承認グループ・リスト・ビルダー・ダイアログ

- 32-21 値ベースのジョブ・レベル・リスト・ビルダー・ダイアログ

- 32-22 ルールベースのジョブ・レベル・リスト・ビルダー・ダイアログ

- 32-23 ルールベースのポジション・リスト・ビルダー・ダイアログ

- 32-24 値ベースのスーパーバイザ・リスト・ビルダー・ダイアログ

- 32-25 ルールベースのスーパーバイザ・リスト・ビルダー・ダイアログ

- 32-26 特定のリスト・ビルダーの構成

- 32-27 リスト・ビルダーおよびパラメータの構成

- 32-28 ルール・デザイナでの条件のモデリング

- 32-29 HierarchyBuilder関数

- 32-30ルールの例(1)

- 32-31ルールの例(2)

- 32-32 承認者の置換アクションのサンプル

- 32-33 ルール関数

- 32-34 リストの変更アクションのサンプル

- 32-35 ファクトのリスト

- 32-36 「XMLファクトの編集 -」ダイアログ

- 32-37 ルール定義セクション

- 32-38 詳細設定

- 32-39 ROOTオプション

- 32-40 「割当てコンテキスト」セクション

- 32-41 「制限付き割当ての設定」ダイアログ

- 32-42 「コールバック詳細」ダイアログ

- 32-43 「その他のコールバック」タブ

- 32-44 アクセス・ルールのオプション

- 32-45 「タスク・コンテンツ・アクセスの設定」ダイアログ(1)

- 32-46 「タスク・コンテンツ・アクセスの設定」ダイアログ(2)

- 32-47 「アイデンティティ・ルックアップ」ダイアログ

- 32-48 アクセス・ルールに追加されたグループ

- 32-49 「アプリケーション・ロールの選択」ダイアログ

- 32-50 Oracle BPM Worklistアプリケーションのタスク・フォーム

- 32-51 ヘッダー

- 32-52 タスク・ペイロード

- 32-53 タスク履歴

- 32-54 タスク履歴 - 追加アクション

- 32-55 コメントと添付ファイル

- 32-56 フレックスフィールド・マッピング: 保護済

- 32-57 「ラベルの作成」ダイアログ

- 32-58 Oracle BPM Worklist: 「承認グループ」タブ

- 32-59 ユーザー名の検索結果

- 32-60 グループ名の検索結果

- 32-61 承認グループの作成: 静的グループの選択

- 32-62 静的承認グループの作成: 詳細

- 32-63 「グループに追加」ダイアログ

- 32-64 認証ブラウザ: ユーザーの追加

- 32-65 認証ブラウザ: 検索結果

- 32-66 承認グループ構造

- 32-67 承認グループ構造: 複数のメンバー

- 32-68 移動前

- 32-69 移動後

- 32-70 ネストする承認グループの選択

- 32-71 ネストされた承認グループ

- 32-72 動的承認グループ・クラスのコード

- 32-73 承認グループの作成: 動的グループの選択

- 32-74 動的承認グループの作成: 詳細

- 32-75 承認グループの削除

- 32-76 タスク構成: 「メイン」タブ

- 32-77 タスク構成: イベント駆動

- 32-78 タスク構成: イベント駆動、編集モード

- 32-79 ルーティング設定

- 32-80 有効期限とエスカレーションのポリシー

- 32-81 通知設定

- 32-82 タスク・アクセス

- 32-83 タスク構成: データ駆動、編集モード(1)

- 32-84 タスク構成: データ駆動、編集モード(2)

- 32-85 「変数の追加」ウィンドウと「タイプ」ドロップダウン・リスト

- 32-86 左辺の条件ブラウザ

- 32-87 右辺の条件ブラウザ

- 32-88 タスク・リスト・リージョン

- 32-89 「タスク・フロー・バインディングの編集」ダイアログ

- 32-90 アプリケーションの保護

- 32-91 サーバー列

- 32-92 タスクの詳細

- A-1 プロセス・インスタンスのフローの変更

- A-2 プロセス・インスタンスの移行

- A-3 移行確認: 失敗メッセージ

- A-4 「プロセス・トラッキング」タブ・ページの「保留中コンポーネント」パネル

- A-5 「コンポーネントの再開」ダイアログ・ボックス

- A-6 Oracle JDeveloperでのforce.deployプロパティの設定

- B-1 標準ビューのプロセス・スター・スキーマ

- B-2 プロセス固有のビューのプロセス・スター・スキーマ

表一覧

- 1-1 Oracle BPMのユーザー・ペルソナ

- 3-1 Oracle BPMのプロジェクト・コンポーネント

- 4-1 プロセス・レベルの編集ポリシー

- 4-2 コンポーネント・レベルの編集ポリシー

- 5-1 プロセス・タイプ

- 6-1 各プロセス・タイプのデフォルトの開始イベントおよび終了イベント

- 6-2 対話型アクティビティ

- 8-1 デフォルト値

- 8-2 アクティビティ・インスタンス属性

- 8-3 データ・アソシエーションを受け入れるフロー・オブジェクト

- 8-4 データ・アソシエーション・エディタのユーザー・インタフェース

- 9-1 BPAとBPMNコンストラクト間の対応関係

- 10-1 シミュレーション・モデルの「フロー・ノード」の「期間」ページのオプション

- 10-2 シミュレーション・モデルの「フロー・ノード」の「コスト」ページのプロパティ

- 10-3 シミュレーション定義の一般的なパラメータ

- 10-4 シミュレーション定義の「プロジェクト」のパラメータ

- 11-1 ビジネス・インジケータ・タイプに使用可能なデータ型

- 12-1 フロー・オブジェクト実装

- 17-1 電子メール通知の「一般」プロパティ

- 17-2 電子メール通知の「コンテンツ」プロパティ

- 17-3 電子メール通知の「添付ファイル」プロパティ

- 17-4 「ヘッダー」プロパティ

- 17-5 電子メール通知の「一般」プロパティ

- 17-6 プロパティ

- 17-7 電子メール通知の「一般」プロパティ

- 17-8 電子メール通知の「一般」プロパティ

- 17-9 電子メール通知の「一般」プロパティ

- 18-1 URLフィールドの説明

- 21-1 システム例外

- 22-1 メッセージ・イベントの実装

- 22-2 送信および受信タスクの実装

- 26-1 式タイプ

- 26-2 算術演算子

- 26-3 単項演算子

- 26-4 等号演算子と関係演算子

- 26-5 条件演算子

- 26-6 時間単位接尾辞

- 26-7 時間隔リテラルの例

- 27-1 ヒューマン・ワークフロー・モデリングのステージ

- 29-1 ヒューマン・タスク・エディタ

- 29-2 ヒューマン・タスク・エディタ - 「一般」セクション

- 29-3 結果ダイアログ

- 29-4 所有者のタイプ

- 29-5 「タスク・パラメータの追加」ダイアログのフィールドと値

- 29-6 参加者タイプ

- 29-7 参加者タイプの編集 - 「単一」タイプ

- 29-8 参加者タイプの編集 - 「パラレル」タイプ

- 29-9 参加者タイプの編集 - 「シリアル」タイプ

- 29-10 ルーティング・ポリシー・メソッド

- 29-11 タスク・サービスによりアサートされたファクト・タイプ

- 29-12 ファクト・タイプの使用

- 29-13 ビジネス・ルールのアクション

- 29-14 外部ルーティング

- 29-15 ヒューマン・タスク・エディタ — 「通知」セクションの「一般」タブ

- 29-16 ヒューマン・タスク・エディタ - 「通知」セクションの「詳細」タブ

- 29-17 タスク・コンテンツに対するユーザーの最高権限レベル

- 30-1 アクティビティ・ガイド・プロパティ

- 31-1 ガイド付きビジネス・プロセス問合せサービスAPI

- 31-2 ログ・レベル値

- 31-3 ログ・メッセージ項目

- 32-1 保護済のフレックスフィールド属性

- 32-2 リスト・ビルダー・オプション

- 32-3 Substitute関数のパラメータ

- 32-4 Extend関数のパラメータ

- 32-5 Truncate関数のパラメータ

- 32-6 割当てコンテキストのフィールドの説明

- 32-7 エンドツーエンドのサンプル

- 32-8 ヘッダー・フィールド

- 32-9 ヘッダー・アクション

- 32-10 将来の参加者リストの編集アクション

- 32-11 タスク履歴アクション

- B-1 標準ファクト・ビュー表

- B-2 標準ディメンション・ビューおよび表

- B-3 BPM_ACTIVITY_PERFORMANCE_V

- B-4 BPM_PROCESS_PERFORMANCE_V

- B-5 BPM_ACTIVITY_INSTANCE_V

- B-6 BPM_PROCESS_INSTANCE_V

- B-7 BPM_PROCESS_DEFINITION_V

- B-8 BPM_ACTIVITY_DEFINITION_V

- B-9 BPM_ROLE_V

- B-10

- B-11 BPM_ACTV_PERF_<IDENTIFIER>_V

- B-12 BPM_PRCS_PERF_< IDENTIFIER >_V

- B-13 BPM_ACTV_INST_<IDENTIFIER>_V

- B-14 BPM_PRCS_INST_<IDENTIFIER>_V

Oracle® Fusion Middleware

Oracle Business Process Managementモデリングおよび実装ガイド

11g リリース1 (11.1.1.6.2)

B61409-05(原本部品番号:E15176-09)

2012年3月

Oracle Business Process Studioを使用してビジネス・プロセスを設計および実装する方法を説明します。

Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド, 11g リリース1 (11.1.1.6.2)

B61409-05

Copyright © 2001, 2012, Oracle and/or its affiliates.All rights reserved.

原本著者:  Carolina Arce Terceros、Steven Leslie

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT RIGHTSPrograms, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.  As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』へようこそ。このドキュメントでは、Oracle Business Process Studioの使用方法を説明します。

対象読者

このガイドは、Business Process Studioアプリケーションを使用してビジネス・プロセスを作成および実装し、Oracle Business Process Management Suiteを使用したプロセスベース・アプリケーションを作成するためのOracle BPMプロジェクトを作成および構成するプロセス開発者を対象としています。このマニュアルでは、ビジネス・プロセスの設計に関する基本的な知識があり、Business Process Management Notation (BPMN) 2.0に精通していることを前提としています。また、Oracle SOA Suiteの知識もあることを前提としています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info、聴覚に障害があるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

関連ドキュメント

詳細は、次のOracleドキュメントを参照してください。

Oracle Business Process Management

Oracle BPM Suiteの詳細は、次の資料を参照してください。

- 『Oracle Fusion Middleware Business Process Composerユーザーズ・ガイド』

- 『Oracle Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド』

Oracle SOA Suite

- 『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』

- 『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』

- 『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』

Oracle SOAおよびBPM Suiteのインストレーションおよび管理

- 『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』

- 『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suiteクイック・インストレーション・ガイド』

- 『Oracle Fusion Middleware高可用性ガイド』

表記規則

このマニュアルでは次の表記規則を使用します。

表記規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

このガイドに記載されているリリース11.1.1.6.xの新機能

このマニュアルは、リリース11.1.1.6.xの情報でいくつかの部分が更新されています。次の表に、追加または変更された部分をリストします。11.1.1.6.xの最初のリリースで機能を利用できなかった場合、最後の列に、どのドキュメント・リリースで更新について記載されているかを示しています。

既知の問題のリスト(リリース・ノート)については、http://www.oracle.com/technetwork/middleware/docs/soa-aiafp-knownissuesindex-364630.htmlでOracle SOA製品およびOracle AIA Foundation Packの既知の問題に関する説明を参照してください。

項

変更内容

11.1.1.6.0

11.1.1.6.1

第4章 プロジェクトおよびプロジェクト・テンプレートの使用

4.5項「Oracle BPM Metadata Service (MDS)リポジトリの使用」

BPM Metadata Service (MDS)リポジトリの変更内容について説明するために項を改訂および追加しました。

X

第5章 プロセスおよびプロセス・エディタの使用

5.2項「プロセス・エディタの概要」

プロセス・エディタの変更内容について説明するために項を改訂しました。これには、コンポーネント・パレットとフロー・オブジェクト・ツールバーに対する変更内容が含まれます。

X

5.3.2項「プロセスでメッセージの強調表示レベルを変更する方法」

プロセスでのメッセージの強調表示レベルについて説明するために項を追加しました。

X

5.4項「プロセス内でのフロー・オブジェクトの使用」

Oracle BPM Studioのインタフェースの拡張機能について説明するために項を改訂しました。

X

5.5項「ドラフト・プロセスの使用」

Oracle BPM Studioでドラフト・プロセスを使用する方法について説明するために項を追加しました。ドラフト・プロセスとは、実装が未定義のフロー・オブジェクトを1つ以上含むプロセスです。

X

5.7項「プロセス・モデルのインポートおよびエクスポート」

他のアプリケーションで作成されたプロセス・モデルをインポートする方法について説明するために項を追加しました。このようなインポートされたモデルは、BPMNに変換されます。

X

第9章 BPAリポジトリからのBPMNプロセスのインポート

9.3項「更新されたBPAモデルからの変更内容のマージ」

BPMプロセスの作成に使用したBPAモデルを更新する場合に変更内容をマージする方法について説明するために項を追加しました。

X

第14章 ヒューマン・タスクの使用

14.3項「更新タスクを使用したユーザー・タスクの更新」

更新タスクを使用してユーザー・タスクを更新する方法について説明するために項を追加しました。

X

第24章 相関を使用したビジネス・プロセスの通信

第24章「相関を使用したビジネス・プロセスの通信」

相関を使用する方法について説明するために章を追加しました。

X

第25章 会話の定義

第25章「会話の定義」

会話を定義する方法について説明する新しい章。

X

第27章 ヒューマン・ワークフローの開始

第27章「ヒューマン・ワークフローの開始」

ヒューマン・ワークフロー・フレームワークの基本的な概念について説明する新しい章。

X

第28章 Oracle BPMでのヒューマン・タスクの設計

第28章「Oracle BPMでのヒューマン・タスクの設計」

Oracle BPMでヒューマン・タスクを設計する方法について説明する新しい章。

X

第28章「ヒューマン・タスク・エディタを使用したヒューマン・タスクの構成」

パラレル参加者の完了基準を指定する方法について説明するために項を追加しました。

X

第29章 ヒューマン・タスクの構成

第29章「ヒューマン・タスクの構成」

ヒューマン・タスクで構成できる複数のプロパティについて説明する新しい章。

X

付録B Oracle Business Process Management Workspaceでの実行中のプロセス・インスタンスの変更

付録A「Oracle Business Process Management Workspaceでの実行中のプロセス・インスタンスの変更」

Oracle BPM Process Workspaceで実行中のインスタンスを変更する方法について説明する新しい付録。

X

第I部

Oracle BPM Studioの概要

この部では、Oracle BPM Studioの概略を紹介します。Oracle BPM Suiteの概要を示し、プロセス開発ライフサイクル全体におけるBPM Studioの使用方法について説明します。

この部の内容は次のとおりです。

- 第1章「Oracle Business Process Management Suiteの概要」

- 第2章「ビジネス・プロセス設計の概要」

- 第3章「Oracle BPM Studioの概要」

1 Oracle Business Process Management Suiteの概要

この章では、Oracle Business Process Management (BPM) Suiteの概要を説明します。

この章の内容は次のとおりです。

- 1.1項「Oracle Business Process Management Suiteの概要」

- 1.2項「Oracle BPMのユーザー・ペルソナ」

- 1.3項「Oracle BPM Suiteのコンポーネント」

- 1.5項「アプリケーション開発ライフサイクルの概要」

- 1.6項「Oracle BPMのユース・ケース」

1.1 Oracle Business Process Management Suiteの概要

Oracle BPM Suiteは、ビジネス・プロセスを軸として展開するビジネス・アプリケーションを開発、管理および使用するための統合環境を提供します。

Oracle BPM Suiteでは、次の機能が用意されています。

- ユーザーフレンドリなアプリケーションで標準に基づくプロセス・モデルを作成できます。プロセス開発者とプロセス・アナリスト間のコラボレーションが可能です。Oracle BPMでは、BPMN 2.0およびBPELを、モデリングおよび実装からランタイムおよび監視に到るまでサポートします。

- プロセス・アナリストとプロセス所有者が、ビジネス・プロセスとOracle Business Rulesをカスタマイズできるようにします。

- ビジネス・プロセスの作成、Oracle Business Rulesの編集、および事前定義コンポーネントを使用したタスクのカスタマイズを行える、Webベースのアプリケーションが提供されます。

- 柔軟な、非構造化プロセスを組み込めるよう、ビジネス・プロセス管理を拡張します。動的タスクが追加され、宣言パターンおよびルール駆動型フロー決定を使用する承認ルーティングがサポートされます。

- 生産性を向上し、革新を推進するプロセス・スペースとの統合により、コラボレーションを実現します。

- プロセス・ベースのアプリケーション開発のためのエンドツーエンド要件に対応することで、アプリケーション開発ライフサイクルの様々なステージを統合します。Oracle BPMでは設計、実装、ランタイムおよび監視の各ステージを統合します。Oracle BPMを使用すると、様々なペルソナがアプリケーション・ライフサイクルの全ステージに参加できるようになります。
Oracle BPM Suiteに定義されたユーザー・ペルソナの詳細は、1.2項 Oracle BPMのユーザー・ペルソナを参照してください。

Oracle BPM Suiteでは、設計時および実装からランタイムおよびアプリケーション管理まで、アプリケーション開発ライフサイクルの全ステージをシームレスに統合します。

Oracle BPM SuiteはOracle SOA Suiteの上位レイヤーになり、次を含む製品コンポーネントの多くを共有しています。

- ビジネス・ルール

- ヒューマン・ワークフロー

- 統合のためのOracleアダプタ・フレームワーク

図1-1は、Oracle BPM Suiteの概要レベルのアーキテクチャ・ビューを示しています。

図1-1 Oracle BPM Suite

「図1-1 Oracle BPM Suite」の説明

1.3項「Oracle BPM Suiteコンポーネント」では、図1-1に示す各コンポーネントの詳細を説明します。

1.2 Oracle BPMのユーザー・ペルソナ

アプリケーション開発ライフサイクルの様々なステージで、様々なタイプのユーザーからの相互作用が必要になります。表1-1では、Oracle BPM Suiteの一般的なユーザーとその役割について説明します。これらのユーザーが作業を行うために使用するOracle BPMのコンポーネントを示します。

これらのユーザー・ペルソナは、このガイド内の例として使用されています。

表1-1 Oracle BPMのユーザー・ペルソナ

ユーザー・ペルソナ

説明

プロセス・アナリスト

プロセス・アナリストの役割は、ビジネス・プロセスの最初のフローを作成し、そのステップをドキュメント化することです。これには、KPIおよびビジネス・プロセスのルーティング・アーティファクトを定義する概要レベルのルールを特定し、それらを定義することも含まれます。また、このペルソナがROIの計算と予測をシミュレーションする場合もあります。

プロセス・アナリストは、通常はOracle Business Process Analysis (BPA) SuiteまたはBusiness Process Composerを使用してプロセス・モデルを作成します。また、Oracle BPM Studio内部のプロセス・アナリスト・ロールを使用する場合もあります。

プロセス開発者

プロセス開発者の役割は、プロセス・アナリストが作成したプロセス・モデルを実装することです。プロセスの各ステップに実装が必要です。プロセス開発者には、データベースなどのバックエンド・アプリケーションとビジネス・プロセスを統合する役割もあります。

プロセス開発者は通常、Oracle BPM Studioを使用してビジネス・アプリケーションのコンポーネントのモデリングと実装を行います。また、基本的なプロセスをモデリングするためにBusiness Process Composerを使用することもあります。

ビジネス管理者

ビジネス管理者の役割は、BPMインフラストラクチャの管理です。一般的なアクティビティには、BPM環境のインストールとセットアップ、ビジネス・プロセスをホストするBPMエンジンの全般的な管理などが含まれます。

このペルソナは、ユーザー、グループ、組織単位、カレンダや休日など、組織構成資産を管理する役割を委任される場合もあります。

ビジネス管理者が主に使用するツールは、Oracle Enterprise ManagerおよびAntなどの自動化ツールです。ビジネス管理者はまた、組織単位、ロール割当ての管理、およびワークフロー拡張ルーティング宣言の作成などのその他のアクティビティを管理するために、プロセス・ワークスペースも使用します。

プロセス所有者

プロセス所有者の役割は、デプロイされたビジネス・プロセスを制御および管理することです。ビジネス・プロセスの実行全体を監督する役割もあります。管理対象のビジネス・プロセスの現在の状態を把握するために、ダッシュボードなどのメトリック分析ツールも使用します。

プロセス所有者は通常、プロセス・ワークスペースを使用します。また、Oracle Business Rulesを編集してプロセスの動作を変更するために、Business Process Composerも使用します。メトリック・ダッシュボードを表示するために、Oracle BAMコンソールを使用する場合もあります。

プロセス参加者

プロセス参加者とは、Oracle BPM Suiteで作成されたビジネス・アプリケーションを使用する人々です。

プロセス参加者は通常、プロセス・ワークスペースまたはプロセス・スペースを使用します。

1.3 Oracle BPM Suiteのコンポーネント

この項では、Oracle BPM Suiteの主要コンポーネントの概要を説明します。これらのコンポーネントがアプリケーション開発プロセス内でどのように相互作用するかについては、1.5項 アプリケーション開発ライフサイクルの概要を参照してください。

1.3.1 プロセス・モデリングおよび実装

この項では、ビジネス・プロセスおよびプロセスベースのビジネス・アプリケーションをモデリングおよび実装するために使用するアプリケーションとコンポーネントについて説明します。

Oracle BPM Suiteでは、ビジネス・プロセスをモデリングおよび実装するための2つのプライマリ・アプリケーションが用意されています。

注意:

Oracle BPMでは、Oracle Business Process Analysis (BPA) Suiteを使用して作成したビジネス・プロセスの統合も可能です。詳細は、1.4項「Oracle Business Process Analysis(BPA) Suite」を参照してください。

1.3.1.1 Oracle BPM Studio

Oracle BPM Studioは、プロセス・アナリストがビジネス・プロセス・モデルを作成し、プロセス・シミュレーションを実行するユーザーフレンドリな環境を提供するOracle BPM Suiteのコンポーネントです。Oracle BPM Studioでは、Business Process Management Notation (BPMN) 2.0をサポートしています。

Oracle BPM Studioでは、プロセス開発者が作業用のプロセスベース・アプリケーションを作成できます。このアプリケーションは、SOAコンポジット・アプリケーションとして統合されるOracle BPMプロジェクトです。

Oracle BPM Studioを使用すると、ビジネス・プロセスを、アダプタ、ヒューマン・ワークフローおよびビジネス・ルールなどの他のOracleコンポーネントと一緒に実装できます。実装したプロセスは、Oracle BPMランタイムにデプロイできます。

Oracle BPM StudioはOracle JDeveloper IDEの一部に含まれます。Oracle BPM Studioを使用すると、ITユーザーは、単一の統合されたツールを使用して、ビジネス・プロセスをモデリングおよび編集し、必要なIT要素を実装し、アプリケーションをランタイム環境にデプロイできます。

Oracle BPM Studioはまた、ビジネス・ユーザーがプロセス設計の関連機能のみを表示する簡易バージョンのOracle JDeveloperを使用できるようにするBPMロールも提供します。

詳細は、Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイドを参照してください。

1.3.1.2 Oracle Business Process Composer

Oracle Business Process Composerは、ビジネス・ユーザーがプロセスの開発者や設計者と共同作業できるようにするWebベースのアプリケーションです。Oracle BPM Studioで作成されたプロセスやプロセス・テンプレートを編集するための使いやすい環境を提供します。

プロセス開発者はOracle BPM Studio内のサービス、タスクおよびルールなど、事前に構成されたコンポーネントのカタログを作成できます。このカタログは、プロセス・アナリストがBusiness Process Composerを使用して新規プロジェクトを作成する際に使用できるプロジェクト・テンプレートに組み込むことができます。

プロセス・アナリストは、プロジェクト・テンプレートに基づいてプロジェクトを作成した後で、ビジネス・カタログ要素を取り込み、プロジェクト・テンプレートで定義されている他の必要な編集を行います。その後、プロセス・アナリストはプロジェクトをOracle BPMランタイムにデプロイできます。

また、Business Process Composerでは、プロセス・アナリストがプロセス・ブループリントを作成することもできます。これはプロセスの最初のドラフトであり、Oracle BPM Studioを使用するプロセス開発者がプロジェクトに実装の詳細と改良を加えるために使用します。

さらに、Business Process Composerでは、ランタイムでOracle Business Rulesを編集することもできます。これは、ポリシーがビジネス・プロセスより頻繁に更新される傾向があるため重要です。

詳細は、『Oracle Fusion Middleware Business Process Composerユーザーズ・ガイド』を参照してください。

1.3.1.3 Oracle Metadata Service(MDS)リポジトリ

Oracle Metadata Service (MDS)では、Oracle Fusion Middleware環境内にデプロイされたアプリケーションの日付を保存するリポジトリが提供されます。Oracle BPMではこのリポジトリを使用し、デプロイされたアプリケーションの情報が保存されます。

Oracle BPMでは、個別のMDSパーティションを使用して、プロセス・アナリストとプロセス開発者の間でプロジェクトとプロジェクト・テンプレートを共有します。図1-1「Oracle BPM Suite」では、MDSリポジトリがすべてのOracle BPMアーキテクチャ内でどのように適合しているかを示します。

1.3.1.4 Oracle BPMプロジェクト

Oracle BPMプロジェクトは、プロセスベースのビジネス・アプリケーションを作成するためのビジネス・プロセスと関連リソースのコンテナです。Oracle BPMプロジェクトには、次のものを組み込むことができます。

- 組織データ

- アクティビティ・ガイド

- BPMNプロセス・モデル

- ビジネス・カタログ

- シミュレーション・モデル

- その他のリソース

Oracle BPMプロジェクトはSOAコンポジット・アプリケーションとして実行時にデプロイされます。プロジェクトとSOAコンポジット・アプリケーションの使用の詳細は、次のドキュメントを参照してください。

- Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイドのプロジェクトおよびプロジェクト・テンプレートの使用

- 『Oracle Fusion Middleware Business Process Composerユーザーズ・ガイド』のプロジェクトおよびプロジェクト・テンプレートの使用に関する説明

- Oracle Fusion Middleware Oracle SOA Suite開発者ガイド

1.3.2 Oracle BPMランタイム・コンポーネント

Oracle BPMランタイムは、デプロイされているアプリケーションを制御します。Oracle BPMランタイムには次のコンポーネントが含まれています。

1.3.2.1 Oracle BPMエンジン

Oracle BPMエンジンは、ビジネス・プロセスを実行するためのランタイム環境を提供します。BPMNプロセスとBPELプロセスの両方のネイティブ・サポートも提供します。

BPMエンジンは3つの独立したコンポーネントで構成されます。

- BPMNサービス・エンジン
BPMNエンジンはBPMNプロセスを実行するための環境を提供します。

- BPELサービス・エンジン
BPELエンジンはBPELプロセスを実行するための環境を提供します。

- プロセス・コア
BPMNエンジンとBPELエンジンで共有されるエンジン機能を提供します。プロセス・コアによって実行される主な機能は次のとおりです。

- セキュリティの管理

- 監査証跡の生成

- サービスの起動

- 永続性の管理

1.3.2.2 Oracle Human Workflow

多くのエンドツーエンドのビジネス・プロセスでは、プロセスに人的な操作が必要です。たとえば、承認や例外管理、またはビジネス・プロセスの進行に必要なアクティビティの実行には、人的な操作が必要です。ヒューマン・ワークフロー・サービスは、次のような機能を提供します。

- ユーザー、グループまたはアプリケーション・ロールへのタスク・ルーティング

- タスクが適切なタイミングで実行されることを保証するために必要な期限、エスカレーション、通知およびその他の機能

- ワークスペースやポータルなどの様々なメカニズムを介してエンド・ユーザーにタスクを表示するためのタスク・フォーム。

- エンド・ユーザーが各自のタスクを実行するときの生産性を向上するために必要な組織、フィルタ、優先順位付け、ディスパッチ・ルールおよびその他の機能

1.3.2.3 Oracle Business Rules

Oracle Business Rulesを使用すると、実行時に動的な意思決定を行うことができます。これにより、意思決定ロジックを基礎となるプロセス編成レイヤーから切り離したまま、ポリシー、計算および推論を自動化できます。このため、より敏捷なルール管理が可能になり、ビジネス・アナリストは、ビジネス・プロセスを中断することなく、プログラマの支援なしでルール・ロジックを変更できます。

1.3.2.4 Oracle WebLogic Application Server

Oracle WebLogic Serverは、J2EE準拠のアプリケーションを作成および実行するプラットフォームとなるアプリケーション・サーバーです。

1.3.2.5 Oracle Enterprise Manager

Oracle Enterprise Managerは、Oracle SOA Suiteで実行するアプリケーションをシステム管理者が制御および管理できるようにするWebベースのアプリケーションです。Enterprise Managerを使用すると、ビジネス管理者がビジネス・アプリケーションとプロセス・インスタンスを構成および管理できます。

1.3.3 Oracle BPM Suiteプロセス参加者アプリケーション

以降の項では、プロセス参加者が日常業務を実行するために使用するOracle BPM Suiteのコンポーネントについて説明します。これらのアプリケーションでは、プロセス参加者がOracle BPMランタイムで管理される実行中のビジネス・アプリケーションと相互作用できます。

1.3.3.1 Oracle Business Process Managementワークスペース

Oracle Business Process ManagementワークスペースおよびOracle Business Process Managementプロセス・スペースにより、プロセス参加者はOracle BPMを使用して作成したアプリケーションと相互作用できます。プロセス・ワークスペースのユーザー・インタフェースには、次のタブがあります。

- プロセス・インスタンス: このタブを使用して、プロセス参加者は実行中のプロセス・インスタンスを参照できます。

- タスク・リスト: このタブを使用して、プロセス参加者は自身に割り当てられたタスクを参照し、使用できます。

- プロセス・ダッシュボード: このタブを使用して、プロセス・パフォーマンス、タスク・パフォーマンスおよび負荷を監視するための、すぐに使用できるダッシュボードが提供されます。

- カスタム・ダッシュボード: このタブを使用して、プロセス参加者は、プロセス・インスタンスによって生成された測定データに基づき、カスタム・ダッシュボードを定義し、使用できます。

プロセス・ワークスペースでは、ビジネス管理者が組織およびロールを構成し、管理することもできます。詳細は、『Oracle Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド』を参照してください。

1.3.3.2 Oracle Business Process Managementプロセス・スペース

プロセス・スペースは、WebCenter Spaces上に構築されたコラボレーティブな作業領域であり、コラボレーションを増やすことによって生産性を向上できます。

詳細は、『Oracle Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド』を参照してください。

1.3.4 その他のOracle BPM Suiteのコンポーネント

以降の各項では、Oracle BPM Suiteのその他のコンポーネントについて説明します。

1.3.4.1 プロセス分析

ビジネス・プロセス分析では、プロセス参加者は実行中のプロセスベース・アプリケーションのパフォーマンスを監視できます。BPMプロジェクトで定義された主要パフォーマンス・インジケータが測定され、データベースに保存されます。プロセス参加者とアナリストは、プロセス・ワークスペースの各ダッシュボードまたはOracle BAMを使用して、プロセス分析データベースに保存されているメトリックを参照できます。

1.3.4.2 ガイド付きビジネス・プロセス

ガイド付きビジネス・プロセスでは、プロセス・アナリストと開発者は、ビジネス・プロセスの相互作用アクティビティを、プロセス参加者にとって意味のある一連のマイルストンにまとめることができます。これによって、ビジネス・プロセスの複雑さを意識させず、プロセス参加者が実行する必要のあるステップの概略を示します。

Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイドのガイド付きビジネス・プロセスの概要を参照してください

1.4 Oracle Business Process Analysis (BPA) Suite

Oracle BPA Suiteは、IDS ScheerのArisプラットフォームをベースにした、独立したOracle製品スイートです。Oracle Business Process Analysis (BPA) Suiteでは、全社的なビジネス・プロセスに対して、モデリングから分析、シミュレーションに到る総合的機能を提供します。Oracle BPAでは、戦略的な目標、目的、より高いKPI、リスクおよび管理などのビジネス・アーキテクチャのアーティファクトの取得と、バリュー・チェーン図などの概念モデルの取得がサポートされます。

また、Oracle BPA Suiteでは次がサポートされます。

- ビジネス・プロセスとビジネス戦略の整合。

- サービスの検出およびビジネス・プロセスへのリンク。これにより、Oracle SOA Suiteのサービスの必要な要素が構築されていきます。

- 最適リソース割当てを決定できるようにするシミュレーション・シナリオのロードと作成。シミュレーションでは、スループット分析、活動基準原価計算およびリソース使用率計算を実行できます。また、シミュレーション結果を簡単に分析するためのシミュレーション分析レポートを作成できます。

- チェックイン/チェックアウトから変更管理機能までをも含む、総合的なバージョン管理。

Oracle BPA Suiteで定義されたビジネス・アーキテクチャは、戦略的な目標と、Oracle BPMで作成された実際のビジネス・アプリケーションを正式に結びつけます。Oracle BPAでは、戦略的マップ、目標、目的、リスクおよび管理などのビジネス・アーキテクチャのアーティファクトをモデリングできるとともに、それらをビジネス・プロセスにリンクできます。

これにより、所要能力の優先順位付け、デシジョンの正当化、および、ビジネスの戦略的目標に対するビジネス・プロセス改善計画活動の追跡ができるようになり、このため、ビジネスとITがより整合するようになります。この製品により、どのBPMプロジェクトを開始するのか、またどのプロセスが現時点で企業に最も適しているのか、さらにどのサービスが事業戦略に最も整合しているのかを明確に理解できるようになるため、この製品は非常に大きな価値を提供します。

Oracle BPA Suiteは、組織のゴールを含めたモデリング・フェーズに直交ディメンションを追加することにより、Oracle BPM Suiteの機能を補完します。詳細は、Oracle BPAクイック・スタート・ガイドを参照してください

Oracle BPA Suiteで作成されたプロセスは、Oracle BPM Suiteにインポートできます。Oracle BPM Studioを使用して、自分のビジネス・プロセスを他のOracleテクノロジ(アダプタ、ビジネス・ルール、ヒューマン・タスクなど)に統合できます。

Oracle BPM Studio内でOracle BPAに作成したビジネス・プロセスを使用する方法の詳細は、Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイドを参照してください。

1.5 アプリケーション開発ライフサイクルの概要

この項では、Oracle BPMアプリケーションの開発ライフサイクルのステージの概要と、各ステージでOracle BPMの様々なコンポーネントがどのように使用されるかについて説明します。

図1-2 は、アプリケーション開発ライフサイクルの4つのステージ、各ステージに適したユーザー・ペルソナ、使用されるOracle BPMのツールおよびアプリケーションを示しています。

図1-2 Oracle BPMアプリケーション開発ライフサイクルのステージ

「図1-2 Oracle BPMアプリケーション開発ライフサイクルのステージ」の説明

1.5.1 プロセス・モデリング

アプリケーション開発ライフサイクルの最初のステージはプロセス・モデリングです。プロセス・アナリストは、このステージで実際のビジネス・プロセスと問題に基づいてプロセス・モデルを作成します。

Oracle BPMには、ビジネス・プロセスをモデリングするための個別のツールが3つ用意されています。各ツールは、Oracle BPM Suite内で別々のロールを持っています。使用するツールは、ユーザーのビジネス要件、アプリケーション開発サイクルのステージおよびユーザー・ペルソナによって決まります。

- Oracle BPM Studio
Oracle BPM StudioはOracle JDeveloper IDEプラットフォームで稼働します。Oracle BPM Studio では、プロセス・モデルの設計に重点を置いた簡易版のJDeveloper機能セットを表示するプロセス・アナリスト・ロールが提供されます。

Oracle BPM Studioでは、プロセス・アナリストとプロセス開発者が、Oracle BPMランタイムにデプロイされ、作業用アプリケーションとして実行される詳細なプロセス・フローを設計し、実装できます。また、Oracle BPA SuiteまたはBusiness Process Composerからの詳細なプロセス・フローは、Oracle BPM Studio内に取り込んで追加の実装を行い、Oracle BPMランタイムにデプロイすることもできます。

- Oracle Business Process Composer
Business Process Composerは、プロセス・アナリストとプロセス開発者との共同作業を可能にするコラボレーション・ツールです。

- Oracle Business Process Analysis (BPA) Suite
Oracle BPA Suiteでは、組織全体を表す概念レベルのモデルから、実行プロセスとして実装できるより詳細なビジネス・プロセスまで、様々なビジネス・プロセスの強力なモデルを作成できます。

Oracle BPMの一般的なユース・ケースでこれらのツールを使用する方法の詳細は、1.6項「Oracle BPMのユース・ケース」を参照してください。アプリケーション開発ライフサイクルでOracle Business Process ComposerとOracle BPM Studioを連携させる方法の詳細は、3.2項「アプリケーション開発ライフサイクルの概要」を参照してください。

1.5.2 実装

プロセス・アナリストがビジネス・プロセスをモデリングした後、そのモデルを基にプロセス開発者がビジネス・アプリケーションを作成します。プロセス開発者はOracle BPM Studioを使用して、再使用可能サービスを実装し、その他のビジネス・システムと統合します。

実装には、プロセス開発者が一般的に実行する、次のタイプのタスクが通常含まれます。

- データ・マッピングおよび変換

- システム・フォルト処理

- Oracle Human Workflowを使用したユーザー・インタフェースの設計および実装。

- Oracle Business Rulesの設計

- ダッシュボードの作成

プロセス開発者がアプリケーションの実装を完了すると、そのアプリケーションは他のSOAコンポジット・アプリケーションと同様にコンパイルおよびデプロイされます。コンパイルおよびデプロイにはOracle BPM Studioを使用します。

1.5.3 デプロイメント

デプロイメントは、Oracle BPMプロジェクトを開発環境からランタイム環境に移行するプロセスです。ランタイム環境には、テスト用ランタイム環境か本番ランタイム環境があります。

ビジネス・プロセスをバックエンド・システムおよび再使用可能サービスと統合した後、プロセス開発者は作業用のプロセスベース・アプリケーションを作成し、コンパイルします。次にこのアプリケーションは、Oracle BPMランタイムにデプロイされます。

Oracle BPM Suiteには、Oracle BPMランタイムにデプロイするための一般的なシナリオがあります。次のとおりです。

- Oracle BPM Studioからの直接のデプロイメント
Oracle BPMで作成されたアプリケーションは、他のSOAコンポジット・アプリケーションと同様に直接ランタイム環境にデプロイできます。これは通常、プロセス開発者がBPM Studioを使用してテスト環境または開発環境から行います。

SOAコンポジット・アプリケーションのデプロイの詳細は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドを参照してください。

- Oracle Business Process Composerからの直接のデプロイメント
Oracle BPMでは、Business Process Composerがインストールされているのと同じランタイム環境に直接、プロジェクト・テンプレートから作成したプロジェクトをデプロイできます。プロジェクトの作成時には承認ワークフローを指定できますが、このワークフローはプロジェクトのデプロイ前に完了しておく必要があります。

Business Process ComposerがOracle BPMランタイムと同じサーバー・インフラストラクチャにインストールされている場合は、Business Process Composerからデプロイできます。Business Process Composerからのデプロイでは、プロセス・アナリストがプロセスベースのビジネス・アプリケーションを容易にデプロイおよびテストできます。これは一般的に、テスト環境で行われます。

- エクスポートされたSARファイルを使用したデプロイメント
Oracle BPM StudioとBusiness Process Composerを使用すると、SARファイルを使用してアプリケーションをエクスポートできます。SARファイルは、ビジネス管理者がOracle Enterprise Managerを使用してランタイムにデプロイできます。

本番環境では、アプリケーションは通常この方法でデプロイされます。

- WebLogic Scripting Tool (WLST)を使用したデプロイ
Oracle BPMでは、Oracle BPMプロジェクトの管理およびデプロイ用にカスタマイズされたWLSTコマンドが用意されています。

1.5.4 Oracle BPMランタイム

アプリケーションのデプロイ後、そのランタイム環境では、ビジネス・プロセスがデプロイされた組織に割り当てられているロールに基づいて、Oracle BPMアプリケーションがプロセス参加者に対して使用可能になります。このステージは次の2つの機能にわかれています。

- ユーザーの相互作用
プロセス参加者とプロセス所有者は、プロセス・ワークスペースを使用して、実行中のアプリケーションと相互作用を行います。

また、プロセス・アナリストと所有者は、Business Process Composerを使用して、プロセスを監視し、Oracle Business Rulesを実行時に修正することもできます。

- プロセス管理および監視
プロセス所有者は、プロセス・ワークスペースを使用して実行中のプロセスを監視および管理します。プロセス・アナリストと所有者は、Oracle Process Analyticsを使用してビジネス・プロセスのリアルタイムのパフォーマンスを監視します。

- プロセス作成
必要な権限を持つプロセス参加者は、プロセス・ワークスペースまたはプロセス・スペースを使用して新しいプロセスを作成できます。

- システム管理
ビジネス管理者は、Oracle Enterprise ManagerおよびOracle WebLogic Server管理コンソールを使用して、実行中のビジネス・アプリケーションおよびランタイム・インフラストラクチャ全体を管理します。

1.6 Oracle BPMのユース・ケース

この項では、プロセス・モデリングからランタイムまでのOracle BPM Suiteのユースケースについて説明します。

1.6.1 ユース・ケース: BPM Studioを使用したプロジェクト・テンプレートの作成

このユース・ケースでは、Oracle BPM Studioを使用してプロジェクト・テンプレートを作成します。テンプレートは、プロセス・アナリストがBusiness Process Composerで新規プロジェクトを作成する際に使用されます。

Oracle BPM Studioを使用したプロジェクト・テンプレート作成の一般的なワークフロー

1. ビジネス要件を決定します。(プロセス・アナリスト)

2. Oracle BPM Studioを使用して必要なビジネス・プロセスをモデリングします(プロセス・アナリスト/プロセス開発者)
プロセス・アナリストはOracle JDeveloper内のプロセス・アナリスト・ロールを使用できます。

3. プロセスの各要素をバックエンド・システムと再使用可能サービスに統合することでプロセスを実装します(プロセス開発者)。

4. Oracle BPM Studioを使用してプロジェクト・テンプレートを作成します。(プロセス開発者)

5. プロジェクト・テンプレートをOracle BPM MDSリポジトリに公開します(プロセス開発者)。

6. プロジェクト・テンプレートに基づいて、新しいOracle BPMプロジェクトを作成します(プロセス・アナリスト)

7. プロジェクト・テンプレートで定義した再使用可能な必須サービスを実装します(プロセス・アナリスト)

8. プロジェクトをOracle BPMランタイムにデプロイします(プロセス・アナリスト)

1.6.2 ユース・ケース: BPM Studioを使用したプロセス・モデリングおよびアプリケーションのデプロイ

このユース・ケースでは、Oracle BPM Studioを使用してプロセス・モデルを作成します。モデルは、Oracle BPMランタイムにデプロイされる作業用ビジネス・アプリケーションの作成に使用されます。

Oracle BPM Studioを使用したプロセス・モデリングの一般的なワークフロー

1. ビジネス要件を決定します(プロセス・アナリスト)。

2. Oracle BPM Studioを使用して必要なビジネス・プロセスをモデリングします(プロセス・アナリスト/プロセス開発者)
プロセス・アナリストはOracle JDeveloper内のプロセス・アナリスト・ロールを使用できます。

3. プロセス・パフォーマンスをテストし、改善するためのシミュレーションを実行します。(プロセス・アナリスト/プロセス開発者)。

4. プロセスの各要素をバックエンド・システムと再使用可能サービスに統合することでプロセスを実装します(プロセス開発者)。

5. Oracle BPMプロジェクトをコンポジット・アプリケーションとしてコンパイルします。(プロセス開発者)

6. プロセスをランタイム環境にデプロイします(プロセス開発者、ビジネス管理者)。

7. 実行中のビジネス・アプリケーションの一部としてデプロイされたプロセスと相互作用します(プロセス参加者、プロセス所有者)

8. プロセスベースのアプリケーションを管理および監視します(ビジネス管理者、プロセス所有者)

1.6.3 ユース・ケース: Business Process Composerを使用したプロセス・ブループリントの作成

このユース・ケースでは、Business Process Composerを使用してプロセス・ブループリントを作成します。ブループリントはプロセス開発者が共有してOracle BPM Studioにインポートし、改良および実装します。

Business Process Composerを使用したプロセス・ブループリント作成の一般的なワークフロー

1. Business Process Composerを使用してプロセス・ブループリントを作成します(プロセス・アナリスト)。

2. ビジネス・プロセスの実装の詳細を準備して、プロセスベースのビジネス・アプリケーションをデプロイメント対象として準備します。(プロセス開発者)

3. プロジェクト・テンプレートを作成し、Oracle BPM Studioを使用してそれをOracle BPMメタデータ・ストア・リポジトリに公開します。(プロセス開発者)

4. プロジェクト・テンプレートに基づいてプロジェクトを作成します。(プロセス・アナリスト)

5. プロジェクト・テンプレートの編集ポリシーで定義したとおり、プロジェクトを編集します。(プロセス・アナリスト)

6. プロジェクトをOracle BPMランタイムにデプロイします。(プロセス・アナリスト、プロセス管理者)

1.6.4 ユース・ケース: Business Process Composerを使用したOracle Business Rulesの修正

このユース・ケースでは、Business Process Composerを使用して、実行時にOracle Business Rulesを編集します。アプリケーションのデプロイ後、プロセス・アナリストと所有者は、デプロイ済プロジェクトを開き、Oracle Business Rulesを編集できます。

Business Process Composerを使用したOracle Business Rules修正の一般的なワークフロー

1. 一連のビジネス・プロセスをモデリングします(プロセス・アナリスト)

2. アプリケーションを実装し、デプロイします(プロセス開発者)

3. Business Process Composerを使用してOracle Business Rulesを実行時に編集します(プロセス所有者)。

1.6.5 ユース・ケース: Oracle BPA Suiteを使用したビジネス・プロセスのモデリング

このユース・ケースでは、Oracle BPA Suiteを使用してビジネス・プロセスをモデリングします。これらのプロセスは、Oracle BPM Studioにインポートできます。

Oracle BPA SuiteとOracle BPM Suiteを使用したプロセス・モデリングの一般的なワークフロー

1. ビジネス要件を決定します(プロセス・アナリスト)。

2. Oracle BPAを使用して戦略的な目標、プロセス・マップ、バリュー・チェーン図を取得し、ビジネス・アーキテクチャを設計します(プロセス・アナリスト)。

3. 戦略的な分析を実行し、Oracle BPMプロジェクトのプロセス候補を決定します。(プロセス・アナリスト)

4. 前記で識別されたプロセス候補の詳細なプロセス・フローを設計します。(プロセス・アナリスト)

5. プロセス・モデルをOracle BPM Studioにインポートします(プロセス・アナリスト、プロセス開発者)。

6. 各プロセス・コンポーネントをバックエンド・システムと再使用可能サービスに統合することでプロセスを実装します(プロセス開発者)。

7. ビジネス・プロセスをBPMプロジェクトとしてランタイム環境にデプロイします(プロセス開発者、ビジネス管理者)。

8. ビジネス・アプリケーションの一部としてデプロイされたプロセスと相互作用します(プロセス参加者、プロセス所有者)

9. プロセスを管理します(ビジネス管理者、プロセス所有者)。

2
ビジネス・プロセス設計の概要

この章ではビジネス・プロセス設計について説明します。この章にはBusiness Process Management (BPMN)の基本的な概要を示します。この概要では、主に、このガイドで使用されるBPMN固有の用語について説明します。

OracleでのBPMN 2.0の実装の詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

また、この章では、営業見積サンプル・プロジェクトについても説明します。このプロジェクトはOracle BPMドキュメント・セット内の例全体で使用されています。

この章の内容は次のとおりです。

- 第2章「Business Process Management Notation (BPMN)の概要」

- 第2章「営業見積サンプル・プロジェクトの概要」

2.1 Business Process Management Notation (BPMN)の概要

この項では、Business Process Management Notation (BPMN)の概要について説明します。ここでは、主に、このガイド全体で使用されるBPMN用語について説明します。

2.1.1 Business Process Management Notation (BPMN)とは

Business Process Management Notation (BPMN)は、ビジネス・プロセスの定義に関する業界標準の表記です。Oracle BPMでは、BPMN 2.0がサポートされています。

BPMNの詳細は、http://www.bpmn.orgを参照してください。

2.1.2 ビジネス・プロセス

ビジネス・プロセスは一般に、実行後に明確な出力を生成する一連のタスクとして定義できます。ビジネスという用語が示すように、通常、ビジネス・プロセスは会社または組織のコンテキスト内で実行される作業を表します。

営業見積サンプル・プロジェクトは、ビジネス・プロセスの例を示しています。このプロジェクトにはタスクのシーケンスが含まれており、このシーケンスを実行すると、営業見積の承認または却下という結果が発生します。

また、Oracle BPMのコンテキストにおいては、ビジネス・プロセスはソフトウェアを使用して管理できる対象でもあります。Oracle BPMを使用すると、実際のビジネス・プロセスを営業見積サンプルのようにモデリングしてIT環境に統合できます。

2.1.2.1 プロセス・インスタンス

プロセス・インスタンスは、ビジネス・プロセスの特定のインスタンスを表します。通常、ビジネス・プロセスには組織における作業の実行方法を定義できるのに対し、プロセス・インスタンスではその組織内の特定の担当者の作業を表します。Oracle BPMでは、この担当者はプロセス参加者と呼ばれます。

たとえば、営業見積サンプルでは、ビジネス・プロセスの全体的な定義またはモデルを示しています。ここには、作業の実行を担当するプロセス参加者のロールが含まれています。このサンプルでは、営業見積を作成および承認する方法、およびその作業を実行する担当者のタイプが定義されます。

対照的に、プロセス・インスタンスは、特定の営業見積およびその承認を担当する特定の担当者を表します。

Oracle BPMを使用すると、ビジネス・プロセスをモデリングして実行可能なビジネス・アプリケーションに変換し、これらのアプリケーション内で作成されたプロセス・インスタンスを管理できるため、プロセスとプロセス・インスタンスの間のこのような区別が重要になります。

2.1.2.2 プロセス・トークン

プロセス・トークンは、BPMNにおける抽象的な概念です。プロセス・トークンは、プロセスにおける現在の実行ポイントを表します。ビジネス・プロセスには複数のトークンが含まれている場合があります。このような場合は、そのプロセスが複数のパスを経由して実行されていることを示します。

たとえば、多くの場合、プロセスのパスをスプリットするのにゲートウェイが使用されます。プロセス・パスをスプリットすると、複数のプロセス・トークンが作成されます。

2.1.3 フロー・オブジェクト

フロー・オブジェクトは、プロセス内で実行される作業を表すBPMNコンポーネントです。次の各項では、BPMNで使用できるフロー・オブジェクトのタイプについて説明します。

2.1.3.1 タスク

Oracle BPMでは、プロセスによって実行される作業を表すためにタスクが使用されます。

2.1.3.2 イベント

イベントでは、プロセスにおいて発生する事柄を定義します。

2.1.3.3 ゲートウェイ

ゲートウェイはプロセスのフローを決定するために使用されます。

2.1.3.4 シーケンス・フロー

シーケンス・フローは、フロー・オブジェクトを接続するために使用されます。

2.1.4 データ・オブジェクト

フロー・オブジェクトがビジネス・プロセスの動作の定義に使用されるのに対し、データ・オブジェクトは、ビジネス・プロセスによって使用される情報の定義および格納に使用されます。データ・オブジェクトはモデリング中またはプロセスの実装中に定義される変数です。プロセス・インスタンスでは、これらの変数を使用して特定の情報を格納します。

たとえば、営業見積サンプルでは、営業見積に関する情報の格納に使用される、複数のデータ・オブジェクトが定義されています。プロセス・インスタンスでは、実行時、これらの変数について特定の値を生成および格納します。

2.2 営業見積サンプル・プロジェクトの概要

営業見積プロジェクトでは、様々なOracle BPM機能の現実的な例を示します。このプロジェクトは、このドキュメントで説明されている機能の例を示すために、Oracle BPMドキュメント・セット内部で使用されています。

図2-1に、営業見積デモ・プロジェクトを示します。

図2-1 営業見積サンプル・プロジェクト

「図2-1 営業見積サンプル・プロジェクト」の説明

2.2.1 営業見積サンプルの詳細

次の各項では、営業見積サンプル・プロセスがどのように動作するかについて説明します。この例は、次に示す、より高いレベルのタスクに細分化できます。

- 2.2.1.1項「営業見積の開始」

- 2.2.1.2項「ビジネス実行確認の決定」

- 2.2.1.3項「見積の承認」

- 2.2.1.4項「承認結果」

これらの高いレベルのタスクについては、次の項で説明します。各項では、それぞれのタスクの実行に必要となる特定のフロー・オブジェクトの詳細が示されています。

2.2.1.1 営業見積の開始

営業見積プロジェクト内の最初のフロー・オブジェクトは、図2-2に示すように、データ・オブジェクトの初期値を設定し、プロセス・インスタンスを開始するために使用されます。

図2-2 営業見積の開始

「図2-2 営業見積の開始」の説明

営業見積の開始の部分では、次の処理を実行します。

1. 開始ポイントの定義(None開始イベント)

2. データ・オブジェクトの初期化(スクリプト・タスク)

3. プロセス・インスタンスの開始(イニシエータ・パターンを使用したユーザー・タスク)

4. ビジネス・インジケータ・データ・オブジェクトの値の設定(スクリプト・タスク)

2.2.1.2 ビジネス実行確認の決定

営業見積サンプルのフロー・オブジェクトの次のセットでは、企業のビジネス実行の確認が必要かどうかを決定します。確認が必要な場合、プロセスは、プロセス・フロー内の確認を実行する部分に進みます。確認が必要でない場合、プロセスは直接承認ステージに進みます。

図2-3は、ビジネス実行確認を実行するためのBPMNフロー・オブジェクトを示しています。

図2-3 ビジネス実行確認の決定

「図2-3 ビジネス実行確認の決定」の説明

次の手順は、ビジネス実行確認におけるプロセス・パスがどのように進むかを示しています。

ビジネス実行確認の決定

1. 承認フローの決定(ビジネス・ルール・タスク)
このステージは、ビジネス・ルール・タスクで開始します。このタスクには、ビジネス実行確認が必要かどうかを決定するために、Oracle Business Rulesが実装されています。

2. 承認フローの確認(排他ゲートウェイ)

- はいの場合は、ビジネス実行確認(ユーザー・タスク)を実行します。

- いいえの場合は、プロセス・フローは直接見積承認ステージに進みます。

3. 承認(パラレル・ゲートウェイ)

2.2.1.3 見積の承認

営業見積サンプルのフロー・オブジェクトの次のセットでは、営業見積の承認方法を定義します。図2-4に示すように、ビジネス実行確認が完了した後、見積は承認フェーズに移動します。

この例では、承認プロセスは、同時に実行される2つの個別のフロー によって定義されています。次のとおりです。

- 営業見積を承認します。
また、このプロセス・パスも2つのパスにスプリットされています。この例では、見積が自動承認、つまり、一定の条件に従って承認される場合があります。それ以外の場合は、プロセス参加者が明示的に見積を承認することが必要となります。

- 営業見積に関連する、契約条件に含まれる条件を承認します。
このプロセス・パスでは、プロセス参加者が売買契約の条件を承認する必要があります。

これらのパラレル・プロセス・パスは、完了後にマージされます。次に、プロセス・パスは承認結果ステージに進みます。

図2-4 見積の承認

「図2-4 見積の承認」の説明

見積の承認

1. 承認(パラレル・ゲートウェイ-スプリット)

1. 自動承認の確認(ゲートウェイ)
見積の承認

見積の承認結果の設定

2. 条件の承認

2. 見積の承認のマージ(パラレル・ゲートウェイ-マージ)

2.2.1.4 承認結果

承認結果ステージは、営業見積サンプルの最終ステージを表します。このステージの最初に、営業見積が承認されたかどうかを確認します。

営業見積が承認されている場合は、プロセスは最終プロセス・フローに進みます。最終プロセス・フローは終了イベントに進みます。

営業見積が承認されていない場合は、プロセスは見積入力タスクに戻ります。このタスクでは見積を再度入力する必要があり、プロセスが繰り返されます。

図2-5 承認結果

「図2-5 承認結果」の説明

承認結果

1. 承認結果(排他ゲートウェイ)
承認結果は排他ゲートウェイを使用して実装されています。このゲートウェイには2つの送信シーケンス・フローが含まれており、これらのフローによってプロセスが排他ゲートウェイから外に出るパスが決定されます。

1. 承認
この処理はデフォルト・シーケンス・フローを使用して実装されています。

見積の完成

見積の保存

終了イベント

2. 却下: プロセス・フローが見積入力に戻ります。
この処理は、条件シーケンス・フローを使用して実装されています。この条件シーケンス・フローに使用される式によって、プロセス・パスが続行するかどうかが決定されます。

3
Oracle BPM Studioの概要

この章では、Oracle BPM Studioの概略を紹介し、Oracle BPM Suite内部でのOracle BPM Studioの使用方法について説明します。

この章の内容は次のとおりです。

- 3.1項「Oracle BPM Studioの概要」

- 3.2項「アプリケーション開発ライフサイクルの概要」

- 3.3項「Oracle BPM Studioユーザー・インタフェースの概要」

3.1 Oracle BPM Studioの概要

Oracle BPM StudioはOracle BPM Suiteのコンポーネントの1つです。Oracle BPM Studioを使用すると、プロセス開発者はプロセスベースのアプリケーションを作成できます。またプロセス・アナリストおよびプロセス開発者はビジネス・プロセスをモデリングできます。

Oracle BPM StudioはOracle JDeveloper IDEの一部であり、Oracle SOA Suiteで使用されるJDeveloperユーザー・インタフェース要素の多くを共有しています。

3.1.1 Oracle BPM Studioのユース・ケース

Oracle BPM Studioの一般的なユース・ケースは次の3つです。

- Oracle BPA SuiteまたはOracle Business Process Composerを使用して作成されたプロセス・モデルに基づいて、プロセスベースのビジネス・アプリケーションを開発します。

- プロセス・モデルを作成し、プロセスベースのビジネス・アプリケーションとして実装します。

- Business Process Composerで使用されるプロジェクト・テンプレートを作成して、実行可能なビジネス・アプリケーションを作成します。

これらのユース・ケースがアプリケーション開発ライフサイクルの一般的なワークフローにどのように組み込まれているかの詳細は、3.2項を参照してください。

3.1.2 JDeveloperロールの概要

JDeveloper環境は、ユーザーが選択したロールに基づいて調整できます。修正した環境では、メニュー、設定、新規ギャラリおよびダイアログの個別フィールドなどの不要項目をJDeveloperから削除します。選択するJDeveloperロールによって、JDeveloperで作業を行う際に使用可能なテクノロジとオプションが決定されます。Oracle BPMには、ビジネス・アナリストが使用できるプロセス設計要素のみを含むアナリスト・ロールが含まれています。Oracle BPMおよびSOA Suites の機能全部にアクセスする必要のあるプロセス開発者は、デフォルト・ロールを使用する必要があります。

3.2 アプリケーション開発ライフサイクルの概要

この項では、Oracle BPM Studioのプロセス開発者から見たアプリケーション開発ライフサイクルについて説明します。

3.2.1 モデリング、実装およびデプロイメントの概要

以降の項で説明するアプリケーション開発サイクルの各ワークフローは、次のステージに分けられます。

- モデリング

- 実装

- デプロイ

実際のアプリケーション開発環境においては、これらのステージの区別が明確に定義されていないこともあります。プロセス開発者は、アプリケーションの作成時にプロセスに追加や変更を行う必要があることがあります。

最終的な本番アプリケーションは、モデリングと実装を何度も繰り返した後で稼働アプリケーションとしてデプロイされる場合があります。また、テストのためにデプロイされたアプリケーションが再びモデリングおよび実装のステージに渡され、その後で本番環境にデプロイされる場合もあります。

3.2.2 ワークフロー: アプリケーションのモデリング、実装およびデプロイ

図3-1は、Oracle BPM Studioを使用してアプリケーション設計のすべてのステージを実行する一般的なワークフローを示しています。

図3-1 Studioを使用したモデリング、実装およびデプロイ

「図3-1 Studioを使用したモデリング、実装およびデプロイメント」の説明

次の手順は、このワークフローの各ステージを説明しています。

1. Oracle BPM Studioを使用してプロセス・モデルを作成します(プロセス・アナリストまたはプロセス開発者)。

2. 必要なサービスおよびアプリケーション・リソースを実装します(プロセス開発者)。

3. アプリケーションをコンパイルします(プロセス開発者)。

4. Oracle BPMランタイムにデプロイします(プロセス開発者またはプロセス管理者)。

3.2.3 ワークフロー: プロセス・ブループリントに基づいたアプリケーションの作成

図3-1は、Business Process Composerを使用してアプリケーション開発ライフサイクルの初期の各ステージを実行する一般的なワークフローを示しています。

図3-2 Oracle Business Process Composerを使用したプロジェクト・ブループリントの作成

「図3-2 Oracle Business Process Composerを使用したプロジェクト・ブループリントの作成」の説明

次の手順は、このワークフローの各ステージを説明しています。

1. Business Process Composerを使用してブループリントを作成します(プロセス・アナリスト)

2. プロセス・ブループリントを含むプロジェクトをMDSに公開します(プロセス・アナリスト)。

3. Oracle BPM Studioでプロジェクトを開きます(プロセス開発者)。

4. プロジェクトをプロセスベースのビジネス・アプリケーションの一部として実装します(プロセス開発者)。

5. プロジェクトをランタイムにデプロイするか、プロジェクト・テンプレートとして保存します。

1. プロセスをランタイムにデプロイします(プロセス開発者、ビジネス管理者)。または

2. アプリケーションをプロジェクト・テンプレートとして保存します(プロセス開発者)。

3. プロジェクトをSARファイルとしてエクスポートします(プロセス・アナリスト)。このファイルをOracle BPMランタイムにデプロイします(ビジネス管理者)。

3.2.4 ワークフロー: プロジェクト・テンプレートの作成

図3-1は、開発サイクルの最初にOracle BPM Studioを使用してプロジェクト・テンプレートを作成する一般的なワークフローを示しています。ここで作成したテンプレートは、プロセス・アナリストがBusiness Process Composerを使用して編集します。

図3-3 BPM Studioを使用したプロジェクト・テンプレートの作成

「図3-3 BPM Studioを使用したプロジェクト・テンプレートの作成」の説明」

次の手順は、このワークフローの各ステージを説明しています。

1. Oracle BPM Studioを使用してプロジェクト・テンプレートを作成します(プロセス開発者)。

2. テンプレートをMDSに公開します(プロセス開発者)。

3. Business Process Composerを使用して、プロジェクト・テンプレートに基づいて新規のプロジェクトを作成します(プロセス・アナリスト)。

4. テンプレートで定義されている編集ポリシーに基づいて、プロジェクト内のプロセスを編集します(プロセス・アナリスト)。

5. プロジェクトを検証します(プロセス・アナリスト)。

6. プロジェクトをデプロイするか、MDSに再公開してプロセス開発者に戻します。

1. プロセスを直接Oracle BPMランタイムにデプロイします(プロセス・アナリスト、ビジネス管理者)。これには承認ワークフローが必要な場合があります。

2. プロジェクトをOracle BPM MDSパーティションに再公開します(プロセス・アナリスト)。プロジェクトを再公開すると、ビジネス・プロセスをアプリケーション全体に実装する他のプロセス・アナリストまたはプロセス開発者とプロジェクトを共有できます。

3. プロジェクトをSARファイルとしてエクスポートします(プロセス・アナリスト)。このファイルは、Oracle BPMランタイムにデプロイできます(プロセス管理者)。

3.2.5 ワークフロー: Oracle BPM SuiteとOracle BPAとの統合

図3-4は、Oracle BPA Suiteを使用してプロセス・モデルを作成してから、Oracle BPM Studioを使用してプロセスベースのビジネス・アプリケーションを作成およびデプロイする一般的なワークフローを示しています。

図3-4 Studioを使用したOracle BPAからのプロセスの実装

「図3-4 Studioを使用したOracle BPAからのプロセスの実装」の説明

次の手順は、このワークフローの各ステージを説明しています。

1. Oracle BPA Suiteを使用してプロセス・モデルを作成します(プロセス・アナリスト)。

2. プロセス・モデルをOracle BPM Studioにインポートします(プロセス開発者)。

3. 実装します(プロセス開発者)

4. コンパイルします(プロセス開発者)

5. Oracle BPMランタイムにデプロイします(プロセス開発者またはプロセス管理者)。

1. MDSを使用してOracle BPM Studioから直接デプロイします。

2. プロジェクトをSARファイルとしてエクスポートします。このファイルは、Oracle Enterprise Managerを使用してBPMランタイムにインポートできます。

3.3 Oracle BPM Studioユーザー・インタフェースの概要

Oracle BPM StudioはOracle JDeveloperの統合部分なので、ユーザー・インタフェースで他のOracle製品と同じコンポーネントを多く使用しています。この項では、Oracle BPM Studioで使用される様々なUIコンポーネントについて説明します。

図3-5は、見積要求サンプル・プロセスが表示されたOracle BPM Studioのレイアウトを示しています。

図3-5 Oracle BPM Studio

「図3-5 Oracle BPM Studio」の説明

3.3.1 Oracle BPMのプロジェクト・ナビゲータ

Oracle BPMのプロジェクト・ナビゲータには、Oracle BPMプロジェクトのコンポーネントの階層ビューが表示されます。ナビゲータに表示されるコンポーネントは、ビジネス・プロセスのモデリングと実装に関連したものです。

詳細は、第4章「プロジェクトおよびプロジェクト・テンプレートの使用」を参照してください。

表3-1 Oracle BPMのプロジェクト・コンポーネント

コンポーネント

説明

プロセス

このプロジェクトのビジネス・プロセスが含まれます。BPMNプロセスとBPELプロセスの両方が含まれることもあります。

アクティビティ・ガイド

このプロジェクトに定義されているマイルストンが含まれます。

組織

このプロジェクトに定義されている組織要素が含まれます。

ビジネス・カタログ

このプロジェクトに定義されているビジネス・カタログ要素が含まれます。

シミュレーション

このプロジェクトに定義されているプロセスおよびプロジェクト・シミュレーション・モデルが含まれます。

リソース

プロジェクトのXSLT変換が含まれます。

図3-6は、見積要求デモ・プロセスの内容が表示されたBPMプロジェクト・ナビゲータを示しています。

図3-6 BPMプロジェクト・ナビゲータ

「図3-6 BPMプロジェクト・ナビゲータ」の説明

3.3.2 アプリケーション・ナビゲータ

アプリケーション・ナビゲータにも、プロジェクト・ナビゲータと同様にプロジェクトのコンポーネントの階層ビューが表示されます。ただしこれらは、SOAコンポジット・アプリケーションで使用される基礎となる構成ファイル、XMLファイル、Javaクラスおよびその他のリソースを含む下位レベルのコンポーネントです。

図3-7は、アプリケーション・ナビゲータに表示される営業見積サンプルのファイルのいくつかを示しています。

図3-7 アプリケーション・ナビゲータ

「図3-7 アプリケーション・ナビゲータ」の説明

SOAコンポジット・アプリケーションの内容の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

3.3.3 BPMNプロセス・エディタ

プロセス・エディタを使用すると、コンポーネント・パレットからフロー・オブジェクトと呼ばれるBPMNコンポーネントをドラッグ・アンド・ドロップすることにより、ビジネス・プロセスをモデリングできます。図3-8は、プロセス・エディタで開かれる見積要求サンプル・プロセスを示しています。ツールバーのフロー・オブジェクトのドロップダウン・メニューを使用してオブジェクトを挿入することもできます。

図3-8 プロセス・エディタ

「図3-8 プロセス・エディタ」の説明

3.3.4 BPMNコンポーネント・パレット

BPMコンポーネント・パレットには、Oracle BPMでサポートされるBPMNフロー・オブジェクトのリストが含まれています。BPMコンポーネント・パレットからこれらのフロー・オブジェクトをプロセス・エディタにドラッグ・アンド・ドロップすることにより、ビジネス・プロセスをモデリングできます。フロー・オブジェクトを使用してビジネス・プロセスをモデリングする方法の詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

BPMNフロー・プロジェクトは、「アクティビティ」、「イベント」、「ゲートウェイ」などのタイプに応じて、コンポーネント・パレットでグループ化されます。グループは、さらにサブタイプに分けられることがあります。図3-9では、BPMコンポーネント・パレットで「アクティビティ」グループが展開され、「デフォルト」および「対話型」の2つのアクティビティ・タイプが表示されています。

図3-9 コンポーネント・パレット

「図3-9 コンポーネント・パレット」の説明

3.3.5 プロパティ・インスペクタ

プロパティ・インスペクタを使用すると、プロセス・エディタで現在のプロセスのプロパティを表示および編集したり、オブジェクトがプロパティ調査に参加している場合はプロセスの選択されたフロー・オブジェクトのプロパティを表示および編集できます。調査できるフロー・オブジェクトには、アクティビティ、ビジネス・ルール、コール・アクティビティ、手動タスク、受信タスク、スクリプト・タスク、送信タスクおよびサービス・タスクが含まれます。

図3-10は、プロパティ・インスペクタの見積入力ユーザー・タスクのプロパティを示しています。プロパティ・インスペクタのメイン・エリアには、プロパティのグループが、「+」または「-」アイコンをクリックすると開閉できる名前の付いたセクションに構成されています。選択されたプロセスまたはオブジェクトに関連するセクションのみがプロパティ・インスペクタに表示されます(プロセスの「一般」、「拡張」、「シミュレーション」、ユーザー・タスク・フロー・オブジェクトの「一般」、「実装」、「データ・アソシエーション」、「シミュレーション」など)。

図3-10 プロパティ・インスペクタ

「図3-10 プロパティ・インスペクタ」の説明

3.3.6 Oracle BPM MDSブラウザ

Oracle BPM MDSブラウザを使用すると、Oracle BPM MDSリポジトリに格納されているプロジェクトとプロジェクト・テンプレートを表示および使用できます。MDSリポジトリの詳細は、4.5項「Oracle BPM Metadata Service(MDS)リポジトリの使用」を参照してください。

図3-11 Oracle BPM MDSブラウザ

「図3-11 Oracle BPM MDSブラウザ」の説明

3.3.7 「構造」ビュー

「構造」ウィンドウには、その構造内のダイアグラム、ナビゲータ、エディタとビューア、および「プロパティ・インスペクタ」のウィンドウのうちアクティブなウィンドウ内で現在選択されているコンポーネント内のデータが構造的に表示されます。

「構造」ウィンドウに表示される構造コンポーネントは、通常、プロジェクト・ナビゲータまたはアプリケーション・ナビゲータで選択されたコンポーネントです。

「構造」ウィンドウから、次のような様々なタスクを実行できます。

- プロセス・プロパティの編集

- アクティビティ・ガイドの構成および新規マイルストンの作成

- BPMNプロセスからBPELプロセスへの変換

- ビジネス・オブジェクト、モジュールおよびビジネス例外の作成

- 新規のシミュレーション・モデルの作成。

図3-12は、BPMプロジェクト・ナビゲータでBPMNプロセスを選択したときの「構造」ウィンドウを示しています。

図3-12 「構造」ビュー

「図3-12 「構造」ビュー」の説明

プロセスの構造は、「構造」ウィンドウで、「アクティビティ」、「ビジネス・インジケータ」、「会話」、「相関」、「測定」、「プロセス・データ・オブジェクト」、「プロジェクト・データ・オブジェクト」のカテゴリに分けられます。プロセスが再利用可能なプロセスの場合、2つの追加カテゴリ(「プロセス入力引数」および「プロセス出力引数」)が表示されます。カテゴリにはサブカテゴリがある場合があり、たとえば、「アクティビティ」はさらに「アクティビティ」、「ゲートウェイ」および「イベント」に分けられます。フロー・オブジェクトを使用したビジネス・プロセスのモデリングの詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

3.3.8 「サムネイル」ビュー

「サムネイル」ウィンドウを使用すると、プロセス・エディタで開いているアクティブなビジネス・プロセスのサムネイル表現を表示できます。「サムネイル」ビューはプロセス・エディタと同期されているため、プロセス・エディタのウィンドウに適さない大きなプロセスのナビゲートに役立ちます。

デフォルトでは、「サムネイル」ウィンドウは、図3-13に示すように「構造」ウィンドウの隣にあります。「サムネイル」ビューの白い長方形は、プロセス・エディタのビューに現在表示されているプロセスのセクションを示します。「サムネイル」ビューで白い長方形をドラッグすると、プロセス・エディタのプロセスをパンして、プロセス・エディタに表示するプロセスのセクションを変更し、プロセスの指定のオブジェクトにすばやくナビゲートできます。

図3-13 「サムネイル」ビュー

「図3-13 「サムネイル」ビュー」の説明

3.3.9 「シミュレーション」ビュー

「シミュレーション」ビューでは、プロジェクトのシミュレーション・モデルを実行し、その結果を表示できます。図3-14には、シミュレーションの結果が棒グラフで表示されています。

図3-14 「シミュレーション」ビュー

「図3-14 「シミュレーション」ビュー」の説明

3.3.10 「ログ」ウィンドウ

「ログ」ウィンドウには、BPMプロジェクトおよびSOAコンポジット・アプリケーションのコンパイルとデプロイメントに関するメッセージ、エラーおよび警告が表示されます。

3.3.11 「ドキュメント」ウィンドウ

「ドキュメント」ウィンドウでは、プロセスのエンド・ユーザーおよびユース・ケースのドキュメントを作成できます。プロセス全部に対するドキュメントを追加することも、プロセス内の各フロー・オブジェクトに対するドキュメントを追加することもできます。図3-15は、「ドキュメント」ウィンドウを示しています。

図3-15 「ドキュメント」ウィンドウ

「図3-15 「ドキュメント」ウィンドウ」の説明

第II部

Oracle BPM Studioの使用

この部では、Oracle BPMプロジェクトおよびプロジェクト・テンプレートの作成方法と使用方法について説明します。また、プロセスの作成方法とプロセス・エディタの使用方法についても説明します。

この部の内容は次のとおりです。

- 第4章「プロジェクトおよびプロジェクト・テンプレートの使用」

- 第5章「プロセスおよびプロセス・エディタの使用」

4 プロジェクトおよびプロジェクト・テンプレートの使用

この章では、Oracle BPM Studioを利用してプロジェクトを作成および使用する方法について説明します。

この章の内容は次のとおりです。

- 4.1項「Oracle BPMプロジェクトの概要」

- 4.2項「プロジェクトの作成および使用」

- 4.3項「プロジェクト・テンプレートの概要」

- 4.4項「プロジェクト・テンプレートの使用」

- 4.5項「Oracle BPM Metadata Service (MDS)リポジトリの使用」

4.1 Oracle BPMプロジェクトの概要

BPMプロジェクトは、Oracle BPMで作成されるビジネス・アプリケーションを作成し、サポートするためのリソースのコンテナです。Oracle BPMプロジェクトはSOAプロジェクトに基づいていますが、BPMNプロセスなどのOracle BPM Suiteの追加機能が含まれています。

新規プロジェクトは、Business Process Composerで直接作成するか、プロジェクト・テンプレートに基づくプロジェクトを作成して編集できます。

プロジェクトはBusiness Process ComposerとOracle BPM Studioの間で共有できます。また、プロジェクトをBPMランタイムにデプロイすることもできます。開発ライフサイクルにおけるプロジェクトの使用方法の詳細は、3.2項「アプリケーション開発ライフサイクルの概要」を参照してください。

4.1.1 プロジェクト・リソースの概要

各BPMプロジェクトには、1つ以上のビジネス・プロセスが含まれており、ビジネス・プロセスやアプリケーション全体で使用される他のリソースが含まれることもあります。アプリケーションを他のアプリケーションおよびシステムに接続できる他の再利使可能なリソースを含めることもできます。

Oracle BPMプロジェクトの主なリソースを次に示します。

- プロセス: BPMプロセスとBPELプロセスの両方を含めることができます。

- アクティビティ・ガイド: BPMNプロセスごとに定義されるプロジェクト・マイルストンが含まれます。

- 組織: BPMNプロセス・モデルで組織の組織構造を模倣するために使用される組織要素が含まれます。

- ビジネス・カタログ: サービス、アダプタおよびヒューマン・タスクなどの再使用可能なサービスが含まれます。

- シミュレーション: プロジェクトと個々のBPMNプロセスに対して定義されるシミュレーション・モデルが含まれます。

- リソース: プロジェクトのXML変換定義が含まれます。

これらの各リソースには、BPMプロジェクト・ナビゲータからアクセス可能です。他のアプリケーション・リソースには、アプリケーション・ナビゲータからアクセス可能です。

4.1.2 Oracle BPMユーザー間でのプロジェクトの共有

Oracle BPMはOracle Metadata Service(MDS)リポジトリを使用して、他のOracle BPM StudioおよびBusiness Process Composerのユーザー間でプロジェクトおよびプロジェクト・テンプレートを共有します。

BPM StudioとBusiness Process Composerの間でプロジェクトおよびプロジェクト・テンプレートを共有する方法の詳細は、3.2項「アプリケーション開発ライフサイクルの概要」を参照してください。

Oracle BPM MDSリポジトリの詳細は、4.5項「Oracle BPM Metadata Service (MDS)リポジトリの使用」を参照してください。

4.2 プロジェクトの作成および使用

次の項では、新規のOracle BPMプロジェクトを作成して、他のプロジェクトに関連するタスクを実行する方法について説明します。Oracle BPM MDSでのプロジェクトの処理については、4.5項「Oracle BPM Metadata Service(MDS)リポジトリの使用」を参照してください。

4.2.1 新規のプロジェクトを作成する方法

Oracle BPMプロジェクトの作成方法は、他のタイプのSOAコンポジット・アプリケーション・コンポーネントの作成方法と同じです。

新規のOracle BPMプロジェクトを作成するには:

1. メニューから、「ファイル」→「新規」を選択します。

2. 「カテゴリ」の下で、「BPM層」の次に「BPMプロジェクト」を選択し、「OK」をクリックします。

3. プロジェクトの名前を入力します。

4. BPMおよびSOAが「選択済」列に表示されることを確認してから、「次へ」をクリックします。

5. SOAコンポジットの名前を入力します。
デフォルトでは、「次のものを使用するコンポジット」というBPMNプロセス・テンプレートを使用して、BPMプロジェクトが作成されて構成されます。

6. 「終了」をクリックします。

新規のプロジェクトが作成され、ナビゲータに表示されます。プロジェクトおよびコンポジット・ファイルが作成されると、BPMNプロセスの作成ウィザードが自動的に起動します。新規プロセスを作成するか、ウィザードを取り消すかを選択できます。

BPMNプロセスの新規作成の詳細は、5.1.2項「新規のビジネス・プロセスを作成する方法」を参照してください。

4.2.2 ファイル・システムからプロジェクトを開く方法

ファイル・システムからOracle BPMプロジェクトを直接開くことができます。通常、これは以前閉じたローカル・プロジェクトを開く場合に使用します。

他のユーザーと共有するプロジェクトは、エクスポート元のOracle BPMプロジェクトからインポートするか、またはOracle BPM MDSを使用してインポートします。

プロジェクトを開くには:

1. メニューから、「ファイル」→「開く」を選択します。

2. プロジェクト・フォルダの場所を参照します。

3. プロジェクトのJavaプロジェクト(.jpr)ファイルを選択します。

4. 「開く」をクリックします。

BPMプロジェクト・ナビゲータにプロジェクトが表示されます。

注意:

ファイル・システムからプロジェクトを開いても、プロジェクトの位置は元のままです。これは、Oracle JDeveloperの作業ディレクトリにコピーされません。

4.2.3 プロジェクトをエクスポートする方法

エクスポートしたプロジェクトを使用すると、他のOracle BPM Studioユーザーとプロジェクトを共有できます。この方法は、プロジェクトをOracle BPM MDSに公開して共有することが適切でない場合に便利です。

プロジェクトをエクスポートするには:

1. メニューから、「ファイル」→「エクスポート」を選択します。

2. 「BPMプロジェクトのエクスポート」を選択し、「OK」をクリックします。

3. プロジェクトの名前を指定して、プロジェクトをエクスポートする場所を参照します。

4. 「次へ」をクリックします。

5. 「次へ」をクリックし、「終了」をクリックします。

4.2.4 エクスポート済のプロジェクトをインポートする方法

Oracle BPMプロジェクトをOracle BPM StudioまたはOracle Business Business Process Composerからエクスポートした後、再びOracle BPM Studioにインポートできます。これにより、Oracle BPM MDSを使用せずにファイル・システムから直接プロジェクトを共有できます。

プロジェクトをインポートするには:

1. メニューから、「ファイル」→「インポート」を選択します。

2. 「BPMプロジェクトのインポート」を選択して、「OK」をクリックします。

3. エクスポート済プロジェクトの.expファイルの場所を参照し、「開く」をクリックします。

4. プロジェクト・ルート・フォルダを選択して、「次へ」をクリックします。

5. プロジェクト名を入力して、「次へ」をクリックします。

6. 「次へ」をクリックし、「終了」をクリックします。

4.2.5 プロジェクト・プリファレンスを編集する方法

プロジェクト・プリファレンスを編集して、次のようにOracle BPMプロジェクトの動作を構成できます。

- サンプリング・ポイントおよびプロセス分析の構成。

- 一般的なプロセス・プロパティ、レイアウト・プロパティ、プロセス関連メッセージの強調表示する重大度レベル、およびデータ・アソシエーションで使用するデフォルト・モードの構成。

- プロジェクトへのローカリゼーション言語の追加。

プロジェクト・プリファレンスを編集するには:

1. 「ビュー」メニューから「BPMプロジェクト・ナビゲータ」を選択します。

2. プリファレンスを編集するプロジェクトを右クリックし、「プロジェクト・プリファレンス」を選択します。

3. 必要に応じてプロジェクト・プリファレンスを編集し、「OK」をクリックします。

特定のプロジェクト・プリファレンスの詳細は、オンライン・ヘルプのプロジェクト・プリファレンスに関する項を参照してください。

4.3 プロジェクト・テンプレートの概要

プロジェクト・テンプレートは、新しいOracle BPMアプリケーションを作成する場合の基本として使用されるOracle BPMプロジェクトです。

プロジェクト・テンプレートは、Oracle BPM Studioで作成します。プロセス開発者は、プロジェクト・テンプレートで、ビジネス・カタログのすべての必須のサービスとその他のコンポーネントを含むBPMプロジェクトを作成できます。

その後、プロジェクト・テンプレートをOracle BPM MDSにパブリッシュすると、プロセス・アナリストがOracle Business Process Composerでプロジェクト・テンプレートを使用して、そのプロジェクト・テンプレートに基づく新しいデプロイ可能なプロジェクトを作成することができます。

プロジェクト・テンプレートから作成されるプロジェクトに対してプロセス・アナリストが実行できる変更内容は、プロジェクト・テンプレートの編集ポリシーで定義されます。

4.3.1 編集ポリシーの概要

プロジェクト・テンプレートでは、テンプレート内のBPMNプロセスおよびフロー・オブジェクトに関する編集ポリシーを定義できます。この編集ポリシーによって、プロジェクト・テンプレートに基づいて新しいプロジェクトを作成する際に、プロセスのどの部分を変更または編集できるかが決定されます。

編集ポリシーは、プロセス・レベルで定義されます。ただし、個々のフロー・オブジェクトに対して編集ポリシーを定義することもできます。

編集ポリシーを使用すると、テンプレートからのプロジェクト作成時にプロセスのどの要素を変更でき、どの要素を変更できないかを、プロジェクト・テンプレートの作成者が定義できます。

注意:

編集ポリシーの定義にはOracle BPM Studioを使用します。Business Process Composerを使用してプロセスおよび要素の編集ポリシー設定を変更することはできません。

4.3.1.1 プロセス・レベルの編集ポリシー

プロジェクト・テンプレートでは各プロセスに編集ポリシーが含まれており、そのポリシーによって、Business Process Composerからプロセスに加えることができる変更内容が決定されます。

表4-1で、プロセス・レベルの編集ポリシーについて説明します。

表4-1 プロセス・レベルの編集ポリシー

編集ポリシー

説明

シールされたフロー

プロセスの全体的なフローを変更することはできません。ユーザーは特定の実装の詳細を編集できますが、プロセス・フローを変更できません。

シールされたアクティビティ

プロセス内の個々のアクティビティ(フロー・オブジェクト)は、変更できません。これには、ビジネス・カタログからのコンポーネントの割り当てなど、フロー・オブジェクトのプロパティの編集が含まれます

注意:

編集ポリシー・テンプレートを定義しない場合、BPMNフロー・オブジェクトの追加、削除などを行って、ユーザーはプロセス・フローを変更することができます。アクティビティ(フロー・オブジェクト)のレベルで定義する編集ポリシーによっては、フロー・オブジェクトのプロパティを編集できる場合もあります。

4.3.1.2 アクティビティ編集ポリシー

プロセスで、個々のフロー・オブジェクトに適用される編集ポリシーを定義することもできます。

表4-2 コンポーネント・レベルの編集ポリシー

編集ポリシー

説明

シール済

コンポーネントは変更できません。

実装する必要があります

デプロイ可能なプロジェクトを作成するには、テンプレート・ユーザーはこのコンポーネントを実装する必要があります。

実装を変更できます

テンプレート・ユーザーは必要に応じてこのコンポーネントを再定義できます。

プロセス権限の使用

コンポーネントは、プロセスの編集ポリシーを継承します。

4.3.2 プロジェクト・テンプレートでのデータ・オブジェクトおよび変数の使用

プロジェクト・テンプレートでは、プロジェクト内で使用されるデータ・オブジェクトを定義します。使用されるデータ・オブジェクトには、Oracle BPMのデフォルト・タイプや、プロセス・テンプレート開発者がOracle BPM Studioで作成した複合データ・オブジェクトがあります。

Business Process Composerでプロセス・テンプレートを編集する場合、必要に応じて新規データ・オブジェクトを追加および作成できます。ただし、新規データ・オブジェクトは必ず、プロジェクト・テンプレートにすでに定義されているタイプに基づいて作成する必要があります。複合データ・オブジェクトの新規のタイプは作成できません。

4.3.3 プロジェクト・テンプレートでのビジネス・カタログの使用

プロジェクト・テンプレートを使用すると、ビジネス・カタログの要素を取り込むことができます。これにより、再利用可能なサービスを作成して、プロジェクト・テンプレートに基づいて作成した各プロジェクトでそれを使用できます。

プロジェクト・テンプレートには次のビジネス・カタログ・コンポーネントを含めることができます。

- ヒューマン・タスク

- ビジネス・ルール

- サービス

- ビジネス・オブジェクト

プロセス・アナリストは、Business Process Composerを使用して、ビジネス・カタログをプロセス内の対応するアクティビティに割り当てることにより、プロジェクト内のこれらのコンポーネントを再利用できます。

Business Process Composerと共有されるプロジェクト・テンプレートを作成する際は、テンプレートをMDSに公開する前に、必要なビジネス・カタログ・コンポーネントを作成する必要があります。Business Process Composerでは、いくつかのビジネス・カタログ・コンポーネントの作成および編集のみが可能です。詳細は、『Oracle Fusion Middleware Business Process Composerユーザーズ・ガイド』を参照してください。

4.4 プロジェクト・テンプレートの使用

次の各項では、プロジェクト・テンプレートを作成し、プロセスおよびプロセス内のアクティビティの編集ポリシーを設定する方法について説明します。

4.4.1 新規のプロジェクト・テンプレートを作成する方法

作成したプロジェクト・テンプレートをOracle BPM MDSに公開する方法の詳細は、4.5項「Oracle BPM Metadata Service (MDS)リポジトリの使用」を参照してください。

Oracle BPM MDSリポジトリにプロジェクト・テンプレートを公開すると、ビジネス・ユーザーはそのテンプレートを新規のデプロイ可能なBPMプロジェクトの作成に使用できます。詳細は、『Oracle Fusion Middleware Business Process Composerユーザーズ・ガイド』を参照してください。

プロジェクト・テンプレートを作成するには:

1. メニューから、「ファイル」→「新規」を選択します。

2. 「BPM層」を選択し、「BPMプロジェクト・テンプレート」を選択します。

3. 「OK」をクリックします。

4. プロジェクトの名前を入力し、「終了」をクリックします。

「終了」をクリックすると、BPM プロジェクト・ナビゲータに新規のプロジェクト・テンプレートが表示されます。新規のプロセスを作成し、プロセスおよびアクティビティに必要な編集ポリシーを定義できます。

また、Business Process Composerを使用してプロセス・アナリストとテンプレートを共有する場合は、テンプレートをOracle BPM MDSに公開する前に、必要なビジネス・カタログ・コンポーネントを定義する必要もあります。

4.4.2 既存のBPMプロジェクトからプロジェクト・テンプレートを作成する方法

既存のBPMプロジェクトからプロジェクト・テンプレートを作成できます。これによって、BPMプロジェクトをプロジェクト・テンプレートとして使用可能にする一方で、Oracle BPM StudioでそのBPMプロジェクトの開発を続行できます。

既存のプロセスからプロジェクト・テンプレートを作成するには:

1. プロジェクトを開きます。

2. BPMプロジェクト・ナビゲータでプロジェクトを右クリックし、「テンプレートに変換」を選択します。

注意:

プロジェクトをプロジェクト・テンプレートに変換した後に、それを通常のプロジェクトに変換することはできません。

3. 「はい」をクリックします。

4.4.3 プロジェクト・テンプレートでプロセスの編集ポリシーを設定する方法

プロセスの編集ポリシーを設定すると、プロジェクト・テンプレートに基づいて作成したプロジェクト内のプロセスに対して行うことができるプロセス・レベルの変更のタイプが決定されます。

プロセスの編集ポリシーを設定するには:

1. BPM プロジェクト・ナビゲータでプロセスを右クリックし、「プロパティ」を選択します。

2. 「詳細設定」タブを選択します。

3. シール・タイプで、次のいずれかを選択します。

- シールされたフロー: プロセスのフロー全体への変更を禁止します。

- シールされたアクティビティ: プロセス内の個々のBPMNフロー・オブジェクトへの変更を禁止します。

4. 「OK」をクリックします。

4.4.4 プロジェクト・テンプレートでアクティビティの編集ポリシーを設定する方法

プロジェクト・テンプレートでプロセス内の編集ポリシーをアクティビティ・レベルで設定できます。

注意:

アクティビティ・レベルで定義した編集ポリシーは、プロセス・レベルの編集ポリシーを上書きします。

アクティビティの編集ポリシーを設定するには:

1. 編集ポリシーを変更するアクティビティを右クリックします。

2. 「プロパティ」を選択します。

3. 次の「権限」ドロップダウン・リストから、編集ポリシーを選択します。

- シール済: フロー・オブジェクトは変更できません

- 実装を変更できます: ユーザーは必要に応じてこのコンポーネントを再定義できます。

- 実装する必要があります: ユーザーはこのコンポーネントが正常に機能するように実装する必要があります。

- プロセス権限の使用: プロセスにより定義されたデフォルトの編集ポリシーを使用します。

4. 「OK」をクリックします。

4.5 Oracle BPM Metadata Service (MDS)リポジトリの使用

次の各項では、Oracle BPM Metadata Service (MDS)リポジトリの概要を示します。また、その構成方法と使用方法に関するタスクも示します。

Oracle MDSの構成に関する全般的な情報は、『Oracle Fusion Middleware管理者ガイド』の「メタデータ・リポジトリの管理」を参照してください。

4.5.1 Oracle Metadata Service (MDS)リポジトリの概要

Oracle Metadata Service (MDS)リポジトリは、特定のタイプのデプロイ済アプリケーションのメタデータを格納するOracle Fusion Middlewareコンポーネントです。Oracle BPMは、アプリケーションをランタイムにデプロイするときにこのリポジトリを使用します。

Oracle MDSの詳細は、『Oracle Fusion Middleware管理者ガイド』の「メタデータ・リポジトリの管理」を参照してください。

4.5.2 Oracle BPM Metadata Service (MDS)リポジトリの概要

Oracle BPMは、Oracle MDSを使用してデプロイ済アプリケーションの情報を格納する他にも、MDSリポジトリ内にプロジェクトおよびプロジェクト・テンプレートを格納するためのパーティションを作成します。

Oracle BPM StudioとBusiness Process Composerの両方が、プロジェクトおよびプロジェクト・テンプレートを共有するためにこのパーティションを使用します。

Oracle BPM MDSリポジトリには、次のデフォルト・フォルダが含まれています。

- パブリック: すべての共有Oracle BPMプロジェクトが含まれます。

- テンプレート: すべてのプロジェクト・テンプレートが含まれます。

これらのフォルダ内に追加のサブフォルダを作成して、プロジェクトおよびプロジェクト・テンプレートを整理できます。

Oracle BPM Metadata Servicesリポジトリは、Oracle BPMランタイム・インストールの一部としてインストールされます。このインストールの完了後に、リポジトリに接続するようにOracle BPM Studioインストールを構成する必要があります。

4.5.3 Oracle BPM Metadata Serviceブラウザの概要

Oracle BPM Metadata Serviceブラウザを使用すると、Oracle BPM MDSリポジトリの内容を表示し、関連するタスクを実行できます。

図4-1は、Oracle BPM MDSブラウザの例を示しています。

図4-1 Oracle BPM MDSブラウザ

「図4-1 Oracle BPM MDSブラウザ」の説明

このブラウザを使用すると、次のタスクを実行できます。

- プロジェクトおよびプロジェクト・テンプレートの公開。

- Oracle BPM MDS接続の作成と構成。

- プロジェクトおよびプロジェクト・テンプレートのチェックアウトとロック。

- MDSでのプロジェクト・ステータスの表示。

4.5.4 Oracle BPM Metadata Serviceリポジトリへの接続を構成する方法

BPM MDSナビゲータで、Oracle BPM MDSリポジトリへの接続を構成できます。BPM MDS接続を構成できるようにするには、次を作成しておく必要があります。

- メタデータ・サービス・サーバーへの接続(SOA MDS接続)

- SOA用のMDSリポジトリが存在するOracle WebLogic Serverへの接続(アプリケーション・サーバー接続)

- SOA MDSがインストールされているデータベース接続

Oracle MDSの構成に関する全般的な情報は、『Oracle Fusion Middleware管理者ガイド』の「メタデータ・リポジトリの管理」を参照してください。

Oracle BPM MDS接続を構成するには:

1. 「ビュー」メニューから「BPM MDSナビゲータ」を選択します。

2. 「接続の構成」をクリックします。

3. 「接続の構成」ダイアログで、BPM MDS接続名をドロップダウン・リストから選択し、「OK」をクリックします。

4. BPM MDS接続を作成していない場合は、次の手順を実行します。

1. 「BPM MDS接続」の横にある「追加」をクリックします。

2. 「新規BPM MDS接続」ダイアログで、「IDE接続」をクリックします。

3. 接続名を入力します。

4. 「アプリケーション・サーバー」ドロップダウン・リストからアプリケーション・サーバー接続名を選択するか、または接続を作成していない場合には、ステップ5に進みます。
これは、SOAがインストールされているOracle WebLogic Serverへの接続です。

5. 接続の認証に、選択したアプリケーション・サーバー(ステップ4dを参照)のユーザー名およびパスワードを使用しない場合は、「アプリケーション・サーバー・ユーザー/パスワードのオーバーライド」を選択します。
次に、選択したチェック・ボックスの下のフィールドにユーザー名とパスワードを入力します。

6. SOA MDSドロップダウン・リストから接続名を選択するか、または接続を作成していない場合には、ステップ6に進みます。

7. 「OK」をクリックします。

5. SOAがインストールされているOracle WebLogic Serverへの接続を作成していない場合は、次の手順を実行します。

1. 「アプリケーション・サーバー」の横にある「追加」をクリックします。
アプリケーション・サーバー接続の作成ウィザードが表示されます。

2. 接続名を入力して「次へ」をクリックし、Oracle WebLogic Serverに接続するために必要な残りの情報を入力します。完了後、「終了」をクリックします。

3. ステップ4dに戻ります。

6. SOA MDSへの接続を作成していない場合は、次の手順を実行します。

1. SOA MDSの横にある「追加」をクリックします。

2. 「SOA-MDS接続の作成」ダイアログで、接続名を入力します。

3. 「接続タイプ」ドロップダウン・リストから、「DBベースMDS」を選択します。

4. 「接続」ドロップダウン・リストから、データベース接続を選択します。
これは、SOA MDSがインストールされているデータベースです。まだ接続を設定していない場合には「追加」をクリックし、「データベース接続の作成」ダイアログを使用して接続を作成します(データベースがインストールされているホストのユーザー名、パスワードおよび詳細を入力します)。

5. 「MDSパーティション」ドロップダウン・リストから、obpmを選択します。

6. 終了したら、「OK」をクリックします。

7. ステップ4fに戻ります。

4.5.5 Oracle BPM MDSリポジトリをリフレッシュする方法

Oracle BPM MDSに関連する管理タスクを実行する前に、リポジトリをリフレッシュする必要があります。これは、他のOracle BPMユーザーの作業との競合を回避するためです。

Oracle BPM MDSリポジトリをリフレッシュするには:

1. 「ビュー」メニューから「BPM MDSナビゲータ」を選択します。

2. ツールバーから「リフレッシュ」をクリックします。

4.5.6 プロジェクトまたはプロジェクト・テンプレートをOracle BPM MDSに公開する方法

プロジェクトをOracle BPM MDSリポジトリに公開すると、プロジェクトおよびプロジェクト・テンプレートを他のプロセス・アナリストやプロセス開発者と共有できます。プロジェクトまたはプロジェクト・テンプレートをリポジトリに公開すると、他のプロセス・アナリストや開発者がOracle BPM StudioまたはBusiness Process Composerを使用してこれらにアクセスできるようになります。

プロジェクトをOracle BPM MDSリポジトリに公開するには:

1. 「ビュー」メニューから「BPMプロジェクト・ナビゲータ」を選択します。

2. BPMプロジェクト・ナビゲータで、公開するプロジェクトを右クリックし、「BPM MDSに公開」を選択します。

3. プロジェクトの名前を入力します。この名前がOracle BPM MDSリポジトリで使用されます。

4. リポジトリ内の既存のプロジェクトまたはプロジェクト・テンプレートを上書きする場合は、「オーバーライド」をクリックします。

5. 公開先のフォルダを選択し、「OK」をクリックします。

4.5.7 Oracle BPM MDS内のプロジェクトをチェックアウトする方法

プロジェクトをチェックアウトすると、プロジェクトがOracle BPM MDSからローカル・ファイル・システムにコピーされます。プロジェクトをチェックアウトすると、そのプロジェクトをローカルに変更または編集できるようになります。その後、プロジェクトをMDSに再公開できます。

Oracle BPM MDSからプロジェクトをチェックアウトするには:

1. 「ビュー」メニューから、「BPM MDSナビゲータ」を選択します。

2. チェックアウトするプロジェクトが含まれるフォルダを展開します。

3. プロジェクトを右クリックして、「チェックアウト」を選択します。

4. プロジェクト名を入力します。これは、ローカル・ファイル・システム上のプロジェクトの名前です。

5. 「OK」をクリックします。

6. 「OK」をクリックして、必要に応じてプロジェクトをロックします。

プロジェクトをチェックアウトした後は、そのプロジェクトをファイル・システム上でローカルに編集できます。他のユーザーがリポジトリ内のプロジェクトを変更できないようにする場合は、プロジェクトをロックできます。

4.5.8 Oracle BPM MDS内のプロジェクトをロックまたはロック解除する方法

Oracle BPM Studioでは、Oracle BPM MDSに格納されているプロジェクトをロックおよびロック解除できます。これは、チェックアウトしたプロジェクトに変更を加える必要があり、他のユーザーがこのプロジェクトを編集しないようにする場合に便利です。

Oracle BPM MDS内のプロジェクトをロックまたはロック解除するには:

1. 「ビュー」メニューから「BPM MDSナビゲータ」を選択します。

2. ロックまたはロック解除するプロジェクトが含まれるフォルダを展開します。

3. プロジェクトを右クリックして、「ロック」または「ロック解除」を選択します。

警告:

他のユーザーによりロックされているプロジェクトのロックを解除すると、元のロックの所有者がすべての変更を失う可能性があります。

4. 「OK」をクリックします。

4.5.9 プロジェクトのMDSステータス情報を表示する方法

プロジェクトのMDSステータス情報は、BPM MDSナビゲータのツールチップまたは小さなパネルに表示できます。

プロジェクトのMDSステータスを表示するには:

1. 「ビュー」メニューから「BPM MDSナビゲータ」を選択します。

2. 確認するプロジェクトが含まれるフォルダを展開します。

3. 次のいずれかを実行します。

- プロジェクトの上にカーソルを置き、ツールチップを表示します。

- 図4-2に示すように、プロジェクトを選択して黄色のパネルを開きます。

ツールチップまたは黄色のパネルに、プロジェクト名、ロール、ステータス、プロジェクトをロックしたユーザーなどのMDS情報が表示されます。

図4-2 「プロジェクト・ステータス」パネルが開いているBPM MDSナビゲータ

「図4-2 「プロジェクト・ステータス」パネルが開いているBPM MDSナビゲータ」の説明

5 プロセスおよびプロセス・エディタの使用

この章では、Oracle BPM Studioでビジネス・プロセスを作成および使用する方法について説明します。ここではビジネス・プロセスの全般的な概要を示し、プロセス・エディタ・ウィンドウについて説明します。また、プロセスを作成して使用する手順、およびプロセスでフロー・オブジェクトを使用する手順についても説明します。

この章の内容は次のとおりです。

- 5.1項「プロセスを使用する前に」

- 5.2項「プロセス・エディタの概要」

- 5.3項「プロセスの使用」

- 5.4項「プロセス内でのフロー・オブジェクトの使用」

- 5.5項「ドラフト・プロセスの使用」

- 5.6項「プロセスのドキュメント化」

5.1 プロセスを使用する前に

ビジネス・プロセスは、Oracle BPM Suiteで作成されたプロセスベースのビジネス・アプリケーションのコア・コンポーネントです。ビジネス・アプリケーションのすべてのリソースを含む上位レベルのラッパーがプロジェクトであり、アプリケーションの動作はプロジェクト内のプロセスによって決定されます。

5.1.1 ビジネス・プロセスの概要

ビジネス・プロセスは一般に、実行後に明確な出力を生成する一連のタスクとして定義できます。

ビジネス・プロセスは一般にプロセス・アナリストによって作成されます。プロセス・アナリストは、対処が必要なビジネス要件を特定して、対応するプロセス・フローを定義します。

このフローは様々なBPMNフロー・オブジェクトによって決定されます。

5.1.1.1 プロセスのタイプ

Oracle BPMでは、プロセスで実行する必要がある作業に応じて異なるタイプのBPMNプロセスを作成できます。表5-1は、Oracle BPMでサポートされている様々なタイプのプロセスを示しています。

表5-1 プロセス・タイプ

プロセス・タイプ

説明

同期サービス

同期サービスは、他のプロセスまたはサービスから同期的に起動できるプロセスです。同期サービスでは、コール側プロセスは、起動されたプロセスが完了するまで待ってから続行します。

非同期サービス

非同期サービスは、他のプロセスまたはサービスから非同期的に起動できるプロセスです。非同期サービスでは、コール側プロセスは、起動されたプロセスが完了するまで待たずに続行します。

手動プロセス

手動プロセスは、ユーザー相互作用を必要とするプロセスです。手動プロセスは開始イベントおよび終了イベントなしで開始および終了します。

再使用可能なプロセス

コール・アクティビティから起動できるプロセスです。再使用可能なプロセスは、コール・アクティビティからのみ起動できます。また、再使用可能なプロセスは、None開始イベントおよびNone終了イベントによっても開始および終了します。

Oracle BPMでは、再使用可能なプロセスは、None開始イベントが1つのみ含まれるものとされています。また、プロセス・フローにイニシエータ・ノードが存在しません。None開始イベントが別のタイプに変更されたり、イニシエータ・ノードがプロセス・フローに追加された場合、このプロセスは再使用可能であるとみなされなくなります。たとえば、イニシエータ・パターンを使用したユーザー・タスクまたは作成インスタンスとして実装された受信タスクがNone開始イベント直後に追加されると、このプロセスは再使用したり別のプロセスからコールすることができなくなります。

開始イベントおよび再使用プロセスの詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

5.1.2 新規のビジネス・プロセスを作成する方法

ビジネス・プロセスはOracle BPMプロジェクト内に作成されます。1つ以上のプロセスをプロジェクトに追加できます。

新しいビジネス・プロセスを作成するには:

1. プロジェクトを開きます。

2. BPMプロジェクト・ナビゲータで、プロジェクトの・ノードを展開します。

3. 「プロセス」を右クリックして、「新規」の次に「プロセス」を選択します。

4. 作成するプロセスのタイプを選択し、「次へ」をクリックします。
プロセスのタイプの詳細は、5.1.1.1項「プロセスのタイプ」を参照してください。

5. 名前とオプションの説明を入力します。

6. 「OK」をクリックします。

プロセス・エディタで新規プロセスが開きます。

新規ビジネス・プロセスは、デフォルト・シーケンス・フローで接続されている開始および終了イベントを使用して作成されます。開始および終了イベントのタイプは、作成したプロセスのタイプに応じて異なります。

5.1.3 ビジネス・プロセスを開く方法

Oracle BPMプロジェクトを開いた後、このプロジェクトに含まれる任意のプロセスを開くことができます。プロセスはプロセス・エディタ・ウィンドウで開きます。

ビジネス・プロセスを開くには:

1. プロジェクトを開きます。

2. BPMプロジェクト・ナビゲータで、プロジェクト・ノードを展開します。

3. 「プロセス」を展開します。

4. 開くプロセスをダブルクリックします。

プロセスは、プロセス・エディタ・ウィンドウで開きます。プロセス・エディタでのプロセスの処理の詳細は、5.2項「プロセス・エディタの概要」を参照してください。

5.1.4 ビジネス・プロセスを削除する方法

プロジェクトからプロセスを削除できます。ただし、削除するプロセスへの参照がプロジェクト内の他の部分に残っていないことを確認する必要があります。

ビジネス・プロセスをプロジェクトから削除するには:

1. プロジェクトを開きます。

2. BPMプロジェクト・ナビゲータで「プロセス」を展開します。

3. 削除するプロセスを右クリックし、「削除」を選択します。

5.1.4.1 ビジネス・プロセスの削除に関する注意事項

プロジェクトからビジネス・プロセスを削除する場合、プロセスの他の部分から、そのビジネス・プロセスへのすべての参照を削除してあることを確認する必要があります。

たとえば、削除するプロセスが別のプロセスからメッセージ・スロー・イベントを通じて起動されていた場合は、削除するプロセスを参照しないように呼び出し側プロセスを再構成したことを確認する必要があります。

5.1.5 プロセス・プリファレンスを編集する方法

「プロパティ」ダイアログを使用して、プロジェクト内のプロセスごとにプリファレンスを編集できます。

プロセス・プリファレンスを編集するには:

1. BPMプロジェクト・ナビゲータで、プロジェクトを開きます。

2. 「プロセス」を展開します。

3. プロパティを編集するプロセスを右クリックし、「プロパティ」を選択します。

4. 必要に応じてプロパティを編集し、「OK」をクリックします。

注意:

プロセスのプロパティを編集するには、プロパティ・インスペクタを使用することもできます。プロパティ・インスペクタを開くには、メイン・メニューから「ビュー」→「プロパティ・インスペクタ」を選択します。BPMプロジェクト・ナビゲータでプロジェクトを選択すると、そのプロセスのプロパティがプロパティ・インスペクタに表示されます。プロパティ・インスペクタの詳細は、3.3.5項「プロパティ・インスペクタ」を参照してください。

5.2 プロセス・エディタの概要

図5-1は、プロセス・エディタの例を示しています。

図5-1 プロセス・エディタ

「図5-1 プロセス・エディタ」の説明

各プロセス・エディタの下部には、次の2つのエディタ・タブがあります。

- 「設計者」エディタ・タブ: キャンバスが表示され、Business Process Management Notation and Modeling(BPMN)を使用してビジネス・プロセスを作成およびモデリングできます。デフォルトでは、プロセスは設計者モードで開きます。

- 「コラボレーション・ダイアグラム」エディタ・タブ: 会話を介して他のBPMNプロセスおよびサービスを処理できます。

プロセス・エディタという用語は、明示的に他に指定されていないかぎり、エディタの設計者モードを表します。

プロセス・エディタ・ウィンドウでプロセスを開く場合は、キャンバスの上部に表示されるフロー・オブジェクト・ツールバーを使用して、様々なBPM表記を挿入できます。キャンバスの下部にあるステータス・バー上のコントロールを使用して、エラーや警告を表示して修正したり、レイアウトを構成したり、ズーム・レベルを変更できます。また、プロセス・エディタは、「サムネイル」ウィンドウにおけるプロセスのビューと同期化されています。サムネイルの詳細は、3.3.8項「「サムネイル」ビュー」を参照してください。

フロー・オブジェクト・ツールバーおよびドロップダウン・メニュー

フロー・オブジェクト・ツールバーを使用すると、一般的なBPMフロー・オブジェクトに簡単にアクセスできます。フロー・オブジェクトは、ツールバーの次のドロップダウン・メニューから使用できます。

- アクティビティ: 「コール」、「ビジネス・ルール」、「送信」などのアクティビティがあります。

- 対話型: 「ユーザー」、「イニシエータ」などの対話型アクティビティがあります。

- 通知: 「メール」、「音声」などのアクティビティがあります。

- 捕捉: 「エラー」、「メッセージ」などのイベントがあります。

- スロー: シグナルのスロー、シグナルの終了などのイベントがあります。

- ゲートウェイ: 「排他」および「パラレル」があります。

- アーティファクト: 「測定」および「シーケンス・フロー」があります。

ドロップダウン・メニューのフロー・オブジェクトは、コンポーネント・パレットで使用されるものと同じです。BPMNフロー・オブジェクトの詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

コンポジット・エディタを開く

このツールバー・アイテムを使用すると、SOAコンポジット・エディタが開きます。

BPAからリフレッシュ

このツールバー・アイテムは、BPMプロジェクトがBPAリポジトリに格納されているBPMNプロセスに基づいて作成されている場合、有効になっています。

メッセージの表示/メッセージの非表示

このステータス・バー・アイテムは、フロー・プロジェクトで検出される共通の問題を修正するのに役立ちます。このアイテムの使用方法の詳細は、5.4.5項「フロー・オブジェクトのエラーまたは警告を表示および修正する方法」を参照してください。

強調表示レベル

このステータス・バー・アイテムを使用すると、特殊なオーバーレイ記号を使用してプロセスで強調表示されるメッセージの重大度レベルを変更できます。このアイテムの使用方法の詳細は、5.3.2項「プロセスでメッセージの強調表示レベルを変更する方法」を参照してください。

ズーム

このステータス・バー・アイテムを使用すると、プロセスのスケールを変更できます。ズーム・ツールの使用方法の詳細は、5.3.3項「プロセスでズーム・レベルを変更する方法」を参照してください。

「レイアウト」と「グリッドの表示」

これらのステータス・バー・アイテムを使用すると、プロセスで自動レイアウト・ユーティリティを使用および構成したり、グリッド・オーバーレイのオンとオフを切り替えることができます。詳細は、5.3.4項「プロセスでレイアウト・プロパティを構成する方法およびグリッドを使用する方法」を参照してください。

5.3 プロセスの使用

エディタ・ウィンドウでは、プロセスを1つ以上開くことができます。各プロセスは、エディタ・ウィンドウの上部にある「ドキュメント」タブで、プロセス名によって識別されます。処理できる(アクティブにできる)プロセスは、常に1つのみです。

5.3.1 プロセスをイメージとしてエクスポートする方法

プロセス設計全体はPNGファイルにのみエクスポートできます。

プロセスをエクスポートするには:

1. イメージとしてエクスポートするプロセスを開きます。

2. キャンバス上のフロー・オブジェクトが存在しない任意の場所を右クリックし、「プロセス・イメージの生成」を選択します。

3. 「オブジェクト・ファイルの選択」ダイアログで、選択したディレクトリにナビゲートします。

4. ファイル名を入力して、「OK」をクリックします。

5.3.2 プロセスでメッセージの強調表示レベルを変更する方法

プロセス内のフロー・オブジェクトに対してエラー・メッセージや警告メッセージが表示される場合、プロセス・エディタのフロー・オブジェクト・アイコンが、赤色のエラー記号または黄色の警告記号によってオーバーレイで強調表示されます。

プロセスで強調表示されるメッセージの重大度レベルを変更できます。使用できる強調表示レベルは次のとおりです。

- なし: エラーや警告は表示されません。

- エラー: エラーのみが表示されます。

- 警告: 警告とエラーの両方が表示されます。

注意:

プロセス・エディタで設定した強調表示レベルが影響を及ぼすのは、アクティブなプロセスのフロー・オブジェクトのみです。他のプロセス・エディタ・タブですでに開かれている他のプロセスは、影響を受けません。ただし、アクティブなプロセス・エディタで設定した強調表示レベルは、その後、同じプロジェクトで新規プロセスを開いたり作成すると、そのすべてに影響を及ぼします。これは、プロセス・レベルで強調表示を変更した時点で、「プロジェクト・プリファレンス」ダイアログの「強調表示レベル」プリファレンスが同じ値に更新されるためです。

プロジェクト内のすべてのプロセスに対して強調表示されるようメッセージの重大度を設定するには、4.2.5項「プロジェクト・プリファレンスを編集する方法」を参照してください。

プロセスで表示されるメッセージの強調表示レベルを変更するには:

1. プロセス・エディタでプロセスを開きます。

2. ステータス・バーで、強調表示レベルをクリックしてスライダを表示します。

3. 使用するレベルにスライドします。
影響を受けるフロー・オブジェクト上で、エラー記号または警告記号のオン/オフが、設定したレベルに応じて切り替わります。

プロセスでの現在の強調表示レベルは、プロセス・エディタのステータス・バーに表示されるアイコンとラベルにより示されます(エラーの場合には赤色の円にxが表示され、警告の場合には黄色の三角形に!(感嘆符)が表示されます)。重大度レベルが設定されていない場合は、レベル「なし」が表示されます。

図5-2 プロセス・エディタのステータス・バー

「図5-2 プロセス・エディタのステータス・バー」の説明

注意:

プロセスでフロー・オブジェクトに関連付けられるメッセージを表示するには、5.4.5項「フロー・オブジェクトのエラーまたは警告を表示および修正する方法」を参照してください。

5.3.3 プロセスでズーム・レベルを変更する方法

プロセス・エディタには3つのステータス・バー・アイテムが提供されており、これらのアイテムを使用して、アクティブなプロセスのスケールを簡単に変更できます。

プロセスでズーム・レベルを変更するには:

1. プロセス・エディタでプロセスを開きます。

2. スケールを変更するには、次の方法のいずれかを使用します。

- スライダを使用してズーム・レベルを変更します。スケールを100%に戻すには、スライダをダブルクリックします。

- 現在のパーセント値の横にあるドロップダウン矢印をクリックして、別のパーセント・ズーム・レベルを選択します。

- スケールを100%に戻すには、「ズームのリセット」アイコンをクリックします。

5.3.4 プロセスでレイアウト・プロパティを構成する方法およびグリッドを使用する方法

自動レイアウト・ユーティリティを使用するようプロセスを構成できます。自動レイアウトがオンの場合は、フロー・オブジェクトがプロセスに追加されると、JDeveloperにより配置の位置合せが自動的に行われ、フロー・オブジェクトが上下または左右に並べて表示されます。自動レイアウトがオフの場合は、プロセスのバックグラウンドで横線や縦線のグリッドを使用して、フロー・オブジェクトの位置合せに活用できます。

プロセスでレーンの最適化をアクティブ化することもでき、可能な場合にこれを行うと、JDeveloperによりすべてのアクティビティが指定した他のレーンに移動されて、不要なレーンが削除されます。

プロセスで自動レイアウト・ユーティリティを使用し、レーンを最適化するには:

1. プロセス・エディタでプロセスを開きます。

2. ステータス・バーで、「レイアウト」をクリックします。
ポップアップが開きます。最初のボタンには「オフ」または「オン」のいずれかが表示されており、これは自動レイアウト・ユーティリティの現在の状態を表します。

3. 「オフ」をクリックして自動レイアウト・ユーティリティをオンにするか、または「オン」をクリックしてオフにします。

4. 自動レイアウトがオンになっている場合は、「レーンの最適化」を選択して、非対話型アクティビティを持つ対話型ロールをプルーニングします。
レーンの最適化は、自動レイアウト・ユーティリティがオンになっている場合にのみ機能します。

5. 自動レイアウトがオフになっている場合は、「レイアウトを1回実行」をクリックすると、プロセスおよびプロジェクトで自動レイアウト・ユーティリティをオンにしなくても、プロセス内のフロー・オブジェクトの位置合せが自動的に行われます。

プロセスでグリッドを使用するには:

1. プロセス・エディタでプロセスを開きます。

2. ステータス・バーで、「グリッドの表示」を選択してプロセス設計にグリッドを追加します。

3. グリッドをオフにするには、「グリッドの表示」を選択解除します。

注意:

「レイアウトを1回実行」ユーティリティを除き、レーンの最適化、自動レイアウトまたはグリッドをプロセスでアクティブ化または非アクティブ化すると、「プロジェクト・プリファレンス」ダイアログの類似する構成設定が、同時に同じ値に更新されます。これは、ダイアログやプロセス・エディタのステータス・バーでいずれかのプリファレンスを変更するまで、プロジェクト内のすべてのプロセスで同じ設定が使用されることを意味します。

プロジェクトでレイアウトまたはグリッドのプリファレンスを設定するには、4.2.5項「プロジェクト・プリファレンスを編集する方法」を参照してください。

5.4 プロセス内でのフロー・オブジェクトの使用

次の各項では、プロセスにフロー・オブジェクトを追加するためのタスクを示し、プロセス・エディタ内でフロー・オブジェクトを使用する方法について説明します。

BPMNフロー・オブジェクトの詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

5.4.1 コンポーネント・パレットからフロー・オブジェクトを追加する方法

BPMNフロー・オブジェクトはコンポーネント・パレットから追加できます。

コンポーネント・パレットからフロー・オブジェクトを追加するには:

1. フロー・オブジェクトを追加するプロセスを開きます。

2. 「ビュー」メニューから「コンポーネント・パレット」を選択します。

3. コンポーネント・パレットで、追加するフロー・オブジェクトをクリックします。

4. プロセス・エディタで、フロー・オブジェクトを追加するプロセス内のポイントにカーソルを置きます。

5. クリックして、フロー・オブジェクトを追加します。

6. 必要に応じて、表示されるダイアログでフロー・オブジェクトのプロパティを編集し、「OK」をクリックします。
特定のフロー・オブジェクト・プロパティの詳細は、フロー・オブジェクトのオンライン・ヘルプを参照してください。

5.4.2 プロセス・エディタ・ツールバーからフロー・オブジェクトを追加する方法

プロセス・エディタ・ツールバーには、コンポーネント・パレットで使用されるものと同じBPMNフロー・オブジェクトに対するドロップダウン・メニューが含まれています。これは、プロセス・エディタ・ウィンドウを全画面モードに最大化したため、フロー・オブジェクトを追加するのにコンポーネント・パレットを使用できない場合に役立ちます。

プロセス・エディタ・ツールバーからフロー・オブジェクトを追加するには:

1. フロー・オブジェクトを追加するプロセスを開きます。

2. ツールバーで、追加するフロー・オブジェクト・アイコンの横にあるドロップダウン矢印をクリックします。次に、ドロップダウン・メニューからオブジェクトを選択します。
ツールバーのメニュー・アイコンが、選択したオブジェクトのアイコンに変わります。カーソルも同じアイコンに変わります。選択したオブジェクトをプロセスに追加しないで選択解除するには、[Esc]を押します。

3. プロセス・エディタ・キャンバスで、フロー・オブジェクトを追加するプロセス内のポイントにカーソルを置き、クリックして挿入します。

4. 必要に応じて、表示されるダイアログでフロー・オブジェクトのプロパティを編集し、「OK」をクリックします。
特定のフロー・オブジェクト・プロパティの詳細は、フロー・オブジェクトのオンライン・ヘルプを参照してください。

注意:

ドロップダウン・メニューから最後に選択したオブジェクトが、このメニューに対するデフォルトの選択されたオブジェクトとなります。デフォルト・オブジェクトは、ツールバーのメニュー・アイコンによって示されます。これにより、次回このメニュー・アイコンをクリックしてキャンバスをクリックしたときに、デフォルト・オブジェクトがプロセスに追加されます。

5.4.3 コンテキスト・メニューからフロー・オブジェクトを追加する方法

BPMNフロー・オブジェクトは、プロセス・エディタ・キャンバス上のコンテキスト・メニューを使用して追加できます。

コンテキスト・メニューからフロー・オブジェクトを追加するには:

1. フロー・オブジェクトを追加するプロセスを開きます。

2. フロー・オブジェクトを追加するプロセス内のポイントにカーソルを置き、右クリックします。

3. コンテキスト・メニューから「アクティビティの追加」を選択し、次に、サブメニュー「タスク」、「サブプロセス」、「イベント」、「ゲートウェイ」のいずれかから、フロー・オブジェクトを選択します。

4. 追加したフロー・オブジェクトを右クリックして、「プロパティ」を選択します。

5. 必要に応じて、表示されるダイアログでフロー・オブジェクトのプロパティを編集し、「OK」をクリックします。
特定のフロー・オブジェクト・プロパティの詳細は、フロー・オブジェクトのオンライン・ヘルプを参照してください。

5.4.4 フロー・オブジェクト・プロパティを編集する方法

「プロパティ」ダイアログを使用して、プロセス内の各フロー・オブジェクトのプロパティを編集できます。

フロー・オブジェクトのプロパティを編集するには:

1. 編集するフロー・オブジェクトが含まれるプロセスを開きます。

2. フロー・オブジェクトを右クリックして、「プロパティ」を選択します。

3. 必要に応じてプロパティを編集し、「OK」をクリックします。

注意:

イベントやアクティビティのプロパティを編集するには、プロパティ・インスペクタを使用することもできます。プロパティ・インスペクタを開くには、メイン・メニューから「ビュー」→「プロパティ・インスペクタ」を選択します。プロパティ・インスペクションに参加するフロー・オブジェクトを選択すると、そのオブジェクトのプロパティがプロパティ・インスペクタに表示されます。プロパティ・インスペクタの詳細は、3.3.5項「プロパティ・インスペクタ」を参照してください。

5.4.5 フロー・オブジェクトのエラーまたは警告を表示および修正する方法

プロセスまたはプロセス内のオブジェクトにエラーや警告が発生すると、BPMプロジェクト・ナビゲータのプロセス・アイコンまたはプロセス・エディタのフロー・オブジェクト・アイコンに、エラーを表すxを含む赤色の円記号または警告を表す!(感嘆符)を含む黄色の三角形記号が表示されます。

プロセス・エディタでは、ステータス・バーの上部にあるメッセージ領域を使用して、フロー・オブジェクトに関連するエラー・メッセージおよび警告メッセージを表示したり、プロセス内のすべてのエラーや警告のリストを表示できます。その後、修正提案を使用できる場合は、修正する問題を選択できます。

フロー・オブジェクトのエラーまたは警告を表示して修正するには:

1. エラーや警告が発生したフロー・オブジェクトを含むプロセスを開きます。

2. 必要に応じて、プロセスで強調表示されるメッセージの重大度レベルを変更します。詳細は、5.3.2項「プロセスでメッセージの強調表示レベルを変更する方法」を参照してください。

3. ステータス・バーで、表示(メッセージなし)をクリックします。
図5-3に示すように、ステータス・バーの上部にメッセージ領域が開きます。この領域は、プロセスでまだオブジェクトが選択されていないため、グレー表示されています。

図5-3 メッセージ領域が展開されたプロセス・エディタ

「図5-3 メッセージ領域が展開されたプロセス・エディタ」の説明

4. エラーまたは警告の記号を含むフロー・オブジェクトを選択します。
図5-4に示すように、選択したフロー・オブジェクトに関連するメッセージがメッセージ領域にリストされます。エラーの場合にはxを含む赤色の円記号、警告の場合には!を含む黄色の三角記号が表示されます。

修正提案を使用できるものについては、メッセージの横のマージンに電球アイコンが表示されます。すべての問題に修正提案が表示されるわけではありません。たとえば、実装が存在しないノード、またはユーザー・タスク・プロパティやデータ・アソシエーションに問題があるノードの場合は、修正提案が表示されます。

図5-4 エラー・メッセージおよび警告メッセージが表示されたプロセス・エディタ

「図5-4 エラー・メッセージおよび警告メッセージが表示されたプロセス・エディタ」の説明

5. 適用可能な場合、メッセージの横のマージンに表示されている電球アイコンをクリックします。
ポップアップが開き、問題に対して使用可能な1つ以上の修正提案が表示されます。

6. ポップアップの修正提案を選択します。

7. 適用可能な場合、次のいずれかを実行します。

- ダイアログが開く場合は、必要に応じて変更を行い、「OK」をクリックします。

- 複数の開始イベントまたは無条件送信シーケンス・フローが存在する場合、要求されたら保持するものを選択します。

注意:

問題のあるすべてのフロー・オブジェクトに対するすべてのエラーと警告を表示するには、メッセージ領域がすでに展開されているプロセス・エディタで選択されたオブジェクトを選択解除します。メッセージ領域が非表示になっている場合は、プロセス内のオブジェクトを何も選択しないで「表示」をクリックします。

5.4.6 フロー・オブジェクトをドラフトとしてマーク/マーク解除する方法

フロー・オブジェクトがドラフトとしてマークされている場合、これは、このオブジェクトにデータ・オブジェクト値を設定できるデフォルトの実装があることを意味します。プロセスにおいてドラフト・フロー・オブジェクトは、デフォルトのカラー・アイコンの場所にグレーのアイコンが表示されることによって示されます。

ドラフトとしてマークされたフロー・オブジェクトは未実装とみなされます。ただし、ドラフト・フロー・オブジェクトが含まれたプロセスをデプロイすることは可能ですが、警告が発行されます。

ドラフトとしてマークできるのは、イベントおよびアクティビティのみです。実装がすでに定義されているイベントやアクティビティもドラフトとしてマークできます。ただし、既存のデータ・アソシエーションは、ドラフト・ステータスを変更すると、実装で削除されます。

ドラフト・フロー・オブジェクトにおけるデータ・オブジェクトは、「データ・アソシエーション」ダイアログでカスタム割当てを使用して初期化できますが、実装引数をダイアログで使用することはできません。ドラフト・フロー・オブジェクトでデータ・アソシエーションを定義しようとすると、図5-5に示すように、「データ・アソシエーション」ダイアログの上部にエラー・メッセージが表示されます。

図5-5 「データ・アソシエーション」ダイアログ

「図5-5 「データ・アソシエーション」ダイアログ」の説明

データ・オブジェクトおよびデータ・アソシエーションの詳細は、第8章「プロセス設計の情報の処理」を参照してください。

フロー・オブジェクトをドラフトとしてマーク/マーク解除するには:

1. 編集するフロー・オブジェクトが含まれるプロセスを開きます。

2. マークするフロー・オブジェクトを右クリックして、「ノードをドラフトとしてマーク」を選択します。
フロー・オブジェクト・アイコンの色がグレーに変わります。

3. フロー・オブジェクトをマーク解除するには、アイコンを右クリックして、「ノードのドラフトのマークを解除」を選択します。
フロー・オブジェクトの色が元の色に戻ります。

注意:

フロー・オブジェクトの「プロパティ」ダイアログにある「ドラフト」チェック・ボックスを使用して、フロー・オブジェクトのドラフト・ステータスを切り替えることもできます。「プロパティ」ダイアログの使用方法の詳細は、5.4.4項「フロー・オブジェクト・プロパティを編集する方法」を参照してください。

5.4.7 フロー・オブジェクトをコピーして貼り付ける方法

プロセス内またはプロセス間で、1つ以上のフロー・オブジェクトをコピーして貼り付けることができます。シーケンス・フロー、境界および測定は、次の条件がすべて満たされる場合にのみコピーされることに注意してください。

- 遷移、境界および測定が選択されている場合

- 遷移、境界および測定が添付されているすべての要素も、コピー対象として選択されている場合

注意:

イベント・サブプロセス内のオブジェクトをコピーして貼り付けることはできません。

プロセス内でフロー・オブジェクトをコピーして貼り付けるには:

1. コピーするフロー・オブジェクトが含まれるプロセスを開きます。プロセス間でコピーする場合は、両方のプロセスを開きます。

2. 次のいずれかを実行します。

- コピーするフロー・オブジェクトをクリックして選択します。

- 複数のフロー・オブジェクトを選択するには、[Ctrl]を押したまま各オブジェクトをクリックします。

- フロー・オブジェクトのグループの周囲でカーソルをクリックしてドラッグし、オブジェクトを選択します。クリックしてドラッグすると、ボックスがキャンバス上に描画されます。

3. 右クリックして「コピー」を選択します。
「コピー」がコンテキスト・メニューに表示されない場合、これは、選択したオブジェクトがコピー不可であることを意味します。

4. コピーしたフロー・オブジェクトを挿入するプロセスに、ナビゲートします。

5. 新規のフロー・オブジェクトを追加するプロセス・キャンバス内の空白の場所で、右クリックして「貼付け」を選択します。
スイムレーンの外に貼り付ける場合は、新規ロールがプロセスに追加され、新規フロー・オブジェクトがそこに貼り付けられます。ロールおよびスイムレーンの詳細は、6.1項「スイムレーンを使用したプロセスの整理」を参照してください。

必要に応じて、「レイアウト」ポップアップの「レイアウトを1回実行」ユーティリティを使用し、オブジェクトの位置合せを自動的に行います。プロセス・エディタの自動レイアウトの詳細は、5.3.4項「プロセスでレイアウト・プロパティを構成する方法およびグリッドを使用する方法」を参照してください。

5.4.8 シーケンス・フローを追加および使用する方法

新規ビジネス・プロセスは、シーケンス・フローによってすでに接続されている開始イベントおよび終了イベントを使用して作成されます。フロー・オブジェクトをプロセスに追加するときには、シーケンス・フローに沿って任意の場所にオブジェクトを追加すると、JDeveloperにより、この新規オブジェクトが自動的にフローに接続されます。

ただし、独自のシーケンス・フローが適用可能で必要な場合には作成できます。たとえば、2つの条件シーケンス・フローおよび1つのデフォルト・シーケンス・フローを含むゲートウェイを追加する必要がある場合があります。

シーケンス・フローおよびゲートウェイを使用したプロセス・フローの制御の詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

シーケンス・フローで使用される矢印線のスタイルを変更したり、接続されたオブジェクトをあるシーケンス・フローから別のシーケンス・フローへ移動することもできます。

シーケンス・フローを使用して2つのオブジェクトを接続するには:

1. プロセスを開きます。

2. コンポーネント・パレットで「アーティファクト」を展開して、「シーケンス・フロー」をクリックします。

3. プロセス・エディタで、送信シーケンス・フローが開始する最初のオブジェクト上にカーソルを置きます。
送信シーケンス・フローが開始できるオブジェクト上では、カーソルが+(プラス記号)に変わります。たとえば、送信フローはゲートウェイ・オブジェクトから開始できますが、送信フローがすでに含まれている開始イベントからは開始できません。

4. クリックしてシーケンス・フローの開始を指定してから、シーケンス・フローが終了する必要がある2番目のオブジェクトまでカーソルをドラッグします。
カーソルをドラッグすると、先端に矢印の付いた線がキャンバスに描画されます。カーソルが受信シーケンス・フローを配置できるオブジェクト上に置かれると、+(プラス記号)が表示されます。

5. クリックして、シーケンス・フローの終了を指定します。
デフォルトでは、2つのオブジェクトは直交スタイルのシーケンス・フローによって接続されます。

シーケンス・フローのスタイルを変更するには:

1. プロセスを開きます。

2. 変更するシーケンス・フローの線を右クリックします。

3. コンテキスト・メニューから「スタイル」を選択して、次に、「直線」、「曲線」または「直交」を選択します。
選択した線の既存のスタイルは、コンテキスト・サブメニューでグレー表示されています。

接続したオブジェクトをあるシーケンス・フローから別のシーケンス・フローに移動するには:

1. プロセスを開きます。

2. 移動する接続されたオブジェクトをクリックします。
シーケンス・フローで接続されたオブジェクトには、受信および送信の接続フローがすでに含まれています。

3. オブジェクトをプロセス内の新規のポイントにドラッグします。
この新規のポイントは、同じプロセス内の別のシーケンス・フローに含まれている必要があります。ターゲット・フローが青色に変わると、ドラッグしたオブジェクトをその新規のポイントに挿入できることを示します。

4. 適切なターゲット・シーケンス・フローを配置したら、カーソルを解放します。
選択したオブジェクトが元のシーケンス・フローから切断され、ターゲット・シーケンス・フローに再接続されます。

5.5 ドラフト・プロセスの使用

Oracle BPMを使用して、ドラフト・プロセスを作成およびデプロイできます。

5.5.1 ドラフト・プロセスの概要

ドラフト・プロセスとは、実装が未定義のフロー・オブジェクトを1つ以上含むプロセスです。ドラフト・プロセスをデプロイすると、プロセス内で完了している部分をテストできるため、すべてのフロー・オブジェクトが実装されるのを待機する必要がありません。ドラフト・プロセスを作成するには、プロセス内の1つ以上のフロー・オブジェクトをドラフトとしてマークします。

フロー・オブジェクトをドラフトとして構成すると、そのフロー・オブジェクトのデータ・アソシエーションは構成できません。すでにデータ・アソシエーションを割り当てたフロー・オブジェクトをドラフトとしてマークすると、データ・アソシエーションは失われます。

ドラフト・フロー・オブジェクトの実装の詳細を定義できます。ただし、これは必須ではありません。ドラフト・フロー・オブジェクトに実装が定義されていなくても、プロジェクトの検証時にエラーは発生しません。

5.5.2 フロー・オブジェクトをドラフトとしてマークする方法

フロー・オブジェクトは、基本プロパティ内でドラフトとしてマークされます。

フロー・オブジェクトをドラフトとしてマークするには:

1. プロセスを開きます。

2. プロセス・エディタで、ドラフトとしてマークするフロー・オブジェクトを右クリックします。

3. 「ノードをドラフトとしてマーク」を選択します。

5.6 プロセスのドキュメント化

ドキュメント・エディタには、ツールバーと、プロセスやプロセス内のフロー・オブジェクトのドキュメントを入力できるエディタ・ペインが含まれています。

Oracle BPMでは、異なる2つのタイプのドキュメントを作成できます。

5.6.1 ドキュメント・エディタの概要

図5-6は、ドキュメント・エディタを示しています。

図5-6 ドキュメント・エディタ

「図5-6 ドキュメント・エディタ」の説明

ドキュメント・エディタには、ツールバーおよびテキスト・エディタ・ウィンドウが含まれています。ツールバーでは、作成するドキュメントのタイプを選択できます。また、製品に追加の言語を定義した場合は、言語を選択できます。

ドキュメント・エディタ・ツールバーの詳細は、オンライン・ヘルプを参照してください。

5.6.2 ドキュメントをプロセスに追加する方法

ドキュメント・エディタを使用して、ドキュメントをプロセスに追加できます。

- ドキュメント: これは、プロセス・ワークスペース・アプリケーションでプロセス参加者に表示されるドキュメントです。

- ユース・ケース・ドキュメント: これは、ビジネス・プロセスの更新時にプロセス・アナリストおよびプロセス開発者に表示されるドキュメントです。

プロセス内のフロー要素にドキュメントを追加するには:

1. ドキュメントを追加するプロセスを開きます。

2. 「ビュー」メニューから「ドキュメント」を選択します。

3. ドキュメント化するプロセス内のフロー・オブジェクトを選択します。

4. ドロップダウン・リストから、追加するドキュメントのタイプを選択します。

5. ドキュメントを入力します。

6. 「ファイル」メニューから、「保存」を選択して変更を保存します。

5.7 プロセス・モデルのインポートおよびエクスポート

Oracle BPM Studioを使用して、他のプログラムで作成されたプロセス・モデルをインポートしたりエクスポートできます。

5.7.1 Oracle BPMへのプロセス・モデルのインポート

Oracle BPM Studioを使用すると、プロセス・モデルをインポートしてBPMN表記に変換できます。次のフォーマットでプロセス・モデルをインポートできます。

- Visio

- ワークフロー

- XPDL

- Oracle Tutor(ファイルは.docx拡張子を使用して保存されます)

VisioまたはXPDLのプロセスを変換するときには、正確に変換されるように、変換前にプロセスの変更が必要となる場合があります。詳細は、『Oracle Fusion Middleware Business Process Composerユーザーズ・ガイド』のBPMNへのインポートのためのプロセスの準備に関する説明を参照してください。

注意:

元のファイルにBPMNでサポートされていないプロパティやアーティファクトが含まれている場合、サポートされていない要素は変換されず、最終のBPMNプロセスから省略されます。

たとえば、元のファイルの標準アクティビティにループ特性(この特性はBPMNでサポートされていません)が含まれている場合、変換後のBPMNプロセスにはループ特性が含まれません。

プロセス・モデルをインポートするには:

1. アプリケーション・プロジェクト・ナビゲータを開きます。

2. プロジェクト・ナビゲータで、プロジェクトを右クリックしてから「モデルのインポート」を選択します。

3. ローカル・ファイル・システムでインポートするファイルを参照して、「OK」をクリックします。
複数ファイルを選択して同時に変換できますが、すべて同じタイプのファイルである必要があります。

4. 「OK」をクリックします。

変換後、プロセスを開いて内容を確認します。

注意:

変換されたプロセスには、アプリケーション・プロジェクト・メニューからアクセス可能です。

5.7.2 Oracle TutorへのBPMNプロセスのエクスポート

Oracle BPM Studioを使用して、BPMNプロセスをOracle Tutorにエクスポートできます。これらのファイルはMicrosoft Word(.docx)ファイルとしてエクスポートされ、Oracle Tutorフォーマットを含みます。

BPMNプロセスをOracle Tutorにエクスポートするには:

1. アプリケーション・プロジェクト・ナビゲータを開きます。

2. プロジェクトまたはプロセスを右クリックして、「Oracle Tutorにエクスポート」を選択します。

3. 「保存」をクリックして、ローカル・ファイル・システムにファイルを保存します。

Oracle Tutorファイルは、プロセスが手順ごとに記述されたテキスト・バージョンのファイルです。個別のプロセス・ファイルには、変換中に変更されたすべてのオブジェクトの変換ノートが含まれています。

第III部

プロセスのモデリング

この部では、Oracle BPM Studioを使用してビジネス・プロセスをモデリングする方法について説明します。ここではアプリケーションの全般的な概要を示します。また、Oracle BPMN 2.0の実装についても詳しく説明します。

この部の内容は次のとおりです。

- 第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」

- 第7章「組織のモデリング」

- 第8章「プロセス設計の情報の処理」

- 第9章「BPAリポジトリからのBPMNプロセスのインポート」

6
Oracle BPMを使用したビジネス・プロセスのモデリング

この章では、Oracle Business Process Management Suite内部でBusiness Process Management Notation and Modeling (BPMN)を使用して、ビジネス・プロセスを作成およびモデリングする方法について説明します。

この章では、オラクル社のBPMN 2.0の実装に関する具体的な情報について説明します。営業見積サンプル・プロジェクトを使用したBPMNの概要説明については、第2章「ビジネス・プロセス設計の概要」を参照してください。正式な仕様を含むBPMNの一般的な情報については、http://www.bpmn.orgを参照してください。

この章は、ビジネス・プロセスで実行する必要がある様々なタイプのタスクに従って構成されています。この章には次の項が含まれます。

- 6.1項「スイムレーンを使用したプロセスの整理」

- 6.2項「プロセスの開始点および終了点の定義」

- 6.3項「プロセスへのユーザー相互作用の追加」

- 6.4項「他のプロセスおよびサービスとの通信」

- 6.5項「Oracle Business Rulesを使用したビジネス・ロジックの追加」

- 6.6項「シーケンス・フローを使用したプロセス・フローの制御」

- 6.7項「ゲートウェイを使用したプロセス・フローの制御」

- 6.8項「中間イベントを使用したプロセス・フローの制御」

- 6.9項「サブプロセスを使用したプロセスの整理」

- 6.10項「プロセス内のデータ・オブジェクトの値の変更」

- 6.11項「測定マークを使用したプロセス・パフォーマンスの測定」

- 6.12項「ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの設定」

6.1 スイムレーンを使用したプロセスの整理

この項では、スイムレーンを使用してプロセスを整理する方法を示します。また、ロールを使用してプロセスベースのアプリケーションの作業を実行するビジネス組織のメンバーを決定する方法についても説明します。

6.1.1 ロールの概要

ビジネス・プロセスの設計においては、ユーザー相互作用を必要とする各タスクを完了させる責任を負うユーザーまたはロールを決定することが重要となります。プロセスにおいて、ロールは、ビジネス・プロセス内で実行される作業の実行責任者をモデリングするために使用されます。ロールを使用すると、組織内の職務や責任を表す機能上のカテゴリを定義できます。

また、プロセスに定義されたロールは、論理ロールとも呼ばれます。Oracle BPMプロジェクトがランタイム環境にデプロイされると、これらのロールは、実際の組織におけるユーザーに対応するLDAPロールにマップされます。

ロールは水平のスイムレーンに割り当てられます。スイムレーンには、プロセス内のアクティビティおよびタスクを完了する責任を負うロールが表示されます。Business Process Composerを使用すると、プロセス内で必要なロールを作成および編集して、それらをスイムレーンに割り当てることができます。

Oracle BPM Studioを使用すると、LDAPを使用する特定のユーザーにロールをマップすることもできます。また、Oracle BPM Studioでは、組織単位、カレンダおよび休日を使用して、より堅牢な組織モデルを作成できます。

6.1.1.1 コンテキスト内のロール

通常、プロセス・アナリストは、ビジネス・プロセスを設計するときにどのようなロールが必要となるかを決定します。

営業見積サンプル・プロジェクトでは、次のロールが定義されています。

- 営業担当者: 営業担当者は、プロジェクトに定義された他のロールによって承認されるまでの間における、営業見積の作成および更新を担当します。

- 承認者: 営業見積で定義された製品と価格設定構成の組合せの承認を担当します。

- ビジネス実行: 営業見積の参照および承認を担当するユーザーを表します。これらのユーザーは、営業見積のレビューにおいて、追加の承認者を追加する権限も持っています。

- 契約: 営業見積に指定された条項の承認を担当するユーザーを表します。これらのユーザーは、顧客に転送可能な正式な法的文書の作成も担当します。

営業見積サンプル・プロジェクトの詳細は、第2章「営業見積サンプル・プロジェクトの概要」を参照してください。

6.1.2 スイムレーンの概要

スイムレーンは、プロセス・エディタに表示される水平の線です。すべてのフロー・オブジェクトを、スイムレーン内に配置する必要があります。

プロセス内で定義されたロールに基づいてフロー・オブジェクトをグループ化するために、スイムレーンを使用することもできます。ユーザー・タスクを含むスイムレーンは、そのユーザー・タスクに割り当てられたロールを持っている必要があります。スイムレーンでは、プロセス内の各フロー・オブジェクトの実行を担当するロールが視覚的に表示されます。また、同じロールに割り当てられた複数のスイムレーンを持つこともできます。

同じプロセスの異なる部分で同じロールを使用する必要がある場合は、スイムレーンを使用するとプロセスがよりわかりやすくなります。

新しいプロセスを作成すると、Oracle BPM StudioおよびBusiness Process Composerによってデフォルトのスイムレーンが作成されます。必要に応じて、プロセスに追加のスイムレーンを追加できます。プロセスに対話型アクティビティや手動アクティビティを追加する場合は、スイムレーンにロールを割り当てる必要があります。

注意:

開始イベントおよび終了イベントを含むスイムレーンのロールは削除できません。

6.1.2.1 コンテキスト内のスイムレーン

図6-1は、複数のスイムレーンにスプリットされた単純なプロセスを示しています。この例では、営業担当者ロールが最初のスイムレーンに割り当てられています。このロールは、レーンの先頭にあるスイムレーン・ラベルで示されます。営業担当者のスイムレーン内には見積入力ユーザー・タスクが表示されているため、営業担当者ロールに割り当てられているプロセス参加者は、このタスクの実行を担当します。

図6-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス

「図6-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス」の説明

スイムレーンは、プロセス・エディタ内のプールに含まれています。このプロセスの名前は、プールの先頭のスイムレーン・ラベルの直前に表示されるプールのラベルです。プロセスにスイムレーンを追加すると、スイムレーンがすべて表示されるように、プロセス・エディタ内のプール・アウトラインが拡張されます。

実際のビジネス・プロセスでは、スイムレーンの組合せ、およびスイムレーン内のフロー・オブジェクトが複雑になる場合があります。図2-1に示した営業見積サンプル・プロジェクトは、複数のスイムレーンを使用したより複雑なプロセスの例です。

6.1.3 プロセスへのロールおよびスイムレーンの追加

新しいスイムレーンを追加してからフロー・オブジェクトを追加することも、新しいフロー・オブジェクトの追加と同時に新しいスイムレーンを作成することもできます。

各スイムレーンに対して、レーンに背景色を追加したり、スイムレーン・ラベルにアイコンを挿入することができます。

コンテキスト・メニューから新しいスイムレーンおよびロールを追加するには:

1. スイムレーンを追加するプロセスを開きます。

2. プロセス・キャンバス上で、既存のスイムレーンの下を右クリックして「ロールの追加」を選択します。

3. 「名前」ドロップダウン・リストからロールを選択するか、「新規」をクリックして新しいロールを作成します。

4. 「OK」をクリックします。新しいロールを作成した場合は、「OK」を2回クリックします。
新しいスイムレーンが作成されます。新しく追加されたスイムレーンが表示されるようにプロセス・プールが拡張されます。

新しいフロー・オブジェクトを追加したときに、新しいスイムレーンを追加するには:

1. 新しいスイムレーンに新しいフロー・オブジェクトを追加するプロセスを開きます。

2. コンポーネント・パレットから、ユーザー・タスクまたは手動タスクのフロー・オブジェクトを選択し、それを既存のスイムレーンの下のプロセス・キャンバスにドラッグ・アンド・ドロップします。
ユーザー・タスクまたは手動タスクを選択する必要があります。新しいスイムレーンの作成には、これらのタスクのみ使用できます。

3. 必要に応じて、表示されるダイアログでフロー・オブジェクトのプロパティを編集し、「OK」をクリックします。

4. 「名前」ドロップダウン・リストからロールを選択するか、「新規」をクリックして新しいロールを作成します。

5. 「OK」をクリックします。新しいロールを作成した場合は、「OK」を2回クリックします。
新しいスイムレーンが作成されます。新しく追加されたスイムレーンが表示されるようにプロセス・プールが拡張されます。

スイムレーンに背景色を追加するには:

1. スイムレーンに色を追加するプロセスを開きます。

2. スイムレーン・ラベルを右クリックし、「プロパティ」を選択します。

3. 「半透明の背景」の隣にある矩形の見本をクリックします。

4. パレットから色を選択します。

5. 「OK」を2回クリックします。

注意:

背景色を削除するには、見本の隣にある「クリア」アイコンをクリックします。

スイムレーン・ラベルにアイコンを挿入するには:

1. スイムレーン・ラベルにアイコンを追加するプロセスを開きます。

2. スイムレーン・ラベルを右クリックし、「プロパティ」を選択します。

3. 「参照」ツールをクリックして、イメージ・ブラウザを開きます。

4. イメージを選択します。

5. 「OK」を2回クリックします。

注意:

スイムレーン・ラベルからアイコンを削除するには、「参照」ツールの隣にある「クリア」アイコンをクリックします。

6.1.4 Business Process ComposerとBPM Studioとの間でのロールの共有

Oracle BPM Studioでは、組織単位、カレンダおよび休日に基づいて、複雑な組織モデル内にロールを統合できます。

Business Process Composerでプロジェクト・テンプレートに基づいてプロジェクトを作成または編集するときに、そのプロジェクト内に定義されたロールにアクセスできます。ただし、プロジェクト内に定義された組織情報は表示または編集できません。

また、Business Process Composerを使用して新しいロールを作成することもできます。これらのロールは、プロジェクトの全体的な組織情報の一部として統合されます。

6.1.5 更新タスクの概要

更新タスクは、1つ以上のヒューマン・タスクに対して操作を実行する場合に使用します。たとえば、更新タスクを使用して、別のユーザーへのタスクの再割当てなどのアクションを実行できます。

図6-2は、更新タスクのデフォルトの表記を示しています。

図6-2 更新タスク

「図6-2 更新タスク」の説明

更新タスクの実装の詳細は、14.3項「更新タスクを使用したユーザー・タスクの更新」を参照してください。

6.2 プロセスの開始点および終了点の定義

この項では、プロセスの開始と終了を定義するために使用するBPMNフロー・オブジェクトについて説明します。

6.2.1 開始イベントと終了イベントの概要

開始イベントは、プロセスの開始点を定義するBPMNフロー・オブジェクトです。開始イベントには様々なタイプがあり、それによってプロセス・インスタンスの作成方法が定義されます。

一方、終了イベントはプロセスの終了点を定義します。終了イベントには様々なタイプがあり、それによってプロセス・インスタンス完了時の処理が定義されます。

注意:

Oracle BPMでは、すべてのBPMNプロセスに少なくとも1つの開始イベントと1つの終了イベントが必要です。

開始イベントではプロセスの始まりを定義するため、受信シーケンス・フローは含まれません。同じく、終了イベントには送信シーケンス・フローを含めることができません。

ただし、None開始イベントとNone終了イベント以外の開始イベントと終了イベントには、プロセスへの入力と出力を含めることができます。

6.2.1.1 プロセスの各種のパターンおよびサブプロセスのデフォルト開始イベント

新しいプロセスを作成すると、Oracle BPM StudioおよびBusiness Process Composerがデフォルトの開始イベントと終了イベントを作成します。作成される開始イベントと終了イベントのタイプは、作成するプロセスのタイプによって異なります。

表6-1は、各プロセス・パターンのデフォルトの開始イベントと終了イベントを示しています。

表6-1 各プロセス・タイプのデフォルトの開始イベントおよび終了イベント

プロセス・タイプ

デフォルトの開始イベント・タイプおよび終了イベント・タイプ

デフォルト・プロセス(Oracle BPM Studioのみ)

メッセージ開始および終了イベント

非同期サービス

メッセージ開始および終了イベント

同期サービス

メッセージ開始および終了イベント

手動プロセス

None開始および終了イベント

Oracle BPMでサポートされている様々なタイプのプロセスの詳細は、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。

サブプロセスには、デフォルトでNone開始イベントおよびNone終了イベントが含まれています。これらは必須の開始イベントおよび終了イベントであり、変更できません。

イベント・サブプロセスには、デフォルトでメッセージ開始イベントおよびNone終了イベントが含まれています。ただし、処理するイベントのタイプに応じて、開始イベントを変更できます。

6.2.1.2 プロセス・インスタンスのトリガー方法の定義

Oracle BPMでは、プロセス・インスタンスをトリガーするために次の方法がサポートされています。

- メッセージ、シグナルまたはタイマー開始イベントを使用。

- None開始イベントを使用し、その後で受信タスクを使用。プロセス・インスタンスを作成するために受信タスクを構成する必要があります。

- None開始イベントを使用し、その後でイニシエータ・パターンで定義したユーザー・タスクを使用。

6.2.1.3 1プロセスでの複数の開始イベントの使用

1つのBPMNプロセスに、複数の開始点を定義できます。複数の開始点を定義すると、使用される開始イベントに応じて、プロセス・インスタンスの複数の作成方法を指定できます。

図6-3は、メッセージ開始イベントとタイマー開始イベントの両方を含むプロセスの例を示しています。

図6-3 1プロセスでの複数の開始イベントの使用

「図6-3 1プロセスでの複数の開始イベントの使用」の説明

このプロセスは、他のプロセスまたはサービスから呼び出されたときにメッセージ・イベントを使用して開始できます。また、プロセス・インスタンスを自動的に作成する必要がある場合は、一定の時間間隔に基づいて開始することもできます。

複数の開始イベントを使用すると、2つの異なるプロセスを作成することなく、1つのプロセスが複数の方法で開始されるようにできます。

6.2.1.4 1プロセスでの複数の終了イベントの使用

終了イベントは、プロセス・パスの終わりを示します。プロセスに1つしか終了イベントがないときに、トークンがその終了イベントに到達すると、終了イベント到達時にプロセスが終了します。

複数の終了イベントを使用している場合は、1プロセス内で様々なトークンが様々なパスを経由する可能性があります。通常、パラレルなすべてのパスが終了イベントに達して初めてプロセスが完了します。

ただし、次のような特別な場合には、すべてのプロセス・パスが完了する前にプロセス・インスタンスが終了することがあります。

- エラー終了イベント: エラー終了イベントに達すると、すべてのプロセス・アクティビティが停止します。エラー・スロー・イベントと同様に、エラー終了イベントでは、プロセスのフローが停止されます。詳細は、6.2.7項「エラー終了イベントの概要」を参照してください。

- 強制終了イベント: 強制終了イベントが発生すると、プロセス上のすべての作業が即時に停止します。エラー処理や、その他の実行中プロセスのクリーン・アップは行われません。詳細は、6.2.9項「強制終了イベントの概要」を参照してください。

6.2.2 None開始イベントの概要

None開始イベントは、インスタンス・トリガーが定義されていないときに使用します。プロセスで必要な開始イベントが不明な場合、または開始イベントが後でプロセス開発者によって定義および実装される場合、プロセス・アナリストはNone開始イベントをプレースホルダとして使用できます。

図6-4は、None開始イベントのデフォルトの表記を示しています。

図6-4 None開始イベント

「図6-4 None開始イベント」の説明

None開始イベントは、プロセス・インスタンスが別のフロー・オブジェクトで作成される場合に、プロセスの始まりを指定するためにも使用されます。None開始イベントはプロセス・インスタンスの作成をトリガーしませんが、次に示すフロー・オブジェクトを使用してプロセス・インスタンスをトリガーするときに必要です。

- 受信タスク。受信タスクでは、「インスタンスの作成」プロパティがtrueに設定されている必要があります。

- イニシエータ・パターンで実装されたユーザー・タスク

他の開始イベントと同様に、None開始イベントも受信シーケンス・フローを含むことはできません。含むことができるのは、デフォルトの送信シーケンス・フローのみです。

注意:

Noneイベントは、サブプロセスの開始を定義するときに常に使用されます。

6.2.2.1 コンテキスト内のNone開始イベント

図6-5は、営業見積サンプル・プロジェクト内のNone開始イベントの例を示しています。この例では、None開始イベントによってプロセスの開始が定義されています。また、プロセスにはイニシエータ・パターンを使用して実装されたユーザー・タスクが含まれているため、None開始イベントによってプロセス・インスタンスがトリガーされます。

図6-5 営業見積サンプル・プロセス内のNone開始イベント

「図6-5 営業見積サンプル・プロセス内のNone開始イベント」の説明

この例では、プロセス・インスタンスは見積入力ユーザー・タスクによって作成されます。このユーザー・タスクは、イニシエータ・パターンを使用して実装されています。

6.2.2.2 データ・アソシエーション

None開始イベントでは、プロセスの入力引数を受け入れません。

6.2.3 メッセージ開始イベントの概要

メッセージ開始イベントは、メッセージを受信するとプロセス・インスタンスをトリガーします。このメッセージは、別のBPMNまたはBPELプロセス、あるいはサービスから送信されます。

メッセージとは、プロセス間で情報を交換するために使用されるタイプのデータです。データ・オブジェクトが、プロジェクト内で使用されるデータを定義するために使用されるのと同様に、メッセージは、プロセス間またはプロセスとサービスとの間で使用されるデータを定義するために使用されます。

図6-6は、メッセージ開始イベントのデフォルトの表記を示しています。

図6-6 メッセージ開始イベント

「図6-6 メッセージ開始イベント」の説明

他の開始イベントと同様に、メッセージ開始イベントには受信シーケンス・フローを含めることができません。メッセージ開始イベントには、デフォルトの送信シーケンス・フローが必要です。

他のプロセスやアプリケーションがプロセスを起動できるように、BPMNプロセスをサービスとして公開できます。プロセスをサービスとして公開するには、プロセスをメッセージ開始イベントで開始する必要があります。詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「他のBPMNプロセスおよびサービスとの通信」を参照してください。

6.2.3.1 コンテキストにおけるメッセージ開始イベント

図6-7は、営業見積プロセスの修正バージョンを示しています。ここでは、プロセスは、プロセス・インスタンスを開始するメッセージ開始イベントから開始されています。

図6-7 営業見積サンプル・プロセス内のメッセージ開始イベント

「図6-7 営業見積サンプル・プロセス内のメッセージ開始イベント」の説明

6.2.3.2 プロセスの入力引数と出力引数の使用

メッセージ開始イベントを使用すると、プロセスに対して入力引数および出力引数を指定できます。これらの引数では、他のプロセスやサービスがプロセスを呼び出すときに送信する必要があるメッセージが定義されます。

6.2.4 シグナル開始イベントの概要

シグナル開始イベントは、別のプロセスまたはサービスからの通信に基づくという点でメッセージ開始イベントに似ています。ただし、メッセージ開始イベントは、特定のプロセスに送信されたメッセージに応答します。対照的に、シグナル開始イベントは複数のプロセスにブロードキャストされたシグナルに対するレスポンスです。

シグナルは、BPMNプロセスからシグナル・スロー・イベントを使用してブロードキャストできます。シグナル・スロー・イベントとシグナル開始イベントを組み合せて使用すると、複数のプロセスを同時に起動できます。

シグナル開始イベントとシグナル・スロー・イベントは、通常、プロセス開発者によってプロセスに追加されます。シグナル・スロー・イベントの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「シグナル・イベントを使用したプロセス間の通信の概要」を参照してください。

図6-8は、シグナル開始イベントのデフォルトの表記を示しています。

図6-8 シグナル開始イベント

「図6-8 シグナル開始イベント」の説明

6.2.4.1 コンテキストにおけるシグナル開始イベント

シグナル開始イベントおよびシグナル・スロー・イベントは、通常、プロセス開発者によってプロセスに追加され、実装されます。

6.2.5 タイマー開始イベントの概要

タイマー開始イベントは、特定の時間条件に基づいてプロセス・インスタンスの作成をトリガーします。タイマー開始イベントは、次の内容に基づいてプロセス・インスタンスをトリガーするように構成できます。

- 特定の日付および時刻。たとえば、12月31日の午後11時59分にプロセスをトリガーできます。

- 繰返し間隔。たとえば、10時間ごと、5分ごと、32秒ごとにプロセスをトリガーできます。

図6-9は、タイマー開始イベントのデフォルトの表記を示しています。

図6-9 タイマー開始イベント

「図6-9 タイマー開始イベント」の説明

6.2.6 None終了イベントの概要

None終了イベントは、プロセス・パスの終わりを示すために使用します。トークンは、None終了イベントに到達すると消費されます。プロセス・インスタンス内に他のトークンがない場合は、インスタンスが完了します。

None終了イベントは、プロセス完了後にアクションを実行する必要がない場合に使用します。また、このイベントは、後で実装時にプロセス開発者が変更するためのプレースホルダとして、プロセス・アナリストが使用することもできます。

図6-10は、None終了イベントのデフォルトの表記を示しています。

図6-10 None終了イベント

「図6-10 None終了イベント」の説明

None終了イベントは、サブプロセスおよびイベント・サブプロセスの終わりを示すときに常に使用されます。

6.2.6.1 コンテキスト内のNone終了イベント

図6-11は、営業見積サンプル・プロセス内のNone終了イベントの例を示しています。この例では、営業見積サービス・タスクを使用して、営業見積に関する情報をデータベースに保存するタスクを実行しています。

図6-11 営業見積サンプル・プロセス内のNone終了イベント

「図6-11 営業見積サンプル・プロセス内のNone終了イベント」の説明

トークンがプロセスの終わりに到達した場合は、他の作業を実行できないようにする必要があるため、None終了イベントが使用されています。プロセス・トークンがすべてNone終了イベントに到達すると、プロセス・インスタンスが完了します。

6.2.7 エラー終了イベントの概要

エラー終了イベントは、なんらかのエラー状態が原因でプロセスを終了する場合に使用します。

通常、エラー終了イベントは、エラー境界イベントとともに使用します。エラー境界イベントは、特定のエラーに基づいてプロセス・フローを変更するために使用します。通常、エラー境界イベントを使用したフローは、エラー終了イベントを使用して終了します。エラー中間イベントの使用方法の詳細は、6.8.3項「エラー・キャッチ・イベントの概要」を参照してください。

図6-12は、エラー終了イベントのデフォルトの表記を示しています。

図6-12 エラー終了イベント

「図6-12 エラー終了イベント」の説明

エラー終了イベントの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

6.2.8 メッセージ終了イベントの概要

メッセージ終了イベントは、プロセス完了時に他のプロセスやサービスにメッセージを送信するために使用します。メッセージ終了イベントは、常にメッセージ開始イベントまたはメッセージ・キャッチ・イベントとともに使用します。

注意:

複数の終了イベントを持つプロセスを作成する場合は、メッセージ終了イベントに到達するすべてのトークンがメッセージ開始イベントによって作成されることを確認する必要があります。たとえば、タイマー開始イベントによって開始されたプロセス・インスタンスを終了するためにメッセージ終了イベントを使用することはできません。

図6-13は、メッセージ終了イベントのデフォルトの表記を示しています。

図6-13 メッセージ終了イベント

「図6-13 メッセージ終了イベント」の説明

メッセージ・スロー・イベントの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「メッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信」を参照してください。

6.2.9 強制終了イベントの概要

強制終了イベントは、即時にプロセスを終了するために使用します。強制終了イベントに到達すると、プロセスは即時に終了します。エラー処理や、追加のクリーン・アップは行われません。

6.3 プロセスへのユーザー相互作用の追加

ほとんどのビジネス・アプリケーションでは、組織内のプロセス参加者からの相互作用が必要です。相互作用は、フォームに情報を入力するなどの単純な操作の場合や、複数のワークフローおよび複数のユーザーが関与する場合があります。

この項では、プロセス参加者がビジネス・プロセスと相互作用する方法をモデリングするために使用されるBPMNフロー・オブジェクトについて説明します。

6.3.1 ヒューマン・ワークフローの概要

多くのエンドツーエンドのビジネス・プロセスでは、プロセスに人的な操作が必要です。たとえば、承認や例外管理、またはビジネス・プロセスの進行に必要なアクティビティの実行には、人的な操作が必要です。

Oracle Human Workflowでは、次の機能によってユーザーの参加が包括的にサポートされます。

- プロセスの人的な操作。適切なユーザーまたはグループへのタスクの割当てやルーティングなどがあります。

- タスク(ヒューマン・アクティビティ)が適切なタイミングで実行されることを保証するために必要な期限、エスカレーション、通知およびその他の機能

- プロセス参加者が各自のタスクを実行するときの生産性を向上するために必要な組織、フィルタ、優先順位付けおよびその他の機能

- スーパーバイザおよびビジネス所有者がタスクのパフォーマンスを管理するために必要なレポート、再割当て、ロード・バランシングおよびその他の機能

詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

6.3.1.1 ヒューマン・タスクの概要

ヒューマン・タスクは、Oracle Human Workflowのコンポーネントの1つです。ヒューマン・タスクを使用すると、エンドツーエンドのプロセス・フロー内のシステムおよびサービスとの接続を使用して、ユーザーの相互作用をインタリーブできます。ヒューマン・タスクの役割は、ビジネス・プロセスに参加しているユーザーおよびグループのすべての相互作用を処理することです。これを行うために、組織内で該当するユーザーのタスクを作成して追跡しています。ユーザーは通常、Oracle BPM Worklistアプリケーション、電子メール、ポータル、カスタム・アプリケーションなどの各種クライアントを通じてタスクにアクセスします。

プロセス開発者は、ヒューマン・タスクを使用して、Oracle BPMおよびSOA Suiteを使用して作成されたプロセスベースのアプリケーションとプロセス参加者との相互作用の方法を定義できます。

プロセス開発者はヒューマン・タスクを使用して次の要素を作成することで、エンド・ユーザー相互作用のインタフェースとワークフローを定義できます。

ヒューマン・タスクは、同じUIを使用する他のプロセス内で使用できる再使用可能なサービスです。

- ロールと割当て

- 期限とエスカレーション

- プレゼンテーション

ヒューマン・タスクはOracle BPM Studioを使用して作成します。

注意:

Business Process Composerでは、BPM Studioで作成したプロジェクトやプロジェクト・テンプレートでヒューマン・タスクを使用できます。Business Process Composerでヒューマン・タスクを作成または編集することはできません。

6.3.2 ユーザー・タスクの概要

ユーザー・タスクは、プロセス内で、プロセス参加者が作業を実行する必要がある部分を表します。ユーザー・タスクは、フォームへの入力などの単純な相互作用である場合もあれば、複数のプロセス参加者からの入力を必要とする複雑なワークフローの一部である場合もあります。

図6-14は、ユーザー・タスクのデフォルトの表記を示しています。

図6-14 ユーザー・タスク

「図6-14 ユーザー・タスク」の説明

Oracle BPM Suiteでは、プロセス参加者はプロセス・ワークスペースを使用してビジネス・アプリケーションと相互作用を行います。プロセス参加者に対して表示される画面やパネルなどの具体的なユーザー・インタフェース要素は、Oracle Human Tasksを使用して作成します。

プロセスの設計時には、多くの場合、プロセス・アナリストの作業はユーザー・タスクをプロセス図に追加するだけで完了です。その後、プロセス開発者が必要なヒューマン・タスクを作成し、プロセスベースのビジネス・アプリケーション作成の構成要素として実装します。

トークンがユーザー・タスクに到達すると、対応するヒューマン・タスクが実行されます。トークンは、ヒューマン・タスクが完了するまで待機してから、次のフロー・オブジェクトに移動します。

ユーザー・タスクの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「ヒューマン・タスクの使用」を参照してください。

他のフロー・オブジェクトと同様、ユーザー・タスクには受信および送信データ・アソシエーションを含めることができます。

また、ユーザー・タスクには、受信シーケンス・フローおよびデフォルトの送信シーケンス・フローを含めることもできます。

注意:

Business Process Composerでは、Oracle BPM Studioでプロジェクト・テンプレートの構成要素として作成したユーザー・タスクにヒューマン・タスクを割り当てる操作のみを実行できます。新規ヒューマン・タスクの作成や既存ヒューマン・タスクの編集を行うことはできません。

6.3.2.1 コンテキスト内のユーザー・タスク

営業見積のデモ・プロセスでは、見積入力タスク(図6-15を参照)は見積情報を入力する作業を表します。

図6-15 見積入力ユーザー・タスク

「図6-15 見積入力ユーザー・タスク」の説明

エンド・ユーザーが営業見積に関する情報を入力すると、プロセス・フローは送信シーケンス・フローに従ってプロセス内の次のフロー・オブジェクトに移動します。

6.3.2.2 対話型アクティビティの使用

Oracle BPM Studioを使用すると、対話型アクティビティをコンポーネント・パレットからプロセスに直接追加できます。対話型アクティビティは、Oracle Human Workflowのタスク・ルーティング機能および承認機能に基づくショートカットです。詳細は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドのヒューマン・ワークフローの概要を参照してください。

注意:

対話型アクティビティは、Business Process Composerのコンポーネント・パレットからは利用できません。Business Process Composerを使用してユーザーの相互作用をモデリングするには、プロセスに一般的なユーザー・タスクを追加します。対話型アクティビティは、後でプロセス開発者がOracle BPM Studioを使用して実装できます。

表6-2は、Oracle BPM Studioのコンポーネント・パレットから利用できる対話型アクティビティを示しています。

表6-2 対話型アクティビティ

パターン

説明

複合

ヒューマン・タスク内に定義されている複雑なルーティング・フローを使用します。

管理

スイムレーンに割り当てられたグループまたはロールに属するプロセス参加者の管理チェーン・パターンに割当て先を設定する管理チェーン・パターンを使用します。

FYI

割当てはスイムレーンに定義された参加者、ロールまたはグループに基づきます。FYIアクティビティはユーザー対話型アクティビティに類似していますが、完了を待機せずに処理を続行する点が異なります。

グループ

グループ投票パターンを使用します。割当て先はレーンに関連付けられたロールまたはグループに自動的に設定されます。対話型アクティビティはロールまたはグループに関連付けられたスイムレーンにのみ追加できます。

イニシエータ

イニシエータ・パターンは、プロセス・インスタンスを作成するために使用します。

6.3.2.3 プロジェクト・テンプレートでのユーザー・タスクの使用

Oracle BPM Studioを使用して、ヒューマン・タスクをビジネス・カタログに追加します。プロセス・アナリストは、プロジェクト・テンプレートから作成されたプロジェクトを使用するときに、Business Process Composerでこれらのヒューマン・タスクを使用できます。

注意:

Business Process Composerを使用してヒューマン・タスクを作成または編集することはできません。ヒューマン・タスクは、Oracle BPM Studioを使用して作成します。

ユーザー・タスクをプロジェクト・テンプレートに追加してBusiness Process Composer内で使用する場合、次のガイドラインに従う必要があります。

- プロセス開発者は、Business Process Composerでテンプレートを使用する前に、必要なすべてのヒューマン・タスク・サービスをOracle BPM Studioで作成する必要があります。ヒューマン・タスクは、ユーザー・タスク内に実装することも、プロジェクト・テンプレートに基づいてプロジェクトを編集するときに実装することもできます。

- ただし、プロジェクト・テンプレート内でシールされたユーザー・タスクに対してヒューマン・タスク・サービスを実装する場合は、Business Process Composerでプロジェクト・テンプレートを使用する前にも実装を行う必要があります。

6.3.3 手動タスクの概要

手動タスクは、Oracle BPMのスコープ外のプロセス参加者が実行するタスクを表します。手動タスクはプロセス内のプレースホルダとして使用され、実行時にBPMNサービス・エンジンによって管理されない作業を示します。また、手動タスクはプロセス・ワークスペース・アプリケーションには表示されません。

注意:

手動タスクはOracle BPMによって管理されません。Oracle BPMランタイムでは、手動タスクの開始および完了は追跡されません。

図6-16は、手動タスクのデフォルトの表記を示しています。

図6-16 手動タスク

「図6-16 手動タスク」の説明

手動タスクでは、デフォルト受信シーケンス・フローとデフォルト送信シーケンス・フローをそれぞれ1つのみ使用できます。

多くのBPMNフロー・オブジェクトと異なり、手動タスクではデータ・オブジェクトを操作できません。以前のフロー要素に関連付けられたデータ・オブジェクトはそのままの状態で次のフロー要素に渡されます。

6.3.3.1 コンテキスト内の手動タスク

営業見積サンプル・プロセスのコンテキストでは、図6-17に示すように正式な契約書を印刷して署名するための手動タスクを追加できます。

図6-17 手動タスクの例

「図6-17 手動タスクの例」の説明

この例では、正式な契約書への署名をビジネス・プロセスの一部として明示的に示す必要がありますが、署名はBPMNサービス・エンジンによって管理されないため、手動タスクが使用されています。

6.4 他のプロセスおよびサービスとの通信

Oracle BPMでは、プロセス指向アプリケーション内のビジネス・プロセス間の相互作用を定義できます。以降の項では、プロセス間の通信のモデリングに使用されるBPMNフロー・オブジェクトについて説明します。

この項では、Business Process Composerを使用してプロセス・モデルを作成する場合のこれらのフロー・オブジェクトの使用方法について説明します。プロセスベースのアプリケーションにおけるこれらのフロー・オブジェクトの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

6.4.1 サービス・タスクの概要

サービス・タスクを使用すると、他のプロセスおよびサービスと通信できます。プロセス・アナリストは、プロセスで外部サービスまたは外部プロセスを呼び出す必要がある場合、サービス・タスクを追加できます。

その後、プロセス開発者は必要なサービスを実装できます。サービス・タスクを使用して、次を呼び出すことができます。

- 他のBPMNプロセス

- BPELプロセス

- SOAサービス・アダプタ

- サービスとして公開されているメディエータ

サービス・タスクの動作は、送信タスクと受信タスクのペアの動作、およびメッセージ・スロー・イベントとメッセージ・キャッチ・イベントのペアの動作と似ています。主な違いは、サービス・タスクがプロセスおよびサービスを同期的に起動するために使用される点です。サービス・タスクがプロセスやサービスを起動すると、レスポンスが返されるまで、トークンはサービス・タスクで待機します。レスポンスを受信した後、トークンはプロセス内の次のシーケンス・フローに移動します。

サービスおよびBPMNプロセスを使用したサービス・タスクの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「サービス・タスクを使用した、サービスおよびBPMNプロセスの同期操作の起動」を参照してください。

図6-18は、サービス・タスクのデフォルトの表記を示しています。

図6-18 サービス・タスク

「図6-18 サービス・タスク」の説明

6.4.1.1 コンテキスト内のサービス・タスク

図6-19は、完成した営業見積をデータベースに保存するために使用されるサービス・タスクの例を示しています。

図6-19 営業見積サンプル・プロセス内のサービス・タスク

「図6-19 営業見積サンプル・プロセス内のサービス・タスク」の説明

6.4.1.2 プロジェクト・テンプレートでの再使用可能なサービスの実装

Oracle BPMを使用すると、プロジェクト・テンプレートに再使用可能なサービスを統合できます。これらのサービスは、ビジネス・カタログのコンポーネントです。

6.4.2 通知タスクの概要

通知タスクはサービス・タスクに類似しています。通知タスクは、事前定義されたサービスを使用して、様々なタイプの通知を実行します。さらに、式を使用して、通知タスクで生成された通知を受信するユーザーまたはグループを決定できます。

通知タスクの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

次のようなタイプの通知があります:

- IM: インスタント・メッセージをユーザーまたはグループに送信します。図6-20は、IM通知タスクのデフォルトの表記を示しています。

図6-20 インスタント・メッセージ通知タスク

「図6-20 インスタント・メッセージ通知タスク」の説明

- 電子メール: 電子メールをユーザーまたはグループに送信します。電子メールには添付ファイルを含めることもできます。図6-21は、電子メール通知タスクのデフォルトの表記を示しています。

図6-21 電子メール通知タスク

「図6-21 電子メール通知タスク」の説明

- SMS: SMSメッセージをユーザーに送信します。図6-22は、SMS通知タスクのデフォルトの表記を示しています。

図6-22 SMS通知タスク

「図6-22 SMS通知タスク」の説明

- 音声: ボイスメールをユーザーに送信します。図6-23は、ボイスメール通知タスクのデフォルトの表記を示しています。

図6-23 ボイスメール通知タスク

「図6-23 ボイスメール通知タスク」の説明

- ユーザー: 使用可能な通知タイプに基づいて、通知をユーザーに送信します。たとえば、ユーザーがボイスメールと電子メールの両方を構成している場合、通知タスクでは両方とも送信します。図6-24は、ユーザー通知タスクのデフォルトの表記を示しています。

図6-24 ユーザー通知タスク

「図6-24 ユーザー通知タスク」の説明

6.4.3 コール・アクティビティの概要

コール・アクティビティを使用すると、再使用可能なプロセスを現在のプロセス内からコールできます。被コール側プロセスは、コール側プロセスの子プロセスになります。再使用可能なプロセスをコールしている場合、親プロセスのコール・アクティビティは、子プロセスが完了するまで待機してから処理を続行します。

図6-25は、コール・アクティビティのデフォルトの表記を示しています。

図6-25 コール・アクティビティ

「図6-25 コール・アクティビティ」の説明

親プロセスのデータ・オブジェクトは、再使用可能なプロセスに対して自動的に使用可能になりません。データ・オブジェクトは、コール・アクティビティの引数マッピングを使用して、子プロセスとの間で受け渡す必要があります。

6.4.3.1 再使用可能なプロセス

Oracle BPMでは、再使用可能なプロセスというプロセス・タイプをサポートしています。BPMN用語では、再使用可能なサブプロセスと呼ばれることもあります。再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。

再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。たとえば、すべてのプロセスにクレジット・カード払いが必要な場合は、再使用可能なクレジット・カード払いのサブプロセスを作成できます。

再使用可能なプロセスには、次の特性があります。

- 単一のNone開始イベントで開始する必要があります。

- 複数の終了イベントを含めることができます。

- コールできるのは、別のBPMNプロセスのみです。

6.4.3.2 再使用可能なプロセスをコールする際のコール・アクティビティの動作

次の図は、制御フローが子プロセスに渡されてから親プロセスに戻るまでの手順を示しています。

1. トークンが親プロセスのコール・アクティビティに到達します。

2. 子プロセスの新規インスタンスが作成されます。

3. 子プロセスでは、終了イベントに到達するまで、またはエラーが発生するまで実行が継続されます。

4. プロセス・フローが親プロセスのコール・アクティビティに戻ります。

5. メイン・プロセスのフローが続行されます。

6.4.4 送信タスクの概要

送信タスクでは、現在のプロセス外部のシステムまたはプロセスにメッセージが送信されます。このメッセージが送信されると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

多くの場合、送信タスクは受信タスクと組み合せて使用され、プロセスまたはサービスを起動してレスポンスを受信します。送信タスクおよび受信タスクは非同期的にプロセスおよびサービスを起動するために使用します。プロセスおよびサービスを同期的に起動する場合は、サービス・タスクを使用します。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ開始イベントによって開始されるプロセスは、送信タスクを使用して起動できません。

図6-26は、送信タスクのデフォルトの表記を示しています。

図6-26 送信タスク

「図6-26 送信タスク」の説明

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義」を参照してください。

6.4.4.1 コンテキスト内の送信タスク

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、第6章「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

6.4.5 受信タスクの概要

送信タスクとは対照的に、受信タスクでは、現在のプロセスの外部にあるシステムまたはプロセスからのメッセージを待機します。このメッセージが受信されると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

図6-27は、受信タスクのデフォルトの表記を示しています。

図6-27 受信タスク

「図6-27 受信タスク」の説明

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義」を参照してください。

6.4.5.1 コンテキスト内の受信タスク

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、6.4.6項「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

6.4.5.2 受信タスクによるプロセスの開始

受信タスクを使用して、プロセスの開始をトリガーできます。これは、他のプロセスから送信タスクを使用してプロセスを起動する場合に役立ちます。

受信タスクを使用してプロセスを開始する場合は、次の条件を満たしている必要があります。

- 受信タスクの前にNone開始イベントがあること。

- プロセスに他の開始イベントが含まれていないこと。

- 「インスタンスの作成」プロパティが有効であること。

次の項では、プロセス間の通信で送信タスクおよび受信タスクを使用する方法について説明します。

6.4.6 送信タスクおよび受信タスクを使用した、プロセス間の通信

送信タスクおよび受信タスクを使用すると、他のBPMNプロセスを起動して、起動したプロセスからメッセージを受信できます。受信タスクによって開始され、送信タスクを含むプロセスは、Oracle BPMアプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

図6-28は、送信タスクおよび受信タスクを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作の概要を示しています。

図6-28 送信タスクおよび受信タスクを使用した、プロセス間の通信

「図6-28 送信タスクおよび受信タスクを使用した、プロセス間の通信」の説明

次の手順は、送信タスクおよび受信タスクを使用してプロセス間で通信する場合のシナリオの例を示しています。

1. プロセスAが起動されます。

2. プロセスAのトークンが送信タスクに到達します。

3. 送信タスクによって、プロセスBが起動されます。
この動作は、送信タスクの実装によって定義されます。

4. プロセスAのトークンは、プロセスの次のフロー・オブジェクトに進みます。

5. 受信タスクによって、プロセスBのプロセス・インスタンスが開始されます。
受信タスクには、「インスタンスの作成」プロパティが定義されている必要があります。6.4.5.2項を参照してください。

6. 新しく作成されたトークンがプロセスBに沿って進みます。

7. プロセスの具体的な動作に応じて、次のシナリオが発生する場合があります。

1. プロセスAのトークンが、プロセスBからの送信タスクとペアになっている受信タスクに到達すると、プロセスAのトークンはレスポンスを受信するまで待機します。レスポンスを受信した後、プロセスAのトークンは次のフロー・オブジェクトに移動します。

2. プロセスBのトークンが、プロセスA内の受信タスクとペアになっている送信タスクに到達すると、プロセスBはプロセスAにレスポンスを送信します。プロセスBのトークンは、次のフロー・オブジェクトに移動します。

8. 両方のプロセスが引き続き実行されます。この後に、さらに送信タスクと受信タスクのペアを使用して、2つのプロセス間での通信を定義できます。

6.4.7 メッセージ・スロー・イベントの概要

メッセージ・スロー・イベントを使用すると、他のプロセスまたはサービスにメッセージを送信できます。

図6-29は、メッセージ・スロー・イベントのデフォルトの表記を示しています。

図6-29 メッセージ・スロー・イベント

「図6-29 メッセージ・スロー・イベント」の説明

メッセージ・スロー・イベントを使用すると、次のタイプのプロセスおよびサービスを起動できます。

- 他のBPMNプロセス

- BPELプロセス

- SOAサービス・アダプタ

- サービスとして公開されているメディエータ

プロセス・アナリストは、プロセスにメッセージ・スロー・イベントを追加して、プロセスから他のプロセスやサービスを呼び出す必要がある位置を定義できます。ただし、他のプロセスとの接続の実装は、通常はプロセス開発者が担当します。また、メッセージ・スロー・イベントによって起動されるサービスの作成および実装も、通常はプロセス開発者が担当します。

メッセージ・スロー・イベントの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「メッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信」を参照してください。

多くの場合、メッセージ・スロー・イベントは、他のプロセスのメッセージ開始イベントを呼び出すことによって他のBPMNプロセスを起動するために使用します。詳細は、6.2.3項「メッセージ開始イベントの概要」を参照してください。

また、多くの場合、メッセージ・スロー・イベントは、起動したプロセスまたはサービスからレスポンスを受信するメッセージ・キャッチ・イベントとともに使用します。ただし、メッセージ・スロー・イベントは常に非同期的に使用されます。メッセージ・スロー・イベントから他のプロセスまたはサービスにメッセージが送信された後、トークンは即時にプロセスの次のフロー・オブジェクトに移動します。

プロセスで同期的にレスポンスを受信する場合は、サービス・タスクを使用してプロセスまたはサービスを起動する必要があります。詳細は、6.4.1項「サービス・タスクの概要」を参照してください。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ受信タスクによって開始されるプロセスをメッセージ・スロー・イベントを使用して起動することはできません。

6.4.8 メッセージ・キャッチ・イベントの概要

メッセージ・キャッチ中間イベントでは、別のプロセスまたはサービスからのメッセージを受信できます。

図6-30は、メッセージ・キャッチ・イベントのデフォルトの表記を示しています。

図6-30 メッセージ・キャッチ・イベント

「図6-30 メッセージ・キャッチ・イベント」の説明

多くの場合、メッセージ・キャッチ・イベントは、他のBPMNプロセスと通信するためのメッセージ・スロー・イベントとともに使用されます。メッセージ・スロー・イベントとメッセージ・キャッチ・イベントを組み合せて使用する方法の詳細は、6.4.9項を参照してください。

メッセージ・スロー・イベントの実装方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「メッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信」を参照してください。

6.4.9 メッセージのスローおよびキャッチを使用した、プロセス間の通信

スロー・イベントとキャッチ・イベントを組み合せて使用することによって、他のBPMNプロセスを起動したり、他のBPMNプロセスと通信できます。スロー・イベントを使用して他のプロセスを起動する場合は、次の条件を満たしている必要があります。

- 起動されるプロセスは、非同期プロセスである必要があります。メッセージ・スローを使用して同期プロセスを起動することもできますが、起動したプロセスから同期的にメッセージをキャッチするメカニズムは用意されていません。
同期プロセスを起動する場合は、サービス・タスクを使用する必要があります。詳細は、6.4.1項「サービス・タスクの概要」を参照してください。

- 最初にスロー・イベントを使用する場合は、他のプロセスのメッセージ開始イベントとペアにする必要があります。これは、プロセス・インスタンスをトリガーするために必要となります。インスタンスがトリガーされた後は、2つ目のプロセスによってキャッチされる後続のメッセージ・スロー・イベントを使用できます。

メッセージ開始イベントで開始し、メッセージ終了イベントで終了するプロセスは、Oracle BPMアプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

プロセスから起動されたプロセスは、子プロセスであるとはみなされません。このことは、強制終了イベントをプロセスの終了点として使用するプロセスを設計する場合に重要となります。たとえば、コール側プロセスの終了イベントでは、メッセージ・スロー・イベントによって起動されたプロセスは停止しません。

図6-31は、スロー・イベントおよびキャッチ・イベントを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作を示しています。

図6-31 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用

「図6-31 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用」の説明

次の手順は、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントを使用してプロセス間で通信を行う場合のシナリオの例を示しています。

1. プロセスAが起動されます。

2. プロセスAのトークンが、プロセスBを起動するように構成されているメッセージ・スロー・イベントに到達します。

3. メッセージ・スロー・イベントからプロセスBのメッセージ開始イベントにメッセージが送信されます。

4. プロセスAのトークンは、次のフロー・オブジェクトに進みます。

5. メッセージ開始イベントによって、プロセスBのインスタンスがトリガーされます。

6. 新しく作成されたトークンがプロセスBに沿って進みます。

7. プロセスの動作に応じて、次のシナリオが発生する場合があります。

1. プロセスAのトークンが、プロセスBからのスロー・イベントとペアになっているキャッチ・イベントに到達すると、プロセスAのトークンはメッセージを受信するまで待機します。メッセージを受信した後、プロセスAのトークンは次のフロー・オブジェクトに移動します。

2. プロセスBのトークンが、プロセスAのキャッチ・イベントとペアになっているスロー・イベントに到達すると、プロセスBはプロセスAにメッセージをスローします。プロセスBのトークンは、次のフロー・オブジェクトに移動します。

8. 両方のプロセスが引き続き実行されます。この後に、さらにキャッチ・イベントとスロー・イベントのペアを使用して、2つのプロセス間での通信を定義できます。

6.5 Oracle Business Rulesを使用したビジネス・ロジックの追加

この項では、ビジネス・ルール・タスクを使用してビジネス・プロセス内にOracle Business Rulesを取り込む方法について説明します。Business Process Composerを使用したOracle Business Rulesの利用の詳細は、第16章「Oracle Business Rulesの使用」を参照してください。

6.5.1 Oracle Business Rulesの概要

ビジネス・ルールは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。

6.5.2 ビジネス・ルール・タスクの概要

ビジネス・ルール・タスクを使用すると、プロセス内にOracle Business Rulesを取り込むことができます。

図6-32は、ビジネス・ルール・タスクのデフォルトの表記を示しています。

図6-32 ビジネス・ルール・タスク

「図6-32 ビジネス・ルール・タスク」の説明

ビジネス・プロセス内にOracle Business Rulesを取り込むユース・ケースは、主に2つあります。

- 構造ルールの使用
構造ルールを使用すると、ビジネス・プロセス内で使用される計算を実行できます。たとえば、信用度を計算するためにビジネス・ルールを使用できます。

- 運用ルールの使用
運用ルールは、プロセスのフローを変更するために使用します。運用ルールの典型的な使用方法として、ルール・カタログ内のルール条件のチェックの実行があります。その後、出力データ・アソシエーションの一部として、式を使用してデータ・オブジェクトに値を割り当てます。

このシナリオでは、ビジネス・ルール・タスクの直後にゲートウェイが配置されます。このゲートウェイは、データ・オブジェクトの値に従ってプロセス・パスを分岐するために使用されます。

営業見積サンプル・プロジェクト内での操作ルールの使用方法の詳細は、6.5.2.1項「コンテキスト内のビジネス・ルール・タスク」を参照してください。

6.5.2.1 コンテキスト内のビジネス・ルール・タスク

図6-33は、営業見積サンプル・プロセス内のビジネス・ルール・タスクの例を示しています。

図6-33 営業見積サンプル・プロセス内のビジネス・ルール・タスク

「図6-33 営業見積サンプル・プロセス内のビジネス・ルール・タスク」の説明

6.6 シーケンス・フローを使用したプロセス・フローの制御

この項では、シーケンス・フローを使用してビジネス・プロセスの動作を定義する方法を説明します。

6.6.1 シーケンス・フローの概要

シーケンス・フローでは、プロセス内で作業が実行される順序(シーケンス)が定義されます。シーケンス・フローによって、プロセス内のフロー・オブジェクトが接続され、プロセス内でプロセス・トークンが移動するパスが特定されます。

受信シーケンス・フローは、フロー・オブジェクト内に移動するシーケンス・フローです。送信シーケンス・フローは、フロー・オブジェクトから外部に移動するプロセス・パスを特定するシーケンス・フローです。

多くのフロー・オブジェクトには、受信シーケンス・フローと送信シーケンス・フローの両方が含まれています。ただし、開始イベントと終了イベントは例外です。開始イベントで使用できるのは送信シーケンス・フローのみです。終了イベントで使用できるのは受信シーケンス・フローのみです。また、イベント・サブプロセスには、受信シーケンス・フローも送信シーケンス・フローも含まれません。

6.6.2 無条件シーケンス・フローの概要

無条件シーケンス・フローは2つのフロー・オブジェクト間の通常のパスです。デフォルト・シーケンス・フローは図6-34のように矢印線として表示されます。

図6-34 無条件シーケンス・フロー

「図6-34 無条件シーケンス・フロー」の説明

ほとんどのフロー・オブジェクトでは、デフォルト送信シーケンス・フローを1つのみ使用できます。プロセスのパラレル・パスを表す複数の無条件シーケンス・フローを使用できるのは、パラレル・ゲートウェイのみです。

排他ゲートウェイ、包含ゲートウェイおよび条件ゲートウェイには、無条件送信シーケンス・フローを使用できません。これらのゲートウェイでは、条件シーケンス・フローおよびデフォルト・シーケンス・フローを使用して、プロセスのフローを決定します。

6.6.3 条件シーケンス・フローの概要

条件シーケンス・フローは、特定の条件に基づいてプロセスのフローを制御するために使用します。無条件シーケンス・フローと同様に、条件シーケンス・フローは、矢印線として表示されます。

図6-35は、2つの送信条件シーケンス・フローと1つのデフォルト・シーケンス・フローを示しています。

図6-35 条件シーケンス・フローとデフォルト・シーケンス・フロー

「図6-35 条件シーケンス・フローとデフォルト・シーケンス・フロー」の説明

送信条件シーケンス・フローを使用できないフロー・オブジェクトもあります。送信条件シーケンス・フローを使用できるのは、次のタイプのゲートウェイのみです。

- 排他ゲートウェイ

- 包含ゲートウェイ

- 条件ゲートウェイ

- Event-based Gateway

条件シーケンス・フロー内で使用される条件は、式を使用して定義されます。式エディタを使用して式を定義する方法は、26.1項「Oracle BPMでの式の概要」を参照してください。

6.6.4 デフォルト・シーケンス・フローの概要

条件シーケンス・フローと同様に、デフォルト・シーケンス・フローは排他ゲートウェイ、包含ゲートウェイおよび条件ゲートウェイへの送信シーケンス・フローとして使用されます。デフォルト・シーケンス・フローは、いずれの条件もtrueと評価されない場合に、プロセスがこれらのゲートウェイから脱出するパスを表します。

デフォルト・シーケンス・フローは、図6-35のように一方の端にチック・マークが付いた矢印として表示されます。

6.7 ゲートウェイを使用したプロセス・フローの制御

この項では、ゲートウェイを使用してプロセスのフローおよび動作を制御する方法を説明します。

6.7.1 ゲートウェイの概要

ゲートウェイはプロセスのフローを定義するフロー要素です。ゲートウェイはトークンがプロセスを辿るパスを指定します。ゲートウェイはパスのスプリットとマージによってプロセス内の制御ポイントを定義します。

プロセスのデフォルト・パスに対する例外または逸脱となるパスには、可能なかぎりゲートウェイを使用します。

6.7.1.1 スプリットとマージのペア

次のゲートウェイにはスプリットとマージのペアが必要です。

- パラレル・ゲートウェイ

- 包含ゲートウェイ

- 複合ゲートウェイ

これらのゲートウェイのいずれかをBPMNプロセスに追加すると、Oracle BPM Studioはスプリットとマージのフロー・オブジェクトを自動的に作成します。

ゲートウェイのマージ部分は常に必要となりますが、必ずしもスプリットされたすべてのパスをマージ部分に戻す必要はありません。

ゲートウェイでスプリットされたプロセス・パスのうち、ゲートウェイでマージされないものがあってもかまいませんが、通常はお薦めしません。ゲートウェイのマージ動作の詳細は、後述の各ゲートウェイ・タイプの項を参照してください。

注意:

プロセスからマージ・ゲートウェイを削除すると、対応するスプリットも削除されます。

6.7.2 排他ゲートウェイの概要

排他ゲートウェイを使用すると、プロセスを複数のパスにスプリットできます。ただし、複数の送信シーケンス・フローが存在する場合でも、プロセスが経由するパスは、これらのパスのうちの1つのみです。排他ゲートウェイでは、条件送信シーケンス・フローを使用でき、少なくとも1つのデフォルト送信シーケンス・フローが必要です。

プロセスが条件シーケンス・フローを経由するかどうかを決定するために使用される式を定義できます。プロセスに排他ゲートウェイに対する複数の送信シーケンス・フローがある場合、それらが評価される順序を定義できます。評価の順序は排他ゲートウェイのプロパティで構成されます。

複数の条件がtrueと評価される排他ゲートウェイがある場合、プロセスはこの順序によって決定される最初の条件シーケンス・フローを続行します。

排他ゲートウェイは、他のゲートウェイとは異なり、スプリット後、対応するマージをプロセス内に明示的に定義する必要はありません。

図6-36は、排他ゲートウェイのデフォルトの表記を示しています。

図6-36 排他ゲートウェイ

「図6-36 排他ゲートウェイ」の説明

6.7.2.1 コンテキスト内の排他ゲートウェイ

図6-37は、営業見積サンプル・プロセス内で使用されている排他ゲートウェイの例を示しています。ここでは、排他ゲートウェイは、ビジネス実行のレビューが必要であるかどうかを評価するために使用されます。

図6-37 営業見積サンプル・プロセス内の排他ゲートウェイ

「図6-37 営業見積サンプル・プロセス内の排他ゲートウェイ」の説明

この評価は、送信条件シーケンス・フローに定義された式によって決定されます。評価がtrueである場合、プロセス・フローは「はい」のパスを進みます。評価がfalseである場合、プロセス・フローは、デフォルト送信シーケンス・フローのパスを進みます。

6.7.2.2 排他ゲートウェイのスプリットとマージ

トークンが排他ゲートウェイに到達すると、送信条件シーケンス・フローの1つがtrueに評価されるまで、送信条件シーケンス・フローが評価されます。排他ゲートウェイのプロパティを構成することによって、送信条件シーケンス・フローが評価される順序を定義できます。この構成に基づいて、最初の条件シーケンス・フローの評価がtrueである場合、トークンはこの送信シーケンス・フローに従って次のフロー・オブジェクトに移動します。複数の送信条件シーケンス・フローがある場合は、それらの評価順序を決定できます。trueと評価される送信条件シーケンス・フローが存在しない場合、トークンはデフォルト送信シーケンス・フローに従って移動します。したがって、排他ゲートウェイには、デフォルト送信シーケンス・フローを定義する必要があります。

排他ゲートウェイでは受信シーケンス・フローもマージできます。ただし、プロセス・フロー内の他のパスから受信する可能性がある他のトークンと同期されません。

注意:

他のトークンが排他ゲートウェイのマージに到達した場合、そのトークンもそのまま次のフロー・オブジェクトに渡されます。トークンを同期する場合や、受信シーケンス・フローで評価を実行する場合は、別のタイプのゲートウェイを使用する必要があります。

6.7.3 包含ゲートウェイの概要

包含ゲートウェイを使用すると、プロセスを複数のパスにスプリットできます。ただし、排他ゲートウェイとは異なり、送信条件シーケンス・フローの評価結果に応じて、トークンは1つ以上のパスに移動する場合があります。

包含ゲートウェイのスプリットには、複数の送信条件シーケンス・フローを指定できます。また、少なくとも1つのデフォルト・シーケンス・フローを定義する必要があります。

図6-38は、包含ゲートウェイのスプリットのデフォルトの表記を示しています。

図6-38 包含ゲートウェイ(スプリット)

「図6-38 包含ゲートウェイ(スプリット)」の説明

図6-39は、包含ゲートウェイのマージのデフォルトの表記を示しています。

図6-39 包含ゲートウェイ(マージ)

「図6-39 包含ゲートウェイ(マージ)」の説明

6.7.3.1 包含ゲートウェイのスプリットとマージ

包含ゲートウェイでは、排他ゲートウェイと同様にプロセスがスプリットされますが、トークンが複数の送信シーケンス・フローを進むことができる点が異なります。トークンが包含ゲートウェイに到達すると、包含ゲートウェイの条件シーケンス・フローの式が評価されます。

次に、trueと評価された各条件シーケンス・フローに対してトークンが生成されます。trueと評価された条件シーケンス・フローがない場合のみ、デフォルトのシーケンス・フローに対してトークンが生成されます。

これらのトークンは、包含ゲートウェイのマージでマージされます。トークンがマージ・ゲートウェイに到達すると、スプリットによって生成されたすべてのトークンがマージに到達するまで待機します。これらすべてのトークンが包含ゲートウェイのマージに到達すると、マージが完了して、トークンはゲートウェイに続く次のシーケンス・フローに移動します。

6.7.4 パラレル・ゲートウェイの概要

パラレル・ゲートウェイを使用して、プロセスを複数のパスにスプリットすると、プロセス・フローがすべてのパス上を同時に進むようにできます。パラレル・ゲートウェイは、プロセスで複数のタスクをパラレルに実行する必要がある場合に便利です。

図6-40は、パラレル・ゲートウェイのスプリットのデフォルトの表記を示しています。

図6-40 パラレル・ゲートウェイ(スプリット)

「図6-40 パラレル・ゲートウェイ(スプリット)」の説明

図6-41は、パラレル・ゲートウェイのマージのデフォルトの表記を示しています。

図6-41 パラレル・ゲートウェイ(マージ)

「図6-41 パラレル・ゲートウェイ(マージ)」の説明

6.7.4.1 コンテキスト内のパラレル・ゲートウェイ

営業見積サンプル・プロセスでは、プロセスの承認ステージでパラレル・ゲートウェイを使用しています。図6-42 に、パラレル・ゲートウェイを使用して2つのプロセス・パスを同時に実行する方法を示します。

図6-42 パラレル・ゲートウェイの例

「図6-42 パラレル・ゲートウェイの例」の説明

この例では、2つの異なるプロセス・パスが同時に実行されます。

6.7.4.2 パラレル・ゲートウェイのスプリットとマージ

トークンがパラレル・ゲートウェイに到達すると、パラレル・ゲートウェイでは各送信シーケンス・フローのトークンが作成されます。パラレル・ゲートウェイのスプリットでは、送信シーケンス・フローは評価されません。

パラレル・ゲートウェイを使用して、パラレル・ゲートウェイによってスプリットされたプロセス・パスをマージすることもできます。パラレル・ゲートウェイのマージでは、各受信シーケンス・フローからのトークンの到着が待機されます。すべてのトークンが到着すると、1つのトークンのみが送信シーケンス・フローに渡されます。

注意:

パラレル・ゲートウェイのマージの各受信シーケンス・フローにトークンが到着するようにプロセスを設計する必要があります。このように設計しないと、到着しないトークンをマージで待機し続け、プロセスがフリーズする可能性があります。

6.7.5 複合ゲートウェイの概要

複合ゲートウェイでは、包含ゲートウェイと同様にプロセスがスプリットされます。ただし、複合ゲートウェイのマージにすべてのトークンが到着しない場合でもインスタンスを続行できる条件を定義できます。

たとえば、2つ以上のトークンが到達した後に続行する、複合ゲートウェイを構成できます。包含ゲートウェイの条件のうち2つのみがtrueと評価されると、プロセス・インスタンスは次のアクティビティに進みます。ただし、包含ゲートウェイではすべての条件シーケンス・フローが即時に評価されるため、これらのプロセス・パスのすべてのフロー・オブジェクトもすべて実行されます。

図6-43は、複合ゲートウェイのスプリットのデフォルトの表記を示しています。

図6-43 複合ゲートウェイ(スプリット)

「図6-43 複合ゲートウェイ(スプリット)」の説明

図6-44は、複合ゲートウェイのマージのデフォルトの表記を示しています。

図6-44 複合ゲートウェイ(マージ)

「図6-44 複合ゲートウェイ(マージ)」の説明

6.7.6 Event-based Gatewayの概要

Event-based Gatewayを使用すると、イベントが発生する可能性に基づいてプロセス・フローを分岐できます。これは、コンテキストに応じて、様々なイベント・タイプの1つになります。

Event-based Gatewayでは、様々なタイプのイベントがプロセス内の特定の位置で発生する可能性を予想できます。これはExclusive Gatewayに類似していますが、式に基づいてパスを選択するのではなく、Event-based Gatewayではプロセス内でのイベントの発生に基づいてパスを選択します。

たとえば、注文処理プロセスでは、現在使用可能な在庫がない場合にプロセス内のある位置に移動できます。プロセスは、在庫が使用可能になるまで待機する必要がありますが、無限に待機することはできません。Event-based Gatewayを使用すると、プロセスは、(メッセージ・キャッチ・イベントを使用して)新しい在庫の到着を知らせるメッセージを待機したり、(タイマー・イベントを使用して)一定時間の経過後にメッセージを受信しない場合に処理を続行できます。

図6-45は、Event-based Gatewayのデフォルトの表記を示しています。

図6-45 Event-based Gateway

「図6-45 Event-based Gateway」の説明

Event-based Gatewayは、プロセス・フローに関する決定がデータ固有の条件ではなく、イベントに基づいている点が他のゲートウェイと異なります。

Event-based Gatewayは、次の要素から構成されます。

- Event-based Gateway。

- 2つ以上のターゲット・イベント。これらのイベントには、次のタイプがあります。

- メッセージ・キャッチ・イベント
メッセージ・キャッチ・イベントを使用してプロセスを開始する場合は、メッセージ・スロー・イベントを使用してプロセスを起動する必要があります。

- タイマー・キャッチ・イベント
一般に、Event-based Gatewayに付随して単一のタイマー・イベントのみが使用されます。

- 受信タスク
Event-based Gatewayに付随して受信タスクを使用し、プロセス・インスタンスを開始できます。ただし、プロセスは、コール側プロセス内の送信タスクから起動する必要があります。

注意:

同じEvent-based Gateway内にメッセージ・イベントと受信タスクを混在させることはできません。

ターゲット要素には、Event-based Gatewayからの受信シーケンス・フローのみを含めることができます。プロセスの他の部分からのシーケンス・フローを含めることはできません。Event-based Gatewayでは、プロセスにおいて発生する可能性のあるイベントを複数設定できますが、プロセス・インスタンス内でトリガーされるのは1つのイベントのみです。Event-based Gatewayで最初のイベントがトリガーされると、そのイベントに続くパスが使用されます。

デフォルトで、プロセスにEvent-based Gatewayを追加すると、タイマー・キャッチ・イベントおよびメッセージ・キャッチ・イベントも作成されます。

注意:

Event-based Gatewayを削除すると、すべての送信シーケンス・フローも削除されます。ただし、関連付けられたイベントは削除されません。

6.7.6.1 Event-based Gatewayを使用したプロセスの開始

プロセスの最初でEvent-based Gatewayを使用して新しいプロセス・インスタンスを作成することもできます。これはプロセス内に複数の開始イベントを保持するのと同じです。

Event-based Gatewayを使用可能にして新しいプロセス・インスタンスを作成するには、次のことを確認する必要があります。

- Event-based GatewayのInitiateプロパティが有効であること。

- Event-based Gatewayへの受信シーケンス・フローがないこと。

Event-based Gatewayは、新しいプロセス・インスタンスの作成に使用できますが、別のプロセスからのデータ入力は受け入れません。プロセス・インスタンスに渡す必要があるデータは、ターゲット・イベントを使用して構成する必要があります。

6.8 中間イベントを使用したプロセス・フローの制御

この項では、中間イベント、および中間イベントを使用してプロセスのフローおよび動作を制御する方法について説明します。

6.8.1 中間イベントの概要

開始イベントおよび停止イベントとは異なり、中間イベントはプロセス・フローの最中に発生します。

中間イベントには次の2つのタイプがあります。

- 標準フロー・イベント
標準フロー・イベントは、プロセスの標準のフローで発生します。

- 境界イベント
境界イベントは、プロセスの中断をトリガーします。境界イベントはフロー・オブジェクトに関連付けられており、これらのオブジェクトの通常の動作を中断するように構成できます。

境界イベントは、プロセスが経由するフロー・オブジェクトのパスを特定するために使用されるという点で、シーケンス・フローと同様に動作します。

境界イベントは、連続しないタイプおよび連続するタイプの2つのタイプに分類されます。

6.8.2 タイマー・キャッチ・イベントの概要

タイマー・キャッチ・イベントを使用すると、時間条件を使用してプロセスのフローを制御できます。次に、タイマー・キャッチ・イベントの使用例を示します。

- アクティビティ実行の前に遅延を作成します。

- アクティビティの期限を構成します。

- プロセスの期限を構成します。

- 一定時間経過後に追加のアクティビティをトリガーします。

図6-46は、タイマー・キャッチ・イベントのデフォルトの表記を示しています。

図6-46 タイマー・キャッチ・イベント

「図6-46 タイマー・キャッチ・イベント」の説明

タイマー・イベントは、アクティビティの境界イベントとして使用できます。タイマー・イベントは、連続しない境界イベントまたは連続する境界イベントとして定義できます。

連続しないタイマー・イベントが発生した場合、トークンはメイン・プロセス・フローを離れて、タイマーによって定義されたフローを進みます。連続しないタイマー・イベントによって定義されたフローは、メイン・プロセス・フローに直接戻ることができます。

連続するイベントが発生した場合は、トークンのコピーが作成され、タイマー・イベントによって定義されたフローに渡されます。連続するイベントによって定義されたフローからメイン・プロセス・フローに戻ることはできません。

6.8.3 エラー・キャッチ・イベントの概要

エラー・キャッチ・イベントは、プロセス・フロー内で発生したエラーを処理するために使用される中間イベントです。エラー・キャッチ・イベントは、常に境界イベントとして使用され、次のタスクやサブプロセスに添付できます。

- サービス・タスク

- ユーザー・タスク

- 送信タスク

- 受信タスク

- スクリプト・タスク

- ルール・タスク

- イベント・サブプロセス

- サブプロセス

エラー・キャッチ・イベントは常に割込みを実行します。つまり、このイベントによって、プロセスの標準フローが中断されます。

図6-47は、サービス・タスクに境界イベントとしてアタッチされたエラー・キャッチ・イベントのデフォルトの表記を示しています。

図6-47 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント

「図6-47 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント」の説明

サービスまたはプロセスでエラーが発生すると、エラー・キャッチ・イベントがトリガーされます。これにより、プロセス・フローはエラー・キャッチ・イベントの送信シーケンス・フローのパスに進みます。

このフローを使用して、エラーの処理方法を定義できます。エラーは、通常次の2通りの方法のいずれかで処理されます。

- プロセス・フローが、メイン・プロセス・フローに戻ります。実行する必要があるすべての作業は、メイン・フローに戻る前にエラー・プロセス・フロー内で処理されます。

注意:

境界イベントが非割込みの場合、境界フローはメイン・フローに戻ることができません。

- エラーからのプロセス・フローが、エラー・イベントで終了します。プロセスは即時に終了されます。プロセスの制御は、プロセスを開始したサービスまたはプロセスに渡されます。

6.9 サブプロセスを使用したプロセスの整理

Oracle BPMでは、サブプロセスは埋込みのサブプロセスとなります。サブプロセスは、親サブプロセスの一部として包含されます。サブプロセスは、none開始イベントで始まり、none終了イベントで終わる必要があります。

サブプロセスは開閉できます。図6-48は、プロセス内の閉じられたサブプロセスの表示を示しています。

図6-48 閉じられたサブプロセスの例

「図6-48 閉じられたサブプロセスの例」の説明

図6-49は、プロセス内の開かれたサブプロセスの表示を示しています。サブプロセスを開くと、サブプロセス内のフロー・オブジェクトを編集できます。また、サブプロセス・ウィンドウの端をクリックしてドラッグすると、ウィンドウのサイズを変更できます。

図6-49 開かれたサブプロセスの例

「図6-49 開かれたサブプロセスの例」の説明

他のタイプのプロセスと同様に、サブプロセスには開始イベントと終了イベントがあり、独自のフローが含まれています。サブプロセスは、None開始イベントで始まり、None終了イベントで終わる必要があります。サブプロセスには、スイムレーンは含まれません。

また、サブプロセスはアクティビティと同様に動作します。受信シーケンス・フローおよび送信シーケンス・フローを使用できます。また、サブプロセス内で使用されるデータ・オブジェクトを定義するデータ・アソシエーションが含まれています。

サブプロセスには、タイマー・イベント、メッセージ・イベントおよび境界イベントを含めることもできます。

必要に応じて、プロセスにはネストしたサブプロセスを含めることができます。ただし、ネストしたサブプロセスは、プロセスをわかりやすくするために必要な場合にのみ使用してください。

6.9.1 サブプロセスとシーケンス・フロー

サブプロセス内のフロー・オブジェクトには、サブプロセス外部のフロー・オブジェクトに接続するシーケンス・フローを含めることができません。

他のフロー・オブジェクトと同様に、サブプロセスには、受信シーケンス・フローおよび送信シーケンス・フローがあります。

6.9.2 コンテキスト内のサブプロセス

図6-50は、サブプロセスの例を示しています。この例では、サブプロセスは、営業見積の処理に使用されるサービス・タスクをグループ化するために使用されています。

図6-50 サブプロセスの例

「図6-50 サブプロセスの例」の説明

6.9.3 ループ・サブプロセス

プロセス・フローのコンテキスト内で、複数回繰り返すようにサブプロセスを構成できます。ループは、プロセスの設計時にプロセス・アナリストが検討する必要がありますが、実装は通常プロセス開発者が行います。

6.10 プロセス内のデータ・オブジェクトの値の変更

この項では、スクリプト・タスクを使用してプロセス内のデータ・オブジェクトの値を変更する方法について説明します。

6.10.1 スクリプト・タスクの概要

スクリプト・タスクは、プロセス内のデータ・オブジェクトの値を変更するために使用します。スクリプト・タスクは、値の変更をビジネス・プロセス内で明示的にモデリングする場合、または別のフロー・オブジェクトの外部でデータ・オブジェクトの値を変更する場合に使用します。多くの場合、スクリプト・タスクは、プロセス開始時にデータ・オブジェクトの初期値を設定するために使用します。

図6-51は、スクリプト・タスクのデフォルトの表記を示しています。

図6-51 スクリプト・タスク

「図6-51 スクリプト・タスク」の説明

通常、スクリプト・タスクは、プロセスおよびプロセスベースのアプリケーション内におけるデータ・オブジェクトの動作の定義を担当する、プロセス開発者がプロセスに追加します。

6.10.1.1 コンテキスト内のスクリプト・タスク

図6-52は、営業見積サンプル・プロセスの開始時に使用される2つのスクリプト・タスクの例を示しています。営業見積サンプル・プロセスでは、プロセスの開始時にデータ・オブジェクトに対して初期値を設定するスクリプト・タスク、およびいくつかのビジネス・インジケータに値を設定するスクリプト・タスクが使用されています。

図6-52 営業見積サンプル・プロジェクト内のスクリプト・タスク

「図6-52 営業見積サンプル・プロジェクト内のスクリプト・タスク」の説明

プロジェクト・データ・オブジェクトは、プロジェクト内に定義するデータ・オブジェクトであり、そのプロジェクト内のすべてのプロセスにはこれらのデータ・オブジェクトが定義されますが、実際の値はオブジェクトを使用するプロセスに応じて変化します。また、プロジェクトがビジネス・インジケータを使用するように構成されている場合には、ビジネス・インジケータとしてマークされたデータ・オブジェクトの値が、エンジンによってプロセス分析データベースに保存されます。

図6-53は、ビジネス・インジケータの初期値を設定するために使用されるデータ・アソシエーションを示しています。

図6-53 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション

「図6-53 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション」の説明

データ・アソシエーションを受け入れる他のフロー・オブジェクトと同様に、式を使用してデータ・オブジェクトの値を変更できます。図6-54は、割引プロジェクト変数の値を変更する場合の式の使用方法を示しています。

図6-54 割引プロジェクト変数の値の変更に使用される式

「図6-54 割引プロジェクト変数の値の変更に使用される式」の説明

6.11 測定マークを使用したプロセス・パフォーマンスの測定

測定マークを使用して、プロセス・パフォーマンスを測定できます。測定マークを使用すると、プロセス内の特定の位置、またはプロセスの特定のセクションにおいて、タイプが測定のビジネス・インジケータを測定できます。

測定マークおよびプロセス分析データベースの使用方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』の「プロセス分析の使用」を参照してください。

測定マークによって、プロセス分析データベースに次のデータが保存されます。

- プロセスのデフォルト測定の値

- その測定マークに関連付けられている測定ビジネス・インジケータの値

- プロセスに定義されているディメンションの値

1つの測定マークを使用して、複数の測定ビジネス・インジケータを測定できます。

BPMNサービス・エンジンでは、測定ビジネス・インジケータの値が保存されるときに、プロセスに定義されたディメンションの値も保存されます。後でプロセスを監視するためにダッシュボードを構築するときに、これらのディメンションを使用して値を様々なカテゴリにグループ化できます。たとえば、営業見積プロセスでは、承認済見積金額の合計を地域ごとに表示できます。

定義できる測定マークのタイプは次のとおりです。

- 単一測定

- 間隔の開始

- 間隔の停止

6.11.1 プロセスへの測定マークの追加方法

測定マークは、コンポーネント・パレットからプロセス・エディタ・キャンバスにドラッグすることによって、ビジネス・プロセスに追加できます。

単一測定マークをプロセスに追加するには:

1. BPMNプロセスを開きます。

2. コンポーネント・パレットで、「アーティファクト」セクションを開き、次のいずれかを選択します。

- 「測定の開始」マーク

- 「測定の終了」マーク

- 「単一測定」マーク(スナップショット)

3. ビジネス・インジケータを測定するシーケンス・フロー付近まで測定マークをドラッグします。シーケンス・フローが青色になったら、測定マークをドロップします。

4. 測定マークを右クリックして、「プロパティ」を選択します。

5. 「名前」テキスト・フィールドに、測定マークを識別するための名前を入力します。

6. 「ビジネス・インジケータ」セクションで、使用可能なビジネス・インジケータのリストからビジネス・インジケータを選択し、2つのリストの間にある矢印を使用して「選択済」リストに移動します。

注意:

1つの測定マークで複数のビジネス・インジケータを測定できます。

注意:

ビジネス・インジケータを選択しない場合、この測定マークにはデフォルト・ビジネス・インジケータの値のみが保存されます。「測定マーク・プロパティ」ダイアログを開いた状態でビジネス・インジケータを追加するには、「選択済」リストの下にある「新規」ボタンをクリックします。

7. 「OK」をクリックします。

6.12 ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの設定

この項では、Business Process Composerでガイド付きビジネス・プロセスを使用する方法について説明します。

6.12.1 ガイド付きビジネス・プロセスの概要

ガイド付きビジネス・プロセスは、プロセス・フローのガイド付き視覚表現を提供します。プロセス参加者にビジネス・プロセスのカプセル化された階層ビューを提供することによって、ユーザーの操作性を向上します。

プロセス設計者は、ガイド付きビジネス・プロセスを使用することによって、プロセス参加者がプロセスに関連付けられた一連のガイド付き手順に従ってビジネス・プロセスを完了できるように設定できます。ガイド付きビジネス・プロセスには手順の概要が示されます。この手順に従うことによって、プロセス参加者はより少ないトレーニングでビジネス・プロセスを完了できるようになり、プロセスの結果もより予測可能になります。

6.12.1.1 アクティビティ・ガイドおよびマイルストンの概要

ガイド付きビジネス・プロセスは、ビジネス・プロセスに基づいたアクティビティ・ガイドとしてモデリングされます。アクティビティ・ガイドには、一連のマイルストンが含まれています。マイルストンには、プロセス参加者が完了する必要がある一連のタスクが含まれています。マイルストンに含まれている一連のタスクをユーザーが正常に実行すると、マイルストンが完了します。

各マイルストンは、ヒューマン・ワークフロー・タスクの特定のセットです。各ヒューマン・ワークフロー・タスクは、それ自体が、様々なロールの複数の参加者のコラボレーションを必要とするタスク・フローである場合があります。タスク・フローの内容によっては、参加者は未完了のタスク・フローをいったん保存して、後で再開することもできます。

6.12.2 ガイド付きビジネス・プロセスの使用

Business Process Composerを使用すると、ガイド付きビジネス・プロセスを構成して、それらにマイルストンを追加できます。

プロジェクトのアクティビティ・ガイドを構成するには:

1. プロジェクト・ナビゲータで、アクティビティ・ガイドを構成するプロジェクトを開きます。

2. 「アクティビティ・ガイド」を右クリックして、「構成」を選択します。

3. アクティビティ・ガイドのタイトルを入力します。

4. 次のオプションのプロパティを構成します。

- 表示モード: ガイド付きビジネス・プロセス内のマイルストンおよびタスクにおけるリンクの表示方法を指定します。マイルストンおよびタスクで他の構成が使用される場合は、ガイド付きビジネス・プロセスの構成は無視されます。
可能な値は次のとおりです。

- 常時: このガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンおよびタスクのリンクを常に表示します。

- インスタンス化時: ガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンの1つ以上のユーザー・タスクがインスタンス化されているときにのみ、マイルストンおよびタスクのリンクを表示します。

- タスク・アクセス: タスクが完了した後、ガイド付きビジネス・プロセスではこの構成を使用してリンクが表示されます。タスク・モードが「アクティブのみ」の場合は、タスクのリンクがグレー表示されます。タスク・モードが「任意の状態」の場合は、タスクのリンクは有効なままになり、タスクを実行しようとしたときにメッセージが表示されます。
可能な値は次のとおりです。

- アクティブのみ: タスクへのリンクは、タスクがアクティブであり、ユーザーが更新可能なときにのみ有効になります。タスクを完了すると、タスクへのリンクはグレー表示されます。

- 任意の状態: タスクへのリンクは、タスクをインスタンス化した後は常に有効になります。タスクを完了した後でも有効なままです。

- ルート・プロセス: このアクティビティ・ガイドに使用されるプロセスを指定します。BPMプロジェクトごとに、1つのガイド付きビジネス・プロセスのみを定義できます。このプロセスはルート・プロセスです。

- 説明: アクティビティ・ガイドのオプションの説明を指定します。

5. プロジェクト・ツールバーで「保存」をクリックします。

新しいマイルストンを作成するには:

1. プロジェクト・ナビゲータで、アクティビティ・ガイドを構成するプロジェクトを開きます。

2. 「アクティビティ・ガイド」を右クリックして、「構成」を選択します。

3. 「新規マイルストン」をクリックします。

4. リストから、今作成したマイルストンを選択します。

5. 必要に応じて、マイルストンを構成します。

6. プロジェクト・ツールバーで「保存」をクリックします。

マイルストンにユーザー・タスクを追加するには:

1. マイルストンを追加するプロセスを開きます。

2. マイルストンに追加するユーザー・タスクを右クリックします。

3. リストからマイルストンを選択して、「OK」をクリックします。

7 組織のモデリング

この章では、次を使用する方法について説明します。

この章の内容は次のとおりです。

- 7.1項「組織の概要」

- 7.2項「ロールの概要」

- 7.3項「組織図の概要」

- 7.4項「ロールの使用」

- 7.5項「組織の使用」

7.1 組織の概要

Oracle BPMを使用して、実際の組織を模倣した組織モデルを作成できます。プロジェクトのデプロイメント時に、モデリングした組織のコンポーネントが実際の組織にマッピングされます。

Oracle BPMでは、組織は次のコンポーネントで構成されます。

- ロール

- 組織図

- 休日

- カレンダ

組織はプロジェクト・レベルで定義されます。組織情報は、他のプロジェクト内で使用するためにエクスポートできます。

注意:

Business Process Composerを使用して組織図、カレンダまたは休日を作成することはできません。ロールを定義して、スイムレーンに割り当てることができます。

7.1.1 組織エディタの概要

組織エディタを使用すると、組織内のコンポーネントを作成および編集できます。組織エディタには、これらの各コンポーネントのタブ付きペインが含まれます。図7-1は、「ロール」タブが選択された組織エディタの例を示しています。

図7-1 組織エディタ

「図7-1 組織エディタ」の説明

7.2 ロールの概要

組織内の職務や職責を表す職責領域を定義できます。プロセスベースのアプリケーションでユーザーとの相互作用が必要となる場合、プロジェクト内に少なくとも1つのロールを定義する必要があります。

ロールは抽象的であり、企業内の個人の職責を定義および模倣するのに役立ちます。ロールは参加者にマッピングする必要があります。

受注デモ・サンプル・プロセスでは、承認者や営業担当者を含む複数のロールが定義されます。これらのロールは、組織内の特定の人物ではなく、プロセス内の作業の実行者のタイプを表しています。ロールは垂直のスイムレーンに割り当てられます。これは、プロセス内のアクティビティおよびタスクを完了する責任のあるロールをグラフィカルに表したものです。またロールには、実際のプロセスベース・ビジネス・アプリケーションを使用するエンド・ユーザーに対応するメンバーも含まれています。

7.3 組織図の概要

組織図とは、組織の構造を定義したものです。プロジェクトごとに1つの組織図があります。この組織図は、組織の構造および階層を反映する複数の組織単位に分割できます。

7.3.1 組織単位の概要

組織単位は、組織の構造を定義したものです。組織図には1つの最上位レベルがあり、さらにネストされた複数レベルの組織単位が含まれることもあります。図7-2は、組織単位を使用した組織の構成例を示しています。

図7-2 ネストされた組織単位の例

「図7-2 ネストされた組織単位の例」の説明

この例では、MyCompanyが最上位レベルの組織単位です。MyCompanyの下に、ネストされた各レベルの組織単位があります。

各組織単位に対して、組織内の人物を表すメンバーを割り当てることができます。メンバーはOracle WebLogic Serverで定義し、Oracle Identity Serviceを使用して割り当てます。

次のメンバーを定義できます。

- ユーザー: 個々の参加者またはユーザー

- グループ: 参加者のグループ。これらは定義されます

- アプリケーション・ロール

7.3.2 カレンダの概要

カレンダは、組織内のリソースが稼働する日時を定義します。カレンダを使用すると、次のことを定義できます。

- 週の営業日。

- 毎日の始業時刻と終業時刻。

- タイムゾーン

- オプションの休日ルール

組織単位ごとにカレンダ・ルールを指定できます。このため、異なるタイムゾーンおよび地域にわたる組織の構造をモデリングできます。

7.3.3 休日の概要

組織内のカレンダ・ルールごとに、オプションの休日ルールを定義できます。休日を使用すると、カレンダ・ルールに非営業日を定義できます。これらは、カレンダ・ルールで定義した通常の営業日の例外とみなすことができます。

次の2つのタイプの休日を定義できます。

- 固定: 毎年同じ日付になる休日。

- 共通: 毎年同じ日付にはならない休日。

7.4 ロールの使用

次の各項では、ロールの作成方法および編集方法について説明します。

7.4.1 新規のロールを作成する方法

プロセス内のアクティビティおよびタスクの実行担当者を定義するために、ロールを作成できます。ユーザー・タスクでは、ロールをプロセス・モデルに追加するには、まずロールを定義する必要があります。

新規のロールを作成するには:

1. プロジェクト・ナビゲータで、新規のロールを作成するプロジェクトを展開します。

2. 「組織」を右クリックして、「開く」を選択します。

3. 組織エディタ・ウィンドウで、「ロール」タブを選択します。

4. 「追加」アイコンをクリックし、ロールの名前を入力します。

5. 「OK」をクリックします。

7.4.2 メンバーをロールに追加する方法

ロールにメンバーを追加すると、プロセス内のアクティビティおよびタスクの実行を担当する実際の組織のメンバーを定義できます。このタスクを実行する前に、アプリケーション・サーバーへの接続が構成されていることを確認する必要があります。

注意:

このタスクを実行する前に、アイデンティティ・サービス接続が作成されていることを確認する必要があります。

ロールにメンバーを追加するには:

1. プロジェクト・ナビゲータで、新規のロールを作成するプロジェクトを展開します。

2. 「組織」を右クリックして、「開く」選択します。

3. 組織エディタ・ウィンドウで、「ロール」タブを選択します。

4. 「ロールの追加」アイコンをクリックします。

5. アプリケーション・サーバーおよびレルムのタイプを選択します。

6. 検索パターンを入力し、「検索」アイコンをクリックします。

7. 検索結果から適切なユーザーを選択し、「選択」をクリックします。

8. 「OK」をクリックします。

7.5 組織の使用

次の各項では、組織のコンポーネントの作成方法および編集方法について説明します。

7.5.1 組織単位を作成する方法

1つの組織内に複数の組織単位を作成できます。

組織単位を作成するには:

1. プロジェクト・ナビゲータで、新規のロールを作成するプロジェクトを展開します。

2. 「組織」を右クリックして、「開く」を選択します。

3. 組織エディタ・ウィンドウで、「組織図」タブを選択します。

4. 「組織図」を選択し、「追加」アイコンをクリックします。

5. 組織単位の名前を入力し、「OK」をクリックします。
これにより、最上位レベルの組織単位が定義されます。

6. 組織に階層構造を追加する場合は、作成した組織単位を選択し、「追加」アイコンをクリックします。

7. 組織単位の名前を入力し、「OK」をクリックします。
組織にさらにレベルを追加する必要がある場合は、ステップ6と7を繰り返します。

8. オプションのカレンダ・ルールを追加する場合は、ドロップダウン・リストから適切なルールを選択します。

9. 完了したら、「ファイル」メニューから「保存」を選択して、組織図を保存します。

7.5.2 カレンダを作成する方法

組織単位に割り当てることができるカレンダを作成できます。

カレンダを作成するには:

1. プロジェクト・ナビゲータで、新規のロールを作成するプロジェクトを展開します。

2. 「組織」を右クリックして、「開く」を選択します。

3. 組織エディタ・ウィンドウで、「カレンダ」タブを選択し、「追加」アイコンをクリックします。

4. 名前を入力し、「OK」をクリックします。

5. リストからカレンダ・ルールを選択します。

6. 含める各曜日の隣にあるチェック・ボックスを選択します。

7. 毎日の始業時刻と終業時刻を指定します。

8. オプションの休日ルールを含める場合は、ドロップダウン・リストから適切な休日ルールを選択します。

9. 完了したら、「ファイル」メニューから「保存」を選択して、組織図を保存します。

7.5.3 休日を作成する方法

カレンダに割り当てることができる休日ルールを作成できます。

休日ルールを作成するには:

1. プロジェクト・ナビゲータで、新規のロールを作成するプロジェクトを展開します。

2. 「組織」を右クリックして、「開く」を選択します。

3. 組織エディタ・ウィンドウで、「休日」タブを選択し、「追加」アイコンをクリックします。

4. 名前を入力し、「OK」をクリックします。

5. リストから休日ルールを選択し、「追加」アイコンをクリックします。

6. 休日ルールについて次の情報を入力し、「OK」をクリックします。

- 説明: 休日ルールの説明。

- タイプ: 作成する休日のタイプを選択します。休日のタイプの詳細は、7.3.3項「休日の概要」を参照してください。

- 日付: この休日ルールの日付。範囲を指定するには、各休日に新規のエントリを作成する必要があります。

7. 「OK」をクリックします。

8 プロセス設計の情報の処理

この章では、データ・オブジェクトおよびプロジェクト・データ・オブジェクトを使用してプロセス内の情報を処理する方法について説明します。また、プロセスとともにその情報を渡す方法と、必要な場合に情報を変換する方法についても説明します。

この章の内容は次のとおりです。

- 8.1項「プロセス設計の情報の処理の概要」

- 8.2項「データ・オブジェクトの概要」

- 8.3項「プロセス・データ・オブジェクトの使用」

- 8.4項「アクティビティ・インスタンス属性の概要」

- 8.5項「アクティビティ・インスタンス属性の使用」

- 8.6項「サブプロセス・データ・オブジェクトの概要」

- 8.7項「サブプロセス・データ・オブジェクトの使用」

- 8.8項「プロジェクト・データ・オブジェクトの概要」

- 8.9項「プロジェクト・データ・オブジェクトの使用」

- 8.10項「引数の概要」

- 8.11項「ネーミング規則」

- 8.12項「スコープおよびアクセス」

- 8.13項「データ・アソシエーションの概要」

- 8.14項「変換の概要」

- 8.15項「変換の定義」

8.1 プロセス設計の情報の処理の概要

一般にプロセスは、情報にアクセスして情報を格納します。多くの場合、プロセス・フローはこの情報の値に基づいています。また、この情報がプロセス内のタスクの実行結果であることもあります。

Oracle BPMでは、この情報を追跡する次のデータ構造をサポートしています。

- プロセス・データ・オブジェクト

- サブプロセス・データ・オブジェクト

- プロジェクト・データ・オブジェクト

- 引数

さらに、データ・アソシエーションを使用して、異なるプロセス要素間で情報を受渡しすることができます。データ・アソシエーションを使用すると、プロジェクト・データ・オブジェクトやプロセス・データ・オブジェクトの値をフロー・オブジェクト実装の入力引数と出力引数にマッピングできます。

「構造」ウィンドウには、プロジェクト内の様々なデータ構造(データ・オブジェクト、プロジェクト・データ・オブジェクトおよびビジネス・インジケータ)が表示されます。コール可能プロセスの場合には、引数も表示されます。

図8-1は、ビジネス・インジケータおよびプロセス・データ・オブジェクトを定義するプロセスの「構造」ウィンドウを示しています。

図8-1 「構造」ウィンドウ

「図8-1 「構造」ウィンドウ」の説明

8.1.1 基本データ・オブジェクトと複合データ・オブジェクト

基本データ・オブジェクトは、基本的な型を使用して定義されるデータ・オブジェクトです。たとえば、Int、Bool、Stringなどです。

複合データ・オブジェクトを使用すると、データをグループ化できます。複合データ・オブジェクトは、ビジネス・オブジェクトを使用して定義します。ビジネス・オブジェクトの定義方法の詳細は、第13章「ビジネス・オブジェクトのモデリング」を参照してください。

ビジネス・オブジェクトでは、基本データ・オブジェクトに基づいてデータ構造を作成できます。たとえば、従業員名、従業員ID、従業員給与という各データ型を含む、従業員という複合データ・オブジェクトを作成できます。

複合データ・オブジェクトの構造は、プロセスのいずれのプロセス・インスタンスでも同じです。ただし、一般に複合データ・オブジェクトに含まれるデータはプロセス・インスタンスによって異なります。

図8-2は、基本データ・オブジェクトと複合データ・オブジェクトの関係を示しています。

図8-2 基本データ・オブジェクトと複合データ・オブジェクト

「図8-2 基本データ・オブジェクトと複合データ・オブジェクト」の説明

8.2 データ・オブジェクトの概要

ビジネス・プロセスの主要要素は、タスクおよびそれらのタスクに関連する情報です。プロセスの情報は、プロセスを実行するたびに変わることがあります。この情報は、特定の時点でのプロセスの状態を定義します。

この情報により、特定のインスタンスに対するプロセスの動作が決まります。インスタンスがとる経路はこの情報の値によって変わることがあります。この情報を監視したり、外部システムに格納することができます。

プロセスの情報はプロセスの実行のたびに変わることがあります。この情報は、特定の時点でのプロセスの状態を定義します。

営業見積サンプル・プロセスでは、次の情報が使用されます。

- 承認フロー

- 承認条件結果

- 見積

Oracle BPMでは、プロセスに関連する情報を格納するためにデータ・オブジェクトが使用されます。これらの変数の値は、プロセスを実行するたびに変わることもあります。

Oracle BPMのデータ・オブジェクトは次のような特性を持ちます。

- データ・オブジェクトを識別する名前

- 変数に格納可能なデータ型を決定するデータ型。

データ・オブジェクトには、作成した各プロセス・インスタンスに関連する情報が格納されます。これらのデータ・オブジェクトの値はプロセス内のインスタンスごとに異なります。ただし、データ・オブジェクトの構造はいずれのプロセス・インスタンスでも同じです。

プロセスを定義する際は、情報を格納するデータ・オブジェクトを定義する必要があります。また、プロセスのどの部分でこれらのデータ・オブジェクトに値を割り当てるかを定義する必要もあります。データ・オブジェクトの値はユーザー入力や外部システムから提供されることも、他のデータ・オブジェクトに基づいて計算されることもあります。

インスタンスを作成すると、プロセス・エンジンによって、そのプロセスに定義されているすべてのデータ・オブジェクトのデフォルト値としてNULLが割り当てられます。その後、プロセス内のアクティビティによってこれらの変数に値が割り当てられます。

受注プロセスにおいては、注文ごとに合計金額、支払タイプおよび顧客IDがあります。このデータは、このプロセス情報を格納するデータ・オブジェクトを定義することによりモデリングできます。

8.2.1 データ・オブジェクトに対してサポートされているデータ型

データ・オブジェクトのタイプは、次のデータ型に設定できます。

- 文字列

- 整数

- ブール

- 実数

- 小数

- 時間

- 間隔

- バイナリ

- コンポーネント(このコンポーネントを使用すると、複合データ型を選択できます)

注意:

バイナリ・データ型は、XMLスキーマ・タイプの要素をマップするためにのみ使用されます。バイナリ・データ型では、どの操作も実行できません。異なるコンポーネントおよびフロー・オブジェクト間で渡すことのみ可能です。

8.2.2 デフォルト値

データ・オブジェクトを自動的に初期化されるように構成した場合、BPMNエンジンによってこのデータ・オブジェクトにデフォルト値が割り当てられます。デフォルト値は、データ・オブジェクトのタイプによって異なります。

表8-1に、サポートされているデータ型のデフォルト値を示します。

表8-1 デフォルト値

データ型

デフォルト値

文字列

""

時刻、日付

'now'

整数、実数、小数

0

ブール

false

間隔

'0'

8.3 プロセス・データ・オブジェクトの使用

作業対象のプロセスに新規のプロセス・データ・オブジェクトを追加できます。また、これらのデータ・オブジェクトを編集または削除することもできます。

通常、プロセス内のサービスによってプロセス内のデータ・オブジェクトの値が変更されますが、データ・オブジェクトに初期値を割り当てたり、プロセス中にデータ・オブジェクトの値を変更することもできます。

8.3.1 プロセス・データ・オブジェクトを追加する方法

プロセス・データ・オブジェクトを追加するには:

1. BPMプロジェクト・ナビゲータで、データ・オブジェクトを追加するプロセスを選択します。

2. 「構造」ウィンドウで「プロセス・データ・オブジェクト」ノードを右クリックします。

3. 「新規」を選択します。

4. データ・オブジェクトを識別する名前を入力します。

5. 「タイプ」リストからタイプを選択します。
複合タイプを使用するには、「<コンポーネント>」を選択します。

6. 「<コンポーネント>」を選択した場合は、次の手順に従って複合タイプを選択します。

1. 「参照タイプ」ボタンをクリックします。
「参照タイプ」ダイアログが表示されます。

2. リストからタイプを選択するか、または検索リストの横にある「新規」ボタンをクリックして、ビジネス・オブジェクトを作成します。
タイプを見つけるには、「検索」テキスト・ボックスに名前を入力します。タイプが存在しない場合は、入力した名前が赤色で表示されます。

3. 「OK」をクリックします。
「参照タイプ」ダイアログが閉じ、選択したタイプの完全な名前が「参照タイプ」ボタンの横にあるフィールドに表示されます。

7. オプションで、「自動初期化」を選択して、データ・オブジェクトをデフォルト値で初期化します。

8. 「OK」をクリックします。

注意:

また、シンプルな式ビルダー、XPath式ビルダーおよび「データ・アソシエーション」ダイアログで、「データ・オブジェクト」ツリーからプロセス・データ・オブジェクトを追加することもできます。

8.3.2 プロセス・データ・オブジェクトを編集する方法

既存のプロセス・データ・オブジェクトの名前およびタイプを変更できます。

プロセス・データ・オブジェクトを編集するには:

1. BPMプロジェクト・ナビゲータで、編集するデータ・オブジェクトを含むプロセスを選択します。

2. 「構造」ウィンドウで、「プロセス・データ・オブジェクト」ノードを展開します。

3. 編集するデータ・オブジェクトを右クリックします。

4. 「編集」を選択します。
データ・オブジェクトの名前とタイプを編集するためのダイアログが表示されます。

5. 必要な変更を行います。

6. 「OK」をクリックします。

8.3.3 データ・オブジェクトを削除する方法

使用しないデータ・オブジェクトや不要なデータ・オブジェクトは削除できます。

データ・オブジェクトを削除するには:

1. BPMプロジェクト・ナビゲータで、削除するデータ・オブジェクトを含むプロセスを選択します。

2. 「構造」ウィンドウで、「プロセス・データ・オブジェクト」ノードを展開します。

3. 編集するデータ・オブジェクトを右クリックします。

4. 「削除」を選択します。

8.3.4 プロセス・データ・オブジェクトに値を割り当てる方法

スクリプト・タスクを使用して、プロセス・データ・オブジェクトに値を割り当てることができます。

プロセス・データ・オブジェクトに値を割り当てるには:

1. プロセス・エディタで、スクリプト・タスクをプロセスに追加します。

2. スクリプト・タスクの実装プロパティを編集します。

3. データ・アソシエーションまたは変換を定義して、値をプロセス・データ・オブジェクトに割り当てます。
データ・アソシエーションの定義方法の詳細は、8.13項「データ・アソシエーションの概要」を参照してください。

変換の定義方法の詳細は、8.14項「変換の概要」を参照してください。

8.4 アクティビティ・インスタンス属性の概要

一部のデータは、プロセスのステータスと同様に、定義したすべてのプロセスに適用されます。このデータを使用して、値に基づいてイベントをトリガーしたり、サービスへの入力としてデータを提供することができます。どちらの場合も、プロセス・フローはこのデータの値に依存します。

Oracle BPMでは、事前定義済のアクティビティ・インスタンス属性セットを使用してこのデータが追跡されます。これらのアクティビティ・インスタンス属性には、通常のデータ・オブジェクトへのアクセスと同じ方法でアクセスできます。ただし、これらの属性に新しい値を割り当てることはできません。

アクティビティ・インスタンス属性には、次のコンポーネントからアクセスできます。

- データ・アソシエーション

- シンプルな式ビルダー

- XPath式ビルダー

表8-2に、様々なプロセス要素に対して使用可能なアクティビティ・インスタンス属性の詳細情報を示します。

表8-2 アクティビティ・インスタンス属性

名前

タイプ

説明

アベイラビリティ

state

文字列

インスタンスの状態を指定します。

可能な値は次のとおりです。

- なし

- 準備完了

- アクティブ

- 取消済

- 中断済

- 完了中

- 完了

複合ゲートウェイで

loopCounter

整数

エンジンがこのアクティビティを実行した回数を指定します。プロセス・エンジンは、新しいループを実行するたびにこの変数を更新します。

ループ・マーカーを使用するアクティビティ。

loopCounter

整数

このアクティビティの各アクティブ化を識別する順序番号を指定します。BPMNエンジンは、アクティビティを実行する際にこの番号を各アクティブ化に割り当てます。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfInstances

整数

マルチインスタンス・アクティビティに対して作成されるアクティブ化の数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfActiveInstances

整数

マルチインスタンス・アクティビティのアクティブな内部インスタンスの数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

連続するマルチインスタンス・アクティビティの場合、この値は1または0です。

パラレルなマルチインスタンス・アクティビティの場合、この値は、事前定義済のデータ・オブジェクトnumberOfInstancesで指定されている値以下となります。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfCompletedInstances

整数

マルチインスタンス・アクティビティの完了済の内部インスタンスの数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfTerminatedInstances

整数

マルチインスタンス・アクティビティの終了された内部インスタンスの数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

マルチインスタンス・マーカーを使用するアクティビティで。

activationCount

整数

ゲートウェイの受信シーケンス・フロー内のトークンの数を指定します。

複合ゲートウェイで。

8.5 アクティビティ・インスタンス属性の使用

一部のプロセス要素では、アクティビティ・インスタンス属性がサポートされています。これらのアクティビティ・インスタンス属性を使用して、プロセスのフローを制御できます。通常、アクティビティ・インスタンス属性の値はプロセス・エンジンにより割り当てられますが、ユーザーが値を割り当てる必要のあるアクティビティ・インスタンス属性もあります。

8.6 サブプロセス・データ・オブジェクトの概要

特定のサブプロセスに対してデータ・オブジェクトを定義できます。これらのデータ・オブジェクトは、そのサブプロセスの実行中にのみ使用できます。インスタンスがサブプロセスを終了すると、サブプロセス・データ・オブジェクトの値は失われます。

サブプロセス・データ・オブジェクトを使用すると、次のような利点があります。

- メイン・プロセス内の不要なデータ・オブジェクトの数が減るため、メイン・プロセスが単純になり、可読性も向上します。

- プロセス・データ・オブジェクトの数が減るため、各プロセス・インスタンスが占有するメモリーが減ります。

- サブプロセスを理解しやすくなります。

サブプロセス内から、プロセス・データ・オブジェクトおよびサブプロセス・データ・オブジェクトにアクセスできます。サブプロセス・データ・オブジェクトの名前がプロセス・データ・オブジェクトの名前と一致している場合、データ・オブジェクトにアクセスすると、サブプロセス・データ・オブジェクトの値が取得されます。

8.7 サブプロセス・データ・オブジェクトの使用

サブプロセスに新規のプロジェクト・データ・オブジェクトを追加できます。必要に応じて、プロジェクト・データ・オブジェクトを編集または削除できます。

8.7.1 サブプロセスへのデータ・オブジェクトの追加

サブプロセスにデータ・オブジェクトを追加できます。このデータ・オブジェクトには、サブプロセス内からのみアクセスできます。

データ・オブジェクトをサブプロセスに追加するには:

1. BPMプロジェクト・ナビゲータで、データ・オブジェクトを追加するサブプロセスが含まれるプロセスを選択します。

2. 「構造」ウィンドウで、「アクティビティ」ノードを展開します。
展開されたノードに、サブノード「アクティビティ」、「イベント」および「ゲートウェイ」が表示されます。

3. 「アクティビティ」サブノードを展開します。

4. サブプロセスに対応するノードを展開します。

5. サブプロセス・ノードの下にある「データ・オブジェクト」ノードを右クリックします。

6. 「新規」を選択します。

7. 新規のデータ・オブジェクトを識別する名前を入力します。

8. 「タイプ」リストから、タイプを選択します。
複合タイプを使用するには、「<コンポーネント>」を選択します。

9. 「<コンポーネント>」を選択した場合は、次の手順に従って複合タイプを選択します。

1. 「参照タイプ」ボタンをクリックします。
「参照タイプ」ダイアログが表示されます。

2. リストからタイプを選択するか、または検索リストの横にある「新規」ボタンをクリックして、ビジネス・オブジェクトを作成します。
タイプを見つけるには、「検索」テキスト・ボックスに名前を入力します。タイプが存在しない場合は、入力した名前が赤色で表示されます。

3. 「OK」をクリックします。
「参照タイプ」ダイアログが閉じ、選択したタイプの完全な名前が「参照タイプ」ボタンの横にあるフィールドに表示されます。

10. オプションで、「自動初期化」を選択して、データ・オブジェクトをデフォルト値で初期化します。

11. 「OK」をクリックします。

8.7.2 サブプロセス内のデータ・オブジェクトの編集

既存のサブプロセス・データ・オブジェクトの名前およびタイプを変更できます。

サブプロセス内のデータ・オブジェクトを編集するには:

1. BPMプロジェクト・ナビゲータで、編集するデータ・オブジェクトを使用するサブプロセスが含まれるプロセスを選択します。

2. 「構造」ウィンドウで、「アクティビティ」ノードを展開します。
展開されたノードに、サブノード「アクティビティ」、「イベント」および「ゲートウェイ」が表示されます。

3. 「アクティビティ」サブノードを展開します。

4. サブプロセスに対応するノードを展開します。

5. サブプロセス・ノードの下にある「データ・オブジェクト」ノードを展開します。

6. 編集するデータ・オブジェクトを右クリックします。

7. 「編集」を選択します。
データ・オブジェクトの名前とタイプを編集するためのダイアログが表示されます。

8. 必要な変更を行います。

9. 「OK」をクリックします。

8.7.3 サブプロセスからのデータ・オブジェクトの削除

不要なサブプロセス・データ・オブジェクトや使用しないサブプロセス・データ・オブジェクトは削除します。削除したデータ・オブジェクトを使用するフロー・オブジェクトがサブプロセス内にある場合は、これらの参照を手動で削除する必要があります。

サブプロセスからデータ・オブジェクトを削除するには:

1. BPMプロジェクト・ナビゲータで、削除するデータ・オブジェクトを使用するサブプロセスが含まれるプロセスを選択します。

2. 「構造」ウィンドウで、「アクティビティ」ノードを展開します。
展開されたノードに、サブノード「アクティビティ」、「イベント」および「ゲートウェイ」が表示されます。

3. 「アクティビティ」サブノードを展開します。

4. サブプロセスに対応するノードを展開します。

5. サブプロセス・ノードの下にある「データ・オブジェクト」ノードを展開します。

6. 削除するデータ・オブジェクトを右クリックします。

7. 「削除」を選択します。

8.8 プロジェクト・データ・オブジェクトの概要

BPMプロジェクト内の複数のプロセスが1つのデータ・セットを共有することはよくあります。たとえば、受注プロセスとリクエスト承認プロセスの両方が、リクエストを作成した従業員またはリクエストの優先順位の値を追跡する場合などです。このデータの値は各プロセス内のインスタンスごとに異なり、両方のプロセスはそのデータを追跡する必要性を共有するのみです。

プロジェクト・データ・オブジェクトを使用すると、特定のプロジェクト内のすべてのプロセスで1つのデータ・セットが追跡されます。この場合、各プロセスでこのデータの値を割り当てて、値を更新する必要があります。

プロジェクト・データ・オブジェクトを定義することの主な利点は、プロジェクトの公開後にこれらの変数の値が表示されるようにプロセス・ワークスペース・ビューを構成できることです。これは、プロジェクト・データ・オブジェクトを使用した場合にのみ可能です。

もう1つの利点は、データ・オブジェクトの定義を変更する場合に、同じデータ・オブジェクトを定義するプロジェクト内のすべてのプロセスで何度も変更しなくても、1回の変更で済むということです。

注意:

BPMプロジェクトのデプロイ後にプロジェクト・データ・オブジェクトのデータ型を変更することはお薦めしません。この場合、プロセス・ワークスペースがデータ型の変更前に作成されたインスタンスの値のレンダリングを試行すると問題が発生することがあります。

注意:

プロジェクト・データ・オブジェクトに、プロセス・データ・オブジェクトと同じ名前を使用しないようにします。プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトに同じ名前を付けると、データ・アソシエーション・エディタでプロジェクト・データ・オブジェクトにアクセスできなくなります。

8.8.1 ビジネス・インジケータ

プロジェクト・データ・オブジェクトをビジネス・インジケータとしてマークすると、プロセス・エンジンによりその値がプロセス分析データベースに格納されます。この情報を使用して、ビジネス・プロセスのパフォーマンスを監視できます。

プロセス分析の詳細は、第11章「プロセス分析の使用」を参照してください。

8.8.2 プロジェクト・データ・オブジェクトに対してサポートされているデータ型

プロジェクト・データ・オブジェクトのタイプは、次のデータ型に設定できます。

- 文字列

- 整数

- ブール

- 実数

- 小数

- 時間

- 間隔

- バイナリ

- コンポーネント

8.9 プロジェクト・データ・オブジェクトの使用

作業対象のプロジェクトに新規のプロジェクト・データ・オブジェクトを追加できます。また、これらのデータ・オブジェクトを編集または削除することもできます。

8.9.1 プロジェクト・データ・オブジェクトを追加する方法

プロジェクト・データ・オブジェクトを追加するには:

1. BPMプロジェクト・ナビゲータで、プロジェクトから、編集するプロジェクト・データ・オブジェクトを含むプロセスを選択します。

2. 「構造」ウィンドウで「プロジェクト・データ・オブジェクト」ノードを右クリックします。

3. 「新規」を選択します。

4. 新規のプロジェクト・データ・オブジェクトを識別する名前を入力します。

注意:

既存のプロセス・データ・オブジェクトの名前を使用することはできません。

5. タイプを選択します。
使用可能なタイプは、「文字列」、「整数」、「実数」、「小数」、ブール、「時間」です。

6. オプションで、「自動初期化」を選択して、プロジェクト・データ・オブジェクトをデフォルト値で初期化します。

7. 「OK」をクリックします。

注意:

また、シンプルな式ビルダー、XPath式ビルダーおよび「データ・アソシエーション」ダイアログで、「データ・オブジェクト」ツリーからプロセス・データ・オブジェクトを追加することもできます。

8.9.2 プロジェクト・データ・オブジェクトを編集する方法

既存のプロジェクト・データ・オブジェクトの名前およびタイプを変更できます。

プロジェクト・データ・オブジェクトを編集するには:

1. BPMプロジェクト・ナビゲータで、プロジェクトから、編集するプロジェクト・データ・オブジェクトを含むプロセスを選択します。

2. 「構造」ウィンドウで、「プロジェクト・データ・オブジェクト」ノードを展開します。

3. 編集するプロジェクト・データ・オブジェクトを右クリックします。

4. 「編集」を選択します。
プロジェクト・データ・オブジェクトのプロパティを編集するためのダイアログが表示されます。

5. 必要な変更を行います。

6. 「OK」をクリックします。

8.9.3 プロジェクト・データ・オブジェクトを削除する方法

使用しないプロジェクト・データ・オブジェクトや不要なプロジェクト・データ・オブジェクトは削除できます。削除したプロジェクト・データ・オブジェクトを使用するプロセスがプロジェクト内にある場合は、これらの参照を手動で削除する必要があります。

プロジェクト・データ・オブジェクトを削除する方法:

1. BPMプロジェクト・ナビゲータで、プロジェクトから、編集するプロジェクト・データ・オブジェクトを含むプロセスを選択します。

2. 「BPMプロジェクト・ナビゲータ」ウィンドウで、プロジェクトを選択します。

3. 「構造」ウィンドウで、「プロジェクト・データ・オブジェクト」ノードを展開します。

4. 削除するプロジェクト・データ・オブジェクトを右クリックします。

8.9.4 プロジェクト・データ・オブジェクトに値を割り当てる方法

スクリプト・タスクを使用して、プロジェクト・データ・オブジェクトに値を割り当てることができます。

プロジェクト・データ・オブジェクトに値を割り当てるには:

1. プロセス・エディタで、スクリプト・タスクをプロセスに追加します。

2. スクリプト・タスクの実装プロパティを編集します。

3. データ・アソシエーションまたは変換を定義して、値をプロジェクト・データ・オブジェクトに割り当てます。
データ・アソシエーションの定義方法の詳細は、8.13項「データ・アソシエーションの概要」を参照してください。

変換の定義方法の詳細は、8.14項「変換の概要」を参照してください。

8.10 引数の概要

プロセス内の異なるコンポーネント間でデータを受渡しするために引数を使用できます。

コンポーネントを起動すると、特定のデータの入力を要求されることがあります。このデータを渡すには、入力引数を使用します。

コンポーネントを実行すると、その出力引数を介して結果が提供されます。

引数を設定できるプロセス・コンポーネントは、次のとおりです。

- サービス操作: サービス操作は処理のためにデータを必要とし、操作の実行結果を含むデータを提供するようにできます。コンポーネントの入力引数と出力引数がこのデータを表します。

- ヒューマン・タスク: ヒューマン・タスクは実行のためにデータを必要とし、タスクの実行結果を含むデータを提供するようにできます。ヒューマン・タスクの入力引数と出力引数がこのデータを表します。

- ビジネス・ルール: ビジネス・ルールでは、それに含まれるルールの評価に使用される入力が必要です。ビジネス・ルールは出力引数を使用して、この評価の結果を返します。ビジネス・ルール・タスクを使用してビジネス・ルールを実行すると、ビジネス・ルールは入力引数と出力引数を使用して、選択された意思決定機能を呼び出します。

- メッセージ開始イベント: メッセージ開始イベントでは、入力引数を定義できます。プロセスがサブプロセスとして使用されていて、サブプロセスが起動側プロセスからデータを受け取る場合、入力引数を開始イベントに追加できます。これらの入力引数は、あるプロセスが別のプロセスにより起動された場合に必要となるデータを表します。

- メッセージ終了イベント: メッセージ終了イベントでは、出力引数を定義できます。プロセスがサブプロセスとして使用されていて、サブプロセスがそれを起動したプロセスに情報を渡す場合、入力引数を終了イベントに追加できます。これらの出力引数は、プロセス実行の結果としてのデータを表します。

- キャッチ・イベント: キャッチ・イベントでは、プロセス・インタフェースを定義する入力引数と出力引数を定義できます。プロセス・インタフェースにより公開される操作が非同期の場合、入力引数のみを定義できます。公開される操作が同期の場合、入力引数と出力引数を定義できます。

- スロー・イベント: スロー・イベントでは、プロセス・インタフェースを定義する入力引数と出力引数を定義できます。プロセス・インタフェースにより公開される操作が非同期の場合、出力引数のみを定義できます。公開される操作が同期の場合、入力引数と出力引数を定義できます。

8.11 ネーミング規則

プロセス・データ・オブジェクト、プロジェクト・データ・オブジェクトまたは引数に名前を付ける際には、次のルールに従う必要があります。

- 1つ以上の名詞、または形容詞で修飾された名詞を使用します。

- 名前の最初の文字を数字にすることはできません。

- 大文字は内部の単語を区別する目的のみで使用します。

- 常に簡単でわかりやすい名前を使用します。

- 単語全部を使用します。省略語は、広く認知されている場合を除いて使用しないようにします。

- プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトに同じ名前を使用しないようにします。

8.12 スコープおよびアクセス

スコープおよびアクセスは、情報の格納に使用される構造によって異なります。

- プロセス・データ・オブジェクト: プロセス・データ・オブジェクトには、プロセス内の任意のタスクからアクセスできます。プロセス・データ・オブジェクトは、プロセス・エンジンがプロセス内にインスタンスを作成するときに作成されます。通常、プロセス・データ・オブジェクトの値は、プロセス内のインスタンスごとに異なります。インスタンスが終了イベントに到達すると、それ以降はプロセス・データ・オブジェクトにアクセスできません。

- サブプロセス・データ・オブジェクト: サブプロセス・データ・オブジェクトには、サブプロセス内の任意のタスクからアクセスできます。サブプロセス・データ・オブジェクトは、サブプロセスがトリガーされたときにプロセス・エンジンによって作成されます。インスタンスがサブプロセスを終了すると、これらのデータ・オブジェクトは使用できなくなります。

- プロジェクト・データ・オブジェクト: プロジェクト・データ・オブジェクトはプロジェクト・レベルで定義できますが、プロジェクト・データ・オブジェクトのスコープはプロセスです。プロジェクト・データ・オブジェクトは、BPMプロジェクト内のすべてのプロセスに対して事前に定義されています。プロジェクト・データ・オブジェクトの値は、プロセス間で異なることがあります。通常、プロジェクト・データ・オブジェクトの値は、プロセス内のインスタンスごとに異なります。プロジェクト・データ・オブジェクトにはプロジェクト内の任意のプロセスからアクセスできますが、プロセス中にオブジェクトに割り当てられた値は、プロセスで実行が完了すると失われます。図7-12に、プロジェクト・データ・オブジェクトのスコープと存続期間の違いを示します。

- 引数: 引数には、データ・アソシエーション内からのみアクセスできます。引数を使用して、プロセスまたはプロセス・コンポーネント間で情報を受渡しします。プロセス・エンジンは、データ・アソシエーションを含むプロセスまたはプロセス要素を実行するとき、データ・アソシエーション内に定義されているデータ・オブジェクトに引数の値をマッピングします。

図8-3 プロセス内のデータ構造のスコープ

図8-4 プロジェクト・データ・オブジェクトのスコープおよび存続期間

8.13 データ・アソシエーションの概要

データ・アソシエーションは、データ・オブジェクトに格納された情報を次のものとの間で受渡しするために使用します。

- BPMNプロセスから起動された別のプロセスまたはサービス

- ヒューマン・タスク・サービス

- Oracle Business Rule

- スクリプト・タスク。このBPMNフロー・オブジェクトは、データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

表8-4に、データ・アソシエーションを定義できるフロー・オブジェクトをリストしています。また、実装されるオブジェクトもリストしています。

表8-3 データ・アソシエーションを受け入れるフロー・オブジェクト

フロー・オブジェクト

実装

メッセージ開始および終了イベント

サービスおよびその他のBPMNプロセス

メッセージ・スロー・イベントおよびキャッチ・イベント

サービスおよびその他のBPMNプロセス

送信タスクおよび受信タスク

サービスおよびその他のBPMNプロセス

スクリプト・タスク

実装は含みません。データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

ユーザー・タスク

Oracle Human Tasks

ビジネス・ルール・タスク

Oracle Business Rules

サービス・タスク

サービスおよびBPMNプロセス

エラー・イベント

例外

シグナル・イベント

イベント

データ・アソシエーションを使用して、フロー・オブジェクトから外部サービスまたはプロセスへの入力と出力を定義できます。

入力と出力はフロー・オブジェクトのデータ・アソシエーション内に定義しますが、定義済の値は実装されたシステムおよびサービスに渡されることに注意してください。

式を使用して、入力値と出力値を評価および変更できます。

8.13.1 データ・アソシエーション・エディタの概要

データ・アソシエーション・エディタを使用すると、フロー・オブジェクトとその実装の間で受渡しされる入力値と出力値を構成できます。

図8-5は、営業見積サンプルにおける見積入力ユーザー・タスクのデータ・アソシエーションを示しています。

図8-5 データ・アソシエーション・エディタ

「図8-5 データ・アソシエーション・エディタ」の説明

表8-4で、データ・アソシエーション・エディタの各領域について説明します。

表8-4 データ・アソシエーション・エディタのユーザー・インタフェース

UI領域

説明

「入力」タブ

フロー・オブジェクト内に実装されるサービスまたはプロセスへの入力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。各テキスト・ボックスの横には、式エディタを起動するアイコンがあります

「出力」タブ

フロー・オブジェクト内に実装されるサービスまたはプロセスからの出力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。

「フロー・オブジェクト」ツリー

展開されたすべての引数をリストする「引数」ノードが含まれます。選択したタブに応じて、入力引数または出力引数がリストされます。複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。

「データ・オブジェクト」ツリー

すべてのデータ・オブジェクトが表示されます。このツリーには、プロセス・データ・オブジェクト、事前定義済データ・オブジェクトおよびプロジェクト・データ・オブジェクトが含まれます。複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。

8.14 変換の概要

XSL変換を使用して、次の値を変換できます。

- プロセス内のデータ・オブジェクトの値(フロー・オブジェクトの実装に入力引数としてデータ・オブジェクトを渡す前)。

- フロー・オブジェクト実装の出力引数の値(プロセス内のデータ・オブジェクトに割り当てる前)。

変換をデータ・アソシエーションを組み合せて使用できるのは、それらを異なる引数に適用する場合のみです。

注意:

変換とデータ・アソシエーションを使用して同時に1つの引数の値をマッピングすることはできません。

変換を定義する際は、XMLスキーマまたはタイプを使用して作成したビジネス・オブジェクトに基づくデータ・オブジェクトのみをソースとして使用できます。

作成した変換は、SOA XLSエディタを使用して編集できます。SOA XLSエディタの使用方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

8.15 変換の定義

XSL変換を使用してフロー・オブジェクトの実装の入力引数と出力引数に割り当てる値を変更できます。

8.15.1 変換を定義する方法

XSLT変換を定義して、フロー・オブジェクトの実装との間で受渡しするデータを変換できます。

変換を定義するには:

1. フロー・オブジェクト実装のプロパティを編集します。

2. 「データ・アソシエーション」リンクをクリックします。
「データ・アソシエーション」ダイアログが表示されます。

3. 右上隅にある「変換」ボタンをクリックして、ターゲット・ノードにドラッグします。

4. 変換をターゲット・ノード内でドロップします。
「変換の作成」ダイアログが表示されます。

5. 「ソース」リストからソースを選択します。
「ソース」リストには、XMLスキーマまたはタイプを使用して作成したビジネス・オブジェクトに基づくデータ・オブジェクトのみが表示されます。

6. 「追加」をクリックします。
「選択された要素」リスト内にソースが表示されます。

7. 「ターゲット」リストから、変換の結果を割り当てるターゲットを選択します。

8. 「変換」セクションで、変換を定義する方法を選択します。

- 作成: 新規の変換が作成され、変換を定義するためのSOA変換エディタが開きます。

- 既存のものを使用: プロジェクトXSLディレクトリにコピーした既存の変換を選択できます。

8.15.2 変換を定義した後の結果

BPMNサービス・エンジンによって、指定したXSL変換を使用してフロー・オブジェクトの入力引数と出力引数の値が割り当てられます。値は、XSL変換により変更されてから割り当てられます。

9 BPAリポジトリからのBPMNプロセスのインポート

この章では、BPAリポジトリに格納されているBPMNプロセスを使用してBPMプロジェクトを作成する方法について説明します。BPAプロジェクトをOracle BPMにインポートすると、プロセス・アナリストはOracle BPAを使用してプロジェクトを開発し、それをプロセス開発者に引き渡すことができます。プロセス開発者は、Oracle BPM Studioを使用して実装の詳細を完成させます。

この章の内容は次のとおりです。

- 9.1項「BPAリポジトリからのプロセスのインポートの概要」

- 9.2項「BPAプロジェクトからのBPMプロジェクトの作成」

- 9.3項「更新されたBPAモデルからの変更内容のマージ」

9.1 BPAリポジトリからのプロセスのインポートの概要

Oracle BPM Studioを使用すると、BPAリポジトリに格納されているBPMNプロセスに基づいてBPMプロジェクトを作成できます。

BPAでBPMNプロセスを作成および実装し、そのBPMNプロセスをOracle BPMにインポートできます。これにより、BPMNプロセスおよびその実装に使用されるすべてのコンポーネント(ヒューマン・タスク、サービス・アダプタ、メディエータなど)を含むBPMプロジェクトが作成されます。

図9-1は、BPAに実装された営業見積サンプルのBPMNモデルを示しています。

図9-1 BPA Architectを使用して実装された営業見積サンプル・プロセスのBPMNモデル

「図9-1 BPA Architectを使用して実装された営業見積サンプル・プロセスのBPMNモデル」の説明

9.2 BPAプロジェクトからのBPMプロジェクトの作成

BPA Architectアプリケーションを使用してBPMNモデルを作成し、それをOracle BPMにインポートできます。Oracle BPM Studioによって、選択したBPMNプロセスおよびBPMNモデルへのアクティビティの実装に使用されるコンポーネントを含むBPMプロジェクトが作成されます。

BPAプロジェクトをBPMにインポートする前に、BPAプロジェクトが次のルールに従っていることを確認してください。

- BPAプロジェクト内にカタログおよびリポジトリの情報がない場合、BPAプロジェクトをOracle BPMにインポートすることにより作成されたプロセスには未実装のビジネス・ルール・タスクが含まれます。

- BPAプロジェクト内のヒューマン・タスクがスイムレーンに関連付けられていない場合、BPAプロジェクトをOracle BPMにインポートすると、ヒューマン・タスクが有効なロールに関連付けられていないため、エラーが発生します。

- ネストしたサブプロセスが含まれていないこと。

表9-1に、プロジェクトのインポート時に、異なるBPAコンストラクトがどのようにBPMNコンストラクトに変換されるかについて示します。ゲートウェイとイベントは同じままです。Oracle BPM Suiteはプールおよびメッセージ・フローをサポートしないため、一度に1つのBPAツールの変換のみ可能であることに注意してください。

表9-1 BPAとBPMNコンストラクト間の対応関係

BPAコンストラクト

BPMNコンストラクト

自動アクティビティ

サービス・タスク

ヒューマン・タスク

ユーザー・タスク

ルール・タスク

ルール・タスク

通知タスク

FYIタスク

9.2.1 Oracle BPMから使用するためにBPAプロジェクトを構成する方法

BPAプロジェクトを使用してOracle BPMでBPMプロジェクトを作成する場合は、Oracle BPMからアクセスするようにBPAプロジェクトを構成する必要があります。

Oracle BPMから使用するためにBPAプロジェクトを構成するには:

1. BPAアプリケーションで、「SOA」を選択します。

2. 「ブルー・プリントの共有」を選択します。
検証ダイアログが表示されます。

3. プロジェクトを検証する場合は「はい」をクリックします。検証せずに続行する場合は「いいえ」をクリックします。
変換の進行状況を示すダイアログが表示されます。

4. 「OK」をクリックします。

9.2.2 BPAプロジェクトからBPMプロジェクトを作成する方法

この手順を実行する前に、Oracle BPMから使用するためにBPAプロジェクトが構成されていることを確認してください。Oracle BPMから使用するためにBPAプロジェクトを構成する方法の詳細は、9.2.1項「Oracle BPMから使用するためにBPAプロジェクトを構成する方法」を参照してください。

BPAプロジェクトからBPMプロジェクトを作成するには:

1. Oracle BPM Studioで、「ファイル」、「新規」の順に選択します。
「新規ギャラリ」ダイアログが表示されます。

2. 「カテゴリ」ツリーで「BPM層」を選択します。

3. 「アイテム」リストで「BPAからプロジェクトを作成」を選択します。

4. 「OK」をクリックします。
BPAプロジェクトからのプロジェクト作成ウィザードが表示されます。

5. BPMプロジェクトを識別する名前を入力します。

6. プロジェクトを格納するディレクトリを入力するか、「参照」ボタンをクリックしてディレクトリを参照して選択します。

7. 「BPAサーバー」フィールドの隣の「参照」ボタンをクリックします。
「BPAブループリント・コンポジットの作成」ダイアログが表示されます。

8. 「BPAサーバー」リストが空の場合は、新規のBPAサーバーを追加する必要があります。
BPAサーバーの追加方法の詳細は、9.2.3項「BPAサーバーを追加する方法」を参照してください。

9. 「BPAサーバー」リストで、サーバー・ノードおよびそのサブフォルダを展開してBPMNプロセスを表示します。

10. BPMNプロセスを選択します。

11. 「OK」をクリックします。
「BPAブループリント・コンポジットの作成」ダイアログが閉じ、選択したサーバーが「サーバー」フィールドに表示されます。

12. 「OK」をクリックします。
サマリー・ページが表示されます。

13. 「OK」をクリックします。
Oracle BPM Studioで、BPAリポジトリから選択したBPMNモデルに基づいて作成したBPMプロジェクトが表示されます。

注意:

BPAプロジェクトから作成されるBPMプロジェクトに、ゲートウェイ、ビジネス・ルール、ヒューマン・タスクなど、特定のBPMNフロー・オブジェクトの実装を構成する必要があります。このようにしないと、BPMプロジェクトを構築するときにエラーが発生します。

9.2.3 BPAサーバーを追加する方法

Oracle BPMが取得するBPAプロジェクトが含まれるBPAサーバーを定義する必要があります。BPAサーバーを定義した後は、そのBPAサーバーに存在するすべてのBPAプロジェクトに対してこれを再利用して、これらのBPAプロジェクトをOracle BPMにインポートできます。

BPAサーバーを追加するには:

1. 「BPAサーバー接続の作成」ボタンをクリックします。
「BPAサーバー接続」ダイアログが表示されます。

2. 「名前」フィールドに、接続を識別する名前を入力します。

3. 「場所」リストから、BPA Architect構成に対応する場所タイプを選択します。
使用可能な場所タイプは次のとおりです。

- 「ローカル・サーバー」: BPA ArchitectアプリケーションはBPAリポジトリに直接接続されます。

- リモート・サーバー: BPA ArchitectアプリケーションはBPAリポジトリ・サーバーに接続され、BPAリポジトリ・サーバーがBPAリポジトリに接続されます。

4. 「データベース」リストから、BPMNプロセスを含むデータベースを選択します。

5. 「ロケール」リストから、BPAプロジェクトのロケールを選択します。

6. 「ユーザー名」フィールドに、BPA Architectユーザーのユーザー名を入力します。

7. 「パスワード」フィールドに、BPA Architectユーザーのパスワードを入力します。

8. 接続をテストする場合は、「テスト」タブをクリックしてから「接続のテスト」をクリックします。
接続の診断フィールドに、テストの結果を示すメッセージが表示されます。

9. 「OK」をクリックします。
「BPAサーバー接続」ダイアログが閉じ、「BPAブループリント・コンポジットの作成」ダイアログ内の「BPAサーバー」リストに新規の接続が表示されます。

9.2.4 BPAプロジェクトからBPMプロジェクトを作成した後の結果

Oracle BPM Studioによって、インポートするように選択したBPMNモデルを含むBPMプロジェクトが作成されます。このBPMNプロジェクトには、SOAコンポジットとBPMNモデルの実装に使用されるコンポーネント(ヒューマン・タスク、サービス・アダプタ、メディエータなど)が含まれます。これらのコンポーネントは、SOAコンポジット内のコンポーネントと同様に、ビジネス・カタログ内にも表示されます。ビジネス・カタログでのコンポーネントの編成方法の詳細は、第12章「ビジネス・カタログの使用」を参照してください。

BPAプロジェクトから作成されるBPMプロジェクトに、ゲートウェイ、ビジネス・ルール、ヒューマン・タスクなど、特定のBPMNフロー・オブジェクトの実装を構成する必要があることに注意してください。このようにしないと、BPMプロジェクトを構築するときにエラーが発生します。

9.3 更新されたBPAモデルからの変更内容のマージ

BPAモデルに基づいてBPMNプロセスを作成した後に、BPAモデルを変更してBPMNプロセスを更新できます。

Oracle BPM Studioでは、ローカルのBPMNプロセスと、更新されたBPAモデルのインポートによって生成されるBPMNプロセスの差異が図を使用して示されます。図を見てから、変更内容を受け入れるか破棄するかを選択できます。

9.3.1 更新されたBPAモデルから変更内容をマージする方法

BPMNプロセスの作成に使用したBPAモデルを更新した後、BPMNプロセスを更新してBPAプロセスの変更内容を反映できます。生成されるBPMNプロセスには、BPAプロセスに行われた変更内容がすべて示されます。

更新されたBPAモデルから変更内容をマージするには:

1. BPAサーバーからインポートしたBPMNプロセスを開きます。

2. BPMNプロセス・エディタの右上隅にある「BPAからリフレッシュ」ボタンをクリックします。
プロセスの差異ダイアログが表示されます。図9-2に、プロセスの差異ダイアログの例を示します。

3. 「OK」をクリックして、変更を受け入れます。

図9-2 プロセスの差異ダイアログ

9.3.2 更新されたBPAモデルから変更内容をマージした後の結果

更新されたBPMNプロセスには、BPAモデルに行われた変更内容がすべて示されます。マージは、BPMNプロセスにのみ影響し、BPMプロジェクトのその他のアーティファクトには影響しません。

変更内容を元に戻す必要がある場合は、変更内容を保存せずにBPMNプロセスを閉じます。

第IV部

プロセス・パフォーマンスの分析

この部では、シミュレーションおよびプロセス分析を使用してビジネス・プロセスのパフォーマンスを分析する方法について説明します。

この部の内容は次のとおりです。

- 第10章「Oracle BPMでのシミュレーションの実行」

- 第11章「プロセス分析の使用」

10 Oracle BPMでのシミュレーションの実行

この章では、シミュレーションを使用して、指定の条件でのビジネス・プロセスの動作を予測する方法、出力がメトリックの目標に合致しているかを検証する方法、およびボトルネックを特定する方法について説明します。ここでは、シミュレーションを実行して、既存のプロセス設計に対する変更の影響をテストする方法についても説明します。

この章の内容は次のとおりです。

- 10.1項「Oracle BPMでのシミュレーションの実行の概要」

- 10.2項「シミュレーション・モデルの作成」

- 10.3項「境界イベントの構成」

- 10.4項「シミュレーション定義の作成」

- 10.5項「シミュレーションの実行」

- 10.6項「シミュレーションの結果の分析」

10.1 Oracle BPMでのシミュレーションの実行の概要

シミュレーションを定義した後は、Oracle BPMでシミュレーションを実行して、その定義の効率性を判断します。シミュレーションで実際のデータまたは予測されるデータを反映できます。

Oracle BPMのシミュレーション機能を使用すると、次のことができます。

- 様々な条件を分析できるように、特定のプロセスに対して複数のモデルを定義します。

- 異なるビジネス・プロセスでの処理が、参加者などの共有リソースに与える影響を知るために、マルチプロセス・シミュレーションを実行します。

10.1.1 シミュレーション・モデルおよびシミュレーション定義

シミュレーションを実行する前に、プロセスの各要素の動作を指定する必要があります。シミュレーションを定義するには、BPMプロジェクトで次の要素を作成して構成する必要があります。

- シミュレーション・モデル
個々のプロセス・モデルの動作を定義できます。いずれのプロセス・モデルにも複数のシミュレーション・モデルを作成できるため、多様なシナリオを模倣できます。

- シミュレーション定義
シミュレーション・シナリオを定義するプロセスおよびリソースを定義できます。シミュレーション定義では、プロセスに関連付けられたシミュレーション・モデルを選択して、シミュレーションに参加するプロセスを指定します。1つのプロセスに複数のシミュレーション・モデルが定義されている場合もあります。プロセスに複数のシミュレーション・モデルが定義されている場合は、それらのモデルのうちの1つを選択して、シミュレーション定義で使用する必要があります。

シミュレーションは、プロセス内の個々のタスクをコールしません。たとえば、シミュレーションはサービス・タスクに関連付けられているサービスを実行せず、変数に値は割り当てられず、外部リソースは更新されません。

ただし、シミュレーションは、シミュレーション・エディタを使用して定義できる次のシミュレーション変数を使用してアクティビティの動作を模倣します。

- 期間

- リソース

- コスト

- キュー情報

- 送信フローを通過するインスタンスの確率

10.2 シミュレーション・モデルの作成

シミュレーション・モデルを使用すると、個々のプロセスの動作をシミュレートできます。シミュレーション定義の一部としてプロセスの動作を指定できます。

各プロセスに複数のシミュレーション・モデルを定義し、リソース割当てとアクティビティ動作の様々な組合せに基づいて様々なシミュレーションを作成できます。

シミュレーション・ウィザードを使用してプロセスに基づいたシミュレーション・モデルを作成することも、最初から作成することもできます。

10.2.1 ビジネス・プロセスからシミュレーション・モデルを作成する方法

ビジネス・プロセスからシミュレーション・モデルを作成するには:

1. BPMプロジェクト・ナビゲータで、「プロセス」ノードを展開します。

2. シミュレーションに使用するビジネス・プロセスを右クリックします。

3. 「新規シミュレーション」を選択してから、「ウィザード」を選択します。
シミュレーション・ウィザードが表示されます。

4. シミュレーション・モデルを識別するための名前を入力します。

5. 作成するインスタンスの数を制限する場合は、「作成するプロセス・インスタンスの数を指定してください」を選択してから、下のフィールドを使用してインスタンスの数を指定します。

6. 「ユーザー・タスク」セクションで、分布、固定リソースおよび固定ベースのコストをカスタマイズします。

7. 「次へ」をクリックします。
シミュレーション定義ウィザードが表示されます。

8. シミュレーション定義の名前を入力します。

9. シミュレーションの期間を入力します。

10. 矢印ボタンを使用して開始時間を選択するか、「開始時間」フィールドの隣にある「カレンダ」ボタンをクリックします。

11. すべてのインスタンスの完了を待機してから終了するシミュレーションを構成するには、「シミュレーションが終了する前に実行中のインスタンスを完了」を選択します。

12. 「次へ」をクリックします。

13. シミュレーションの作成後に実行するアクションを選択します。
使用可能なオプションは次のとおりです。

- シミュレーション・モデルを開く

- シミュレーション定義を開く

- シミュレーションの開始

14. 「終了」をクリックします。

10.2.2 シミュレーション・モデルを作成および構成する方法

シミュレーション・モデルを作成および構成するには:

1. BPMプロジェクト・ナビゲータで、「シミュレーション」ノードを展開します。

2. 「シミュレーション・モデル」ノードを右クリックします。

3. 「新規シミュレーション・モデル」を選択します。
「シミュレーション・モデルの作成」ダイアログ・ボックスが表示されます。

4. プロセスを選択します。

5. シミュレーション・モデルの名前を入力します。

6. 「OK」をクリックします。
シミュレーションモデルがBPMプロジェクト・ナビゲータの「シミュレーション・モデル」ノードの下に表示され、シミュレーション・モデル・エディタが開きます。

7. シミュレーション中に作成するインスタンスの数を指定します。

1. 「作成するプロセス・インスタンスの数を指定してください」を選択します。

2. シミュレーション中に作成するインスタンスの数を指定します。

注意:

指定した期間が終了するまで、またはインスタンスの最大数に達するまで、プロセス・シミュレーションが実行されます。

8. 「フロー・ノード」ツリーで、アクティビティを選択します。
選択したアクティビティのタイプに応じて、「フロー・ノード」ツリーの右側に次のタブ・ページが表示されます。

- 期間: アクティビティの完了に必要な時間を決定する分布を定義します。

- リソース: 特定のロールに割り当てられた参加者の数を指定します。このパラメータは、シミュレーション・モデル内で定義することも、プロジェクト・シミュレーション定義内でグローバル・プロジェクト・レベルで定義することもできます。

- コスト: アクティビティの処理コストを指定します。ユーザー・タスクの場合は、ユーザー・タスクに割り当てられるリソースのコストも指定します。1時間当たりの給与で測定されます。

- キュー情報: 特定のアクティビティに対してプロセス・インスタンスがキューに格納されるシミュレーション動作を定義します。

- 送信フロー: 様々な送信シーケンス・フローを通過するインスタンスの確率を決定します。

- スレッド: このフロー・オブジェクトを実行するスレッドの数を指定します。このタブは、ユーザーの相互作用を伴わないフロー・オブジェクトでのみ使用可能です。

- インスタンス作成: シミュレーション用にインスタンスを作成するときに使用する分布カーブを指定できます。このタブは、開始イベントでのみ使用可能です。

9. 各アクティビティを次のように構成します。

1. 「期間」ページの「インスタンス実行期間」セクションで、「分布タイプ」を指定します。表10-1にオプションを示します。

表10-1 シミュレーション・モデルの「フロー・ノード」の「期間」ページのオプション

オプション

説明

定数

シミュレーション・モデルが期間プロパティに指定された値を使用して、プロセス内のすべてのアクティビティの完了時間を算出するように指定します。

均一

アクティビティの完了に必要な期間を、常に「差異」プロパティで指定した差異を考慮して決定します。このオプションを選択した場合は、次の各オプションを指定するように要求されます。

- 平均: アクティビティの完了までの平均時間を決定します。

- 差異: シミュレーション・アクティビティの完了までの時間を決定する際に「平均」パラメータの上限と下限の差異を定義します。

指数

特定期間内に完了するインスタンス数を指定することにより、シミュレーション・アクティビティの完了までの時間を決定します。このオプションを選択した場合は、次のオプションを指定するように要求されます。

- 平均頻度\: 「間隔」プロパティで定義されている時間間隔内に処理されるインスタンスの平均数を決定します。

- 間隔: 指数分布に使用される時間間隔を定義します。

標準

ガウス・ベル分布を使用して、シミュレーション・アクティビティの完了までの時間を決定します。平均分布と標準分布を指定する必要があります。このオプションを選択した場合は、次のオプションを指定するように要求されます。

- 平均: アクティビティの実行に必要な平均時間

- 標準偏差: アクティビティの実行に必要な平均期間の標準偏差

実数

特定の時間間隔についてシミュレーション・アクティビティを完了するために必要な時間を指定できます。このオプションを選択した場合は、次のオプションを指定する必要があります。

- 分布基準: シミュレーション・アクティビティの完了までの時間を決定するための時間間隔を決定します。

- 間隔: シミュレーションが実行される期間を指定します。

- 平均: アクティビティを完了するまでの平均時間を定義します。

- 標準偏差: 「平均」パラメータの標準偏差を定義します。

2. 「コスト」ページで、次のプロパティを指定します。

表10-2 シミュレーション・モデルの「フロー・ノード」の「コスト」ページのプロパティ

プロパティ

説明

固定基本コスト

シミュレーション・アクティビティを実行するために必要なコストを定義します。

固定基本コスト+リソース・コスト

定義された時間当たりのコストと、リソースがインスタンスの実行にかかる時間に基づいて計算されます。このプロパティは、ユーザー・タスクでのみ使用可能です。

3. 「キュー情報」ページの「キュー警告サイズ」フィールドに、アクティビティを同時に待機できる受信インスタンスの数を指定します。

4. 「送信フロー」ページで、スライダを移動して各送信シーケンス・フローの発生確率を指定します。
アクティビティが境界イベントを含む場合、境界イベントのフローはこのページに表示されます。構成する境界イベントの詳細は、10.3項「境界イベントの構成」を参照してください。

10.3 境界イベントの構成

シミュレートするBPMNプロセスに境界イベントが含まれている場合、これらのイベントの発生確率を指定する必要があります。

「送信フロー」ページで様々な境界イベントの確率を指定できます。

境界イベントの確率を指定する方法は、イベントのタイプに応じて異なります。

- 連続しない境界メッセージおよびエラー・イベント
アクティビティのすべての連続しない境界メッセージおよびエラー・イベントの確率には、関連性があります。これらの確率を追加する場合、結果は常に1である必要があります。

シミュレーション・モデル・エディタには、これらのアクティビティを構成するためのスライダのセットが表示されます。スライダを移動すると、他のスライダの値が自動的に調整されます。スライダの横にあるロック・アイコンをクリックすると、値をロックできます。値がロックされると、他のスライダを移動しても、シミュレーション・モデル・エディタはその値を変更しません。シミュレーション・モデル・エディタでは、2つ以上の値がロック解除された状態になるようになっています。

- 連続する境界メッセージおよびエラー・イベント
連続する境界メッセージ・イベントまたはエラー・イベントの確率は、他のイベントの発生確率から独立しています。この確率のこの値は、0から1の間で変化します。

シミュレーション・モデル・エディタには、連続する境界メッセージまたはエラー・イベントごとにスライダが表示されます。このスライダを移動して、0から1の間の任意の値を指定できます。

- タイマー・イベント
境界タイマー・イベントの確率を指定するには、イベント発生の時間間隔を定義する必要があります。BPMNプロセスでのタイマー・イベントの実装に式を使用する場合、シミュレーション中に使用する固定の時間間隔を定義する必要があります。BPMNプロセスでのタイマー・イベントの実装に固定の時間間隔を使用する場合は、シミュレーション用のBPMNプロセスで定義した間隔を使用できるため、時間間隔の再定義は必要に応じて行います。

シミュレーション・モデル・エディタには、連続しないタイマー・イベント用の表と、連続するタイマー・イベント用のもう1つの表が表示されます。これらの表を使用して各イベントの時間間隔を再定義できます。

図10-1は、各種の境界イベントを持つ見積の承認ユーザー・タスクを示しています。図10-2は、見積の承認ユーザー・タスクのシミュレーション構成ページを示しています。

図10-1 複数の境界イベントを持つ見積の承認ユーザー・タスク

「図10-1 複数の境界イベントを持つ見積の承認ユーザー・タスク」の説明

図10-2 見積の承認タスクの「送信フロー」タブ・ページ

「図10-2 見積の承認タスクの「送信フロー」タブ・ページ」の説明

10.4 シミュレーション定義の作成

シミュレーション定義を作成して、シミュレーション・モデルのグループのためのシミュレーション・シナリオを表すことができます。シミュレーション定義に含まれているシミュレーション・モデルのグループから実行するシミュレーション・モデルを選択できます。

シミュレーション・ウィザードを使用してシミュレーション・モデルを作成した後で、シミュレーション定義を作成することもできます。シミュレーション・ウィザードを使用してシミュレーション・モデルおよびシミュレーション定義を作成する方法の詳細は、10.2.1項「ビジネス・プロセスからシミュレーション・モデルを作成する方法」を参照してください。

10.4.1 シミュレーション定義を作成する方法

シミュレーション定義で次のパラメータをカスタマイズして、それがプロジェクトのパフォーマンスにどのように影響するかを確認できます。

- シミュレーションの開始時間および期間

- プロジェクト・シミュレーションに含めるプロセス・シミュレーション・モデル、シミュレーションに含める参加者リソース

シミュレーション定義を作成および構成するには:

1. BPMプロジェクト・ナビゲータで、「シミュレーション」ノードを展開します。

2. 「シミュレーション定義」ノードを右クリックします。

3. 「新規シミュレーション」を選択します。
「シミュレーション定義の作成」ダイアログ・ボックスが表示されます。

4. シミュレーション定義の名前を入力します。

5. 「OK」をクリックします。
シミュレーション定義は「シミュレーション定義」ノードの下に表示され、シミュレーション定義エディタが開きます。図10-3は、シミュレーション定義エディタを示しています。

図10-3 シミュレーション定義の「プロジェクト」ページ

「図10-3 シミュレーション定義の「プロジェクト」ページ」の説明

6. 表10-3で説明されているように、このシミュレーションの一般的なパラメータを指定します。

表10-3 シミュレーション定義の一般的なパラメータ

パラメータ

説明

開始時間

シミュレーションの開始時間を定義します。この時間はロギングにのみ使用されます。スケジュール目的では使用されません。

期間

シミュレーションの実行期間を定義します。この間隔は、月単位、日単位、時間単位、分単位および秒単位で指定します。

シミュレーションが終了する前に実行中のインスタンスを完了

これを選択した場合、シミュレーションは、指定された数のインスタンスの完了後に終了します。これを選択しない場合、シミュレーションはシミュレーション期間が経過すると停止します。その時点で完了していないインスタンスはすべて「処理中」または「キュー」ステータスで表示されます。

7. 「プロジェクト」ページには、現在のプロジェクト内のすべてのプロセスがリストされた表が含まれます。プロセスごとに、使用するシミュレーション・モデルを選択できます。また、シミュレーションに含めるプロセスを指定する必要があります。
「プロジェクト」ページで、表10-4で説明されているようにパラメータを指定します。

表10-4 シミュレーション定義の「プロジェクト」のパラメータ

パラメータ

説明

プロセス

このシミュレーションに含めることができるプロセスがリストされます。

モデル

プロセスごとに、10.2.2項「シミュレーション・モデルを作成および構成する方法」で指定したモデルがリストされます。

シミュレーションを含む

プロセスをシミュレーションに含めるかどうかを指定できます。

「プロジェクト」ページでパラメータを指定した後、「リソース」タブを選択します。

8. 「リソース」ページに、シミュレーション内で使用するリソースを定義できます。
シミュレーションに含まれるすべてのプロセスが、これらのリソースを共有します。各リソースのコストは、時間単位で定義されます。

リソースを定義するには、次のボタンをクリックします。

- 「リソースの追加」: リソースをシミュレーション定義に追加します。

- リソースの削除: 選択したリソースをシミュレーション定義から削除します。

図10-4は、「リソース」ページの例を示しています。

図10-4 シミュレーション定義の「リソース」ページ

「図10-4 シミュレーション定義の「リソース」ページ」の説明

9. 「保存」をクリックします。

注意:

シミュレーションを実行する前に変更を保存したことを確認します。変更を保存していない場合、シミュレーション・エンジンはシミュレーション実行時にその変更内容を使用しません。

10.5 シミュレーションの実行

シミュレーションを一時停止、停止、または最後まで実行することができます。シミュレーションを停止した場合は、最初から再開する必要があります。

10.5.1 シミュレーションを実行する方法

シミュレーションを実行するには、シミュレーション・モデルおよび1つ以上のシミュレーション定義を事前に作成しておく必要があります。

シミュレーションを実行するには:

1. BPMプロジェクト・ナビゲータで:

1. 「シミュレーション」ビューを開きます。

2. 「シミュレーション」リストで、実行するシミュレーション定義を選択します。

3. 「シミュレーションの実行」をクリックします。
シミュレーションが開始されます。

10.5.2 シミュレーションを実行した後の結果

プロジェクト・エディタにシミュレーションのアニメーションが表示され、指定した内容に応じて結果が「シミュレーション」ページに表示されます。

注意:

チャートのカラム上にマウス・ポインタを置くと、アクティビティまたはインジケータの値を示すツールチップが表示されます。

10.5.3 「シミュレーション」ビューの理解

「シミュレーション」ビューでは、シミュレーションを構成して実行できます。図10-5は、「シミュレーション」ビューを示しています。

図10-5 「シミュレーション」ページの例

「図10-5 「シミュレーション」ページの例」の説明

「シミュレーション」ビューのツールバーでは、次の操作を実行できます。

- 「シミュレーション」リストから、実行するシミュレーションを選択します。

- 適切なボタンをクリックすることにより、シミュレーションを開始、停止、一時停止、または最後まで実行します。シミュレーションを最後まで実行するように選択した場合、シミュレーションはアニメーションなしでバックグラウンドで実行され、より高速でシミュレーションを実行できます。

注意:

シミュレーションを停止した場合は、最初から再開する必要があります。

- 「スピード」リストから、シミュレーションの実行スピードを選択します。通常のスピードでは、インスタンスは毎秒1つ作成されます。

「チャート」タブのツールバーでは次が可能です。

- 結果を表示するグラフィック・タイプの変更

- ドリルアップおよびドリルダウン

- フォントサイズの拡大/縮小

10.6 シミュレーション結果の分析

「シミュレーション」ウィンドウで「チャート」タブまたは「ログ」タブをクリックして、シミュレーション結果をチャートまたはログ・ファイルとして表示できます。

「ログ」タブには、シミュレーションされたプロセスのすべてのインスタンスの動作を追跡するログが表示されます。ログの各行には、次の情報が示されます。

- 日付と時間

- プロセス

- インスタンス

- インスタンスのパス

10.6.1 チャートを使用してシミュレーション結果を分析する方法

「チャート」タブでは、シミュレーションの結果を表示するチャートのタイプを選択できます。このチャートは、監視するリソースが表示されるように構成できます。チャートがリソースの使用状況の測定に使用する単位を選択することもできます。

「チャート」タブでは、次を構成することによってシミュレーションの結果のチャートを表示する方法を構成できます。

- チャートのタイプ

- 監視するアクティビティまたはリソース

- インジケータ

図10-6は、サンプルの「チャート」ページのツールバーを示しています。

図10-6 シミュレーションの「チャート」ページ

「図10-6 シミュレーションの「チャート」ページ」の説明

チャートを使用してシミュレーションの結果を分析するには:

1. 「チャート」タブの下のリストから、表示するチャートのタイプを選択します。
使用可能なタイプを次に示します。

- 列

- 棒

- 棒3D

- カラム3D

- 表

2. 「チャート」タブの右側にある「構成」アイコンをクリックします。
「構成」ダイアログ・ボックスが表示されます。

3. 監視するリソースまたはアクティビティを選択します。

4. アクティビティまたはリソースを表示する軸を選択します。

5. 「表示」リストの下のリストから、シミュレーションで監視するアクティビティまたはリソースを選択します。

6. 「インジケータ」リストから、監視するインジケータのタイプを選択します。
インジケータの使用可能なタイプは、次のとおりです。

- コスト

- 時間

- 単位

7. インジケータ・リストの下のリストから、監視するインジケータを選択します。
チャートには、選択した変数とインジケータが表示されます。

8. 「閉じる」をクリックします。

9. 必要に応じて、「タイプ」リストの横にあるドリル・アップおよびドリル・ダウンのアイコンをクリックして、チャートの詳細レベルを増減します。

10.6.2 シミュレーション・レポートを生成する方法

シミュレーションの結果を含むシミュレーション・レポートを生成できます。

シミュレーション・レポートを生成するには:

1. シミュレーションを実行します。
シミュレーションを実行する方法の詳細は、10.5.1項「シミュレーションを実行する方法」を参照してください。

2. 「ドキュメントの生成」アイコンをクリックします。
「シミュレーション・レポート」ダイアログ・ボックスが表示されます。

3. 「ディレクトリの場所」フィールドに、レポートを格納するディレクトリを入力するか、横にあるボタンをクリックしてファイル・システムを参照してディレクトリを選択します。

4. 「レポートのパーツ」表の「名前」列にあるレポート名を編集します。

5. 複数のレポートを生成する場合は、「追加」ボタンをクリックして新しいレポートのパーツを追加します。

6. 「アクティビティ」タブで、オプションを選択します。

- サマリー

- 詳細

7. 下のツリーで、レポートで含めるアクティビティを選択します。
次のオプションを使用して、含めるアクティビティを指定できます。

- 「すべて」を選択して、シミュレーション定義にすべてのプロセスを含めます。

- プロセスを選択して、選択されたプロセス内のすべてのアクティビティを含めます。

- 含めるアクティビティを個別に選択します。

8. インジケータ・タブで、オプションを選択します。

- サマリー

- 詳細

9. 下のツリーで、レポートで含めるインジケータを選択します。
レポートに表示するインジケータを個別に選択することも、インジケータのタイプを選択してそのタイプのインジケータすべてを表示することもできます。

10. レポートで使用するグラフィックのタイプを選択します。
プレビューには、選択したグラフィックの例が表示されます。

11. 「OK」をクリックします。

10.6.3 シミュレーション・レポートを生成した後の結果

Oracle BPM Studioは、選択した名前と場所を使用してディレクトリを作成します。このディレクトリには、シミュレーション内の各プロセスのHTMLファイルが含まれます。

HTMLファイルには、次のものが含まれます。

- シミュレーションの結果を表示するグラフィック

- シミュレーション・データを含むCSVファイルへのリンク

- シミュレーション・リソース・データを含むCSVファイルへのリンク

スプレッドシート・アプリケーションで、シミュレーション・データとリソース・データを含むCSVファイルを表示できます

11 プロセス分析の使用

この章では、プロジェクト内でプロセスのアクティビティを監視するためにBPMプロセス分析を使用および構成する方法について説明します。プロセス分析を使用すると、プロジェクト内のプロセスのパフォーマンスおよびワークロードのメトリックを取得できます。このメトリックを使用して、プロセスに関する意思決定を行うことができます。

この章の内容は次のとおりです。

- 11.1項「プロセス分析の概要」

- 11.2項「一般的なプロセス分析ワークフロー」

- 11.3項「サンプリング・ポイントを生成するためのプロジェクト、プロセスおよびアクティビティの構成」

- 11.4項「プロジェクトへのビジネス・インジケータの追加」

- 11.5項「プロセスへの測定マークの追加」

- 11.6項「プロセス内のアクティビティへのカウンタの追加」

- 11.8項「プロジェクト内でのキューブ生成の構成」

- 11.9項「プロジェクト内でのOracle BAMの有効化」

11.1 プロセス分析の概要

ビジネス・プロセス分析では、デプロイ済プロセスのパフォーマンスを監視できます。プロジェクト内で主要パフォーマンス・インジケータが測定され、データベースに格納されます。プロセス・アナリストは、情報を格納するために選択したデータベースに応じてプロセス・ワークスペース・ダッシュボードまたはOracle BAMを使用し、プロセス分析データベースに格納されているメトリックを参照できます。

プロセス・アナリストは、標準の事前定義済メトリックおよびプロセス固有のユーザー定義メトリックを監視できます。プロセス開発者は、ビジネス・インジケータを使用してプロセス固有のメトリックを定義できます。ビジネス・インジケータは、BPMNサービス・エンジンによりBPMNプロセスの実行時にプロセス分析データベースに格納される、特殊なタイプのプロジェクト・データ・オブジェクトです。

プロセス開発者は、プロセスの開発時に監視対象の主要パフォーマンス・インジケータを定義します。アプリケーションの公開後、ビジネス・アナリストは、プロセス・ワークスペースに備わっているデフォルトのダッシュボードを使用するか、カスタムのダッシュボードを作成して、BPMNサービス・エンジンによってBPMNプロセスの実行中に収集されたメトリックを参照できます。

プロセス分析では、次のメトリックが追跡されます。

- 「プロセス・パフォーマンス」および「アクティビティ・パフォーマンス」メトリック

- 「ワークロード」メトリック

- Human Resource・メトリック

プロセス内の主要パフォーマンス・インジケータは、ビジネス・インジケータを使用して格納できます。デフォルトでは、BPMNサービス・エンジンにより、すべてのBPMNプロセスに共通の事前定義済のメジャーおよびディメンションの値が格納されます。

サポートされている事前定義済のメジャーは、次のとおりです。

- アクティビティ、プロセスおよび参加者によるアクティブなインスタンスの数

- アクティビティ完了の平均時間

- プロセス完了の平均時間

サポートされている事前定義済のディメンションは、次のとおりです。

- プロセス

- アクティビティ

- 参加者

また、ニーズに合ったカスタム・メジャーを定義することもできます。カスタム・メジャーを定義するには、ビジネス・インジケータを使用します。様々なタイプのビジネス・インジケータを使用すると、特定の値の測定、カテゴリの追跡、およびインスタンスが1つ以上のアクティビティを完了した回数のカウントを行うことができます。

Oracle BPMには、プロセス分析データの格納に使用できる事前定義済キューブ・セットが備わっています。キューブとは、リアルタイムでのデータ分析や複数の側面からのデータ表示ができるようにデータベースを編成する際に使用される構造です。

また、これらのデータをOracle BAMに格納するか、両方のシステムを同時に使用することを選択できます。

11.1.1 「プロセス・パフォーマンス」および「アクティビティ・パフォーマンス」メトリック

プロセス分析では、プロセスの完了までにかかる時間と、そのプロセス内の各フロー・オブジェクトが完了するまでにかかる平均時間を追跡します。

プロセス・パフォーマンス・メトリックは、インスタンスがそのプロセスの開始イベントから終了イベントまでの実行にかかる時間を追跡します。

アクティビティ・パフォーマンス・メトリックは、プロセス・インスタンスがフロー・オブジェクトに到達してから、プロセス内の次のフロー・オブジェクトに移動するまでの経過時間を追跡します。

フロー・オブジェクトが同期サービス操作を起動すると、プロセス・インスタンスは、同期サービスからの応答を受信するまでフロー・オブジェクトを終了しないため、アクティビティ・パフォーマンス・メトリックに同期サービス操作の実行にかかる時間が含まれることに注意してください。ただし、起動されたサービス操作が非同期の場合、プロセス・インスタンスは、サービスの起動後、サービスの完了を待たずにプロセスを終了するため、アクティビティ・パフォーマンス・メトリックには、サービス操作の実行にかかる時間は含まれません。

11.1.2 「ワークロード」メトリック

プロセス分析は、特定の時間に各アクティビティを処理中のインスタンスの数を追跡します。特定のプロセス、アクティビティまたはインスタンスのワークロードを表示できます。

Oracle BPMは一定間隔でスナップショットを作成し、インスタンスの数とその時点のビジネス・インジケータの値を格納します。プロセスの現在のワークロードを取得するには、最新のスナップショットから情報を選択する必要があります。

11.1.3 Human Resource・メトリック

パフォーマンスとワークロード・メトリックを参加者ごとにフィルタ処理して表示できます。この方法で、BPMNプロセスで様々な参加者のワークロードとパフォーマンスを監視することができます。

11.2 一般的なプロセス分析ワークフロー

次のリストに、BPMプロジェクト内でプロセス分析を使用する際に実行する一般的なタスクを示します。

- BPMプロジェクトおよび1つ以上のBPMNプロセスを作成します。

- プロジェクトまたはプロセスのサンプリング・ポイント生成を構成します。

- BPMキューブまたはOracle BAM(あるいはその両方)を使用するようにプロジェクトを構成します。

- プロジェクト内のプロセスにビジネス・インジケータを追加します。

- ビジネス・インジケータに値を割り当てます。

- ビジネス・インジケータの値を追跡するプロセスに測定マークまたはカウンタ・マークを追加します。

- プロジェクトをデプロイします。

- プロセス・ワークスペースまたはBAM Architectを使用して、カスタムのダッシュボードを構成します。

図11-1に、BPMNプロセスのデプロイおよび実行後に、プロセス分析データが通過するサイクルを示します。

図11-1 プロセス分析データのサイクル

「図11-1 プロセス分析データのサイクル」の説明

11.3 サンプリング・ポイントを生成するためのプロジェクト、プロセスおよびアクティビティの構成

BPMNサービス・エンジンは、プロセス内のアクティビティを実行するとき、プロセスに関するデータをBPMキューブおよびOracle BAMデータ・オブジェクトに格納します。このデータは、プロジェクト内で定義されているサンプリング・ポイントからのものです。プロジェクト内のどのプロセスまたはアクティビティでサンプリング・ポイントがこれらのデータベース内に生成されるかを構成できます。

サンプリング・ポイント生成は、次のレベルで構成できます。

- プロジェクト

- プロセス

- アクティビティ

プロジェクトに含まれるプロセス内のすべてのアクティビティに対してサンプリング・ポイントを生成するようにプロジェクトを構成できます。また、このプロジェクト内のプロセスに対してサンプリング・ポイントを生成しないように選択することもできます。BPMNプロセスがプロジェクトのデフォルト設定を使用するように構成されている場合は、この値が使用されます。

デフォルトでは、プロジェクトは対話型アクティビティに対してのみサンプリング・ポイントを生成するように設定されています。

プロジェクトで定義されているサンプリング・ポイント生成の設定とは異なる設定を使用するようにプロセスを構成できます。通常、これはプロジェクトのパフォーマンスを向上させるために行います。たとえば、プロジェクト内に多数のアクティビティからなるプロセスがある場合、このプロセスに対してプロセス・メトリックを取得する必要がなければ、サンプリング・ポイントを生成しないようにプロセスを構成します。あるいは、測定する対象がプロジェクト内の1つのプロセスのみの場合、サンプリング・ポイントを生成しないようにプロジェクトを構成しておいて、その特定のプロセスのみサンプリング・ポイントを生成するように構成します。

デフォルトでは、プロセスはプロジェクトのサンプリング・ポイント構成を使用するように構成されています。

また、プロセス内の1つ以上のアクティビティを、プロセス内で使用されるサンプリング・ポイント設定とは異なる設定を使用するように構成することもできます。たとえば、サンプリング・ポイントのメトリックでは関連情報を取得できないと思われる場合は、サンプリング・ポイントが生成されないようにプロセス内のすべてのゲートウェイ・アクティビティを構成します。

デフォルトでは、アクティビティはプロセスのサンプリング・ポイント構成を使用するように構成されています。プロセスがプロジェクト構成を使用するように構成されている場合、アクティビティはプロジェクトで指定された構成を使用します。

11.3.1 プロジェクトのサンプリング・ポイント生成を構成する方法

サンプリング・ポイント生成はプロジェクト・レベルで構成できます。

プロジェクトのサンプリング・ポイント生成を構成するには:

1. BPMプロジェクト・ナビゲータで、構成するプロジェクトを右クリックします。

2. 「プロジェクト・プリファレンス」を選択します。

3. 「プロセス分析サマリー」タブのプロジェクトのサンプル・ポイント・セクションで、オプションを選択します。使用可能なオプションは次のとおりです。

オプション

説明

対話型アクティビティに対してのみ生成

プロジェクトに含まれるプロセス内のユーザー・タスクに対してのみサンプリング・ポイントを生成します。

すべてのアクティビティに対して生成

プロジェクトに含まれるプロセス内のすべてのアクティビティに対してサンプリング・ポイントを生成します。

生成しない

プロジェクトに含まれるプロセス内のいずれのアクティビティに対してもサンプリング・ポイントを生成しません。

4. 「OK」をクリックします。

11.3.2 サンプリング・ポイントを生成するようにプロジェクトを構成した後の結果

プロジェクト内に作成したプロセスはいずれも、その特定のプロセスに別の構成を使用するようにプロセス・プロパティを編集していないかぎり、そのプロジェクトに定義されているサンプリング・ポイント構成を使用します。

11.3.3 プロセスのサンプリング・ポイント生成を構成する方法

サンプリング・ポイント生成はプロセス・レベルで構成できます。

プロセスのサンプリング・ポイントを構成するには:

1. BPMプロジェクト・ナビゲータで、構成するプロセスを右クリックします。

2. 「プロパティ」を選択します。

3. 「詳細」タブをクリックします。

4. 「プロセス・サンプリング・ポイント」セクションで、オプションを選択します。使用可能なオプションは次のとおりです。

オプション

説明

プロジェクトのデフォルトの継承

プロセスは、サンプリング・ポイントを生成するかどうかを決定するためにプロジェクトのサンプリング・ポイント構成を使用します。

対話型アクティビティに対してのみ生成

プロセス内のユーザー・タスクに対してのみサンプリング・ポイントを生成します。

すべてのアクティビティに対して生成

プロセス内のすべてのアクティビティに対してサンプリング・ポイントを生成します。

生成しない

プロセス内のいずれのアクティビティに対してもサンプリング・ポイントを生成しません。

5. 「OK」をクリックします。

11.3.4 プロセスのサンプリング・ポイント生成を構成した後の結果

BPMNサービス・エンジンは、プロジェクトのサンプリング・ポイント構成で指定されている内容にかかわらず、プロセス分析情報を格納するかどうかを決定するために定義済のサンプリング・ポイント構成を使用します。プロセス内のアクティビティは、別の構成を使用するように編集していないかぎりは、プロセスのサンプリング・ポイント構成を使用します。

11.3.5 アクティビティのサンプリング・ポイント生成を構成する方法

サンプリング・ポイント生成はアクティビティ・レベルで構成できます。

アクティビティ・ガイドのサンプリング・ポイント生成を構成するには:

1. 構成するアクティビティを右クリックします。

2. 「プロパティ」を選択します。

3. 「基本」タブをクリックします。

4. 「サンプリング・ポイント」セクションを展開します。

5. オプションを選択します。使用可能なオプションは次のとおりです。

オプション

説明

プロセスのデフォルトの継承

BPMNサービス・エンジンは、このアクティビティに対してサンプリング・ポイントを生成するかどうかを決定するためにプロセスのサンプリング・ポイント構成を使用します。

生成

このアクティビティに対してサンプリング・ポイントを生成します。

生成しない

このアクティビティに対してサンプリング・ポイントを生成しません。

6. 「OK」をクリックします。

11.3.6 アクティビティに対してサンプリング・ポイントを構成した後の結果

BPMNサービス・エンジンは、プロジェクトおよびプロセスのサンプリング・ポイント構成で指定されている内容にかかわらず、プロセス分析情報を格納するかどうかを決定するためにアクティビティのサンプリング・ポイント構成を使用します。

11.4 プロジェクトへのビジネス・インジケータの追加

ビジネス・インジケータは、プロセスの主要パフォーマンス・インジケータの値を格納するために使用するプロジェクト・データ・オブジェクトです。便宜上、ビジネス・インジケータは「構造」ウィンドウ内にそれぞれのエントリを持ちます。

主要パフォーマンス・インジケータはプロセス内の関連情報を表すもので、プロセスが正しく動作しているかどうかの判断に役立ちます。

一般的なビジネス・インジケータの例は次のとおりです。

- 受注金額

- 製品在庫

- 経過時間

- 出荷ステータス

ビジネス・インジケータを使用すると、測定対象のインジケータの値をプロセスに格納したり、測定した値のグループ化に使用するカテゴリをプロセスに格納することができます。

ビジネス・インジケータは、格納する情報のタイプに応じて次のように定義できます。

- メジャー

- ディメンション

- カウンタ

ビジネス・インジケータのタイプによって、使用できるデータ型が決まります。表11-1に、各ビジネス・インジケータ・タイプに使用可能なデータ型を示します。

表11-1 ビジネス・インジケータ・タイプに使用可能なデータ型

ビジネス・インジケータ・タイプ

使用可能なデータ型

ディメンション

- 文字列

- ブール

- 時間

- 整数(範囲を使用)

- 実数(範囲を使用)

- 小数(範囲を使用)

メジャー

- 整数

- 実数

- 小数

カウンタ

- 整数

メジャー

メジャーは、測定できる主要パフォーマンス・インジケータの値を格納します。メジャーでは、連続型のデータ型のみが許可されます。メジャーは測定マークとともに使用する必要があります。営業見積プロセスにおいては、取引金額や割引率などがメジャーの例です。

ディメンション

ディメンションは、プロセス内のメジャー・ビジネス・インジケータの値のグループ化に使用できる主要パフォーマンス・インジケータの値を格納します。連続型のデータ値を使用してディメンションを定義する場合、少なくとも1つの範囲を追加する必要があります。データ値が連続型であれば、プロセス分析データベースには範囲値のみが格納されます。営業見積プロセスにおいては、取引範囲や業界タイプなどがディメンションの例です。

カウンタ

カウンタは、インスタンスが特定のアクティビティを完了した回数を追跡します。カウンタはカウンタ・マークとともに使用する必要があります。カウンタ変数の値は常に1で、実際の値は格納されません。インスタンスがアクティビティを完了した回数を示す値は、プロセス分析データベースで直接更新されます。カウンタ・ビジネス・インジケータの値を監視するには、そのカウンタ・ビジネス・インジケータを追跡するように構成されたカウンタ・マークに基づいて、ダッシュボードを作成する必要があります。カウンタの構成方法の詳細は、11.6項「プロセス内のアクティビティへのカウンタの追加」を参照してください。

11.4.1 ビジネス・インジケータをプロジェクトに追加する方法

ビジネス・インジケータを使用すると、プロジェクト内で測定する主要パフォーマンス・インジケータを定義できます。

ビジネス・インジケータをプロジェクトに追加するには:

1. BPMプロジェクト・ナビゲータで、プロジェクトから、編集するプロジェクト・データ・オブジェクトを含むプロセスを選択します。

2. 「構造」ウィンドウで、「ビジネス・インジケータ」を右クリックして「新規」を選択します。

3. 作成するビジネス・インジケータのタイプを選択します。
使用可能なオプションは、「カウンタ」、「ディメンション」、「メジャー」です。

「作成」ダイアログが表示されます。

4. ビジネス・インジケータを識別する名前を入力します。
名前の最大長は28文字です。

5. 「タイプ」リストからデータ型を選択します。

注意:

使用可能なデータ型は、選択したビジネス・インジケータのタイプによって異なります。表11-1に、各ビジネス・インジケータ・タイプに使用可能なデータ型を示します。

6. 連続データ型を選択し、ビジネス・インジケータ・タイプとして「ディメンション」を選択した場合は、少なくとも1つの範囲を追加してください。

7. オプションで、「自動初期化」を選択して、ビジネス・インジケータをデフォルト値で初期化します。
デフォルト値の詳細は、8.2.2項「デフォルト値」を参照してください。

8. 「OK」をクリックします。
「ビジネス・インジケータの作成」ダイアログが閉じ、作成したビジネス・インジケータが保存されます。

11.4.2 ビジネス・インジケータをプロセスに追加した後の結果

プロジェクトに追加したビジネス・インジケータを使用して、監視するプロセスに関するデータを格納できます。

一部のビジネス・インジケータでは、BPMNサービス・エンジンが値をプロセス分析データベースに格納するように指定する別のアーティファクトをプロセスに追加する必要があります。

- ディメンション
BPMNサービス・エンジンは自動的に、プロセスに定義されている事前定義済サンプリング・ポイントおよびカスタム・サンプリング・ポイントでデータをディメンション・ビジネス・インジケータに格納します。

- メジャー
事前定義済のメジャーは、サンプリング・ポイントを生成するように構成されているすべてのフロー要素で常に測定されます。

測定マークを追加してポイントを指定したり、BPMNサービス・エンジンがタイプ測定のカスタム・ビジネス・インジケータを測定および格納するプロセス・セクションを追加することができます。測定マークの追加方法の詳細は、11.5項「プロセスへの測定マークの追加」を参照してください。

- カウンタ
BPMNサービス・エンジンがカウンタ・ビジネス・ディメンションの値を格納するアクティビティにカウンタ・マークを追加する必要があります。カウンタ・マークの追加方法の詳細は、11.6項「プロセス内のアクティビティへのカウンタの追加」を参照してください。

11.5 プロセスへの測定マークの追加

測定マークを使用すると、プロセス内の特定の位置、またはプロセスの特定のセクションにおいて、タイプが測定のビジネス・インジケータを測定できます。

1つの測定マークを使用して、複数の測定ビジネス・インジケータを測定できます。

測定マークによって、プロセス分析データベースに次のデータが保存されます。

- プロセスのデフォルト測定の値

- その測定マークに関連付けられている測定ビジネス・インジケータの値

- プロセスに定義されているディメンションの値

BPMNサービス・エンジンでは、測定ビジネス・インジケータの値が保存されるときに、プロセスに定義されたディメンションの値も保存されます。後でプロセスを監視するためにダッシュボードを構築するときに、これらのディメンションを使用して値を様々なカテゴリにグループ化できます。たとえば、営業見積プロセスでは、承認済見積金額の合計を地域ごとに表示できます。

定義できる測定マークのタイプは次のとおりです。

- 単一測定

- 間隔の開始

- 間隔の停止

測定マークは、フロー要素に関連付けらます。タイプが間隔の開始である測定マークは、それに先行するフロー要素の実行前に、ビジネス・インジケータの値を追跡します。カウンタ・マーク、タイプが間隔の停止である測定マーク、および単一測定マークは、それに先行するフロー要素の実行後にビジネス・インジケータの値を追跡します。

単一測定

プロセス内にメジャー・ビジネス・インジケータを定義した場合は、プロセス内のこれらのビジネス・インジケータの測定ポイントに単一測定マークを追加する必要があります。単一測定マークは、BPMNサービス・エンジンがプロセス内のそのポイントで、その測定マークに関連付けられているメジャー・ビジネス・インジケータの値を格納する必要があることを示すものです。またBPMNサービス・エンジンは、デフォルトのプロセス・メジャーの値およびディメンション・ビジネス・インジケータもプロセス内のこのポイントで格納します。

図11-2 単一測定マーク

「図11-2 単一測定マーク」の説明

「間隔の開始」と「間隔の停止」

プロセスのセクション内でビジネス・インジケータを測定する場合は、「間隔の開始」測定マークを使用してセクションの開始を指定し、「間隔の停止」測定マークを使用してセクションの終了を指定する必要があります。これらの測定マークを使用すると、デフォルトのビジネス・インジケータや、プロセスのセクション内に定義したビジネス・インジケータを測定できます。一般に、これらの測定マークは、プロセスの中のクリティカルなセクションを監視するために使用します。たとえば、ボトルネックとして特定したプロセス部分の中のインスタンス量を監視する場合などです。

図11-3 「間隔の開始」および「間隔の停止」測定マーク

「図11-3 「間隔の開始」および「間隔の停止」測定マーク」の説明

11.5.1 単一測定マークをプロセスに追加する方法

単一測定マークを使用して、プロセス内の特定ポイントでビジネス・インジケータを測定できます。

単一測定マークをプロセスに追加するには:

1. BPMNプロセスを開きます。

2. コンポーネント・パレットで、「アーティファクト」セクションを展開し、「測定」を選択します。

3. ビジネス・インジケータを測定するシーケンス・フロー付近まで測定マークをドラッグします。シーケンス・フローが青色になったら、測定マークをドロップします。

4. 測定マークを右クリックして、「プロパティ」を選択します。

5. 「単一測定」を選択します。

6. 「名前」テキスト・フィールドに、測定マークを識別するための名前を入力します。

7. 「ビジネス・インジケータ」セクションで、「使用可能」リストからビジネス・インジケータを選択し、2つのリストの間にある矢印を使用して「選択済」リストに移動します。
図11-4は「測定マーク・プロパティ」ダイアログを示しています。

注意:

1つの測定マークで複数のビジネス・インジケータを測定できます。

注意:

ビジネス・インジケータを選択しない場合、Oracle BPM Studioで警告メッセージが表示されます。「測定マーク・プロパティ」ダイアログを開いた状態でビジネス・インジケータを追加するには、「選択済」リストの下にある「新規」ボタンをクリックします。

8. 「OK」をクリックします。

図11-4 「測定マーク・プロパティ」ダイアログ

「図11-4 「測定マーク・プロパティ」ダイアログ」の説明

11.5.2 単一測定をプロセスに追加した後の結果

BPMNサービス・エンジンは、単一測定マークの実行時に次のビジネス・インジケータの現在の値をプロセス分析データベースに格納します。

- 測定マークに関連付けられているビジネス・インジケータ

- デフォルトの測定

- プロセスに定義されているディメンション

11.5.3 測定マークを使用してプロセス・セクション内でビジネス・インジケータを測定する方法

測定マークを使用して、特定のビジネス・インジケータを測定するプロセス内のセクションを定義できます。

注意:

1つの間隔の開始の測定マークに対して1つの間隔の停止の測定マークを定義する必要があるだけです。間隔の停止の測定マークを複数定義することはサポートされておらず、予期しない動作が発生する可能性があります。

プロセス・セクション内でビジネス・インジケータを測定するには:

1. BPMNプロセスを開きます。

2. コンポーネント・パレットで、「アーティファクト」セクションを展開し、「測定」を選択します。

3. プロセスのセクションを開始するシーケンス・フロー付近まで測定マークをドラッグします。シーケンス・フローが青色になったら、測定マークをドロップします。

4. 測定マークを右クリックして、「プロパティ」を選択します。

5. 「間隔の開始」を選択します。

6. 「名前」テキスト・フィールドに、測定マークを識別するための名前を入力します。

7. 「ビジネス・インジケータ」セクションで、「使用可能」リストからビジネス・インジケータを選択し、2つのリストの間にある矢印を使用して「選択済」リストに移動します。

注意:

1つの測定マークで複数のビジネス・インジケータを測定できます。

注意:

ビジネス・インジケータを選択しない場合、Oracle BPM Studioで警告メッセージが表示されます。「測定マーク・プロパティ」ダイアログを開いた状態でビジネス・インジケータを追加するには、「選択済」リストの下にある「新規」ボタンをクリックします。

8. 「OK」をクリックします。

9. コンポーネント・パレットで、「アーティファクト」セクションを展開し、「測定」を選択します。

10. プロセスのセクションを終了するシーケンス・フロー付近まで測定マークをドラッグします。シーケンス・フローが青色になったら、測定マークをドロップします。

11. 測定マークを右クリックして、「プロパティ」を選択します。

12. 「間隔の停止」を選択します。
「測定の開始」リストが「名前」テキスト・フィールドを置き換えます。

13. 「測定の開始」リストから、プロセスのセクションの開始位置を示す測定マークを選択します。

14. 「OK」をクリックします。

11.5.4 測定マークを使用してプロセス・セクション内でビジネス・インジケータを測定した結果

BPMNサービス・エンジンにより、測定マークのペアに関連付けられているメジャー・ビジネス・インジケータの値がプロセス分析データベースに格納されます。また、ディメンションの値およびそのプロセス・セクションのデフォルト・メジャーも格納されます。平均値が含まれるデフォルト・メジャーは、そのプロセス・セクションの平均値の情報を提供します。

11.6 プロセス内のアクティビティへのカウンタの追加

カウンタ・マークを使用すると、プロセスに定義されているカウンタ・ビジネス・インジケータの値を更新できます。

1つのカウンタ・マークにより、複数のカウンタ・マーク・ビジネス・インジケータを更新できます。

カウンタ・マークが定義されているアクティビティにトークンが到達すると、BPMサービス・エンジンは、プロセス分析データベース内でそれに関連付けられているカウンタの値を更新します。BPMサービス・エンジンは、カウンタ・ビジネス・インジケータを更新するたびに、1つのユニットを現在の値に追加します。

注意:

カウンタ変数の実際の値はプロセス分析データベースに格納されます。カウンタ変数のデフォルト値は変更されないため、プロセスでカウンタ変数を使用して計算を実行しないでください。カウンタ変数の値は常に1です。

通常、カウンタ・マークは次の目的で使用します。

- 監査: インスタンスが完了したアクティビティの数とその他のパフォーマンス測定を組み合せた情報は、プロセスを監査するために重要です。

- パフォーマンスの問題の識別: カウンタを使用して、プロセス内のパフォーマンスの問題を特定できます。インスタンスが予期したパスと異なるパスを経由しているか、アクティビティ内のループの実行時間が適正な時間を超えているために、プロセスの実行時間が予期した時間より長くなる場合があります。このような状況を特定するには、実際に完了したアクティビティの数と予期した数を比較します。

- インスタンスが経由するプロセス・パスの識別: 異なるカウンタ・ビジネス・インジケータを使用して、対応するパスをマークできます。インスタンスがプロセスの最後に到達したとき、インスタンスが経由したパスは、完了したアクティビティの最大数を示します。

通常は、監視対象のプロセス・パスごとに1つのカウンタ・ビジネス・インジケータを定義します。次に、そのプロセス・パスに含まれるすべてのアクティビティにカウンタ・マークを追加します。最後に、アクティビティが含まれるパスに対応するカウンタ・ビジネス・インジケータを、カウンタ・マークに関連付けます。

11.6.1 プロセス内のアクティビティにカウンタ・マークを追加する方法

カウンタ・マークをアクティビティに追加して、インスタンスがこのアクティビティを実行した回数を追跡できます。

プロセス内のアクティビティにカウンタを追加するには:

1. カウンタ・タイプのビジネス・インジケータをプロセスに追加します。
ビジネス・インジケータの追加方法の詳細は、11.4項「プロジェクトへのビジネス・インジケータの追加」を参照してください。

2. BPMNプロセスを開きます。

3. カウンタを追加するアクティビティを右クリックします。

4. 「使用可能」リストで、データを格納するカウンタ・ビジネス・インジケータを選択します。2つのリストの間にある矢印を使用して、「選択済」リストに移動します。
同じカウンタ・マークに複数のカウンタ・ビジネス・インジケータを追加できます。

5. 「OK」をクリックします。

11.6.2 プロセス内のアクティビティにカウンタ・マークを追加した後の結果

BPMNサービス・エンジンは、カウンタ・マークを含むアクティビティを実行するたびに、プロセス分析データベース内のそのカウンタ・マークに関連付けられているカウンタ・ビジネス・インジケータの値を1ずつ増やします。

11.6.3 カウンタ・マークを削除する方法

使用しないカウンタ・マークや不要なカウンタ・マークは削除できます。

カウンタ・マークを削除するには:

1. カウンタ・マークを含むBPMNプロセスを開きます。

2. カウンタ・マークを含むアクティビティを右クリックします。

3. 「カウンタ・マークの削除」を選択します。

11.6.4 カウンタ・マークを削除した後の結果

カウンタ・マークを削除した後は、アクティビティを右クリックしても、「カウンタ・マークの削除」オプションは表示されなくなります。かわりに、「新規カウンタ・マーク」オプションが表示されます。

カウンタ・マークを削除したため、インスタンスがそのアクティビティを通過するとき、BPMNサービス・エンジンはプロセス分析データベース内のカウンタ・ビジネス・インジケータの値を増やしません。

11.7 分析ビュー識別子の定義

分析ビュー識別子は、プロセスの既存のすべてのバージョンのデータを提供するプロセス分析ビューを識別します。この識別子は、デプロイされたすべてのプロセスで一意である必要があります。複数のプロセスに対して同じ識別子を使用すると、プロセスのデプロイメントが失敗します。

11.7.1 分析ビュー識別子の定義方法

プロセスの既存のバージョンすべてで使用する分析ビュー識別子を定義できます。

分析ビュー識別子を定義するには:

1. BPMプロジェクト・ナビゲータで、ビジネス・プロセスを右クリックします。

2. 「プロパティ」を選択します。

3. 「分析ビュー識別子」フィールドに、ビュー識別子を入力します。

11.8 プロジェクト内でのキューブ生成の構成

Oracle BPMには、プロセスのアクティビティの監視に使用できる事前定義済キューブ・セットが備わっています。これらの事前定義済プロセス・キューブは、デフォルトで有効になっています。

キューブが有効になっている場合、BPMNサービス・エンジンは、プロジェクト内のプロセスを実行するときにキューブにデータを移入します。これにより、プロセス・ワークスペース・アプリケーションにより提供されたダッシュボードを使用して、これらのキューブに格納されているデータを表示できます。プロセス・ワークスペースでダッシュボードを構築および表示する方法の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド』を参照してください。

11.8.1 BPMプロセス・キューブ

プロセス・キューブを使用すると、プロセス・アナリストは様々なパースペクティブからプロセス・メトリックを分析できます。パースペクティブは、プロセスを定義するときに定義します。メジャーは、ディメンションにより分類できる数値ファクトです。たとえば、営業見積サンプル・プロセスにおいては、製品のディメンションと取引金額のメジャーを定義して、製品別の取引金額を分析する必要があります。

BPMプロセス・キューブでは、次のディメンションがサポートされています。

- アクティビティ

- プロセス

- 参加者

また、次のメジャーもサポートされています。

- 特定のプロセスの完了時間

- 特定のアクティビティの完了時間

- 参加者によるタスクの数

プロセス・キューブにより、アクティビティに関連するデータはタスク・パフォーマンス(BPM_CUBE_TASKPERFORMANCE)表および「ワークロード」(BPM_CUBE_WORKLOAD)表に格納されます。プロセスに関連するデータは「プロセス・パフォーマンス」(BPM_CUBE_PROCESSPERFORMANCE)表および「ワークロード」(BPM_CUBE_WORKLOAD)表に格納されます。

「ワークロード」表には、現在アクティブになっているアクティビティ・インスタンスおよびプロセス・インスタンスに関連するデータが含まれます。タスク・パフォーマンス表には完了したアクティビティに関連するデータが、「プロセス・パフォーマンス」表には完了したプロセスに関連するデータが含まれます。

アクティビティまたはタスクが完了すると、タスクおよびプロセスのパフォーマンスのデータが計算されて永続化されます。ワークロードのデータは、cubeUpdateFrequencyプロパティの構成に基づいてタイマーを使用して計算されて永続化されます。cubeUpdateFrequencyの値は、Enterprise Managerを使用して指定できます。

即時利用可能なサンプリング・ポイントに対しては、すべてのディメンションおよびメジャーが格納されます。ユーザー定義のサンプリング・ポイントに対しては、選択したディメンション、メジャーおよびカウンタが格納されます。

11.8.2 プロジェクト内でBPMプロセス・キューブ生成を構成する方法

BPMプロセス・キューブを使用してプロジェクトのパフォーマンスを監視する場合は、開発時にプロセス・キューブの生成を有効にする必要があります。アプリケーションをデプロイすると、Oracle BPMによりこの構成を使用してBPMプロセス・キューブが有効化されます。

プロジェクト内でBPMプロセス・キューブを有効にするには:

1. BPMプロジェクト・ナビゲータで、プロジェクトを右クリックします。

2. 「プロジェクト・プリファレンス」を選択します。

3. 「カテゴリ」ツリーで「プロセス分析サマリー」を選択します。

4. プロセス分析サマリー」セクションで、「データ・ターゲット」タブをクリックします。

5. キューブ生成を有効にする場合は、「キューブの有効化」を選択します。有効にしない場合は選択しません。

6. 「OK」をクリックします。

11.8.3 プロジェクト内でBPMプロセス・キューブを有効にした後の結果

BPMNサービス・エンジンは、アクティビティを実行するたび、またはプロセスを完了するたびに、事前定義済のキューブにデータを移入します。また、ユーザーにより定義されたサンプリング・ポイント構成を使用してキューブにデータを移入します。サンプリング・ポイントを生成しないようにプロセスを構成した場合、BPMNサービス・エンジンは事前定義済キューブにこの情報を格納しません。

11.9 プロジェクト内でのOracle BAMの有効化

Oracle BAMを使用すると、Oracle BPMの使用中にOracle BAMの機能を活用できるため、プロジェクト内のプロセスのアクティビティを監視できます。

Oracle BAMで事前定義済のキューブを使用することも、事前定義済のキューブを無効にするように選択することもできます。

Oracle BAMの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の第X部「Oracle Business Activity Monitoringの使用」を参照してください。

11.9.1 プロジェクト内でOracle BAMを有効化する方法

プロジェクト内でOracle BAMを有効化する前に、Oracle BAMを適切に構成する必要があります。Oracle BAMをOracle BPMと連携動作するように構成する方法は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』の「Oracle BPMNプロセス・サービス・コンポーネントおよびエンジンの構成」を参照してください。

BPMプロジェクトをデプロイすると、Oracle BAMはそのBPMプロジェクトに対してカスタムBAMデータ・オブジェクトと事前定義済BAMデータ・オブジェクトを自動的に作成します。

プロジェクト内でOracle BAMを有効にするには:

1. BPMプロジェクト・ナビゲータで、プロジェクトを右クリックします。

2. 「プロジェクト・プリファレンス」を選択します。

3. 「カテゴリ」ツリーで「プロセス分析サマリー」を選択します。

4. プロセス分析サマリー」セクションで、「データ・ターゲット」タブをクリックします。

5. 「BAMの有効化」を選択します。

6. JNDI名BAMアダプタ・リストから、BAMアダプタの名前を選択します。
BAMアダプタにはeis/bam/soapというラベルが付いています。JNDI名は、BAMアダプタが使用する接続プールを指定します。

7. BAMアダプタによりリクエストをバッチ処理する場合は、「バッチ内」を選択する必要があります。

8. 「データ・オブジェクト・パス」テキスト・フィールドに、インストール済のBAMデータ・オブジェクトのパスを入力します。
デフォルトのパスは、/Samples/Monitor Expressです。

9. 「OK」をクリックします。

11.9.2 Oracle BAMを有効化した後の結果

Oracle BAMが有効になっているプロセスを実行すると、BPMNサービス・エンジンにより、そのプロセス内で測定されたビジネス・インジケータの情報がOracle BAMデータベースに移入されます。この情報は、プロジェクト内に定義した「サンプリング・ポイント」プリファレンスに基づいて生成されます。

詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のMonitor Expressデータ・オブジェクトの前提知識に関する項を参照してください。

第V部

ビジネス・コンポーネントの使用

この部では、ビジネス・カタログの全般的な概略を示します。また、ビジネス・カタログに格納できる各コンポーネントについても詳しく説明します。

この部の内容は次のとおりです。

- 第12章「ビジネス・カタログの使用」

- 第13章「ビジネス・オブジェクトのモデリング」

- 第14章「ヒューマン・タスクの使用」

- 第15章「サービスおよび参照の使用」

- 第16章「ビジネス・ルールの使用」

- 第17章「通知の送信」

- 第18章「BPMプロジェクトを使用したSOAコンポジットの使用」

12 ビジネス・カタログの使用

この章では、ビジネス・カタログを使用して、BPMプロジェクトにプロセスを実装するために必要なコンポーネントを格納および編成する方法について説明します。また、BPMプロジェクトのアーティファクトがビジネス・カタログでどのように表されるのかについても説明します。

この章の内容は次のとおりです。

- 12.1項「ビジネス・カタログの概要」

- 12.2項「新規モジュールの追加」

- 12.3項「モジュールの削除」

- 12.4項「合成タイプのカスタマイズ」

12.1 ビジネス・カタログの概要

ビジネス・カタログは、BPMNプロセスへのフロー・オブジェクトの実装に使用するコンポーネントが格納されるリポジトリです。

ビジネス・カタログには、次のタイプのコンポーネントが格納されます。

- エラー

- イベント

- ヒューマン・タスク

- ビジネス・ルール

- サービス・アダプタ

- 合成タイプ

- BPELプロセスおよびメディエータ

- ビジネス・オブジェクト

- ビジネス例外

コンポーネントによっては、特定のアクティビティや複数のフロー・オブジェクトを実装したり、フロー・オブジェクトのデータ・アソシエーションを定義する目的で使用できます。

表12-1は、フロー・オブジェクトの実装でフロー・オブジェクトにより使用されるビジネス・カタログ内のコンポーネントを示しています。

表12-1 フロー・オブジェクトの実装

コンポーネント

フロー・オブジェクト

エラー

- エラー開始イベント

- エラー・スロー・イベント

- エラー・キャッチ・イベント

- エラー終了イベント

ビジネス例外

- エラー開始イベント

- エラー・スロー・イベント

- エラー・キャッチ・イベント

- エラー終了イベント

イベント

- シグナル開始イベント

- シグナル・スロー・イベント

- シグナル終了イベント

ヒューマン・タスク

ユーザー・タスク

ビジネス・ルール

ビジネス・ルール・タスク

サービス・アダプタ

- サービス・タスク

- メッセージ・スロー・イベント

- メッセージ・キャッチ・イベント

- メッセージ終了イベント

- 送信タスクおよび受信タスク

メディエータ

- サービス・タスク

- メッセージ・スロー・イベント

- メッセージ・キャッチ・イベント

- メッセージ終了イベント

- 送信タスクおよび受信タスク

BPELプロセス

- サービス・タスク

- メッセージ・スロー・イベント

- メッセージ・キャッチ・イベント

- メッセージ終了イベント

- 送信タスクおよび受信タスク

ビジネス・オブジェクト

ビジネス・オブジェクトは、次のタスクまたはイベントのデータ・アソシエーション内で引数として使用できます。

- サービス・タスク

- ユーザー・タスク

- ビジネス・ルール・タスク

- メッセージ・スロー・イベント

- メッセージ・キャッチ・イベント

- メッセージ終了イベント

- 送信タスクおよび受信タスク

ビジネス・カタログでは、コンポーネントのタイプに応じて、2種類の方法でコンポーネントが格納されます。コンポーネントは、ビジネス・カタログでの格納方法によって次のカテゴリに分類できます。

- 非合成コンポーネント

- 合成コンポーネント

12.1.1 非合成コンポーネント

ビジネス・カタログによって、これらのコンポーネントの情報とともにファイルが格納されます。BPMプロジェクトを開くと、ビジネス・カタログにより作成されたファイルが、コンポーネントをロードするために読み取られます。

次のコンポーネントは合成されません。

- ビジネス・オブジェクト

- 例外

- モジュール

- カスタマイズされたサービスおよび参照

12.1.2 合成コンポーネント

ビジネス・カタログによって、SOAコンポジットに含まれるSOAコンポーネントやXMLタイプまたは要素に基づいて、コンポーネント構造が動的に生成されます。これらのコンポーネントは変更できません。コンポーネントは、そのタイプに応じて異なる事前定義済モジュールに含められます。コンポーネントを別のモジュールに移動することはできません。コンポーネントを変更する場合や、別のモジュールに格納する場合は、サービスまたはタイプをカスタマイズする必要があります。

ビジネス・カタログは、合成コンポーネントに対してはいずれのファイル・タイプも格納しません。合成コンポーネントの構造は、その合成コンポーネントが表すXMLコンポーネントまたはSOAコンポーネントに基づいて動的に生成されます。

合成コンポーネントを変更したり、別のモジュールに移動することはできません。これらのコンポーネントは動的に生成されるため、その基になっているXMLスキーマまたはSOAコンポーネントに行った変更は自動的に合成コンポーネントに反映されます。

次のコンポーネントは合成されます。

- 合成タイプ

- ビジネス・ルール

- ヒューマン・タスク

- BPELプロセス

- メディエータ

12.1.3 ビジネス・カタログへのコンポーネントの追加

コンポーネントをビジネス・カタログに追加する方法は、コンポーネントのタイプによって異なります。

- エラー: サービスまたは参照をBPMNプロジェクトに追加すると、その中の操作にエラーを生成する機能があれば、これらのエラーは「エラー」事前定義済モジュール内に表示されます。

- イベント: イベントをSOAコンポジットに追加すると、それらのイベントは「イベント」事前定義済モジュール内に表示されます。BPMプロジェクトでのイベントの使用方法の詳細は、22.10項「シグナル・イベントを使用したプロセス間の通信の概要」を参照してください。

- ヒューマン・タスク: SOAコンポジットに含まれている既存のヒューマン・タスクおよび新しく追加したヒューマン・タスクは、自動的に「HumanTask」事前定義済モジュール内のコンポーネントとして表示されます。このコンポーネントは、追加したヒューマン・タスクから生成されます。詳細は、第14章「ヒューマン・タスクの使用」を参照してください。

- ビジネス・ルール: SOAコンポジットに含まれている既存のビジネス・ルールおよび新しく追加したビジネス・ルールは、自動的に「BusinessRule」事前定義済モジュール内のコンポーネントとして表示されます。このコンポーネントは、追加したビジネス・ルールから生成されます。詳細は、第16章「ビジネス・ルールの使用」を参照してください。

- サービス・アダプタ: SOAコンポジット内の既存のサービス・アダプタおよび新しく追加したサービス・アダプタは、「サービス」および「参照」事前定義済モジュール内に表示されます。詳細は、第15章「サービスおよび参照の使用」を参照してください。

- BPELプロセスおよびメディエータ: SOAコンポジットに含まれているBPELプロセスとメディエータおよび新しく追加したBPELプロセスとメディエータは、自動的に「サービス」および「参照」事前定義済モジュール内のコンポーネントとして表示されます。詳細は、15.3項「Oracle BPMでのOracle Mediatorの概要」および15.4項「Oracle BPMでのBPELプロセスの概要」を参照してください。

- 合成タイプ: 1つ以上の引数を必要とするサービスまたは参照を追加すると、「タイプ」事前定義済モジュール内にそれらの引数のデータ型が存在していなければ、Studioによって自動的に追加されます。詳細は、15.1項「サービスおよび参照の概要」を参照してください。合成タイプをカスタマイズして、名前を変更したり、ユーザー定義モジュールに移動することができます。合成タイプのカスタマイズ方法の詳細は、12.4項「合成タイプのカスタマイズ」を参照してください。

- ビジネス・オブジェクト: ビジネス・オブジェクトをビジネス・カタログに追加する方法は何通りかあります。詳細は、第13章「ビジネス・オブジェクトのモデリング」を参照してください。

注意:

欠落または破損しているリソースを参照するコンポーネントを追加すると、ビジネス・カタログには、この欠落している依存関係がエラー・ノードで示されます。ノードのラベルには、リソースのパスが表示されます。欠落しているリソースの詳細は、ノードにマウスを置いてツールチップを表示するか、BPMプロジェクトを構築してください。BPMプロジェクトを構築すると、欠落しているリソースを必要とするコンポーネントを検索できます。

12.1.4 モジュールを使用したビジネス・コンポーネントの編成

モジュールを使用して、ビジネス・カタログ内のビジネス・オブジェクトを別々のグループに編成できます。一般に、関連するコンポーネントはすべて1つのモジュールにまとめます。

営業見積サンプルでは、プロセスで使用される見積情報の管理に使用されるすべてのコンポーネントを格納するためのQuotesという名前のモジュールを作成できます。

複数のモジュールはネストできます。モジュールをネストすると、コンポーネントの構成を反映する階層構造を作成できます。

営業見積サンプルにおいては、プロジェクト内の情報を処理するすべてのモジュールを1つのモジュールにまとめることができます。このために、QuotesモジュールやContractsモジュールなどを含むDataという名前のモジュールを作成できます。

モジュールを使用してコンポーネントを編成すると、次のような利点があります。

- プロジェクトの可読性が向上します。モジュールには、モジュール内のコンポーネントの情報を示すような名前を付けることをお薦めします。

- 特定のコンポーネントを見つけやすくなります。

- 必要な場合、異なるモジュールに属する異なるコンポーネントを識別するために同じ名前を使用できます。

ビジネス・オブジェクトをビジネス・カタログのルート・レベルに追加することはできません。必ず、ビジネス・オブジェクトを格納できるモジュールを作成する必要があります。

モジュールの名前にはわかりやすい識別子を使用することをお薦めします。これにより、コンポーネントを見つけやすくなり、他の開発者がプロジェクトを理解しやすくなります。

12.1.4.1 事前定義済モジュール

ビジネス・カタログには、次の事前定義済モジュールが含まれています。

- エラー: プロジェクト内のサービスおよび参照での操作により定義されたエラーが格納されます。

- イベント: SOAコンポジットに追加したイベントが格納されます。

- HumanTask: プロジェクトに追加したヒューマン・タスクが格納されます。

- 参照: BPMNプロセスのインタフェースの定義に使用できるインタフェースが格納されます。

- ルール: プロジェクトに追加したビジネス・ルールが格納されます。

- サービス: BPMNプロセスにフロー・オブジェクトを実装するために使用できるコンポーネントが格納されます。

- タイプ: ビジネス・カタログ内に存在していないタイプの引数を必要とするサービスまたは参照を追加したときにStudioによって生成されるタイプが格納されます。

これらのモジュールはビジネス・カタログの永続的な部分であり、削除や名前の変更はできません。Studioでは、これらの名前を使用して新規の最上位レベルのモジュールを作成することはできません。

これらの事前定義済モジュール内に新規のモジュールを作成することはできません。事前定義済モジュールに格納されているコンポーネントは合成されるため、コンポーネントの名前を変更したり、他のモジュールに移動することはできません。

図12-1 カスタム・モジュールおよび事前定義済モジュール

「図12-1 カスタム・モジュールおよび事前定義済モジュール」の説明

12.2 新規モジュールの追加

ビジネス・カタログでは、新規のモジュールを作成して、プロジェクト内のビジネス・オブジェクトを格納および編成できます。モジュールは、ビジネス・カタログのルート・レベルに追加することも、別のモジュール内に追加することもできます。

12.2.1 新規のモジュールを追加する方法

新しく作成したコンポーネントとカスタマイズしたサービスおよび参照を格納するための新規モジュールを作成できます。

新規のモジュールを追加するには:

1. BPMプロジェクト・ナビゲータで、「ビジネス・カタログ」ノードまたはユーザー定義の既存のモジュールを右クリックします。

2. 「新規」を選択します。

3. 「モジュール」を選択します。

4. モジュールを識別する名前を入力します。

5. 「OK」をクリックします。

12.2.2 新規のモジュールを追加した後の結果

新規のモジュールがビジネス・カタログ内に表示されます。この新規モジュール内で、新規のビジネス・オブジェクト、ビジネス例外およびモジュールを作成できます。また、サービスおよび参照をカスタマイズすることもできます。

12.3 モジュールの削除

ビジネス・カタログ内のカスタム・モジュールは削除できます。事前定義済モジュールは削除できません。モジュールを削除すると、そのモジュール内のすべてのコンポーネントも削除されます。

12.3.1 モジュールを削除する方法

使用しないモジュールや不要なモジュールは削除できます。

モジュールを削除するには:

1. BPMプロジェクト・ナビゲータで、削除するモジュールを右クリックします。

2. 「削除」を選択します。
確認のメッセージが表示されます。

3. 「OK」をクリックします。

12.3.2 モジュールを削除した後の結果

モジュールを削除すると、モジュールおよびそのモジュール内のコンポーネントがビジネス・カタログから削除されます。

プロジェクト内に削除したコンポーネントを使用しているフロー・オブジェクトまたはコンポーネントがあると、BPMプロジェクトの構築時にエラーが発生します。

12.4 合成タイプのカスタマイズ

合成タイプをカスタマイズして、わかりやすい名前に変更すると、プロセス・アナリストおよびプロセス開発者がコンポーネントの用途を理解しやすくなります。タイプをカスタマイズする際は、カスタマイズしたタイプを格納するユーザー定義モジュールを入力する必要もあります。

12.4.1 合成タイプをカスタマイズする方法

合成タイプをカスタマイズして、名前を変更したり、ユーザー定義モジュールに移動することができます。

合成タイプをカスタマイズするには:

1. BPMプロジェクト・ナビゲータで、「タイプ」事前定義済モジュールを展開します。

2. カスタマイズするタイプを右クリックします。

3. 「タイプのカスタマイズ」を選択します。
ビジネス・オブジェクトの作成ダイアログが表示されます。

4. 「名前」フィールドに、カスタマイズしたタイプの名前を入力します。

5. 「宛先モジュール」フィールドに、カスタマイズしたタイプを格納するモジュールの名前を入力します。または、「参照」ボタンをクリックして使用可能なモジュールを参照し、モジュールを選択します。

6. 「OK」をクリックします。

12.4.2 合成タイプをカスタマイズした後の結果

「タイプ」事前定義済モジュールが消え、カスタマイズしたタイプに対して選択したモジュール内に新規のビジネス・オブジェクトが表示されます。

Oracle BPM Studioによって自動的に、合成タイプへのすべての参照が、カスタマイズしたタイプへの参照で置き換えられます。

カスタマイズしたタイプを削除すると、合成タイプが再び「タイプ」事前定義済モジュール内に表示されます。

13 ビジネス・オブジェクトのモデリング

この章では、BPMプロジェクトでビジネス・オブジェクトを使用する方法について説明します。ビジネス・オブジェクトを使用すると、プロセス内のデータを効率的に管理でき、既存のコンポーネントを再利用できます。また、プロセスの複雑さが軽減されるため、プロセスの管理が容易になります。

この章の内容は次のとおりです。

- 13.1項「ビジネス・オブジェクトの概要」

- 13.2項「ビジネス・オブジェクトの使用」

- 13.3項「プロセス内でのビジネス・オブジェクトの使用」

- 13.4項「XMLスキーマ要素またはタイプに基づくビジネス・オブジェクトの追加」

- 13.5項「ビジネス・オブジェクト属性の概要」

- 13.6項「ビジネス・オブジェクト属性の使用」

- 13.7項「ビジネス・オブジェクトの共有」

13.1 ビジネス・オブジェクトの概要

ビジネス・オブジェクトを使用すると、オブジェクト指向パラダイムを使用して、プロセスの一部であるビジネス・エンティティをモデリングおよび開発できます。

ビジネス・オブジェクトを使用すると、ビジネス・オブジェクトで表されるビジネス・エンティティに関連付けられたデータおよびビジネス動作をカプセル化することで、プロセス内のデータの管理を簡略化できます。

ビジネス・オブジェクトは、属性のセットとメソッドのセットで構成されます。属性は、モデリング対象のエンティティに関連するデータを格納します。メソッドはこれらの属性の値を操作したり、属性の値に基づいて計算を実行します。

通常、ビジネス・オブジェクトは実際のビジネスにおけるエンティティを表しますが、特定のエンティティに関連付けられていないビジネス・ロジックをカプセル化するためにビジネス・オブジェクトを使用することもできます。

通常、プロセスに多数のデータ・オブジェクトが含まれている場合、同じアイデンティティを示すデータ・オブジェクトどうしを1つのビジネス・オブジェクトにまとめることができます。たとえば、営業見積サンプルでは、次のデータを見積オブジェクト内にまとめることができます。

- 見積要約

- 見積要求ステータス

- 推奨割引

ビジネス・オブジェクトを使用して関連するデータのグループを管理する場合、複数のプロセス・データを、定義したビジネス・オブジェクトのタイプの単一データ・オブジェクトに置き換えて、プロセスの複雑さを大幅に軽減できます。また、他に13.1.2項「ビジネス・オブジェクトを使用したモデリングのメリット」で説明されているようなメリットもあります。

営業見積サンプルには、次のビジネス・エンティティがあります。

- 見積

- 使用許諾条項

- 製品項目

- 承認フロー

- 縮小

これらの各エンティティは、関連性の高いデータのセットをグループ化します。このデータは、ビジネス・オブジェクトの属性内で表現されます。属性によって、同じビジネス・エンティティを定義および説明します。これらの属性の値によって、ビジネス・オブジェクトの状態が定義されます。

BPMプロジェクト内で定義したビジネス・オブジェクトは、ビジネス・カタログ内のユーザー定義モジュールに格納されます。ビジネス・オブジェクトを開くと、そのエディタにビジネス・オブジェクトの説明およびそれを構成する属性が表示されます。

Oracle BPM Studioには、ビジネス・オブジェクトの構造を表示および編集するためのエディタが備わっています。エディタを使用すると、次のことができます。

- 説明の追加

- ドキュメントの追加

- 属性の追加、編集および削除。

- ネームスペース情報の表示

図13-1では、手動で作成した見積オブジェクトをビジネス・オブジェクト・エディタで編集しています。

図13-1 ビジネス・オブジェクト・エディタ

「図13-1 ビジネス・オブジェクト・エディタ」の説明

13.1.1 ビジネス・オブジェクトのタイプ

ビジネス・オブジェクトの特性と機能は、ビジネス・オブジェクトを作成した方法によって決まります。

ビジネス・オブジェクトの作成方法を次に示します。

- 手動での作成: ビジネス・オブジェクトは手動で構築できます。これには、ビジネス・オブジェクトを作成してから、属性とドキュメントを追加します。

- XMLスキーマ要素または複合タイプに基づいて作成: 生成されるビジネス・オブジェクトには、選択したスキーマ要素または複合タイプにマッピングされた1つ以上の属性が含まれます。これらの属性は削除できませんが、新規の属性を追加することはできます。

- 「タイプ」内の合成型をカスタマイズする方法: サービスまたは参照を追加すると、引数として必要なタイプがビジネス・カタログによって「タイプ」事前定義済モジュールに追加されますが、そのタイプをカスタマイズできます。タイプをカスタマイズする際は、ユーザー定義モジュールへのタイプの格納、名前の変更、およびタイプへの属性の追加が可能です。

13.1.2 ビジネス・オブジェクトを使用したモデリングのメリット

ビジネス・オブジェクトを使用してプロセス内のデータを管理すると、次のようなメリットがあります。

- プロセスの簡略化: ビジネス・オブジェクトを使用すると、プロセス内のプロセス・データ・オブジェクトが少なくなります。このため、プロセスが簡略化され、可読性が向上します。

- 結合の減少: プロセス内のデータ・オブジェクトの数が少ないほど、それを構成するサブプロセスおよびアクティビティに必要なパラメータも少なくなります。

- 再利用: 同じプロジェクトに属していない他のプロセス内の特定のプロセスに定義したビジネス・オブジェクトを使用できます。ビジネス・オブジェクトの再利用により、プロジェクトの開発時間を大幅に短縮できます。

- 容易な管理: ビジネス・オブジェクトを更新したり、そのバグを修正すると、このビジネス・オブジェクトを使用しているすべてのプロセスに変更が反映されます。

- パラレルな開発: プロセス内のビジネス・オブジェクトの特定のインタフェースについて合意した後、チームの一部のメンバーがそれらのビジネス・オブジェクトを開発する一方で、他のメンバーがプロセスを開発することができます。

- ユニット・テスト: プロセス内の各ビジネス・オブジェクトを個別にテストできます。ユニット・テストを行うと、テスト・ケースの複雑さを軽減し、プロジェクトの質を大幅に向上させることができます。

13.1.3 ビジネス・オブジェクトのネーミング規則

ビジネス・オブジェクトに名前を付ける際には、次のルールに従う必要があります。

- 1つ以上の名詞、または形容詞で修飾された名詞を使用します。

- 名前の最初の文字を数字にすることはできません。

- 大文字は内部の単語を区別する目的のみで使用します。

- 常に簡単でわかりやすい名前を使用します。

- 単語全部を使用します。省略語は、広く認知されている場合を除いて使用しないようにします。

注意:

Oracle BPM Studioでは、ビジネス・オブジェクトの名前の最初の文字を大文字にする必要があります。

13.2 ビジネス・オブジェクトの使用

ビジネス・オブジェクトをBPMプロジェクトに追加して、プロジェクト内のプロセスに関連するデータを格納できます。追加したビジネス・オブジェクトは、ビジネス・カタログに格納されます。ビジネス・カタログの詳細は、第12章「ビジネス・カタログの使用」を参照してください。

ビジネス・オブジェクトの開発時には、ビジネス・オブジェクトを変更、名前変更または削除できます。また、ビジネス・オブジェクトの機能がわかるドキュメントや、その使用方法を説明するドキュメントを追加することもできます。

13.2.1 ビジネス・オブジェクトを追加する方法

ビジネス・オブジェクトをビジネス・カタログに追加して、BPMNプロセスにデータを格納するためのビジネス・エンティティをモデリングできます。

ビジネス・オブジェクトを追加するには:

1. ビジネス・カタログ内のユーザー定義モジュールを右クリックします。

2. 「新規」、「ビジネス・オブジェクト」の順に選択します。

3. 新規のビジネス・オブジェクトを識別する名前を入力します。

注意:

同じモジュール内で1つの名前を繰り返すことはできません。ただし、別のモジュール内のビジネス・オブジェクトに同じ名前を割り当てることはできます。

4. 「OK」をクリックします。

13.2.2 ビジネス・オブジェクトを追加した後の結果

ビジネス・オブジェクトがビジネス・カタログ内に生成されます。このビジネス・オブジェクトを使用して、BPMNプロセス内に次の要素のタイプを定義できます。

- データ・アソシエーション内の引数

- プロセス・データ・オブジェクト

- プロジェクト・データ・オブジェクト

13.2.3 ビジネス・オブジェクトを変更する方法

既存のビジネス・オブジェクトは、次の方法で変更できます。

- 属性の追加
13.6.1項「ビジネス・オブジェクト属性を追加する方法」を参照してください。

- 属性の削除
13.6.2項「ビジネス・オブジェクト属性を削除する方法」を参照してください。

- ドキュメントの追加
13.6.3項「ビジネス・オブジェクト属性をドキュメント化する方法」を参照してください。

13.2.4 ビジネス・オブジェクトを削除する方法

使用しないビジネス・オブジェクトや不要なビジネス・オブジェクトは削除できます。削除したビジネス・オブジェクトを使用するフロー・オブジェクトまたはデータ・アソシエーションがプロジェクトに含まれる場合は、手動でそれらを削除する必要があります。

ビジネス・オブジェクトを削除するには:

1. BPMプロジェクト・ナビゲータで、削除するビジネス・オブジェクトを右クリックします。

2. 「削除」を選択します。
確認のメッセージが表示されます。

3. 「OK」をクリックします。

13.2.5 ビジネス・オブジェクトを削除した後の結果

Oracle BPM Studioによって、ビジネス・オブジェクトがビジネス・カタログから削除されます。削除したビジネス・オブジェクトを使用しているフロー・オブジェクトがプロセス内にある場合、これらの参照を手動で削除する必要があります。

13.2.6 ビジネス・オブジェクトをドキュメント化する方法

ビジネス・オブジェクトの機能やデータ構造が他のプロセス開発者にわかるように、ドキュメントをビジネス・オブジェクトに追加できます。

ビジネス・オブジェクトをドキュメント化するには:

1. ビジネス・オブジェクトを編集します。

2. ビジネス・オブジェクト・エディタで、「ドキュメント」フィールドの隣の「編集」ボタンをクリックします。

3. ビジネス・オブジェクトのドキュメントを追加します。
ドキュメントを作成および編集する方法の詳細は、5.6.1項「ドキュメント・エディタの概要」を参照してください。

4. 「閉じる」をクリックします。

13.2.7 ビジネス・オブジェクトをドキュメント化した後の結果

他のプロセス開発者がドキュメントを読取りおよび変更できるようになります。

13.3 プロセス内でのビジネス・オブジェクトの使用

プロセスに関連するデータを格納するためにビジネス・オブジェクトを使用できます。プロジェクト内でビジネス・オブジェクトを使用するには、データ・オブジェクトをプロセスに追加し、そのタイプを作成済のビジネス・オブジェクトに設定します。このデータ・オブジェクト内の情報は、プロセス内のいずれのアクティビティからでも更新できます。

13.3.1 プロセス内でのビジネス・オブジェクトの使用方法

ビジネス・オブジェクトを使用してデータ・オブジェクトのタイプを定義する複合データ・オブジェクトをプロセス内に作成できます。

プロセス内でビジネス・オブジェクトを使用するには:

1. プロセス・データ・オブジェクトをプロセスに追加します。データ・オブジェクトのタイプとしてビジネス・オブジェクトを使用します。
プロセス・データ・オブジェクトを追加する方法の詳細は、8.3.1項「プロセス・データ・オブジェクトを追加する方法」を参照してください。

注意:

データ・オブジェクトのタイプを選択する際は、「その他のタイプを参照します。」ボタンを使用して、完全なタイプ・リストを表示します。次に「<Component>」を選択して、使用可能なビジネス・オブジェクトのリストを表示します。

2. スクリプト・タスクまたはデータ・アソシエーションを使用して、プロセス内のデータ・オブジェクトの値を初期化します。

13.3.2 プロセス内でビジネス・オブジェクトを使用した後の結果

定義したデータ・オブジェクトの構造は、ビジネス・オブジェクトで定義されている構造になります。データ・オブジェクトのタイプは、ビジネス・オブジェクトの名前になります。たとえば、SalesQuoteというビジネス・オブジェクトを定義し、このビジネス・オブジェクトをタイプとして使用するデータ・オブジェクトを作成した場合、データ・オブジェクトのタイプはSalesQuoteになります。

データ・アソシエーションおよびスクリプト・タスクを使用して、これらのタイプを使用するデータ・オブジェクトに値を割り当てることができます。

13.4 XMLスキーマ要素またはタイプに基づくビジネス・オブジェクトの追加

ビジネス・オブジェクトはXMLスキーマ要素または複合タイプに基づいて作成できます。ビジネス・オブジェクトの作成に使用するXMLスキーマ要素または複合タイプは、BPMプロジェクトの一部である必要があります。要素を含むXMLスキーマや複合タイプはプロジェクトに追加できます。あるいは、WSDLファイル内にインラインで定義されているタイプを使用することもできます。後者の場合、Webサービス・タイプのSOAアダプタを追加することにより、WSDLファイルをプロジェクトに追加する必要があります。

XMLスキーマ要素を使用してビジネス・オブジェクトを作成すると、選択した要素が結果のビジネス・オブジェクトの属性になります。

XMLスキーマ要素を使用してビジネス・オブジェクトを作成すると、選択した要素が結果のビジネス・オブジェクトの属性になります。

WSDLファイルに含まれるスキーマに基づいてビジネス・オブジェクトを作成した場合、結果のビジネス・オブジェクトを別のビジネス・オブジェクトの属性のタイプとして使用することはできません。

13.4.1 XMLスキーマ要素またはタイプに基づいてビジネス・オブジェクトを追加する方法

この手順を実行する前に、ビジネス・カタログにビジネス・オブジェクトのベースとして使用するXMLスキーマが含まれていることを確認してください。

XMLスキーマまたは複合タイプに基づいてビジネス・オブジェクトを追加するには:

1. ユーザー定義モジュールを右クリックします。

2. 「新規」、「ビジネス・オブジェクト」の順に選択します。
ビジネス・オブジェクトの作成ダイアログが表示されます。

3. 新規のビジネス・オブジェクトを識別する名前を入力します。

4. 「外部タイプに基づく」を選択します。

5. 外部タイプ・フィールドの隣にある「参照」ボタンをクリックするか、13.4.3項「XMLスキーマをBPMプロジェクトに追加する方法」で説明されている手順に従って新規のXMLスキーマを追加します。

6. 作成する新規ビジネス・オブジェクトの基となる外部タイプを選択します。

13.4.2 XMLスキーマ要素またはタイプに基づいてビジネス・オブジェクトを作成した後の結果

ビジネス・オブジェクトを変更したり、ビジネス・オブジェクトに属性を追加することはできません。ビジネス・オブジェクトの構造は、XMLスキーマ要素またはタイプの構造に基づいています。

13.4.3 XMLスキーマをBPMプロジェクトに追加する方法

ビジネス・オブジェクトの作成ダイアログから、XMLスキーマをプロジェクトに追加できます。

XMLスキーマをBPMプロジェクトに追加するには:

1. ビジネス・オブジェクトの作成ダイアログで、「スキーマ・ブラウザ」ボタンをクリックします。
「タイプ・チューザ」ダイアログが表示されます。

2. 右上隅の「スキーマ・ファイルのインポート」ボタンをクリックします。
「スキーマ・ファイルのインポート」ダイアログが表示されます。

3. 「URL」フィールドの隣の「リソースの参照」ボタンをクリックします。
SOAリソース・ブラウザが表示されます。

4. ファイル・システムを参照し、スキーマ・ファイルを選択します。

5. 「プロジェクトにコピー」を選択します。

6. 「OK」をクリックします。
XMLスキーマに他のタイプへの参照が含まれている場合、そのインポートを確認するためのダイアログが表示されます。

「リソースの参照」ダイアログが閉じ、「タイプ・チューザ」ダイアログが表示されます。

7. ビジネス・オブジェクトのベースとして使用する要素を選択します。

13.4.4 スキーマ・ファイルをプロジェクトに追加した後の結果

スキーマ・ブラウザによって、選択したXMLスキーマがプロジェクト内のxslディレクトリにコピーされます。これを使用して新規のビジネス・オブジェクトを作成すれば、何度もそれを追加する必要がありません。

13.5 ビジネス・オブジェクト属性の概要

属性は、ビジネス・オブジェクトを定義および説明するデータを格納します。ビジネス・オブジェクトにおける属性は、オブジェクト指向におけるインスタンス変数に相当するものです。

営業見積サンプルでは、見積オブジェクト内に次の属性があります。

- サマリー

- 製品項目

- 見積要求ステータス

- 使用許諾条項

- 推奨割引

これらの属性は製品を説明するもので、プロセスに関連しています。IDまたはSKUは、選択された製品を識別する役割を持ちます。説明はユーザーに製品の用途を示すために使用されます。価格は製品価格を顧客に示し、以降のプロセスで合計金額を計算するために使用されます。

属性を定義する際には、次の項目を指定する必要があります。

- 名前: 属性を識別するために使用します。

- タイプ: 属性に格納できるデータのタイプを定義します。属性では、単純型またはその他の定義済ビジネス・オブジェクトをサポートしています。

さらに、次の項目も定義できます。

- 説明: 属性の用途が他のプロセス開発者にわかるように、属性の詳細を提供します。

- ドキュメント:13.6.3項「ビジネス・オブジェクト属性をドキュメント化する方法」を参照してください。

- カスタムのデフォルト値

- NOT NULL制約。

13.5.1 ビジネス・オブジェクト属性でサポートされるデータ型

次の表に、ビジネス・オブジェクトの属性でサポートされるデータ型を示します。

データ型

説明

ブール

trueまたはfalseの値

整数

整数

小数

定義済精度の小数部分

実数

実数

文字列

英数字の値

時間

時間単位

間隔

時間間隔

バイナリ

バイナリ値(例: イメージ、ファイル)

配列

指定されたデータ型の要素の集まり

複合タイプ

その他のビジネス・オブジェクト

13.5.2 ビジネス・オブジェクト属性のネーミング規則

ビジネス・オブジェクトの属性に名前を付ける際には、次のルールに従う必要があります。

- 1つ以上の名詞、または形容詞で修飾された名詞を使用します。

- 大文字は内部の単語を区別する目的のみで使用します。

- 常に簡単でわかりやすい名前を使用します。

- 単語全部を使用します。省略語は、広く認知されている場合を除いて使用しないようにします。

- 名前の最初の文字を記号にすることはできません。

- 短くわかりやすい名前を使用します。

- 1文字の名前は使用しないようにします。

注意:

Studioでは、属性の名前の最初の文字は小文字にする必要があります。

13.6 ビジネス・オブジェクト属性の使用

ビジネス・オブジェクトをモデリングするには、属性をビジネス・オブジェクトに追加する必要があります。これらの属性は、プロセスに関連するデータを格納します。属性は必要に応じて追加、変更および削除できます。

また、属性に格納されているデータを説明し、ビジネス・オブジェクトのユーザーに必要な情報を提供するようなドキュメントを属性に追加することもできます。

13.6.1 ビジネス・オブジェクト属性を追加する方法

初めから作成したビジネス・オブジェクトをモデリングするには、属性を追加する必要があります。

既存のビジネス・オブジェクトに属性を追加するには:

1. BPMプロジェクト・ナビゲータで、属性を追加するビジネス・オブジェクトを右クリックします。

2. 「新規」、「属性」の順に選択します。

注意:

前述した手順の他に、「属性」セクションでビジネス・オブジェクトを編集して「追加」ボタンをクリックする方法もあります。

3. 新規の属性を識別する名前を入力します。

4. 「タイプ」リストから新規の属性のタイプを選択するか、「その他のタイプを参照します。」ボタンをクリックして複合タイプを選択します。

5. 「OK」をクリックします。

13.6.2 ビジネス・オブジェクト属性を削除する方法

既存のBPMオブジェクトから属性を削除するには:

1. 削除する属性が含まれるビジネス・オブジェクトを編集します。

2. 「属性」セクションで、削除する属性の隣にある「属性の削除」ボタンをクリックします。
確認のメッセージが表示されます。

3. 「OK」をクリックします。

13.6.3 ビジネス・オブジェクト属性をドキュメント化する方法

ビジネス・オブジェクトの機能が他のプロセス開発者にわかるように、ドキュメントをビジネス・オブジェクト属性に追加できます。

ビジネス・オブジェクト属性をドキュメント化するには:

1. ドキュメント化する属性が含まれるビジネス・オブジェクトを編集します。

2. 「属性」セクションで、ドキュメント化するビジネス・オブジェクト属性を展開します。

3. 「ドキュメント」フィールドの隣の「編集」ボタンをクリックします。
「ドキュメント」ダイアログが表示されます。

4. 選択した属性の機能をドキュメント化するためのテキストを追加します。
ドキュメントを作成および編集する方法の詳細は、5.6.1項「ドキュメント・エディタの概要」を参照してください。

13.6.4 ビジネス・オブジェクト属性をドキュメント化した後の結果

他のプロセス開発者がドキュメントを読取りおよび変更できるようになります。

13.7 ビジネス・オブジェクトの共有

ビジネス・オブジェクトをファイルにエクスポートしてからインポートすることで、異なるプロジェクト間でそれらを共有できます。

単一のビジネス・オブジェクトまたは複数のビジネス・オブジェクトのエクスポートを選択できます。複数のビジネス・オブジェクトをエクスポートするときは、例外もエクスポートできます。エクスポートしたビジネス・オブジェクトを含むファイルには、.bob拡張子が付きます。ビジネス・オブジェクトが他のビジネス・オブジェクトに依存している場合は、これらの依存関係もエクスポート・ファイルに含められます。

このエクスポート・ファイルから他の任意のプロジェクトに、ビジネス・オブジェクトをインポートできます。ビジネス・オブジェクトをインポートするときに、Studioでは、それが格納されていたモジュールが存在しない場合はそのモジュールもインポートされます。

13.7.1 ビジネス・オブジェクトのエクスポート方法

ビジネス・オブジェクトをエクスポートするには:

1. BPMプロジェクト・ナビゲータで、ビジネス・オブジェクトを右クリックします。

2. 「エクスポート」を選択します。
「オブジェクト・ファイルの選択」ダイアログが表示されます。

3. エクスポートしたビジネス・オブジェクトを格納するディレクトリを選択します。

4. 「ファイル名」フィールドに、エクスポートしたビジネス・オブジェクトの名前を入力します。

5. 「保存」をクリックします。
エクスポートしたビジネス・オブジェクト・ファイルが、選択したディレクトリに格納されます。

13.7.2 複数のビジネス・オブジェクトおよび例外のエクスポート方法

複数のビジネス・オブジェクトをエクスポートするには:

1. BPMプロジェクト・ナビゲータで、「ビジネス・カタログ」ノードを右クリックします。

2. 「ビジネス・オブジェクトと例外のエクスポート」を選択します。
「オブジェクトの選択」ダイアログが表示されます。

3. エクスポートするビジネス・オブジェクトおよび例外を選択します。

1. 「検索」リストから、ビジネス・オブジェクトまたは例外を選択します。

2. 「選択」ボタンをクリックします。
そのビジネス・オブジェクトまたは例外が、「選択済」リストに表示されます。

4. 「OK」をクリックします。
「オブジェクト・ファイルの選択」ダイアログが表示されます。

5. エクスポートしたビジネス・オブジェクトを格納するディレクトリを選択します。

6. 「ファイル名」フィールドに、エクスポートしたビジネス・オブジェクトの名前を入力します。

7. 「保存」をクリックします。
エクスポートしたファイルが、選択したディレクトリに格納されます。

13.7.3 ファイルからのビジネス・オブジェクトのインポート方法

ファイルからビジネス・オブジェクトをインポートするには:

1. BPMプロジェクト・ナビゲータで、「ビジネス・カタログ」ノードを右クリックします。

2. 「ビジネス・オブジェクトのインポート」を選択します。
「オブジェクト・ファイルの選択」ダイアログが表示されます。

3. エクスポートしたビジネス・オブジェクトを含むファイルを選択します。

4. 「開く」をクリックします。
選択したファイルに含まれるビジネス・オブジェクトが、ビジネス・カタログに表示されます。

14 ヒューマン・タスクの使用

この章では、ビジネス・カタログでのヒューマン・タスクの表示および処理方法について説明します。また、更新タスクを使用したユーザー・タスクの更新方法についても説明します。

この章の内容は次のとおりです。

- 14.1項「BPMのヒューマン・タスクの概要」

- 14.2項「Oracle BPMでのヒューマン・タスク・パターンの使用」

- 14.3項「更新タスクを使用したユーザー・タスクの更新」

ヒューマン・タスクの作成、編集および構成方法の詳細は、第28章「Oracle BPMでのヒューマン・タスクの設計」を参照してください。

14.1 BPMのヒューマン・タスクの概要

ユーザー・タスクを実装する際、ヒューマン・タスクを定義する必要があります。既存のヒューマン・タスクを使用するか、新しいヒューマン・タスクを定義できます。

プロジェクトにヒューマン・タスクが含まれている場合、ビジネス・カタログのHumanTasks事前定義済モジュールに自動的に表示されます。

新規のヒューマン・タスクをプロジェクトに追加するには、次の方法があります。

- Oracle BPM Studio付属の簡易インタフェースの使用

- SOA新規ギャラリから

- SOAコンポジット・エディタから

ビジネス・カタログでヒューマン・タスク・コンポーネントをダブルクリックすると、Oracle BPM StudioによりSOAヒューマン・タスク・エディタが開かれます。このエディタを使用してヒューマン・タスクを編集できます。

図14-1は、営業見積サンプルのヒューマン・タスク・コンポーネントを示しています。

図14-1 ビジネス・カタログ内のヒューマン・タスク・コンポーネント

「図14-1 ビジネス・カタログ内のヒューマン・タスク・コンポーネント」の説明

実行時に、トークンがユーザー・タスクに到達すると、制御がBPMNプロセスからOracle Human Workflowに渡されます。両方ともOracle BPMランタイムの一部ですが、ヒューマン・タスクが完了するまで、制御はBPMNプロセスに戻されません。

ワークフローが完了すると、制御はBPMNプロセスに渡され、必要なデータ・オブジェクトがユーザー・タスクに戻されて、トークンはプロセスの次のシーケンス・フローに移動します。

ただし、ヒューマン・タスクはBPMNプロセスから独立しています。ユーザー・タスクの実行中にBPMNプロセスを終了した場合でも、関連するヒューマン・タスクの実行は独立して続行されます。詳細は、18.1.1項「SOAコンポジットとSOAコンポーネント間の関係の理解」を参照してください。

ヒューマン・タスクが完了する前にプロセス・インスタンスがユーザー・タスクを離れても、そのヒューマン・タスクの実行は続行され、このタスクへのアクセスは依然として可能です。これは、ヒューマン・タスクがBPMNプロセスから独立しているためです。プロセス・インスタンスが対応するユーザー・タスクを離れた後に、ヒューマン・タスクに変更を行った場合、その変更は監査証跡には現れません。

注意:

BPMでヒューマン・タスクを定義すると、コールバックが暗黙的に定義されます。

14.2 Oracle BPMでのヒューマン・タスク・パターンの使用

ヒューマン・タスク・パターンを使用すると、ヒューマン・タスクの作成に事前定義済のフローを使用できます。これらの事前定義済のパターンには、すべてのビジネス・プロセスに共通の標準プロセス・フローが含まれています。

Oracle BPMでは、次のヒューマン・タスク・パターンをサポートしています。

- 複合

- FYI

- グループ

- イニシエータ

- 管理

- ユーザー

パターンを使用するヒューマン・タスクを追加するには、コンポーネント・パレットの対話型アクティビティ・セクションで特定のユーザー・タスクを選択するか、または一般的なユーザー・タスクを追加し、ヒューマン・タスクの作成時に、使用するパターンを選択できます。

ヒューマン・タスク・パターンの詳細は、第32章「承認管理の使用」を参照してください。

14.3 更新タスクを使用したユーザー・タスクの更新

更新タスクを使用すると、プロセス内の特定のユーザー・タスクの特定のプロパティを更新できます。特定のユーザー・タスク、すべてのユーザー・タスクを更新するか、またはユーザー・タスクのIDを動的に生成し、式を使用して更新するかを選択できます。更新タスクにタスクIDまたはコンテキストを指定する必要はありません。

ユーザー・タスクを使用すると、プロセスのステータスまたはプロセス・インスタンスが使用する様々なパスに基づいて更新操作を実行できます。更新タスクを使用すると、ビジネス・プロセスの更新シーケンスをモデリングできるため、プロセス・フローが理解しやすくなります。

14.3.1 更新タスク操作

更新タスクを使用すると、ユーザー・タスクの実装に使用されるヒューマン・タスクのいくつかのプロパティ値を変更できます。様々な操作に含まれるプロパティの詳細は、28.2項「Oracle BPM Studioによるヒューマン・タスクの作成」を参照してください。

更新タスクがサポートする操作は次のとおりです。

- 結果の更新: 指定されたユーザー・タスクの実装に使用されるヒューマン・タスクの結果を更新します。式を使用して新しい結果を指定する必要があります。式の記述には、リテラル、シンプルな式またはXPath式の使用を選択できます。

- 優先順位の更新: 指定されたユーザー・タスクの実装に使用されるヒューマン・タスクの優先順位を更新します。式を使用して新しい優先順位を指定する必要があります。式の記述には、リテラル、シンプルな式またはXPath式の使用を選択できます。

- 取消: 他の割当て先に対して表示されるタスク・リストからタスクを取り消します。

- 一時停止: タスクを一時停止します。

- 再開: タスクを再開します。

- エスカレート: 指定のユーザー・タスクを実装するヒューマン・タスクで指定されたエスカレーション階層またはエスカレーション・コールバックを使用して、タスクをエスカレートします。

- 再割当て: 指定されたユーザー・タスクの実装に使用されるヒューマン・タスクを新規ユーザーに再割当てします。式を使用して新規ユーザーを指定する必要があります。式の記述には、リテラル、シンプルな式またはXPath式の使用を選択できます。

- 一時停止タイマー: 指定されたユーザー・タスクを実装するヒューマン・タスクで実行されているタイマーを一時停止します。タイマーが一時停止されると、ヒューマン・タスクに定義された有効期限ポリシーが一時停止されます。

14.3.2 更新タスクを使用したユーザー・タスクの更新方法

更新タスクを使用して、ビジネス・プロセスからユーザー・タスクの様々なパラメータを更新できます。

更新タスクを使用してユーザー・タスクを更新するには:

1. ユーザー・タスクが含まれるビジネス・プロセスを開きます。

2. 更新タスクを追加します。

3. 更新タスクを構成します。

14.3.3 更新タスクの構成方法

更新タスクを構成すると、指定したユーザー・タスクで様々な操作を実行できます。

更新タスクを構成するには:

1. 更新タスクを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. ターゲット・リストから、ターゲット・ユーザー・タスクの指定方法を選択します。
使用可能なオプションは、次のとおりです。

- 特定のユーザー・タスクの選択: このリストにはプロセスのユーザー・タスクが表示されるため、この更新タスクを使用してそれらのいずれかを選択して更新できます。

- すべてのユーザー・タスク: このオプションを使用すると、プロセス内のすべてのユーザー・タスクを更新できます。

- タスクID: このオプションを使用すると、式を使用してユーザー・タスクを識別するタスクIDを指定できます。このオプションを選択すると、「タスクID」フィールドが表示されます。

5. 「操作」リストから、操作を選択します。
使用可能な操作の詳細は、14.3.1項「更新タスク操作」を参照してください。

15 サービスおよび参照の使用

この章では、Oracle BPMで使用できる様々なサービスおよび参照コンポーネントについて説明します。これらのコンポーネントがどのようにビジネス・カタログで使用され、ビジネス・カタログ内のコンポーネントが、これらのサービスおよび参照を定義するSOAコンポジットとどのような関係があるかを説明します。また、これらのコンポーネントを、理解しやすく、ビジネス・アナリスト向けにカスタマイズする方法を説明します。

この章の内容は次のとおりです。

- 15.1項「サービスおよび参照の概要」

- 15.2項「Oracle BPMのサービス・アダプタの概要」

- 15.3項「Oracle BPMのOracleメディエータの概要」

- 15.4項「Oracle BPMのBPELプロセスの概要」

- 15.5項「Oracle BPMでのサービスの使用」

- 15.6項「Oracle BPMでの参照の使用」

- 15.7項「サービスおよび参照のカスタマイズ」

15.1 サービスおよび参照の概要

Oracle BPMの一部のフロー・オブジェクトは、実装する際にサービスまたは参照を定義する必要があります。サービスおよび参照は、BPMプロジェクトのSOAコンポジットで定義できます。

ビジネス・カタログには、SOAコンポジットで使用されるサービス、コンポーネントおよび参照が表示されます。新規コンポーネントをコンポジットの「公開されたサービス」または「外部参照」領域に追加すると、ビジネス・カタログの対応する事前定義済モジュールに自動的に表示されます。

次のSOAコンポーネントは、ビジネス・カタログでサービスまたは参照として表示されます。

- SOAサービス・アダプタ

- SOAメディエータ

- BPELプロセス

注意:

サービス・タスク、メッセージ・イベントまたは送受信タスクを実装するWebサービスを定義する場合は、それに含まれる操作が、WSDLで定義されるXMLタイプの引数を定義していないことを確認します。Webサービスの操作の引数は、XSDファイルで定義されるプリミティブ・タイプである必要があります。

15.1.1 サービスの概要

サービスは、BPMNプロセスで特定のアクティビティおよびイベントを実装するために使用できるコンポーネントです。

「サービス」事前定義済モジュールには、SOAコンポジットでサービス・ハンドルを表示するコンポーネントが格納されます。

サービスを使用して、次のフロー・オブジェクトを実装できます。

- サービス・タスク

- メッセージ・イベント

- 送信タスクおよび受信タスク

15.1.2 参照の概要

参照は、BPMNプロセスのインタフェースの定義に使用できるインタフェースです。

「参照」事前定義済モジュールには、SOAコンポジットで参照ハンドルを表示するコンポーネントが格納されます。

参照を使用して、次のフロー・オブジェクトを使用したプロセス・インタフェースを定義できます。

- メッセージ・イベント

- 送信タスクおよび受信タスク

15.1.3 コールバックの概要

サービスが非同期サービスでコールバック・インタフェースが含まれている場合、ビジネス・カタログのコンポーネントにはコールバック内部コンポーネントが含まれています。コールバック内部コンポーネントは、サービス内のすべてのコールバック操作をグループ化したものです。

ビジネス・カタログでサービス・コンポーネントを選択した後、「構造」ウィンドウにコールバック・コンポーネントの操作のリストを表示できます。

サービスのみからのコールバックを待機するように構成されたメッセージ・イベントおよび受信タスクを実装すると、対応するサービスのコールバック内部コンポーネントからの操作を選択できるようになります。

図15-1に、ビジネス・カタログでコールバック・インタフェースを使用するサービスを示します。

図15-1 コールバック・インタフェースを使用したサービス

「図15-1 コールバック・インタフェースを使用したサービス」の説明

15.2 Oracle BPMのサービス・アダプタの概要

サービス・アダプタを使用すると、他のアプリケーションおよび外部サービスとの統合が可能になります。Oracle BPMは、サービス・アダプタの使用をサポートすることにより、BPMNプロセスを外部アプリケーション、レガシー・アプリケーションおよび外部サービス(FTPまたはデータベースなど)と統合できます。

Oracle BPMは、次のテクノロジのサービス・アダプタをサポートしています。

- ADF-BCサービス

- アドバンスト・キューイング

- B2B

- Oracle BAMアダプタ

- 様々なデータベース

- 直接バインディング

- EJBサービス

- ファイル

- FTP

- HTTP

- JMS

- MQSeries

- Oracleアプリケーション

- ソケット

- サードパーティ・アダプタ

- Webサービス

サービス・アダプタの詳細な説明は、次を参照してください。

- 『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のバインディング・コンポーネントの概要に関する項

- 『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』

SOAサービス・アダプタをBPMプロジェクトのSOAコンポジットに追加すると、サービス・アダプタが自動的にビジネス・カタログに表示されます。ビジネス・カタログは、SOAサービス・アダプタを追加したSOAコンポジットのスイムレーンにより、SOAサービス・アダプタを別々のモジュールに格納します。

- サービス・アダプタを「外部参照」スイムレーンに追加した場合、ビジネス・カタログはこのアダプタを 「サービス」 事前定義済モジュールに表示します。

- サービス・アダプタを「公開されたサービス」スイムレーンに追加した場合、ビジネス・カタログはこのアダプタを 「参照」 事前定義済モジュールに表示します。

サービス・アダプタの性質により、SOAコンポジットではコンポーネントを様々なスイムレーンに追加することが可能です。たとえば、読取り操作を含むファイル・アダプタは、「公開されたサービス」スイムレーニンに追加する必要がありますが、ファイル・アダプタに書込み操作が含まれる場合、「外部参照」スイムレーンに追加する必要があります。

図15-2に、読取り操作のファイル・アダプタおよび書込み操作のファイル・アダプタが含まれるSOAコンポジットを示します。書込み操作が含まれるファイル・アダプタはビジネス・カタログの「サービス」事前定義済モジュールの下に表示され、書込み操作が含まれるファイル・アダプタは「参照」事前定義済モジュールの下に表示されます。

図15-2 Oracle BPMのアダプタ・サービス

「図15-2 Oracle BPMのアダプタ・サービス」の説明

ビジネス・カタログは、サービス・アダプタを 「サービス」 または 「参照」 事前定義済モジュール内の 「外部」 モジュールの下に格納します。サービス・アダプタはノードとして表されます。BPMプロジェクト・ナビゲータでサービス・アダプタを選択すると、そこに含まれている操作が「構造」ウィンドウに表示されます。サービス・アダプタが非同期として構成されている場合、「構造」ウィンドウにはコールバック内部オブジェクトも表示されます。

注意:

出力引数を戻さないサービス・アダプタの操作は、出力引数として要素の構造Emptyを定義する場合があります。この要素の構造は、サービス・アダプタを使用するフロー・オブジェクトのデータ・アソシエーションに表示されます。出力データ・アソシエーションの定義はオプションで、この要素の構造のマッピングを提供する場合は必須ではありません。

15.3 Oracle BPMのOracleメディエータの概要

Oracleメディエータは、コンポジット・アプリケーション内のコンポーネント間の通信を促進します。これらのコンポーネントにはBPMNプロセスが含まれます。

次のような状況で、BPMプロジェクトにメディエータを使用できます。

- BPMNプロセスは、メディエータ・コンポーネントを介してSOAコンポジット内の他のコンポーネントを起動できます。BPMNプロセスは、特定の入力データによってメディエータを起動します。メディエータは、他のコンポーネントの要件に合わせてこのデータを変換し、コンポーネントを起動します。

- SOAコンポジット内のコンポーネントは、メディエータ・コンポーネントを介してBPMNプロセスを起動できます。メディエータがインタフェースを公開すると、外部コンポーネントもメディエータを介してBPMNプロセスを起動できるようになります。コンポーネントまたは外部コンポーネントは、特定の入力データによってメディエータを起動します。メディエータは、BPMNプロセスの要件に合わせてこのデータを変換し、その後、コンポーネントを起動します。

図15-3 ビジネス・カタログ内のメディエータ・コンポーネント

「図15-3 ビジネス・カタログ内のメディエータ・コンポーネント」の説明

図15-4に、メディエータを介してBPMNプロセスを起動するBPELプロセスを示します。メディエータのサービス・ハンドルがBPELプロセスに接続し、参照ハンドルがBPMNプロセスに接続します。

図15-4 メディエータを使用してBPMNプロセスを起動するBPELプロセス

「図15-4 メディエータを使用してBPMNプロセスを起動するBPELプロセス」の説明

メディエータ・サービス

メディエータをSOAコンポジットに追加すると、ビジネス・カタログにより、メディエータ・サービスが生成されます。

このコンポーネントは、メディエータ・サービスを表します。メディエータと通信するために起動する操作が含まれます。このサービスで定義されている操作は、操作のタイプにより、サービス・タスク、メッセージ・イベント、または送信および受信タスクを使用して起動できます。

ビジネス・カタログは、メディエータ・サービスを、 「サービス」 事前定義済モジュール内にあるメディエータ・モジュールに格納します。各メディエータ・サービス・コンポーネントに対し、個別のモジュールが作成されます。このモジュールの名前は、コンポーネントの名前です。

図15-3のアイテム2は、SOAコンポジットに示されたメディエータ・コンポーネントの公開されたサービスMediator_epを示しています。

メディエータ・インタフェース

メディエータの作成時にSOAバインディング・オプションを選択すると、Oracle JDeveloperはサービス・インタフェースを作成します。このインタフェースは、SOAコンポジットの外側からメディエータにアクセスする際に使用できる操作の署名を定義します。BPMNプロセスがこのインタフェースを使用し、BPMNおよびメディエータが同じインタフェースを持つよう、構成できます。

ビジネス・カタログは、 「参照」 事前定義済モジュールにある 「外部」 モジュール内にサービス・インタフェースを格納します。

図15-3のアイテム1は、SOAコンポジットに示されたメディエータ・コンポーネントの公開されたサービス・インタフェース・コンポーネントMediator_epを示しています。

プロセス・インタフェースを定義するためにインタフェースを使用する方法は、23.5項「ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義」および23.9項「ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義」を参照してください。

参照インタフェース

SOAコンポジットは、メディエータが採用する各コンポーネントについて、インタフェースを示します。

ビジネス・カタログは、サービス・インタフェースを、 「参照」 事前定義済モジュール内にあるメディエータ・モジュールに格納します。各メディエータ・サービス・コンポーネントに対し、個別のモジュールが作成されます。このモジュールの名前は、コンポーネントの名前です。

図15-3のアイテム1は、SOAコンポジットに示されたメディエータ・コンポーネントの参照インタフェース・コンポーネントProcessProcessServiceを示しています。

SOAメディエータの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のOracleメディエータ・サービス・コンポーネントの使用に関する項を参照してください。

15.4 Oracle BPMのBPELプロセスの概要

BPELプロセスを使用すると、BPMNと異なる標準を使用してビジネス・プロセスをモデリングできます。プロセスの性質によっては、特定のテクノロジで実装する方が容易な場合があります。Oracle BPMを使用すると、プロジェクト内でBPELおよびBPMNプロセスを統合し、両方の標準の利点を活用できます。

図15-5に、複数のBPELプロセスが含まれているSOAコンポジットと、それがどのようにビジネス・カタログに表示されるかを示します。

図15-5 ビジネス・カタログ内のBPELプロセス・コンポーネント

「図15-5 ビジネス・カタログ内のBPELプロセス・コンポーネント」の説明

BPELサービス・コンポーネント

BPELプロセスをSOAコンポジットに追加すると、BPELサービス・コンポーネントがビジネス・カタログに表示されます。

このコンポーネントは、BPELプロセス・サービスを表します。このコンポーネントを使用して、BPELプロセスが同期または非同期プロセスであるかにより、サービス・タスク、メッセージ・イベント、または送信および受信タスクを実装できます。

図15-5に、BPELプロセスおよび対応する公開されたサービス・インタフェースがビジネス・カタログにどのように表示されるかを示します。

ビジネス・カタログは、BPELプロセス・サービスを、 サービス 事前定義済モジュール内にある BPEL モジュールに表示しています。各BPELプロセス・サービス・コンポーネントに対し、個別のモジュールが作成されます。このモジュールの名前は、BPELプロセスの名前です。

Oracle BPMはBPELプロセスをサービスとして扱います。他のタイプのサービスとBPELプロセスを区別しません。

BPMNプロセスから同期および非同期サービスを起動する方法は、22.1項「他のBPMNプロセスおよびサービスとの通信の概要」を参照してください。

公開されたインタフェース

BPELプロセスの作成時にSOAバインディング・オプションを選択した場合、ビジネス・カタログに公開されたインタフェースが表示されます。

このインタフェースを使用すると、外部コンポーネントによってBPELプロセスを起動できます。BPELプロセスに置き換わるBPMNプロセスを設計している場合、このインタフェースを使用してBPMNプロセスを定義すると、確実に置換できます。

プロセス・インタフェースを定義するためにインタフェースを使用する方法は、23.5項「ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義」および23.9項「ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義」を参照してください。

BPELプロセスの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のBPELプロセス・サービス・コンポーネントの使用に関する項を参照してください。

15.5 Oracle BPMでのサービスの使用

次のフロー・オブジェクトは、実装の際にサービスを定義する必要があります。

- サービス・タスク
サービス・タスクは、同期サービスの起動を可能にします。サービス・タスクを実装するには、実装プロパティで同期サービスを指定する必要があります。サービス・タスクを使用して同期サービスを起動する方法は、22.5項「サービス・タスクを使用した、サービスおよびBPMNプロセスの同期操作の起動」を参照してください。

- メッセージ・イベント
メッセージ・イベントは、非同期サービスの起動を可能にします。メッセージ・イベントを実装するには、実装プロパティで非同期サービスを指定する必要があります。メッセージ・イベントを使用して非同期サービスを起動する方法は、22.3項「メッセージ・イベントを使用した、非同期サービスおよび非同期BPMNプロセスの起動」を参照してください。

- 送信タスクおよび受信タスク
送信および受信タスクは、非同期サービスの起動を可能にします。送信タスクまたは受信タスクを実装するには、実装プロパティで非同期サービスを指定する必要があります。サービス・タスクを使用して同期サービスを起動する方法は、22.7項「送信および受信タスクを使用した、非同期サービスおよび非同期BPMNプロセスの起動」を参照してください。

15.6 Oracle BPMでの参照の使用

次のフロー・オブジェクトにより、ビジネス・カタログの参照コンポーネントを使用してインタフェースを定義できます。

- メッセージ・イベント
ビジネス・カタログのインタフェースを使用して、メッセージ・イベントを使用するプロセス・インタフェースを定義する方法は、23.5項「ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義」を参照してください。

- 受信タスク
ビジネス・カタログのインタフェースを使用して、受信タスクを使用するプロセス・インタフェースを定義する方法は、23.9項「ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義」を参照してください。

15.7 サービスおよび参照のカスタマイズ

プロセスで使用される一部のサービスや参照のインタフェースは、複雑であったり、用途が明確でない名前を使用している場合があります。これらのインタフェースは、プロセス・アナリストには不向きです。これらのサービスおよび参照をカスタマイズして複雑さを隠し、ビジネス・アナリストが使いやすくすることができます。また、サービスまたは参照をカスタマイズすることにより、他のプロセス開発者にも理解しやすくすることができます。

サービスまたは参照をカスタマイズすると、次のことが可能になります。

- サービスまたは参照の名前の変更

- サービスまたは参照のユーザー定義モジュールへの格納

- サービスまたは参照の説明の追加

- 使用しない操作を隠す

- 各操作の表示名の追加

- 各操作の説明の追加

サービスまたは参照をカスタマイズすると、格納されている事前定義済モジュールにこのサービスまたは参照が表示されなくなり、Oracle BPM Studioはその使用をカスタマイズ後のコンポーネントで置き換えます。

カスタマイズ済サービスまたは参照を削除しても、SOAコンポジットから削除しない限り、対応する事前定義済モジュールにこのサービスまたは参照がまた表示されるようになります。

注意:

元のサービスまたは参照を削除する場合、Oracle BPM Studioはカスタマイズされたサービスまたは参照を削除しません。カスタマイズしたサービスまたは参照を手動で削除するか、削除したものと同じ名前で新しいサービスまたは参照を作成する必要があります。

15.7.1 サービスまたは参照のカスタマイズ方法

サービスまたは参照をカスタマイズすることにより、ビジネス・アナリストにとって使いやすくし、プロセス開発者にも理解しやすくできます。

サービスまたは参照をカスタマイズするには:

1. BPMプロジェクト・ナビゲータで、サービスまたは参照を右クリックします。

2. 「サービスのカスタマイズ」を選択します。
「アダプタ・サービスのカスタマイズ」ダイアログ・ボックスが表示されます。

3. 「名前」フィールドに、カスタマイズしたサービスまたは参照の名前を入力します。

4. 「参照」をクリックし、カスタマイズしたサービスまたは参照を格納するモジュールを選択します。

5. オプションで、カスタマイズしたサービスまたは参照の説明を入力します。

6. 「操作」リストから、カスタマイズしたサービスまたは参照に表示する操作を選択します。

7. 操作を編集してカスタマイズします。
操作をカスタマイズする方法は、15.7.2項「操作のカスタマイズ手順」を参照してください。

8. 「OK」をクリックします。

15.7.2 操作のカスタマイズ手順

サービスまたは参照をカスタマイズする際、必要に応じて、そこに含まれている操作をカスタマイズできます。

操作をカスタマイズするには:

1. 「操作」表から、操作を選択します。

2. 「編集」をクリックします。
「操作の編集」ダイアログが表示されます。

3. 「表示名」フィールドに、操作のカスタマイズ名を入力します。

4. 「説明」フィールドに、操作の説明を入力します。

5. 操作が入力または出力引数を必要とする場合、その説明を入力できます。

6. 「OK」をクリックします。

15.7.3 サービスまたは参照のカスタマイズ時に行われる処理

カスタマイズしたサービスまたは参照は、格納を選択したモジュールに表示されます。「サービス」 または 「参照」 事前定義済モジュールにあるコンポーネントは非表示になります。

カスタマイズしたコンポーネントを使用するBPMNコンポーネントが存在する場合、カスタマイズしたサービスまたは参照を使用するよう、それらのプロセスのアクティビティの実装がOracle BPM Studioによって自動的に更新されます。

カスタマイズしたサービスまたは参照を削除すると、対応する事前定義済モジュールにまた表示されるようになります。

16 ビジネス・ルールの使用

この章では、Oracle BPMでビジネス・ルール・タスクを実装する方法を説明します。SOAビジネス・ルール・エディタを使用して作成された既存のビジネス・ルール・コンポーネントを使用するか、Oracle BPM Studio付属の簡易インタフェースを使用して新規のビジネス・ルールを作成できます。

この章の内容は次のとおりです。

- 16.1項「Oracle BPMのビジネス・ルールの概要」

- 16.2項「既存のビジネス・ルールのビジネス・ルール・タスクへの割当て」

- 16.3項「Oracle BPM Studioによるビジネス・ルールの作成」

ビジネス・ルールの詳細は、『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』を参照してください。

16.1 Oracle BPMのビジネス・ルールの概要

ビジネス・ルール・タスクを実装する際、ビジネス・ルールを定義する必要があります。既存のビジネス・ルールを使用するか、新しいビジネス・ルールを定義できます。

プロジェクトにビジネス・ルールが含まれている場合、ビジネス・カタログに自動的に表示されます。

新しいビジネス・ルールをビジネス・カタログに追加するには、次の方法があります。

- Oracle BPMの使用

- SOA新規ギャラリから

- SOAコンポジット・エディタから

ビジネス・カタログでは、プロジェクトのビジネス・ルールは事前定義済モジュール 「ルール」 内に表示されます。各ルールは、ビジネス・ルール・ディクショナリのパッケージの名前の付いたモジュール内に格納されます。

ビジネス・カタログでビジネス・ルール・コンポーネントをダブルクリックすると、Oracle BPM StudioによりSOAビジネス・ルール・エディタが開かれます。このエディタを使用してビジネス・ルールを編集できます。

ビジネス・ルール定義方法は、『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』を参照してください。

図16-1は、営業見積サンプルのビジネス・ルール・コンポーネントを示しています。

図16-1 ビジネス・カタログ内のビジネス・ルール・コンポーネント

「図16-1 ビジネス・カタログ内のビジネス・ルール・コンポーネント」の説明

16.1.1 BPMNプロセスでのビジネス・ルールの使用

ビジネス・ルールを使用すると、定義したルールのグループに基づいてプロセスのフローを決定できます。

ビジネス・ルール・タスクにより、次のものを関連付けできます。

- データ・オブジェクト値をビジネス・ルールの入力引数へ

- ビジネス・ルール・コンポーネントの出力引数をデータ・オブジェクトへ

トークンがビジネス・ルール・タスクに到達すると、ビジネス・ルール・タスクのデータ・アソシエーションで定義されている入力引数を使用して、BPMNサービス・エンジンがOracle Business Rulesエンジンを起動します。ビジネス・ルール・エンジンは定義されたルールを評価し、結果が含まれている出力を返します。BPMNサービス・エンジンは、ビジネス・ルール・タスクに定義されたデータ・アソシエーションを使用して、ビジネス・ルール・エンジンからの出力をプロセスのデータ・オブジェクトにマッピングします。

ビジネス・ルール・タスクの後、ビジネス・ルール・タスクの実行結果が含まれているデータ・オブジェクト値に基づいてプロセスのフローを決定する排他ゲートウェイを追加できます。

営業見積サンプルでは、次のように、ビジネス・ルール・タスクが各営業見積の承認フローを決定します。

- ビジネス・ルール・タスクは、見積ビジネス・オブジェクトを入力引数としてビジネス・ルール・コンポーネントを起動します。

- ビジネス・ルール・コンポーネントは、指定された入力を使用して定義されたルールを評価します。

- ビジネス・ルール・コンポーネントは、定義されたルールの評価結果が含まれている ApprovalFlow ビジネス・オブジェクトを返します。

- ビジネス・ルール・タスクのデータ・アソシエーションは、ビジネス・ルールの実行結果を approvalFlow プロセス・データ・オブジェクトにマッピングします。

- 排他ゲートウェイであるIs Business Practices Review Requiredは、 approvalFlow プロセス・データ・オブジェクトの値に基づき、フローを決定します。

図16-2は、営業見積サンプルのビジネス・ルール・タスクを示しています。

図16-2 営業見積サンプル内のビジネス・ルール・タスク

「図16-2 営業見積サンプル内のビジネス・ルール・タスク」の説明

16.2 既存のビジネス・ルールのビジネス・ルール・タスクへの割当て

既存のビジネス・ルールをビジネス・ルール・タスクに割り当てられます。ビジネス・ルール・ウィザードを使用して作成したビジネス・ルール、またはBPMプロジェクトのベースとして使用したSOAプロジェクトに存在するビジネス・ルールを使用して、ビジネス・ルール・タスクを実装できます。

プロジェクトに含まれるすべてのビジネス・ルール・コンポーネントは、ビジネス・カタログの「ルール」事前定義済モジュールに表示されます。また、SOAコンポジットにも表示されます。ビジネス・ルール・コンポーネントを使用するビジネス・ルール・タスクがBPMNプロセスに含まれる場合、SOAコンポジットでそれらの間にワイヤが表示されます。

16.2.1 既存のビジネス・ルールのビジネス・ルール・タスクへの割当て手順

既存のビジネス・ルールを再利用し、ビジネス・ルール・タスクをBPMNプロセスに実装できます。

既存のビジネス・ルールをビジネス・ルール・タスクに割り当てるには:

1. ビジネス・ルール・タスクを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「ビジネス・ルール」フィールドの横の「参照」ボタンをクリックします。
「タイプ」ダイアログ・ボックスが表示されます。

5. リストからビジネス・ルールを選択するか、または「検索」フィールドに名前または名前の一部を入力してビジネス・ルールを検索します。

6. 「OK」をクリックします。
「タイプ」ダイアログ・ボックスが閉じ、「ビジネス・ルール」フィールドに選択したビジネス・ルールが表示されます。

7. 「デシジョン関数」リストからデシジョン関数を選択します。

8. 「OK」をクリックします。
ビジネス・ルール・タスク・プロパティ・ダイアログ・ボックスが閉じ、ビジネス・ルール・タスクについて選択した実装が保存されます。

16.2.2 既存のビジネス・ルールのビジネス・ルール・タスクへの割当て時に行われる処理

ビジネス・ルール・タスクの実装には、選択されたビジネス・ルール・コンポーネントと選択されたデシジョン関数が使用されます。

BPMNサービス・エンジンがビジネス・ルール・タスクを実行する際、ビジネス・ルール・タスクのデータ・アソシエーションで定義された入力引数を使用してOracle Business Rulesエンジンが起動されます。Oracle Business Rulesエンジンは指定された入力引数を使用してルールを評価し、この評価結果が含まれる出力引数を返します。

16.2.3 ビジネス・ルール・タスクに関連付けられたビジネス・ルールの編集方法

ビジネス・ルール・タスクからビジネス・ルール・エディタを起動して、関連付けられたビジネス・ルールを編集できます。

ビジネス・ルール・タスクに割り当てられたビジネス・ルールを編集するには:

1. ビジネス・ルール・タスクを右クリックします。

2. 「ビジネス・ルールを開く」を選択します。
ビジネス・ルール・エディタが表示されます。

16.3 Oracle BPM Studioによるビジネス・ルールの作成

Oracle BPM Studio付属の簡易インタフェースを使用してビジネス・ルールを作成できます。このインタフェースには、ビジネス・ルール・タスクの構成ダイアログ・ボックスからアクセスできます。

簡易ビジネス・ルール作成インタフェースでは、1つのデシジョン関数を使用するビジネス・ルールを作成できます。ビジネス・ルール作成の際、次のプロパティを構成できます。

- ビジネス・ルールの名前
Oracle BPM Studioは、この名前を使用してビジネス・ルール・コンポーネントを作成します。

- 入力および出力
Oracle BPM Studioが自動的にビジネス・ルール・コンポーネントに追加するデフォルトのデシジョン関数の入力および出力パラメータを指定します。

Oracle BPM Studioは、これらのパラメータを使用してビジネス・ルール・タスクのデータ・アソシエーションを作成します。デシジョン関数のパラメータは、XMLスキーマに基づいて作成された複合データ・オブジェクトである必要があります。XMLスキーマは、1つの要素のみを含む必要があります。WSDLからのタイプは使用しないでください。

- ディクショナリ・パッケージ
ルール・ディクショナリが所属するJavaパッケージを指定します。たとえば、com.exampleなどです。

- デシジョン関数の名前
Oracle BPM Studioは、作成したビジネス・ルールのデフォルト・デシジョン関数を追加する際にこの名前を使用します。

簡易インタフェースでビジネス・ルールを作成した後、Oracle SOA Suiteに含まれているエディタを使用して編集できます。

16.3.1 Oracle BPM Studioによるビジネス・ルールの作成手順

Oracle BPM Studioで、ビジネス・ルール・タスクの実装プロパティ・ダイアログ・ボックスからビジネス・ルール・コンポーネントを作成できます。

Oracle BPM Studioでビジネス・ルールを作成するには:

1. 「ビジネス・ルール」タスクを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「ビジネス・ルール」フィールドの横の「追加」ボタンをクリックします。
「ビジネス・ルールの作成」ダイアログ・ボックスが表示されます。

5. 「名前」フィールドで、ビジネス・ルールを識別するための名前を入力します。

6. ビジネス・ルールの入力および出力を構成します。
ビジネス・ルールの入力および出力の構成方法については、16.3.2項「ビジネス・ルール・コンポーネント作成時の入力および出力引数の追加手順」を参照してください。

7. オプションで、ビジネス・ルールの拡張プロパティを構成します。
ビジネス・ルールの拡張プロパティの構成方法については、16.3.3項「ビジネス・ルール・コンポーネント作成時の拡張プロパティの構成手順」を参照してください。

8. 「OK」をクリックします。
「ビジネス・ルールの作成」が閉じ、ビジネス・ルールが作成されます。ビジネス・ルール・タスク・プロパティ・ダイアログ・ボックスの「ビジネス・ルール」フィールドに、作成したビジネス・ルールが表示されます。

9. 「デシジョン関数」リストからデシジョン関数を選択します。

10. 「OK」をクリックします。
ビジネス・ルール・タスク・プロパティ・ダイアログ・ボックスが閉じ、ビジネス・ルール・タスクについて作成した実装が保存されます。

16.3.2 ビジネス・ルール・コンポーネント作成時の入力および出力引数の追加手順

入力または出力引数として追加するデータ・オブジェクトは、タイプとして外部のタイプに基づくビジネス・オブジェクトを使用する必要があります。

ビジネス・ルール・コンポーネントの作成時に入力および出力引数を追加するには:

1. 「入力と出力データ・オブジェクト」セクションで、「追加」ボタンをクリックします。

2. 追加する引数のタイプを選択します。
「データ・オブジェクト」ダイアログ・ボックスが表示されます。

3. 「データ・オブジェクト」ダイアログ・ボックスからデータ・オブジェクトを選択し、表にドラッグします。
入力または出力引数が表に表示されます。

16.3.3 ビジネス・ルール・コンポーネント作成時の拡張プロパティの構成手順

ビジネス・ルール・コンポーネントの作成時に入力および拡張プロパティを構成するには:

1. 「詳細」タブをクリックします。

2. 「パッケージ」フィールドに、ルール・ディクショナリの格納先となるパッケージの名前を入力します。

3. 「デシジョン関数」フィールドに、ビジネス・ルール・コンポーネントで簡易インタフェースが作成するデシジョン関数の名前を入力します。

16.3.4 Oracle BPMによるビジネス・ルール・タスクの作成時に行われる処理

Oracle BPM Studioは、ビジネス・ルール・コンポーネントを作成します。Oracle SOA Suiteを使用して作成したコンポーネントを編集する場合と同様に、このビジネス・ルール・コンポーネントをSOAビジネス・ルール・エディタを使用して編集できます。

ビジネス・ルール・タスクは、実装にビジネス・ルール・コンポーネントを使用します。

17 通知の送信

この章では、通知タスクを使用してビジネス・プロセスのエンド・ユーザーと通信する方法について説明します。ここでは、様々な通知タスクおよびそれらの構成方法を説明します。

この章の内容は次のとおりです。

- 17.1項「通知の概要」

- 17.2項「電子メール通知の送信」

- 17.3項「ユーザー通知の送信」

- 17.4項「SMS通知の送信」

- 17.5項「音声通知の送信」

- 17.6項「IM通知の送信」

17.1 通知の概要

通知タスクを使用して、アプリケーションのユーザーに異なるタイプの通知を送信できます。

次のタイプの通知がサポートされます。

- 電子メール

- ユーザー

- SMS

- 音声

- IM

このタスクでは、Oracle Notification Serviceが使用されます。

このタスクを構成するには、通知の各種フィールドに式を指定する必要があり、アイデンティティ・ルックアップ・ブラウザを使用して1人以上のユーザーを選択できる場合もあります。式を記述するときに、通知タスク・コンテキスト(プロセス・データ・オブジェクト、事前定義済データ・オブジェクトなど)からアクセス可能なすべての変数を使用できます。

17.2 電子メール通知の送信

ビジネス・プロセスの特定ポイントにいるユーザーにメッセージを送信するために、電子メールを送信できます。

17.2.1 電子メール通知の送信方法

電子メール通知を送信するには:

1. BPMNビジネス・プロセスを開きます。

2. 「電子メール通知」タスクを追加します。

3. 「電子メール通知」タスクを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. 「一般」タブで、17.2.2項「電子メール通知の「一般」プロパティの構成方法」に記載のプロパティを構成します。

7. 「コンテンツ」タブをクリックし、17.2.3項「電子メール通知の「コンテンツ」プロパティの構成方法」に記載のプロパティを構成します。

8. 「添付ファイル」タブをクリックし、17.2.4項「電子メール通知の「添付ファイル」プロパティの構成方法」に記載のプロパティを構成します。

9. 「ヘッダー」タブをクリックし、17.2.5項「電子メール通知の「ヘッダー」プロパティの構成方法」に記載のプロパティを構成します。

10. 「OK」をクリックします。

17.2.2 電子メール通知の「一般」プロパティの構成方法

次の表を使用して、電子メール通知の「一般」プロパティを構成します。これらのプロパティの一部はオプションであることに注意してください。

表17-1 電子メール通知の「一般」プロパティ

プロパティ

データ型

オプション

説明

From

文字列

いいえ

電子メール通知の送信に使用する電子メール・アドレスを指定します。

To

文字列

いいえ

電子メール通知の受信者の電子メール・アドレスを指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、これらの電子メール・アドレスを指定できます。

Bc

文字列

はい

電子メール通知の追加受信者の電子メール・アドレスを指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、これらの電子メール・アドレスを指定できます。

BCC

文字列

はい

電子メール通知の非表示の追加受信者の電子メール・アドレスを指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、これらの電子メール・アドレスを指定できます。

返信

文字列

はい

電子メール通知に返信するときに使用される電子メール・アドレスを指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、この電子メール・アドレスを指定できます。

17.2.3 電子メール通知の「コンテンツ」プロパティの構成方法

次の表を使用して、電子メール通知の「コンテンツ」プロパティを構成します。

表17-2 電子メール通知の「コンテンツ」プロパティ

プロパティ

データ型

オプション

説明

サブジェクト

文字列

いいえ

電子メール通知のサブジェクトを指定します。この値は、式を使用して指定する必要があります。

本文

文字列

いいえ

電子メール通知の本文を指定します。この値は、式を使用して指定する必要があります。

17.2.4 電子メール通知の「添付ファイル」プロパティの構成方法

次の表を使用して、電子メール通知の「添付ファイル」プロパティを構成します。これらのプロパティの一部はオプションであることに注意してください。

表17-3 電子メール通知の「添付ファイル」プロパティ

プロパティ

データ型

オプション

説明

名前

文字列

いいえ

添付ファイルの名前を指定します。この値は、式を使用して指定する必要があります。デフォルト値は、"attachment"に数字を付加したものです。

MIMEタイプ

文字列

いいえ

添付ファイルのコンテンツ・タイプを指定します。この値は、式を使用して指定する必要があります。デフォルト値は、「text/html」です。

エンコーディング

文字列

はい

電子メール通知のエンコーディングを指定します。この値は、式を使用して指定する必要があります。

値

任意

いいえ

添付ファイルを指定します。この値は、式を使用して指定する必要があります。

17.2.5 電子メール通知の「ヘッダー」プロパティの構成方法

「ヘッダー」プロパティを構成するために、1つ以上のヘッダーを追加できます。「ヘッダー」プロパティの構成はオプションであることに注意してください。

ヘッダーを追加するには:

1. 「追加」ボタンをクリックします。
「ヘッダーの作成」ダイアログが表示されます。

2. 名前と値のプロパティを指定します。

表17-4 「ヘッダー」プロパティ

プロパティ

データ型

説明

名前

文字列

ヘッダーの名前を指定します。この値は、式を使用して指定する必要があります。

値

文字列

ヘッダーの値を指定します。この値は、式を使用して指定する必要があります。

3. 「OK」をクリックします。

17.3 ユーザー通知の送信

ユーザー通知を使用して、プロセスの特定ポイントにいるユーザーに、そのユーザーに定義されている通信メディアを使用してメッセージを送信できます。

17.3.1 ユーザー通知の送信方法

電子メール通知を送信するには:

1. BPMNビジネス・プロセスを開きます。

2. 「ユーザー通知」タスクを追加します。

3. その「ユーザー通知」タスクを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. 「一般」タブで、17.3.2項「ユーザー通知の「一般」プロパティの構成方法」に記載のプロパティを構成します。

7. 「プロパティ」タブをクリックし、17.3.3項「ユーザー通知プロパティの構成方法」に記載のプロパティを構成します。

8. 「OK」をクリックします。

17.3.2 ユーザー通知の「一般」プロパティの構成方法

次の表を使用して、ユーザー通知の「一般」プロパティを構成します。これらのプロパティの一部はオプションであることに注意してください。

表17-5 電子メール通知の「一般」プロパティ

プロパティ

データ型

オプション

説明

宛先

文字列

いいえ

ユーザー通知の受信者の電子メール・アドレスを指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、これらの電子メール・アドレスを指定できます。

サブジェクト

文字列

はい

ユーザー通知のサブジェクトを指定します。これは、式を使用して指定する必要があります。

メッセージ

文字列

はい

ユーザー通知を使用して送信するメッセージを指定します。これは、式を使用して指定する必要があります。

17.3.3 ユーザー通知プロパティの構成方法

1つ以上のプロパティを追加できます。プロパティの構成はオプションであることに注意してください。

ヘッダーを追加するには:

1. 「追加」ボタンをクリックします。
「プロパティの作成」ダイアログが表示されます。

2. 名前と値のプロパティを指定します。

表17-6 プロパティ

プロパティ

データ型

説明

名前

文字列

プロパティ名を指定します。この値は、式を使用して指定する必要があります。

値

文字列

プロパティの値を指定します。この値は、式を使用して指定する必要があります。

3. 「OK」をクリックします。

17.4 SMS通知の送信

ビジネス・プロセスの特定ポイントにいるユーザーにSMSメッセージを送信できます。

17.4.1 SMS通知の送信方法

電子メール通知を送信するには:

1. BPMNビジネス・プロセスを開きます。

2. 「SMS通知」タスクを追加します。

3. 「電子メール通知」タスクを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. 17.4.2項「SMS通知の「一般」プロパティの構成方法」に記載の「一般」プロパティを構成します。

7. 「OK」をクリックします。

17.4.2 SMS通知の「一般」プロパティの構成方法

次の表を使用して、SMS通知の「一般」プロパティを構成します。これらのプロパティの一部はオプションであることに注意してください。

表17-7 電子メール通知の「一般」プロパティ

プロパティ

データ型

オプション

説明

送信元番号

文字列

いいえ

SMS通知の送信に使用する携帯電話番号を指定します。

送信先番号

文字列

いいえ

SMS通知の受信者の携帯電話番号を指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、これらの携帯電話番号を指定できます。

サブジェクト

文字列

はい

SMS通知のサブジェクトを指定します。これは、式を使用して指定する必要があります。

本文

文字列

はい

SMS通知の本文を指定します。これは、式を使用して指定する必要があります。

17.5 音声通知の送信

ビジネス・プロセスの特定ポイントにいるユーザーに音声メッセージを送信できます。

17.5.1 音声通知の送信方法

電子メール通知を送信するには:

1. BPMNビジネス・プロセスを開きます。

2. 「音声通知」タスクを追加します。

3. 「電子メール通知」タスクを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. 17.5.2項「音声通知の「一般」プロパティの構成方法」に記載の「一般」プロパティを構成します。

7. 「OK」をクリックします。

17.5.2 音声通知の「一般」プロパティの構成方法

次の表を使用して、音声通知の「一般」プロパティを構成します。これらのプロパティの一部はオプションであることに注意してください。

表17-8 電子メール通知の「一般」プロパティ

プロパティ

データ型

オプション

説明

送信先番号

文字列

いいえ

音声通知の受信者の電話番号を指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、これらの電話番号を指定できます。

MIMEタイプ

文字列

はい

コンテンツ・タイプを指定します。この値は、式を使用して指定する必要があります。デフォルト値は、「text/html」です

本文

文字列

はい

音声通知の本文を指定します。これは、式を使用して指定する必要があります。

17.6 IM通知の送信

ビジネス・プロセスの特定ポイントにいるユーザーにインスタント・メッセージを送信できます。

17.6.1 IM通知の送信方法

電子メール通知を送信するには:

1. BPMNビジネス・プロセスを開きます。

2. 「IM通知」タスクを追加します。

3. 「電子メール通知」タスクを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. 17.6.2項「IM通知の「一般」プロパティの構成方法」に記載の「一般」プロパティを構成します。

7. 「OK」をクリックします。

17.6.2 IM通知の「一般」プロパティの構成方法

次の表を使用して、IM通知の「一般」プロパティを構成します。これらのプロパティの一部はオプションであることに注意してください。

表17-9 電子メール通知の「一般」プロパティ

プロパティ

データ型

オプション

説明

宛先

文字列

いいえ

IM通知の受信者のユーザーIDを指定します。式またはアイデンティティ・ルックアップ・ブラウザを使用して、これらのユーザーIDを指定できます。

本文

文字列

はい

IM通知の本文を指定します。これは、式を使用して指定する必要があります。

18 BPMプロジェクトにおけるSOAコンポジットの使用

この章では、SOAコンポジットを使用して、BPMNプロセスを設計し、他のSOAコンポーネントと統合する方法について説明します。SOAコンポジットは、BPMNプロセスとBPMプロジェクトの他のコンポーネント間の依存関係を示します。

この章の内容は次のとおりです。

- 18.1項「SOAコンポジットの概要」

- 18.2項「BPMプロジェクトでSOAコンポジットを開く」

- 18.3項「BPMプロジェクトでSOAコンポジットからBPMNプロセスを開く」

- 18.4項「SOAコンポジット・エディタからのBPMNプロセスの追加」

- 18.5項「SOAコンポジットを使用したBPELプロセスとの統合」

- 18.6項「BPELプロセスでのパートナ・リンクとしてのBPMNプロセスの追加」

- 18.7項「Webサービスを使用したBPMNプロセスへの接続」

- 18.8項「BPMプロジェクトのビルド」

SOAコンポジットの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

18.1 SOAコンポジットの概要

SOAコンポジットは、相互関係を持つコンポーネントをグループ化し、異なるテクノロジを単一のアプリケーションに統合できます。コンポジットは単一のデプロイメントおよび管理モデル、エンドツーエンドのデータ・セキュリティ、およびそれに含まれるコンポーネントに統合されたメタデータ管理を提供します。

BPMプロジェクトではSOAテクノロジを使用します。すべてのBPMプロジェクトはSOAコンポジットの上に配置されます。プロジェクトはこのコンポジットを使用して、BPMプロジェクト内の異なるコンポーネントとそれらが公開するサービス間の関係を説明する情報を格納します。

BPMNプロセスはSOAコンポジット内のコンポーネントです。SOAコンポジット・エディタを使用して、BPMNプロセスがSOAコンポジット内の残りのコンポーネントとどのように関連しているかを表示できます。

BPMプロジェクトのSOAコンポジットは、次を示します。

- BPMプロジェクトで使用できるSOAコンポーネント

- BPMプロジェクトでのBPMNプロセスおよびBPELプロセス

- SOAコンポーネントとプロセス間の関係

SOAコンポジットに、サービスを公開するコンポーネントまたは外部参照が含まれている場合、これらはビジネス・カタログに表示されます。ビジネス・カタログの詳細は、第12章「ビジネス・カタログの使用」を参照してください。

SOAコンポジットにコンポーネントを追加すると、BPMプロジェクトで使用できるように、ビジネス・カタログに自動的に表示されます。

再使用可能なプロセスは、SOAコンポジットに表示されません。ビジネス・プロセスを変更して再使用可能なプロセスに変換すると、SOAコンポジットに表示されなくなります。再使用可能なサブプロセスの詳細は、22.8項「コール・アクティビティを使用したプロセス起動の概要」を参照してください。

SOAコンポジットは、BPMプロジェクトをデプロイするのに使用する単位です。SOAコンポジットに表示されるコンポーネントおよび依存関係は、プロジェクトのデプロイ方法を指定します。SOAコンポジットからプロセスまたはワイヤを削除すると、これらがBPMプロジェクトにまだ表示されていても、プロジェクトのデプロイ時に無視されます。

18.1.1 SOAコンポジットとSOAコンポーネント間の関係の理解

BPMプロジェクトを実行すると、SOAエンジンはSOAコンポジット・インスタンスを作成します。SOAコンポジット・インスタンスには、SOAコンポジットで定義される各コンポーネントのインスタンスが含まれます。たとえば、SOAコンポジットでBPMNプロセスとヒューマン・タスクが定義されている場合、SOAコンポジット・インスタンスにはBPMNプロセス・インスタンスとヒューマン・タスク・インスタンスが含まれます。

SOAコンポジット・インスタンス内のコンポーネントは、互いに独立しています。コンポーネントのうちの1つを終了しても、SOAコンポジット・インスタンス内の他のコンポーネントには影響を与えません。BPMNプロセスのインスタンスとヒューマン・タスクのインスタンスを含むSOAコンポジット・インスタンスで、BPMNプロセス・インスタンスを終了した場合、ヒューマン・タスクは終了されません。BPMNプロセスを終了した後に、ヒューマン・タスク・インスタンスはまだ使用可能で、Oracle BPM Worklistアプリケーションを使用してそれにアクセスすることができます。ただし、そのヒューマン・タスクが完了しても、終了済のプロセスに影響を与えません。

同様に、連続しないタイマーまたはメッセージ境界イベントがユーザー・タスクに到着すると、BPMNプロセス・インスタンスはユーザー・タスクを離れますが、関連するヒューマン・タスクは使用可能なままです。ユーザーがユーザー・タスクを完了する前に連続しないタイマーまたはメッセージ境界イベントが到着しているため、ヒューマン・タスクは未完了のままで、Oracle BPM Worklistアプリケーションを通じてそれにアクセスすることができます。ただし、そのヒューマン・タスクが実行されても、BPMNプロセスに影響を与えません。

18.1.2 SOAコンポーネントの使用

SOAコンポジットでサービスとして公開されたすべてのSOAコンポーネントおよび外部参照は、ビジネス・プロジェクト内のビジネス・カタログに表示されます。

既存のSOAプロジェクトに基づいてBPMプロジェクトを作成した場合、SOAプロジェクトでサービスとして公開されたすべてのコンポーネントおよび外部参照は、ビジネス・カタログに自動的に表示されます。

実装でコンポーネントを使用するBPMNプロセスにアクティビティがある場合、SOAコンポジットは、BPMNプロセスとコンポーネント間のワイヤを示します。

ワイヤは、サービスと参照間の関係を表します。BPMNプロセスを保存すると、Oracle BPM Studioは、BPMNプロセスとそれが使用するコンポーネント間のワイヤを自動的に更新します。サービスは、コンポーネントが公開するインタフェースを表します。参照は、コンポーネントが必要とするサービス・インタフェースを表します。サービスおよび参照の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

BPMNプロセスにアクティビティを実装するには、SOAコンポーネントにアクティビティを割り当てる必要があります。SOAコンポーネントをBPMプロジェクトに追加するには、SOAコンポジット・エディタを使用する必要があります。SOAコンポジット・エディタから、BPMプロジェクトに次のSOAコンポーネントを追加できます。

- サービス・アダプタ

- ヒューマン・タスク

- ビジネス・ルール

- メディエータ

- BPELプロセス

SOAコンポジットに追加されたSOAコンポーネントがそれ自身をサービスとして公開する場合、コンポーネントはビジネス・カタログに表示されます。BPMNプロセスにアクティビティを実装するビジネス・カタログ内のすべてのコンポーネントを使用できます。BPMNアクティビティの実装方法の詳細は、次の部にある章を参照してください。

- 第V部「ビジネス・コンポーネントの使用」

- 第VI部「プロセス・フローの制御」

図18-1 SOAコンポジット内のBPMNプロセス

「図18-1 SOAコンポジット内のBPMNプロセス」の説明

18.1.3 SOAコンポジット内のBPMNプロセス

BPMNプロセスを追加すると、SOAコンポジットに自動的に追加されます。BPMプロセスは、SOAコンポジット内のコンポーネントとして表示されます。

BPMNプロセスにタイプ・メッセージの開始イベントが含まれる場合、プロセスのインタフェースは、公開されたサービスとして表示されます。

SOAコンポジットは、BPMプロジェクトが使用する異なるコンポーネントにプロセスがどのように依存するかを示します。プロジェクトのアクティビティが、実装のためにSOAコンポーネントによって公開されたサービスを使用する場合、SOAコンポーネントは、公開されたサービスとBPMNプロセスの間に線を表示します。この線は、BPMNプロセスと公開されたサービスをリンクするワイヤを表します。

18.1.4 BPMNエラーがSOAコンポジットのステータスに与える影響

SOAコンポジットのコンポーネントのステータスによって、SOAコンポジットのステータスが決まります。BPMNプロセスで例外が発生すると、SOAコンポジットのステータスは失敗としてマークされます。BPMNプロセスが例外を処理し、実行を正常に終了したとしても、SOAコンポーネントのステータスは失敗とマークされます。

18.2 BPMプロジェクトでSOAコンポジットを開く

BPMプロジェクトはSOAプロジェクトの上に配置されます。SOAプロジェクトにはSOAコンポジットが含まれています。SOAコンポーネントをBPMプロジェクトに追加するには、SOAコンポジット・エディタを使用する必要があります。SOAコンポジットに追加したSOAコンポーネントは、BPMプロジェクトのビジネス・カタログに自動的に表示されます。

18.2.1 BPMプロジェクトでSOAコンポジットを開く方法

BPMプロジェクトに含まれるSOAコンポジットを開いて、新規SOAコンポーネントを追加するか、既存のSOAコンポーネントを編集できます。

BPMプロジェクトでSOAコンポジットを開くには:

1. 「アプリケーション」ウィンドウを選択します。

2. プロジェクトのSOAコンテンツ・ディレクトリにあるcomposite.xmlファイルをダブルクリックします。
SOAコンポジット・エディタが開きます。

18.3 BPMプロジェクトでSOAコンポジットからBPMNプロセスを開く

BPMプロジェクトではSOAテクノロジを使用するため、BPMプロジェクトにはSOAコンポジットが含まれています。SOAコンポジット・エディタを使用して、BPMプロセスとBPMプロジェクト内の他のコンポーネントとの依存関係を表示したり、BPMプロジェクトに新規コンポーネントを追加できます。

18.3.1 BPMプロジェクトでSOAコンポジットからBPMNプロセスを開く方法

BPMプロジェクト・ナビゲータへの切替えを行わずに、SOAコンポジットからBPMNプロセスを開くことができます。

BPMプロジェクトでSOAコンポジットからBPMNプロセスを開くには:

1. SOAコンポジット・エディタを開きます。

2. 開くBPMNプロセスをダブルクリックします。
BPMNプロセス・エディタが表示されます。プロセスに加えた変更は、SOAコンポジットに表示されます。

18.4 SOAコンポジット・エディタからのBPMNプロセスの追加

BPMプロジェクト・ナビゲータへの切替えを行わずに、SOAコンポジット・エディタから直接、新規BPMNプロセスを追加できます。

18.4.1 SOAコンポジット・エディタからBPMNプロセスを追加する方法

ビジネス・アプリケーション・インフラストラクチャの分析中にBPMNプロセスの必要性を識別する場合、SOAコンポジット・エディタを開いた状態で、BPMNプロセスを直接追加できます。

SOAコンポジット・エディタからBPMNプロセスを追加するには:

1. SOAコンポジット・エディタを開きます。

2. コンポーネント・パレットの「サービス・コンポーネント」セクションから、「BPMNプロセス」を選択します。

3. SOAコンポジット・エディタの「コンポーネント」領域に、選択したコンポーネントをドラッグします。

18.4.2 SOAコンポジット・エディタからのBPMNプロセスの追加時に行われる処理

BPMNプロセスは、SOAコンポジット・エディタでコンポーネントとして表示されます。新規プロセスは、BPMプロジェクト・ナビゲータの「プロセス」フォルダに表示されます。

BPMNプロセスを編集するには、BPMNプロセスを右クリックして「編集」を選択するか、BPMNプロセスをダブルクリックします。

18.5 SOAコンポジットを使用したBPELプロセスとの統合

SOAコンポジット・エディタでは、プロジェクトのBPELプロセスおよびBPMNプロセスを示します。コンポジット・エディタを使用して、BPELプロセスとBPMNプロセスとの統合を設計できます。

BPELプロセスからBPMNプロセスを使用するには、BPELプロセスのパートナ・リンクとしてBPMNプロセスを追加する必要があります。BPELプロセスのパートナ・リンクとしてBPMプロセスを追加するには、SOAコンポジット・エディタを使用する必要があります。パートナ・リンクとしてBPMNプロセスを追加すると、BPELエディタを使用して、BPMNプロセスをBPELプロセスのアクティビティにリンクできます。BPELプロセスの編集の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

BPMNプロセスからBPELプロセスを使用するには、BPELプロセスをSOAコンポジットに追加する必要があります。これを行うと、BPELプロセスはビジネス・カタログに表示されます。ビジネス・カタログでBPELプロセスを使用して、BPMNプロセスにアクティビティを実装できます。

図18-2 BPELプロセスのパートナ・リンクとしてのBPMNプロセス

「図18-2 BPELプロセスのパートナ・リンクとしてのBPMNプロセス」の説明

18.6 BPELプロセスでのパートナ・リンクとしてのBPMNプロセスの追加

BPELプロセスからBPMNプロセスを使用するには、パートナ・リンクとしてBPMNプロセスを追加する必要があります。その後、BPELエディタを使用して、BPELプロセスのアクティビティからBPMNプロセスを起動できます。

18.6.1 BPELプロセスでのパートナ・リンクとしてBPMNプロセスを追加する方法

BPELプロセスからBPMNプロセスを使用するには、まずBPELプロセスのパートナ・リンクとしてBPMNプロセスを追加する必要があります。

BPELプロセスのパートナ・リンクとしてBPMNプロセスを追加するには:

1. SOAコンポジット・エディタを開きます。

2. BPELプロセス・コンポーネントの上にマウス・ポインタを置きます。
BPELプロセス・コンポーネントの両側にオレンジ色の矢印が表示されます。左側の矢印では新規サービスを追加できます。右側の矢印では新規参照を追加できます。

3. 右の矢印をクリックしてドラッグします。
緑色のリンクが表示され、BPMNプロセスによって公開されたサービスなど、コンポジット内のコンポーネントによって公開されたすべてのサービスが緑色になります。

4. パートナ・リンクとして追加するBPMNプロセスのサービスでリンクをドロップします。

18.6.2 BPELプロセスでのパートナ・リンクとしてのBPMNプロセスの追加時に行われる処理

BPMNプロセスはBPELプロセスのパートナ・リンクとして表示され、BPELプロセスからBPMNプロセスを起動できます。

18.7 Webサービスを使用したBPMNプロセスへの接続

BPMNプロセスでプロセス・インタフェースを定義すると、Webサービスを使用してそのプロセスに接続できます。プロセス・インタフェースが定義されたBPMNプロセスはすべて、SOAコンポジットに表示されます。プロセス・インタフェースの定義の詳細は、第23章「プロセス・インタフェースの定義」を参照してください。

カスタムWebサービス・クライアントを使用してBPMNプロセスに接続するには、次の情報が必要です。

- Webサービスの場所
http://host:port/soa-infra/services/partition/composite!revision/process.service

- WSDLの場所
http://host:port/soa-infra/services/partition/composite!revision/process.service?WSDL

- コンポジットのリスト
http://host:port/soa-infra

表18-1で、前述のURLを構成する情報について説明します。

表18-1 URLフィールドの説明

フィールド

説明

Host

BPMNサービス・エンジンが実行されているサーバー。

Port

BPMNサービス・エンジンに接続するポート。

Partition

SOAコンポジットが存在するMDSパーティション。

Composite

SOAコンポジットの名前。

Revision

コンポジットのバージョンを示すリビジョン番号。このフィールドはオプションです。リビジョンを指定しない場合、BPMNサービス・エンジンはコンポジットのデフォルトのリビジョンを使用します。

Process

BPMNプロセスの名前。

18.8 BPMプロジェクトのビルド

BPMプロジェクトは、BPMNサービス・エンジンにデプロイする前にビルドする必要があります。Oracle JDeveloperからBPMプロジェクトをビルドできます。

BPMプロジェクトをビルドすると、コンパイラ・ログ・ウィンドウに結果が表示されます。ビルドが成功すると、BPMNサービス・エンジンにデプロイできます。

エラーがある場合は、「コンパイラ」タブを選択してエラーをクリックし、対応するエディタを開いて修正できます。

18.8.1 BPMプロジェクトをビルドする方法

BPMプロジェクトをビルドするには:

1. BPMプロジェクトを開きます。

2. 「アプリケーション・ナビゲータ」ウィンドウをクリックします。

3. プロジェクトと対応するファイルを右クリックします。

4. 「プロジェクトのメイク」を選択します。
Oracle JDeveloperは、BPMプロジェクトをコンパイルします。コンパイラ・ログ・ウィンドウに、コンパイルの結果が表示されます。

18.8.2 BPMプロジェクトをビルドした後の結果

BPMプロジェクトを正常にビルドすると、BPMNサービス・エンジンにデプロイできます。BPMプロジェクトをデプロイするプロセスは、SOAプロジェクトのデプロイと同じです。

SOAプロジェクトをデプロイする方法は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のSOAコンポジット・アプリケーションのデプロイに関する説明を参照してください。

第VI部

プロセス・フローの制御

この部では、プロセス・フローの制御に使用できる様々なBPMNフロー・オブジェクトを実装する方法を説明します。また、他のBPMNプロセスおよび外部サービスと通信する方法も説明します。

この部の内容は次のとおりです。

- 第19章「プロセス・フローの制御」

- 第20章「プロセスへの遅延、期限および時間ベース・サイクルの追加」

- 第21章「エラーの処理」

- 第22章「他のBPMNプロセスおよびサービスとの通信」

- 第23章「プロセス・インタフェースの定義」

- 第26章「式の記述」

19 プロセス・フローの制御

この章では、プロセスでフローを制御するために使用できる様々なフロー・オブジェクトを簡単に説明します。ここでは、これらのフロー・オブジェクトの詳細について説明する章へのリンクも含まれています。また、サブプロセスに定義できるマーカーについても説明します。

この章の内容は次のとおりです。

- 19.1項「プロセス・フローの制御の概要」

- 19.2項「サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要」

19.1 プロセス・フローの制御の概要

Oracle BPMでは、プロセスのフローを制御するための様々な構造が提供されています。これらの構造によって、様々な状況に基づいてプロセス・インスタンスが使用するパスを決定できます。

プロセスのフローを制御できる構造は、次のとおりです。

- ゲートウェイ

- タイマー・イベント

- エラー

- メッセージ・イベント

- 送信タスクおよび受信タスク

- ループ・マーカー

- マルチインスタンス・マーカー

19.1.1 ゲートウェイ

ゲートウェイは、プロセスのフローをブランチ化させることができるフロー・オブジェクトです。ゲートウェイのタイプに応じて、インスタンスはゲートウェイからの1つ以上の送信シーケンス・フローに従うか、複数のコピーが作成されてこれらのブランチをパラレルに実行します。

ゲートウェイの詳細は、6.7項「ゲートウェイを使用したプロセス・フローの制御」を参照してください。

19.1.2 タイマー・イベント

タイマー・イベントを使用すると、時間の条件に基づいてプロセス・インスタンスが使用するパスを定義できます。タイマー・イベントの詳細は、第20章「プロセスへの遅延、期限および時間ベースのサイクルの追加」を参照してください。

19.1.3 エラー

エラー・イベントでは、プロセスが異常な状態を処理する方法を定義できます。エラー・イベントを使用すると、ビジネス・プロセスで発生する場合がある各エラーに対して異なるプロセス・フローを定義できます。エラー・イベントの詳細は、第21章「エラーの処理」を参照してください。

19.1.4 メッセージ・イベント

メッセージ・イベントでは、特定のイベントの発生に基づいてプロセス・フローを定義できます。通常、メッセージ・イベントは、非同期で外部サービスまたは別のBPMNプロセスを起動する場合に使用します。メッセージ・イベントの詳細は、第22章「他のBPMNプロセスおよびサービスとの通信」を参照してください。

19.1.5 送信タスクおよび受信タスク

メッセージ・イベントでは、特定のイベントの発生に基づいてプロセス・フローを定義できます。通常、メッセージ・イベントは、非同期で外部サービスまたは別のBPMNプロセスを起動する場合に使用します。メッセージ・イベントの詳細は、第22章「他のBPMNプロセスおよびサービスとの通信」を参照してください。

19.1.6 ループ・マーカー

ループ・マーカーでは、特定の状態に基づいてサブプロセスを複数回実行できます。ループ・マーカーの詳細は、19.2項「サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要」を参照してください。

19.1.7 マルチインスタンス・ループ・マーカー

マルチインスタンス・ループ・マーカーでは、一連のデータの各要素に対してサブプロセスを実行できます。ループ・マーカーの詳細は、19.2項「サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要」を参照してください。

19.2 サブプロセスのループ・マーカーおよびマルチインスタンス・マーカーの概要

ループ・マーカーおよびマルチインスタンス・マーカーを使用して複数回実行するサブプロセスを構成できます。

ループ・マーカーおよびマルチインスタンス・マーカーを構成するには、サブプロセスを繰り返す方法を指定する式および条件を定義する必要があります。

ループ・マーカー

ループ・マーカーによって、条件に基づいてサブプロセスを複数回実行できます。サブプロセスの実行前または実行後に条件を評価するように、ループ・マーカーを構成できます。特定の反復回数後に停止するように、ループ・マーカーを構成することもできます。

ループ・マーカーを構成するには、BPMNサービス・エンジンがサブプロセスの繰返しを続行する必要があるかどうかを決定するループ条件を記述する必要があります。

マルチインスタンス・マーカー

マルチインスタンス・マーカーによって、データのセット上の各要素のサブプロセスを実行できます。BPMNサービス・エンジンがマルチインスタンス・ループ・マーカーを使用してサブプロセスを実行すると、インスタンスのセット、データのセット上の各要素のインスタンスが作成されます。パラレルまたは順番にこれらのインスタンスを処理するように、マルチインスタンス・マーカーを構成できます。

マルチインスタンス・ループ・マーカーの次のフィールドには、式を記述する必要があります。

- ループ・カーディナリティ
この式は、サブプロセス内に作成するトークンの数を定義します。

- 完了条件
この式は、サブプロセスの繰返しを停止する時期を決定します。BPMサービス・エンジンは、トークンがサブプロセスを完了するたびにこの条件を評価します。条件がtrueと評価されると、サブプロセスが完了したとみなされ、インスタンスはプロセス内の次のフロー・オブジェクトに移動します。

19.2.1 ループ・マーカーの構成方法

ループ・マーカーを構成して、サブプロセスを複数回実行できます。

ループ・マーカーを構成するには:

1. サブプロセスを右クリックします。

2. 「プロパティ」を選択します。

3. 「ループ特性」タブをクリックします。

4. 「ループ」を選択します。

5. 次のように、ループ条件を指定します。

1. 式言語を選択します。
使用可能なオプションは「シンプル」または「XPath」です。

2. 下のテキスト領域に、ループを駆動する条件を記述します。
オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

6. オプションで、次のように、実行するループの最大回数を指定できます。

1. 「ループ最大」を選択します。

2. 数字を指定します。

7. 「次より前」を選択してフロー・オブジェクトの実行前に条件を評価するか、選択解除してフロー・オブジェクトの実行後に条件を評価します。

8. 「OK」をクリックします。

19.2.2 マルチインスタンス・マーカーの構成方法

マルチインスタンス・マーカーを構成して、データのセットに基づいてサブプロセスを複数回実行できます。

マルチインスタンス・マーカーを構成するには:

1. サブプロセスを右クリックします。

2. 「プロパティ」を選択します。

3. 「ループ特性」タブをクリックします。

4. 「MultiInstance」を選択します。

5. 次のモードを選択します。

- 順次: 次のトークンがサブプロセスの実行を開始する前に各トークンがサブプロセスを完了する必要があることを指定します。

- パラレル: トークンがパラレルで実行されることを指定します。

注意:

パラレル・モードを使用するときは、サブプロセスの実行によって生成される情報の保存にプロセス・データ・オブジェクトを使用すると、インスタンスが情報を上書きする可能性があることを考慮してください。これを避けるには、サブプロセス・データ・オブジェクトを使用してください。

6. 次のように、ループ・カーディナリティを指定します。

1. 式言語を選択します。
使用可能なオプションは「シンプル」または「XPath」です。

2. 下のテキスト領域に、ループ・カーディナリティの指定を記述します。
オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

7. オプションで、次のように、完了条件を指定できます。

1. 式言語を選択します。
使用可能なオプションは「シンプル」または「XPath」です。

2. 下のテキスト領域に、ループが完了したかどうかを決定する条件を記述します。
オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

8. データ出力を指定するには、「ループ・データ出力」フィールドの横にある「参照」ボタンをクリックします。
データ・オブジェクトまたはサブプロセスに渡す複合データ・オブジェクトの属性を選択できます。通常、選択したデータ・オブジェクトはアイテムのコレクションです。

9. データ入力を指定するには、「ループ・データ入力」フィールドの横にある「参照」ボタンをクリックします。
データ・オブジェクトまたはサブプロセスの結果を割り当てる複合データ・オブジェクトの属性を選択します。

10. 「OK」をクリックします。

20 プロセスへの遅延、期限および時間ベース・サイクルの追加

この章では、タイマー・イベントを使用してBPMNプロセスに時間条件を追加する方法を説明します。様々なタイマー・イベントを使用して遅延および期限を追加し、追加アクティビティを実行する方法を説明します。

この章の内容は次のとおりです。

- 20.1項「タイマー・イベントの概要」

- 20.2項「プロセス・フローへの遅延の追加」

- 20.3項「時間条件に基づいて起動するプロセスの設計」

- 20.4項「アクティビティの期限の構成」

- 20.5項「BPMNプロセスの期限の構成」

- 20.6項「追加アクティビティの実行」

- 20.7項「タイマー・イベントの構成」

20.1 タイマー・イベントの概要

タイマー・イベントを使用すると、時間条件を使用してプロセスのフローを制御できます。

タイマー・イベントは次の場合に使用できます。

- アクティビティ実行の前に遅延を作成する

- アクティビティの期限を構成する

- プロセスの期限を構成する

- 一定時間経過後に追加のアクティビティをトリガーする

- プロセスを起動する

- プロセスを定期的にトリガーする

タイマー・イベントはビジネス・カレンダ定義に基づきません。

Oracle BPMでは、次のものを使用するタイマーを構成できます。

- 特定の日付および時間
タイマー・イベントが特定の日付に起動するように構成できます。特定の日付を指定するか、または関数を使用して日付を計算できます。

- 相対的な時間
タイマー・イベントが一定時間の経過後に起動するように構成できます。経過時間を指定するか、関数を使用して時間を計算できます。タイマー・イベントが開始イベントまたは連続する境界イベントの場合、複数回起動されます。

タイマー・イベントを境界イベントとして定義した場合、連続しないイベントか連続するイベントのどちらとして構成するかを選択できます。

連続しないタイマー・イベントが発生した場合、トークンはメイン・プロセス・フローを離れて、タイマーによって定義されたフローを進みます。連続しないタイマー・イベントによって定義されたフローは、メイン・プロセス・フローを再開できます。

連続するイベントが起動した場合は、メイン・プロセス・フローで実行されているトークンのコピーがBPMNサービス・エンジンによって作成され、タイマー・イベントによって定義されたフローにコピーがルーティングされます。連続するイベントによって定義されたフローはメイン・プロセス・フローを再開できません。

20.2 プロセス・フローへの遅延の追加

中間タイマー・キャッチ・イベントを追加することにより、プロセス・フローに遅延を追加できます。トークンがタイマー・イベントに到達すると、タイマー・イベントで指定された期間待機した後、プロセス内の次のアクティビティに移行します。

たとえば、複数のデータベースを更新するプロセスの場合、プロセスを数分間遅延するタイマー・アクティビティを追加し、プロセスが続行する際にすべてのデータベースが更新されるようにします。

特定の日付まで待機するか、特定の期間待機するように中間タイマー・キャッチ・イベントを構成できます。いずれの場合も、固定値を選択するか、対応する日付または間隔を指定する式を使用できます。

タイマー中間イベントをサイクルとして構成すると、タイマー・イベントは1回だけ実行されます。指定された期間が経過するのを待ち、その後、トークンが残りのプロセス・フローを実行します。

図20-1 プロセス・フローの遅延

「図20-1 プロセス・フローの遅延」の説明

20.2.1 プロセス・フローへの遅延の追加方法

フロー・オブジェクトに遅延を追加できます。

プロセス・フローに特定の日付までの遅延を作成するには:

1. プロセス中の遅延を追加する場所を決定します。

2. コンポーネント・パレットの「イベントの捕捉」セクションで「タイマー」を選択します。

3. 遅延を追加する場所にタイマー・イベントをドロップします。

4. プロセスを特定の日付まで遅延する場合、タイマー・イベントを時間日付として構成する必要があります。プロセスを一定期間遅延する場合、タイマー開始イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、20.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。

タイマー・イベントをサイクルとして構成する方法については、20.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。

20.2.2 プロセス・フローへの遅延の追加時に行われる処理

中間タイマー・イベントに到達したトークンは、タイマー・イベントで指定された時間になるまでタイマー・イベントに残留します。タイマー・イベントが日付を使用するよう構成されている場合、トークンは指定された日付までタイマー・イベントに残留します。タイマー・イベントがサイクルを使用するよう構成されている場合、トークンは指定された時間が経過するまでタイマー・イベントに残留します。

20.3 時間条件に基づいて起動するプロセスの設計

プロセスにタイマー開始イベントを追加し、時間条件に基づいてトリガーされるように構成できます。タイマー開始イベントで指定された時間条件がtrueと評価されると、BPMNサービス・エンジンがプロセスに新規インスタンスを作成します。

たとえば、労働時間を報告するプロセスの場合、プロセス内にインスタンスを1日1回作成するタイマー開始イベントを追加できます。

特定の日付に起動するか、定期的にインスタンスを作成するようにプロセスを構成できます。いずれの場合も、固定値を選択するか、対応する日付または間隔を指定する式を使用できます。

過去の日付を指定するタイマー開始イベントが含まれるプロセスをデプロイすると、BPMNサービス・エンジンは自動的にプロセスのインスタンスを作成します。

図20-2 時間条件に基づくプロセスの起動

「図20-2 時間条件に基づくプロセスの起動」の説明

20.3.1 時間条件に基づいて起動するプロセスの設計方法

特定の日付に達した場合、または一定期間が経過した後に定期的に起動するようにプロセスを設計できます。

時間条件に基づいて起動するようプロセスを設計するには:

1. BPMNプロセスを開きます。

2. プロセスで1つの開始イベントを使用する場合、開始イベントを右クリックして「トリガー・タイプの変更」を選択し、「タイマー」を選択します。
プロセスで複数の開始イベントを使用する場合、コンポーネント・パレットの「開始イベント」セクションでタイマー開始イベントを選択する必要があります。タイマー開始イベントをプロセスにドロップします。タイマー開始イベントを右クリックし、「プロパティ」を選択します。

3. プロセスを特定の日付に起動する場合、タイマー開始イベントを時間日付として構成する必要があります。プロセスを一定期間の後に起動する場合、タイマー開始イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、20.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。

タイマー・イベントをサイクルとして構成する方法については、20.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。

20.3.2 時間条件に基づいて起動するプロセスの設計時に行われる処理

タイマー開始イベントの時間条件がtrueと評価されるたびに、BPMNサービス・エンジンによってプロセスにインスタンスが作成されます。タイマー開始イベントが特定の日付を使用するよう構成すると、指定された日付に到達した時点でBPMNサービス・エンジンによってインスタンスが作成されます。タイマー開始イベントがサイクルを使用するよう構成すると、BPMNサービス・エンジンによって定期的にプロセスにインスタンスが作成されます。

20.4 アクティビティの期限の構成

アクティビティの期限を構成するには、プロセスの別の位置に移動する、連続しない境界イベントとして構成された連続しないタイマー・キャッチ・イベントを使用します。トークンが予定よりも長い期間、または特定の日付よりも後までアクティビティに残留している場合、タイマー・キャッチ・イベントがトリガーされてプロセス・フローを中断します。

期限が特定の日付に発生するように構成したり、トークンがアクティビティで一定の時間を費やした後に発生するように構成できます。いずれの場合も、固定された日付または間隔を指定するか、対応する日付または間隔を計算する式を使用できます。

たとえば、発注プロセスでは、クレジット・カードの承認を必要とするアクティビティは承認を1日待機するように構成できます。承認にそれ以上時間がかかる場合、メッセージを顧客に送信するアクティビティにトークンを移動します。

図20-3 アクティビティの期限

「図20-3 アクティビティの期限」の説明

20.4.1 アクティビティの期限の構成方法

期限切れになった後にトークンが別のアクティビティに移動するようにアクティビティの期限を構成できます。期限切れの後、トークンがどのアクティビティに移動するかを指定できます。

アクティビティの期限を構成するには:

1. 期限を構成するプロセス中のアクティビティを決定します。

2. コンポーネント・パレットの「イベントの捕捉」セクションで「タイマー」を選択します。

3. タイマー・イベントをアクティビティにドロップします。
タイマー・イベントが境界イベントになります。境界タイマー・キャッチ・イベントから派生するシーケンス・フローが表示されます。

4. カーソルを終了イベントの上に置き、クリックしてシーケンス・フローをその位置にドロップします。

5. 期限を特定の日付に発生させる場合、境界タイマー・キャッチ・イベントを時間日付として構成する必要があります。期限を一定期間の後に発生させる場合、境界タイマー・キャッチ・イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、20.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。

タイマー・イベントをサイクルとして構成する方法については、20.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。

6. 「実装」タブのタイマー・プロパティ・ダイアログで、「イベントの中断中」を選択します。

20.4.2 アクティビティの期限の構成時に行われる処理

タイマー・イベントの起動時にアクティビティがまだ実行中であった場合、トークンはアクティビティを中断し、プロセスの別の位置に移動します。タイマー・イベントは、構成方法により、特定の日程に到達した時点で、または指定した期間が経過すると起動します。

20.5 BPMNプロセスの期限の構成

連続しないタイマー開始イベントで開始されるイベント・サブプロセスを使用して、プロセスのプロセス期限を構成できます。一定の期間が経過するか日付に到達すると、タイマー・イベントが起動します。トークンがまだプロセス中であれば、イベントのサブプロセスに移動します。

タイマー・イベントは、トークンがプロセス中にある場合のみアクティブです。

期限が特定の日付に発生するように構成したり、トークンがアクティビティで一定の時間を費やした後に発生するように構成できます。いずれの場合も、固定された日付または間隔を指定するか、対応する日付または間隔を計算する式を使用できます。

たとえば、発注プロセスで、トークンがプロセス中に3か月以上残留している場合、自動的にプロセスが終了されるように構成できます。

イベントのサブプロセスにエラー終了イベントを使用して、プロセスの実行が成功して完了しないようにできます。

図20-4 プロセスの期限

「図20-4 プロセスの期限」の説明

20.5.1 BPMNプロセスの期限の構成方法

BPMNプロセスの期限を構成できます。期限切れになった時点で、プロセス・フローを終了するか、フロー・オブジェクトのグループを実行するよう選択できます。

BPMNプロセスの期限を構成するには:

1. BPMNプロセスを開きます。

2. コンポーネント・パレットの「アクティビティ」セクションで「イベント・サブプロセス」を選択します。

3. イベント・サブプロセスをプロセスにドロップします。

4. イベント・サブプロセスの開始イベントをタイマー・イベントに構成します。

1. イベント・サブプロセスの開始イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「実装タイプ」リストから「タイマー」を選択します。

5. 「イベントの中断中」を選択します。

6. 期限を特定の日付に発生させる場合、タイマー・イベントを時間日付として構成する必要があります。期限を一定期間の後に発生させる場合、タイマー・イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、20.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。

タイマー・イベントをサイクルとして構成する方法については、20.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。

20.5.2 BPMNプロセスの期限の構成時に行われる処理

連続しないタイマー・イベントで指定されたよりも長くプロセス中にトークンが残留すると、タイマー・イベントが起動します。イベント・サブプロセスのタイマー開始イベントが起動すると、トークンはプロセスを離れ、イベント・サブプロセスに移動します。

20.6 追加アクティビティの実行

アクティビティまたはプロセスの実行中に、時間条件に基づいた追加アクティビティを実行できます。追加アクティビティは、定期的にトリガーするか、特定の日付にトリガーするよう選択できます。

一般的には、現在実行中のアクティビティの完了までに長時間かかる場合に追加アクティビティを実行します。たとえば、データベースの更新に20時間かかるサービスを実行している場合、更新の進行状況を通知する電子メールを関係者に送信できます。

タイマー・イベントは、トークンがアクティビティ中にある場合のみアクティブです。

プロセスの実行中にも追加アクティビティを実行できます。これらのアクティビティは、メイン・プロセス・フローとパラレルに実行されます。

図20-5 アクティビティ実行中の追加アクティビティの実行

「図20-5 アクティビティ実行中の追加アクティビティの実行」の説明

図20-6

「図20-6」の説明

20.6.1 アクティビティ実行中の追加アクティビティの実行方法

アクティビティの実行中に、パラレル・プロセス・フローを実行できます。一般的には、メイン・アクティビティの完了までに長時間かかるとわかっている場合に、一定期間の後にパラレル・プロセス・フローをトリガーするように設計します。

アクティビティ実行中に追加アクティビティを実行するには:

1. 追加アクティビティとパラレルで実行するアクティビティを決定します。

2. メイン・プロセス・フローの外側に、シーケンス・フローで接続されたアクティビティを追加して、追加プロセス・フローを作成します。

3. アクティビティの境界としてタイマー・イベントを追加します。
アクティビティに接続するためのシーケンス・フローが表示されます。

4. 作成した追加プロセス・フローにシーケンス・フローを接続します。

20.6.2 アクティビティ実行中の追加アクティビティの実行時に行われる処理

連続するイベントが起動した際にトークンがまだアクティビティ中に残留している場合、BPMNサービス・エンジンによってそのトークンのコピーが作成され、タイマー・イベントが定義するフロー内をルーティングされます。メイン・プロセス・フローのアクティビティが実行中に、タイマーが複数回起動することもあります。

20.6.3 プロセス実行中の追加アクティビティの実行方法

メイン・プロセス・フローの実行中に、追加アクティビティを実行できます。一般的には、プロセスの完了までに長時間かかるとわかっている場合に、一定期間の後にパラレル・プロセス・フローをトリガーするように設計します。

プロセス実行中に追加アクティビティを実行するには:

1. プロセスにサブプロセス・イベントを追加します。

2. サブプロセス・イベントの開始イベントを右クリックします。

3. 「プロパティ」を選択します。

4. 「実装」タブをクリックします。

5. 「実装タイプ」リストから「タイマー」を選択します。

6. 「イベントの中断中」オプションが選択されていないことを確認します。

7. 追加アクティビティを特定の日付に実行する場合、タイマー・イベントを時間日付として構成する必要があります。追加アクティビティを定期的に実行する場合、タイマー・イベントをサイクルとして構成する必要があります。
タイマー・イベントを時間日付として構成する方法については、20.7.1項「特定の日付および時間を使用するタイマー・イベントの構成方法」を参照してください。

タイマー・イベントをサイクルとして構成する方法については、20.7.3項「間隔を使用するタイマー・イベントの構成方法」を参照してください。

8. 追加アクティビティをサブプロセス・イベントに追加します。

20.6.4 プロセス実行中の追加アクティビティの実行時に行われる処理

イベント・サブプロセスのタイマー開始イベントが起動すると、BPMNサービス・エンジンにより、メイン・プロセス・フローのトークンのコピーが作成されます。メイン・プロセス・フローのトークンのコピーは、サブプロセス・イベントによって定義される追加プロセス・フローを移動します。タイマー開始イベントは、メイン・プロセス・フローの実行中に複数回起動できます。

20.7 タイマー・イベントの構成

特定の日時に起動するか、一定の時間が経過した後に起動するようにタイマー・イベントを構成できます。いずれの場合も、固定した時間値を指定するか、時間値を計算する式を指定できます。

20.7.1 特定の日付および時間を使用するタイマー・イベントの構成方法

タイマー・イベントが特定の日時を使用するよう構成できます。日付と時間を指定するか、計算式を使用できます。

特定の日時を使用するタイマー・イベントの構成方法は、次のとおりです。

1. タイマー・イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「時間日付」を選択します。

5. 日付を指定します。
日付の指定時に、次のオプションを選択できます。

- 「日付」フィールドの隣のカレンダ・ボタンをクリックします。日付を選択し、時間を入力してカレンダ・ダイアログを閉じます。

- 「日付」フィールドに日付を入力します。たとえば、Jan. 18, 2010 4:31:10 PMのように入力します。

- 「式の使用」を選択し、日付を返す式を指定します。
詳細は、第20章「プロセスへの遅延、期限および時間ベースのサイクルの追加」の26.4項「タイマー・イベントの式の記述」を参照してください。

注意:

指定する日付および時間は、BPMNサービス・エンジンが使用するタイムゾーンに対応します。

6. 「OK」をクリックします。

20.7.2 特定の日付および時間を使用するタイマー・イベントの構成時に行われる処理

タイマー・イベントは指定された日時に起動します。日時の指定に式を使用している場合、エンジンはこの式を評価してタイマー・イベントの起動時間を決定します。

20.7.3 間隔を使用するタイマー・イベントの構成方法

タイマー・イベントが間隔を使用するよう構成できます。間隔を指定するか、間隔を計算する式を使用できます。

間隔を使用するタイマー・イベントの構成方法は、次のとおりです。

1. タイマー・イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「サイクル」を選択します。

5. 時間間隔を指定するか、「式の使用」を選択し、間隔を返す式を作成します。
詳細は、26.4項「タイマー・イベントの式の作成」を参照してください。

6. 「OK」をクリックします。

20.7.4 間隔を使用するタイマー・イベントの構成時に行われる処理

タイマー・イベントは、指定された間隔の時間を待機して、定期的に起動されます。タイマー・イベントが開始イベントまたは連続する境界イベントの場合、複数回起動されます。タイマー・イベントが中間タイマー・イベントまたは連続しない境界イベントの場合、起動まで指定された間隔待機しますが、1回だけ起動されます。

21 エラーの処理

この章では、ビジネス・プロセスの実行中に発生するエラーの処理方法を説明します。Oracle BPMでは、エラーをモデリングできる例外コンポーネントや、プロセスの実行中にそれらのエラーを処理できる複数のBPMN構造が用意されています。

この章の内容は次のとおりです。

- 21.1項「エラー処理の概要」

- 21.2項「ビジネス例外の使用」

- 21.3項「システム例外の使用」

- 21.4項「例外の一般的なフロー」

- 21.5項「ビジネス・プロセスでの例外の処理」

- 21.6項「サブプロセスまたは再使用可能プロセスでの例外のスロー」

- 21.7項「サブプロセスでの例外の処理」

- 21.8項「メッセージ・イベントを使用したピア・プロセスでのエラー処理」

- 21.9項「BPMプロセスでのフォルト・ポリシーの処理」

21.1 エラー処理の概要

予期しない問題により、プロセスが失敗する状況が発生することがあります。エラーには2種類あります。システム・エラーおよびプロセス・エラーです。

システム・エラーは、BPMNサービス・エンジンが実行されているソフトウェアまたはハードウェア・インフラストラクチャの障害の結果、発生します。システム・エラーには様々な原因があります。システム・エラーの原因となる問題の例として、次のものがあげられます。

- データベース接続の失敗

- 接続が失われた場合

- ハード・ディスクの問題

プロセス・フロー内のシステム・エラーからリカバリするには、システム例外を使用できます。

プロセスでシステム例外を処理しない場合、Oracle Enterprise Managerが提供するフォルト・リカバリ・システムを使用してリカバリできます。Oracle Enterprise Managerのフォルト・リカバリ・システムの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

プロセス・エラーは、プロセスの通常の開発を妨げる問題です。たとえば、発注プロセスの場合、リクエストされたアイテムの在庫がなければ、通常のプロセス・フローを続行できません。プロセス・フロー中のこのような予期しない状況を処理できます。この例の状況を処理する1つの方法は、顧客に注文を取り消してもらうか、または注文を後のために保存してもらうことです。

プロセス内の予期しない状況には、次のような一般的な例があります。

- 在庫の不足

- ワークロードの制限の超過

- 金額の制限の超過

- フィードバックの期限切れ

- クレジット・カードの認証の問題

プロセスで例外が発生すると、そのBPMNプロセスを含むSOAコンポジットの状態に影響を及ぼします。例外がSOAコンポジットの状態に与える影響の詳細は、18.1.4項「BPMNエラーがSOAコンポジットのステータスに与える影響」を参照してください。

21.1.1 例外を使用したエラーの処理

Oracle BPMでは、ビジネス例外を使用して、ビジネス・プロセスの実行中に発生する可能性のある予期しない状況を表します。

例外の処理方法をビジネス・プロセスの一環として設計できますが、実際はプロセスの通常のフロー外で発生するものです。ビジネス例外を使用すると、メイン・フローで一般的な使用状況を処理する一方、別のフローでプロセス例外を処理するような、簡潔なプロセスを作成できます。

21.2 ビジネス例外の使用

ビジネス例外は、エラーではなく、プロセス設計の標準の一環とみなされています。

コンポーネントをビジネス・カタログに追加する際、コンポーネントのサービスがエラーを生成できるよう指定されている場合、これらのエラーは、「エラー」事前定義済モジュール内のビジネス・カタログでビジネス例外として表示されます。

サービスを起動すると、例外が発生する場合があります。これらの例外を処理するには、境界エラー・キャッチ・イベントまたはイベント・サブプロセスを使用します。

また、ビジネス・カタログでビジネス例外を定義できます。その後、特定の条件下でトリガーされたエラー終了イベントでこれらのビジネス例外を使用できます。エラー終了イベントにより例外が生成され、親プロセスが例外を処理できます。

21.3 システム例外の使用

システム例外は、プロセスの実行中に発生する場合がある低レベルのエラーを表します。場合によっては、プロセス内でこの低レベル・エラーを処理する必要があることがあります。

プロセス・フロー内でシステム例外を処理するには、その例外を捕捉し、システム例外を使用するようにエラー・キャッチ・イベントを構成する必要があります。

サービスまたは別のBPMNプロセスの実行中に、システム例外が発生する場合があります。特定のシステム例外をスローするようにプロセスを設計します。スロー・イベントまたは終了イベントで使用できる唯一の例外は、ロールバックです。他のすべてのサポートされるシステム例外は、キャッチ・エラー・イベントの開始にのみ使用可能です。

システム例外には、タイプがAnyであるerrorInfo属性が含まれます。どのような値でもこの属性に割り当てることができます。タイプがAnyであるため、この値は任意の型に属することができます。通常は、アプリケーションのトラブルシューティング用に、例外の原因または重要情報を格納するためにこの属性を使用します。

エラー・イベントの実装プロパティから、使用可能なシステム例外のリストのみを表示できます。

表21-1で、サポートされるシステム例外について説明します。また、システム例外が存在するモジュールおよび指定されたシステム例外を使用できるエラー・イベントも示します。

表21-1 システム例外

システム例外

モジュール

説明

エラー・イベント

AssertFailure

Bpel

指定したアサーションが失敗したことを示しています。

キャッチ、開始

BindingFault

Bpel

フロー・オブジェクトで起動された操作の準備に失敗したことを示しています。たとえば、WSDのロードに失敗しました。BindingFault後は起動を再試行することはできず、通常、このエラーからのリカバリには管理者操作が必要になります。

キャッチ、開始

InvalidVariables

Bpel

使用された変数が無効であることを示しています。

キャッチ、開始

RemoteFault

Bpel

フロー・オブジェクトでのサービスの起動に問題があったことを示しています。たとえば、リモート・サービスがSOAPフォルトを戻しました。

キャッチ、開始

Timeout

Soap

サービスがレスポンスのタイムアウト期間を超過したことを示しています。

キャッチ、開始

ConflictingReceive

Soap

起動された操作に応答する複数の受信アクティビティが存在することを示しています。

キャッチ、開始

ConflictingRequest

Soap

起動された操作の同じパートナ・リンクに対して複数のリクエストが存在することを示しています。

キャッチ、開始

CorrelationViolation

Soap

メッセージが必要な相関情報を提供していないことを示しています。

キャッチ、開始

ForcedTermination

Soap

SOAPフォルトが発生したため、サービスが終了されたことを示しています。

キャッチ、終了

InvalidReply

Soap

応答に、対応する受信が必要とする相関情報が含まれていないことを示しています。

キャッチ、開始

MismatchedAssignmentFailure

Soap

割り当てられたタイプに互換性がないことを示しています。

キャッチ、開始

RepeatedCompensation

Soap

補正ハンドラが複数回起動されることを示しています。

キャッチ、開始

SelectionFailure

Soap

選択操作の実行時にエラーがあったことを示しています。

キャッチ、開始

UninitializedVariable

Soap

アクセスしている変数が初期化されないことを示しています。

キャッチ、開始

Rollback

Soap

例外の受信者が、プロセス・フロー内からの現在のJTAトランザクションをロールバックできるようにします。

スロー、終了

21.4 例外の一般的なフロー

システム例外またはビジネス例外のフローは、例外が発生した場所に応じて異なります。

次のものの実行中に例外が発生する可能性があります。

- タスク

- サブプロセス

- 再使用可能なプロセス

21.4.1 タスクでスローされた例外の一般的なフロー

例外の原因となるタスクがBPMNサービス・エンジンによって実行された場合に行われる処理を、次に説明します。

1. BPMNサービス・エンジンは、例外をスロー可能なサービスを起動するタスクを実行します。

2. SOAPエラーが発生してタスクが失敗し、このエラーはBPMNサービス・エンジンによって例外に変換されます。

3. タスクに境界キャッチ・エラー・イベントが付属している場合、インスタンスは境界キャッチ・エラー・イベントで定義されたフローを使用して例外を処理します。例外処理フローにより、メイン・プロセス・フローを再開することも可能です。メイン・プロセス・フローを再開しない場合、プロセスは境界キャッチ・エラー・イベントで終了します。
タスクに境界キャッチ・エラー・イベントが関連付けられていない場合、例外はプロセス・レベルに伝播します。

4. プロセス・レベルでは、次のオプションが可能です。

- プロセスに、例外を捕捉できるイベント・サブプロセスが含まれておらず、フォールト・ポリシーを定義していない場合、BPMサービス・エンジンによってこのエラーがOracle Enterprise Managerのフォルト・リカバリ・システムのログに記録されます。Oracle Enterprise Managerのフォルト・リカバリ・システムの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

- プロセスに、例外を捕捉するよう構成されたタイプ・エラーの開始イベントを持つイベント・サブプロセスが含まれている場合、インスタンスは例外処理フローを継続します。インスタンスが例外処理フローを完了すると、プロセスは終了します。

21.4.2 サブプロセス内の例外の一般的なフロー

次のシーケンスで、例外の原因となるサブプロセスがBPMNサービス・エンジンによって実行された場合に行われる処理を説明します。

1. BPMサービス・エンジンにより、例外または終了エラー・イベントをスローするサービスを起動するタスクの含まれたサブプロセスが実行されます。

2. 次のイベントのいずれかが発生します。

- タスクが例外をスローする。

- サブプロセスがエラー・イベントで終了します。

3. タスクで例外が発生し、タスクに境界キャッチ・エラー・イベントが含まれているか、またはサブプロセスに例外を処理できるイベント・サブプロセスが含まれている場合、例外は親プロセスに伝播されません。
サブプロセスがエラー・イベントで終了するか、例外がタスクで発生して処理されない場合、例外は親プロセスに伝播されます。

4. 次の場合、親プロセスは例外を処理できます。

- サブプロセスに境界キャッチ・イベントが付属しています。

- 例外を捕捉するよう構成されたイベント・サブプロセスが含まれています。

親プロセスが例外を処理できない場合、その親プロセスに例外が伝播されます。親プロセスがない場合、例外はEnterprise Managerのフォルト・リカバリ・システムのログに記録されます。Enterprise Managerのフォルト・リカバリ・システムの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

21.4.3 再使用可能なプロセス内の例外の一般的なフロー

次のシーケンスで、例外の原因となる再使用可能なサブプロセスを起動するコール・アクティビティが、BPMNサービス・エンジンによって実行された場合に行われる処理を説明します。

1. BPMサービス・エンジンにより、例外または終了エラー・イベントをスローするサービスを起動するタスクの含まれた、再使用可能なプロセスが実行されます。

2. 次のイベントのいずれかが発生します。

- タスクが例外をスローする。

- 再使用可能なプロセスが、エラー・イベントで終了する。

3. タスクで例外が発生し、タスクに境界キャッチ・エラー・イベントが含まれているか、または再使用可能なプロセスに例外を処理できるイベント・サブプロセスが含まれている場合、例外は親プロセスに伝播されません。
サブプロセスがエラー・イベントで終了するか、例外がタスクで発生して処理されない場合、例外は親プロセスに伝播されます。

4. 次の場合、親プロセスは例外を処理できます。

- コール・アクティビティに境界キャッチ・イベントが付属しています。

- 例外を捕捉するよう構成されたイベント・サブプロセスが含まれています。

親プロセスが例外を処理できない場合、その親プロセスに例外が伝播されます。親プロセスがない場合、例外はEnterprise Managerのフォルト・リカバリ・システムのログに記録されます。Enterprise Managerのフォルト・リカバリ・システムの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

21.5 ビジネス・プロセスでの例外の処理

アクティビティで発生する例外を処理するには、次のものを使用できます。

- 境界エラー・キャッチ・イベント

- イベントのサブプロセス

境界エラー・キャッチ・イベントを使用すると、例外を処理した後にメイン・プロセス・フローを再開できます。

例外処理フローをプロセス内の複数のタスクで再利用したい場合、イベント・サブプロセスの方が境界キャッチ・イベントよりも効率的です。キャッチ・エラー・イベントはイベント・サブプロセス間に置かれるため、イベント・サブプロセスを使用する方が簡潔なプロセスを定義でき、手間もかかりません。境界キャッチ・イベントを使用して例外処理フローを再利用する場合、各タスクに対して境界キャッチ・イベントを定義し、その後、それらの協会イベントを例外処理フローに接続する必要があります。

図21-1に、境界エラー・キャッチ・イベントを使用してエラーを処理するプロセスを示します。

図21-1 境界エラー・キャッチ・イベント

「図21-1 境界エラー・キャッチ・イベント」の説明

また、イベント・サブプロセスを使用すると、サブプロセスが自らのデータ・オブジェクトを定義できるのと同様に、イベント・サブプロセス内からのみアクセス可能なデータ・オブジェクトを定義できます。

図21-2に、イベント・サブプロセスを使用してエラーを処理するプロセスを示します。

図21-2 開始エラー・イベントのあるイベント・サブプロセス

「図21-2 開始エラー・イベントのあるイベント・サブプロセス」の説明

21.5.1 境界エラー・キャッチ・イベントを使用した例外処理の方法

フロー・オブジェクトの実行によって例外が発生する可能性があることがわかっている場合、境界エラー・キャッチ・イベントを使用して例外を処理するようプロセスを設計できます。

境界エラー・キャッチ・イベントを使用して例外を処理するには:

1. 例外処理フローを作成します。
例外を処理した後、このフローはメイン・プロセスを再開するか、またはプロセスを終了できます。

2. コンポーネント・パレットの「イベントの捕捉」セクションで「エラー・イベント」を選択します。

3. エラー・イベントを、例外をスローするタスクの上にドロップします。
イベントは、タスクの境界のどこに置いても構いません。

エラー・イベントをドロップすると、シーケンス・フローが表示され、これを例外処理フローに接続できます。

4. 例外処理フローにシーケンス・フローを接続します。

5. 境界キャッチ・エラー・イベントを右クリックします。

6. 「プロパティ」を選択します。

7. 「実装」タブをクリックします。

8. 実装プロパティを構成して、ビジネスまたはシステム例外を捕捉します。
ビジネス例外を捕捉するように実装プロパティを構成する方法については、21.5.5項「エラー・イベントを構成してビジネス例外を捕捉する方法」を参照してください。

システム例外を捕捉するように実装プロパティを構成する方法については、21.5.6項「キャッチ・イベントを構成してシステム例外を捕捉する方法」を参照してください。

21.5.2 境界キャッチ・イベントを使用した例外処理時に行われる処理

境界エラー・キャッチ・イベントが付随しているタスクの実行中にBPMNサービス・エンジンがエラーに遭遇すると、境界エラー・キャッチ・イベントによって定義されたフローを使用します。境界エラー・キャッチ・イベントによって定義された例外処理フローは、メイン・プロセス・フローを再結合するか、またはプロセスを終了できます。

21.5.3 イベント・サブプロセスを使用した例外処理の方法

BPMNプロセスでフロー・オブジェクトを実行中に発生する可能性のある例外を処理する際、イベント・サブプロセスを使用できます。

イベント・サブプロセスを使用して例外を処理するには:

1. コンポーネント・パレットの「アクティビティ」セクションで「イベント・サブプロセス」を選択します。

2. イベント・サブプロセスをプロセスにドロップします。

3. イベント・サブプロセスの開始イベントを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. 「実装タイプ」リストから「エラー」を選択します。

7. 実装プロパティを構成して、ビジネスまたはシステム例外を捕捉します。
ビジネス例外を捕捉するように実装プロパティを構成する方法については、21.5.5項「エラー・イベントを構成してビジネス例外を捕捉する方法」を参照してください。

システム例外を捕捉するように実装プロパティを構成する方法については、21.5.6項「キャッチ・イベントを構成してシステム例外を捕捉する方法」を参照してください。

21.5.4 イベント・サブプロセスを使用した例外処理時に行われる処理

プロセス内のタスクの実行中にイベント・サブプロセスで処理された例外が発生すると、BPMNサービス・エンジンは、イベント・サブプロセスで定義された例外処理フローの実行を続けます。

21.5.5 エラー・イベントを構成してビジネス例外を捕捉する方法

エラー・イベントを構成してビジネス例外を捕捉することができます。エラー・イベントを構成してビジネス例外を捕捉するには、エラー・イベント実装プロパティを編集する必要があります。

エラー・イベントの実装プロパティを構成してビジネス例外を捕捉するには:

1. このプロセスの実行中に発生するすべてのビジネス例外を処理する場合、「すべてのビジネス例外の捕捉」を選択します。
特定のビジネス例外を捕捉したい場合:

1. 「例外」フィールドの横の「参照」ボタンをクリックします。
「タイプ」ダイアログ・ボックスが表示されます。

2. 例外の名前を入力するか、ツリーから選択します。

3. 「OK」をクリックします。
「タイプ」ダイアログ・ボックスが閉じ、「例外」フィールドに選択した例外が表示されます。

21.5.6 キャッチ・イベントを構成してシステム例外を捕捉する方法

エラー・イベントを構成してシステム例外を捕捉することができます。エラー・イベントを構成してシステム例外を捕捉するには、エラー・イベント実装プロパティを編集する必要があります。

エラー・イベントの実装プロパティを構成してシステム例外を捕捉するには:

1. このプロセスの実行中に発生する可能性のあるすべてのシステム例外を処理する場合、「すべてのシステム例外の捕捉」を選択します。
特定のビジネス例外を捕捉したい場合:

1. 「例外」フィールドの横の「参照」ボタンをクリックします。
「タイプ」ダイアログ・ボックスが表示されます。

2. 「システム・フォルトの表示」を選択します。
ツリーは使用可能なシステム・フォルトを示しています。各種のエラー・イベントでサポートされる例外のリストについては、表21-1を参照してください。

3. 例外の名前を入力するか、ツリーから選択します。

4. 「OK」をクリックします。
「タイプ」ダイアログ・ボックスが閉じ、「例外」フィールドに選択した例外が表示されます。

21.6 サブプロセスまたは再使用可能なプロセスでの例外のスロー

エラー終了イベントを使用しているビジネス例外のみスローできます。これにより、親プロセスのみがこれらの例外を捕捉できます。

タスクの実行中に発生する低レベルの例外をスローするかわりに、カスタマイズされた高レベルの例外をスローするようにプロセスを構成できます。高レベルの例外をスローするには、エラーをスローする終了イベントにアクティビティ内の境界イベントを接続するか、またはサブプロセス・イベントをエラー終了イベントで完了します。

21.6.1 例外をスローする方法

エラー終了イベントを使用して、BPMNプロセスがビジネス例外をスローするように構成できます。

例外をスローするには:

1. カスタム例外をスローする場合は、ビジネス例外を作成します。
既存のビジネス例外またはシステム例外をスローすることもできます。

ビジネス例外の作成方法については、21.6.3項「ビジネス例外の作成方法」を参照してください。

2. プロセス中の例外をスローする場所を決定します。

3. これらのオプションのいずれかを使用して、プロセスのフローをブランチ化します。

- プロセスのフローにブランチを作成するためのゲートウェイを追加します。

- 境界イベントを追加します。

4. コンポーネント・パレットからエラー終了イベントをドラッグし、プロセスにドロップします。

5. ゲートウェイまたは境界イベント、およびエラー終了イベントをリンクするシーケンス・フローを追加します。

6. エラー終了イベントを右クリックします。

7. 「プロパティ」を選択します。

8. 「実装」タブをクリックします。

9. 「例外」フィールドの横の「参照」ボタンをクリックします。
「タイプ」ダイアログ・ボックスが表示されます。

10. システム例外をスローする場合、「システム・フォルトの表示」を選択します。
ツリーは使用可能なシステム・フォルトを示しています。各種のエラー・イベントでサポートされる例外のリストについては、表21-1を参照してください。

11. 例外の名前を入力するか、ツリーから選択します。

12. 「OK」をクリックします。
「タイプ」ダイアログ・ボックスが閉じ、「例外」フィールドに選択した例外が表示されます。

13. 「OK」をクリックします。

21.6.2 例外のスロー時に行われる処理

BPMNサービス・エンジンはプロセスを中断し、例外を親プロセスにスローします。サブプロセスにエラー・キャッチ境界イベントが付随しているか、または親プロセスにエラー・イベントを処理できるイベント・サブプロセスが存在する場合、親プロセスは例外を処理できます。そうでない場合、親プロセスは例外をその親プロセスにスローします。親プロセスがない場合、例外はBPMNサービス・エンジンによってOracle Enterprise Managerのフォルト処理システムのログに記録されます。

21.6.3 ビジネス例外の作成方法

ビジネス例外を作成し、それを使用してBPMNプロセスのエラー・イベントを実装できます。

ビジネス例外を作成するには:

1. ビジネス・カタログでモジュールを右クリックします。
ビジネス・カタログにモジュールが含まれていない場合は、モジュールを作成する必要があります。

2. 「新規」を選択します。

3. 「例外」を選択します。

4. 例外を識別するための名前を入力します。

5. 「OK」をクリックします。
ビジネス例外エディタが開きます。

6. 必要に応じて、errorInfo属性を変更できます。
ErrorInfo属性を変更する方法については、21.6.5項「ビジネス例外でのErrorInfo属性の構成方法」を参照してください。

21.6.4 ビジネス例外の作成時に行われる処理

例外は、ビジネス・カタログの選択したモジュールに表示されます。この例外をスローするようにプロセス中のエラー終了イベントを構成するか、またはこの例外を処理するように境界エラー・キャッチ・イベントを構成できます。

21.6.5 ビジネス例外でのErrorInfo属性の構成方法

ビジネス例外にはerrorInfo属性が含まれ、これを使用して例外を引き起こした状況に関する情報を保存できます。このフィールドの情報を使用して、ユーザー、プロセス開発者、および管理者がエラーの原因を理解できる手助けができます。

ビジネス例外でErrorInfo属性を構成するには:

1. ビジネス例外エディタを開きます。

2. 「属性」セクションでerrorInfo属性を展開します。

3. errorInfo属性プロパティを変更します。
次のプロパティを変更できます。

- 説明

- Documentation

- タイプ

4. 「保存」をクリックするか、ビジネス例外エディタを閉じて変更内容を保存します。

21.7 サブプロセスでの例外の処理

サブプロセスで発生した例外は、他のBPMNアクティビティで例外を処理する場合と同様に処理できます。

21.8 メッセージ・イベントを使用したピア・プロセスのエラー処理

プロセスが別のピア・プロセスと通信するとき、そのピア・プロセスでいずれかのフロー・オブジェクトを実行するとエラーが発生する場合があります。同期的な操作の場合、このエラーを起動元のピア・プロセスに伝播する正しい形式では、エラーとして構成されたメッセージ・イベントを使用しています。

エラーとして構成されたメッセージ・イベントは、起動元のピア・プロセスに、プロセスの実行中にエラーが発生したことを伝達します。ただし、これは予期されたエラーであるため、監査証跡ではプロセスが正常に実行されたと示されます。

起動元のピア・プロセスがこれらのオプションのいずれかを使用して例外を処理する方法を定義する必要があります。

- ピア・プロセスを起動するフロー・オブジェクトに、境界エラー・キャッチ・イベントを追加します。

- 起動元のピア・プロセスに、例外を処理するイベント・サブプロセスを追加します。

起動元のピア・プロセスでエラー処理を行わない場合、エラーは伝播され、プロセスの実行は正常に完了しません。

注意:

エラーがない場合にインスタンスが使用するパスを必ず定義しておく必要があります。エラーがない場合のパスを定義しないと、プロジェクトが正常にビルドされません。

エラー・イベントの使用とエラー・メッセージ・イベントの使用の相違点

プロセス間通信中のエラー処理にエラー終了イベントまたはスロー・イベントを使用することは、お薦めできません。エラー・イベントは、プロセス内で処理されるか、次のレベルに伝播される可能性がある内部エラーに対してのみ使用する必要があります。これらのエラーは、このプロセスの外では意味がありません。

ピア・プロセスの実行中に発生した例外は、起動元のピア・プロセスに伝播されません。ピア・プロセスが応答を停止しため、最終的には、起動元のピア・プロセスがタイムアウト通知を受信します。

21.8.1 メッセージ・イベントを使用してピア・プロセス内でエラーを処理する方法

プロセス間通信に使用されるプロセスで操作を実行するとエラーが発生する可能性があるとわかっている場合は、メッセージ終了イベントまたはスロー・イベントを追加して、起動元のピア・プロセスにエラーを伝播することをお薦めします。

メッセージ・エラーを実装するには、ビジネス例外を選択する必要があります。プロジェクトでビジネス例外を定義しない場合、ビジネス例外を作成する必要があります。ビジネス例外の詳細は、21.2項「ビジネス例外の使用」を参照してください。

メッセージ・イベントを使用してピア・プロセスでエラーを処理するには:

1. ピアBPMNプロセスを編集します。

2. メッセージ終了イベントまたはスロー・イベントを追加します。

3. エラーを生成する可能性があるフロー・オブジェクトから、メッセージ終了イベントに、シーケンス・フローを追加します。

4. メッセージ終了イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「実装」リストから「例外」を選択します。

8. 「例外」フィールドの横にある「参照」ボタンをクリックして、使用可能なビジネス例外を参照して選択します。

9. 「OK」をクリックします。

21.8.2 メッセージ・イベントを使用してピア・プロセスでエラー処理をした後の結果

起動されたピア・プロセスでエラーが発生した場合、エラーはそれを起動したプロセスに伝達されます。起動元のピア・プロセスがエラー・イベントを使用してエラーを処理する必要がありますが、ここでエラーが処理されない場合はエラーは次のレベルに伝播されます。

そのエラー・メッセージ・イベントはプロセスの予期されたフローの一部であるため、起動されたピア・プロセスの実行後のステータスは、正常に実行されたように表示されます

21.9 BPMプロセスでのフォルト・ポリシーの処理

BPMプロセス内でフォルト・ポリシー・エラーを処理し、ビジネス例外として扱うことができます。

21.9.1 BPMプロセスでフォルト・ポリシーを処理する方法

BPMプロセスでフォルト・ポリシーを処理するには:

1. フォルト・ポリシーが含まれるwsdlファイルに基づいて例外を作成します。

2. フォルト・ポリシー・エラーを生成できるサービス・タスクにエラー境界キャッチ・イベントを追加します。
境界イベントを追加する方法の詳細は、次を参照してください ...

3. フォルト・ポリシーを表す例外を捕捉するようにエラー境界キャッチ・イベントを構成します。

1. エラー境界キャッチ・イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「例外」フィールドの隣の「参照」ボタンをクリックします。

4. フォルト・ポリシーを表す例外を選択します。

5. 「OK」をクリックします。

4. 「OK」をクリックします。

21.9.2 例外を使用したフォルト・ポリシー・エラー処理時に行われる処理

フォルト・ポリシー・エラーを処理するために例外を定義した場合は、定義された方法でBPMNサービス・エンジンがフォルト・ポリシー・エラーを処理します。アクティビティでフォルト・ポリシー・エラーが発生すると、インスタンスは境界エラー・キャッチ・イベントによって定義された例外処理フローに従います。

22 他のBPMNプロセスおよびサービスとの通信

この章では、他のBPMNプロセスおよびサービスと通信するBPMNプロセスの開発方法を説明します。他のプロセスまたはサービスを起動し、複数のプロセスにメッセージをブロードキャストし、特定のブロードキャスト・メッセージを待機するようにプロセスを構成する方法を説明します。

この章の内容は次のとおりです。

- 22.1項「他のBPMNプロセスおよびサービスとの通信の概要」

- 22.2項「メッセージ・イベントを使用した他のBPMNプロセスおよびサービスとの通信」

- 22.3項「メッセージ・イベントを使用した非同期サービスおよび非同期BPMNプロセスの起動」

- 22.4項「境界イベントとして構成されたメッセージ・イベントの使用」

- 22.5項「サービス・タスクを使用したサービスおよびBPMNプロセスの同期操作の起動」

- 22.6項「送信および受信タスクを使用した他のBPMNプロセスおよびサービスとの通信」

- 22.7項「送信および受信タスクを使用した非同期サービスおよび非同期BPMNプロセスの起動」

- 22.8項「コール・アクティビティを使用したプロセス起動の概要」

- 22.9項「コール・アクティビティを使用したプロセスの起動」

- 22.10項「シグナル・イベントを使用したプロセス間の通信の概要」

- 22.11項「シグナル・イベントを使用したプロセス間の通信」

22.1 他のBPMNプロセスおよびサービスとの通信の概要

Oracle BPMでは、BPMNプロセスが他のプロセスまたはサービスと通信するために、次の手段が用意されています。

- メッセージ
メッセージは、非同期サービスまたは非同期BPMNプロセスの起動を可能にします。また、これらを使用して、プロセスが他のプロセスまたはサービスに公開するインタフェースを定義できます。

メッセージ・イベントの詳細は、22.2項「メッセージ・イベントを使用した他のBPMNプロセスおよびサービスとの通信」を参照してください。

- 送信タスクおよび受信タスク
これらはメッセージ・イベントと非常に類似しています。いずれを使用しても構いません。

メッセージ・イベントとの唯一の違いは、これらが境界イベントをサポートしている点です。

メッセージは、非同期サービスまたは非同期BPMNプロセスの起動を可能にします。また、これらを使用して、プロセスが他のプロセスまたはサービスに公開するインタフェースを定義できます。

送信および受信タスクの詳細は、22.6項「送信および受信タスクを使用した他のBPMNプロセスおよびサービスとの通信」を参照してください。

- シグナル・イベント
これらを使用して、メッセージを複数のプロセスにブロードキャストできます。その特定のメッセージを待機しているプロセスが、これに反応します。

シグナル・イベントの詳細は、22.11項「シグナル・イベントを使用したプロセス間の通信」を参照してください。

22.1.1 同期および非同期操作の概要

メッセージ・イベント、送信および受信タスク、およびサービス・タスクは、操作を使用して他のBPMNプロセスまたはサービスと通信します。これらの操作は同期または非同期のいずれをも使用できます。

同期および非同期操作の主な相違点は、起動時の反応の方法です。

同期操作を起動する際、メッセージを送信し、レスポンスを待ってからプロセス・フローを続行します。

非同期操作を起動する際、メッセージを送信しますが、応答を待たずにプロセス・フローを続行します。非同期操作はメッセージを受信したら実行を開始します。非同期操作の応答は、コールバック操作を起動することによって取得できます。非同期操作の実行が完了する前にコールバック操作を起動した場合、応答を受信する前に非同期操作が完了するまで待機する必要があります。

メッセージ・イベントと送信および受信タスクでは、操作を対応するコールバックに関連付ける方法を指定する必要があります。会話を使用すると、1つ以上の操作をそのコールバックとともにグループ化できます。会話により、BPMNプロセスへのアクセスに使用する複数の操作を定義できます。

22.2 メッセージ・イベントを使用した他のBPMNプロセスおよびサービスとの通信

メッセージ・イベントを使用すると、プロジェクト内の他のBPMNプロセスおよびサービスと通信できます。

メッセージ・イベントは次の場合に使用できます。

- 非同期サービスの起動。

- 非同期BPMNプロセスの起動。

- プロセスと他のプロセスが通信するためのインタフェースの定義。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、これらを1つのプロセス内で混在させないことをお薦めします。

異なるメッセージ・イベントの実装は、イベントのタイプと、会話内でのその役割によって異なります。表22-1で、メッセージ・イベントの様々な実装を説明します。

表22-1 メッセージ・イベントの実装

イベント

会話の開始

会話の継続

メッセージ開始

- 操作のインタフェースの定義

- ビジネス・カタログのインタフェースの使用

使用不可

メッセージ・スロー

- サービスの起動

- BPMNプロセスの起動

インタフェースを定義する開始イベントまたはキャッチ・イベントを継続する場合:

- 非同期操作のコールバック・インタフェースを定義します。

- 同期操作の出力を定義します。

- 同期操作の例外を定義します。

サービスまたはBPMNプロセスを起動するメッセージ・スローを続行する場合:

- 継続するのと同じサービスまたはBPMNプロセスから操作を起動します。

メッセージ・キャッチ

- 操作のインタフェースの定義

- ビジネス・カタログのインタフェースの使用

インタフェースを定義する開始イベントまたはキャッチ・イベントを継続する場合:

- イニシエータ・イベントのインタフェースの使用

- 操作のインタフェースの定義

サービスまたはBPMNプロセスを起動するスロー・イベントを続行する場合:

- サービスまたはBPMNプロセスのコールバックを起動します。

メッセージ終了

使用不可

インタフェースを定義する開始イベントまたはキャッチ・イベントを継続する場合:

- 非同期操作のコールバックの定義

- 同期操作の出力を定義します。

- 同期操作の例外を定義します。

サービスまたはBPMNプロセスを起動するスロー・イベントを続行する場合:

- 継続するのと同じサービスまたはBPMNプロセスから操作を起動します。

22.3 メッセージ・イベントを使用した非同期サービスおよび非同期BPMNプロセスの起動

メッセージ・イベントを使用して、非同期サービスおよび非同期BPMNプロセスを起動できます。

サービスまたはBPMNプロセスから非同期操作を起動する場合、会話を開始するよう構成された中間スロー・メッセージ・イベントを使用する必要があります。

BPMNサービス・エンジンがメッセージ・スロー・イベントを実行する際、次のものに基づいてXMLメッセージを作成します。

- 非同期操作

- 非同期操作が必要とする入力

- メッセージ・スロー・イベントに対して定義されたデータ・アソシエーション

その後、XMLメッセージをサービスまたはBPMNプロセスに送信し、プロセス・フローの残りの実行を継続します。非同期サービスまたはBPMプロセスが応答するのを待機しません。

非同期サービスまたはBPMNプロセスはメッセージを受信し、リクエストされた操作を実行します。完了すると、起動元のBPMNプロセスに操作の結果のメッセージを送信します。このメッセージは、非同期サービスまたはBPMNプロセスのコールバック操作です。

非同期操作を起動したBPMNプロセスは、結果を取得するのに、コールバック操作を待機する必要があります。BPMNプロセスは、コールバック操作を待機するメッセージ・キャッチ・イベントを定義する必要があります。このメッセージ・キャッチ・イベントは会話を継続させ、操作を起動したメッセージ・スロー・イベントをイニシエータ・イベントとして使用します。

トークンがメッセージ・キャッチ・イベントに到達すると、非同期プロセスが完了していれば即時応答を受信できますが、そうでなければ応答を取得するのに非同期プロセスが完了するまで待機する必要があります。

図22-1 メッセージ・イベントを使用した非同期サービスまたはBPMNプロセスの起動

「図22-1 メッセージ・イベントを使用した非同期サービスまたはBPMNプロセスの起動」の説明

22.3.1 メッセージ・イベントを使用した非同期サービス操作の起動方法

メッセージ・イベントを使用して非同期サービス操作を起動できます。

メッセージ・イベントを使用して非同期サービス操作を起動するには:

1. 非同期サービス操作を起動するBPMプロセスを編集します。

2. プロセス中の非同期サービス操作を起動する場所を決定します。

3. プロセス中の決定した場所にメッセージ・スロー・イベントを追加します。

4. メッセージ・スロー・イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで、「参照」をクリックします。
「会話」ダイアログが表示されます。

8. 「検索」フィールドの隣の「新規」ボタンをクリックします。
「会話の作成」ダイアログが表示されます。

9. 「タイプ」リストから、「サービス・コール」を選択します。
選択したサービスは非同期サービスである必要があります。

10. 「定義」セクションで、「サービス」フィールドの隣の「参照」ボタンをクリックします。
「サービス」ダイアログが表示されます。

11. 起動する非同期サービスを選択します。

12. 「OK」をクリックします。

13. 「操作」リストで、非同期サービスから起動する操作を選択します。

14. 非同期サービスが引数を必要とする場合、メッセージ・スロー・イベントのデータ・アソシエーションを構成します。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

15. 「OK」をクリックします。

16. 22.3.2項「メッセージ・イベントを使用した非同期サービスのコールバック操作の受信方法」の手順を実行し、非同期プロセスのコールバック操作を起動します。

22.3.2 メッセージ・イベントを使用した非同期サービスのコールバック操作の受信方法

メッセージ・イベントを使用して、非同期操作とペアになるコールバック操作を受信できます。

メッセージ・イベントを使用した非同期サービスのコールバック操作を受信するには:

1. 非同期サービスのコールバックを受信するBPMプロセスを編集します。

2. プロセス中の非同期サービスのコールバック操作を受信する場所を決定します。

3. プロセス中の決定した場所にメッセージ・キャッチ・イベントを追加します。

4. メッセージ・キャッチ・イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで、「参照」をクリックします。
「会話」ダイアログが表示されます。

8. 使用する会話を選択します。

9. 「OK」をクリックします。
「メッセージ交換」セクションが変わります。

10. 「ターゲット・ノード」リストから、コールバック操作を選択します。

11. 非同期サービスが引数を必要とする場合、メッセージ・スロー・イベントのデータ・アソシエーションを構成します。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

12. 「OK」をクリックします。

22.3.3 メッセージ・イベントを使用した非同期サービス操作の起動時に行われる処理

メッセージ・スロー・イベントを使用して非同期サービス操作を起動する際、BPMNサービス・エンジンはサービスが応答するまで待機しません。メッセージ・スロー・イベントに続くフロー・オブジェクトの実行を継続します。

BPMNプロセスは、メッセージ・キャッチ・イベントを使用してサービス・コールバック操作を起動することにより、非同期サービスのレスポンスを取得できます。

サービスの実行が完了した後も、BPMNプロセスはメッセージ・キャッチ・イベントを使用してコールバック操作を起動するまでサービス・レスポンスを受信しません。

BPMNサービス・エンジンがメッセージ・キャッチ・イベントを実行する間もサービスがまだ実行中であれば、エンジンは、トークンをプロセス中の次のフロー・オブジェクトに渡す前に、サービス操作が完了するまで待機します。

22.3.4 メッセージ・イベントを使用した非同期BPMNプロセス操作の起動方法

メッセージ・イベントを使用して非同期BPMNプロセスのノードを起動できます。

メッセージ・イベントを使用して非同期BPMNプロセス操作を起動するには:

1. 非同期BPMNプロセスを起動するBPMプロセスを編集します。

2. プロセス中の非同期BPMNプロセスを起動する場所を決定します。

3. プロセス中の決定した場所にメッセージ・スロー・イベントを追加します。

4. メッセージ・スロー・イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「新規」を選択します。
「会話」ダイアログが表示されます。

8. 「新規」ボタンをクリックします。

9. 「タイプ」リストから、「プロセス・コール」を選択します。

10. 「プロセス」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

11. 起動する非同期BPMNプロセスを選択します。

12. 「OK」をクリックします。

13. 「ターゲットの会話」リストから、非同期のBPMNプロセスからの会話を選択します。

14. 非同期BPMNプロセスが引数を必要とする場合、メッセージ・スロー・イベントのデータ・アソシエーションを構成します。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

15. 「OK」をクリックします。

16. 22.3.5項「メッセージ・イベントを使用した非同期BPMNプロセスのコールバック操作の起動方法」の手順を実行し、非同期プロセスのコールバック操作を起動します。

22.3.5 メッセージ・イベントを使用した非同期BPMNプロセスのコールバック操作の起動方法

メッセージ・イベントを使用して、BPMNプロセスの非同期ノードとペアになるコールバック操作を起動できます。

メッセージ・イベントを使用した非同期BPMNプロセスのコールバック操作を起動するには:

1. 非同期BPMNプロセスのコールバックを起動するBPMプロセスを編集します。

2. プロセス中の非同期BPMNプロセスのコールバック操作を起動する場所を決定します。

3. プロセス中の決定した場所にメッセージ・キャッチ・イベントを追加します。

4. メッセージ・キャッチ・イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」フィールドの隣の「参照」ボタンをクリックします。
「会話」ダイアログが表示されます。

8. 使用する会話を選択します。

9. 「OK」をクリックします。
「メッセージ交換」セクションが変わります。

10. 「ターゲットの会話」リストから、プロセスの会話を選択して非同期のプロセスを起動します。

11. 「OK」をクリックします。

12. 非同期BPMNプロセスが引数を必要とする場合、メッセージ・スロー・イベントのデータ・アソシエーションを構成します。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

13. 「OK」をクリックします。

22.3.6 メッセージ・イベントを使用した非同期BPMNプロセスの起動時に行われる処理

メッセージ・スロー・イベントを使用して非同期BPMNプロセスを起動する際、BPMNサービス・エンジンはBPMNプロセスが応答するまで待機しません。メッセージ・スロー・イベントに続くフロー・オブジェクトの実行を継続します。

起動するBPMNプロセスは、メッセージ・キャッチ・イベントを使用してサービス・コールバック操作を起動することにより、非同期BPMNプロセスのレスポンスを取得できます。

非同期BPMNプロセスの実行が完了した後も、起動するBPMNプロセスは、非同期BPMNプロセスからメッセージを受信するメッセージ・キャッチ・イベントに到達するまでレスポンスを受信しません。

BPMNサービス・エンジンがメッセージ・キャッチ・イベントを実行する間も非同期BPMNプロセスがまだ実行中であれば、エンジンは、トークンをプロセス中の次のフロー・オブジェクトに渡す前に、非同期BPMNプロセスが完了するまで待機します。

22.4 境界イベントとして構成されたメッセージ・イベントの使用

境界イベントとして構成されたメッセージ・キャッチ・イベントを使用して、アクティビティが実行している間、イベントを待機させられます。アクティビティの実行が完了した後にメッセージを受信すると、イベントはトリガーされません。

境界メッセージ・キャッチ・イベントは、連続しないイベントまたは連続するイベントとして構成できます。

連続しない境界メッセージ・キャッチ・イベントは、予期したメッセージが到着すると、アクティビティの実行を停止します。次に、エンジンにより、メッセージ・キャッチ・イベントに対して定義されたフローの実行が開始されます。連続しない境界メッセージ・キャッチ・イベントに対して定義されたフローにより、メイン・プロセス・フローを再開することが可能です。

連続する境界キャッチ・イベントは、現在のアクティビティの実行を停止しません。予期したメッセージが到着すると、現在のアクティビティとパラレルに、エンジンによってメッセージ・キャッチ・イベントに対して定義されたフローの実行が開始されます。連続する境界メッセージ・キャッチ・イベントに対して定義されたフローでは、メイン・プロセス・フローを再開できません。

22.5 サービス・タスクを使用したサービスおよびBPMNプロセスの同期操作の起動

サービス・タスクを使用して、サービスおよびBPMNプロセスで同期操作を起動できます。

BPMNサービス・エンジンがサービス・タスクを実行する際、サービス・タスクで指定された操作を起動し、レスポンスを待機します。同期サービスまたはBPMNプロセスからレスポンスを受信するまで、BPMNサービス・エンジンはトークンを次のアクティビティに移動しません。

サービス・タスクから使用できるサービスには、同期操作を公開するBPELプロセス、SOAメディエータおよびSOAアダプタが含まれます。また、サービス・タスクを使用して、同期操作を公開する他のBPMNプロセスも起動できます。

BPMNプロセスで同期操作を定義する方法は、23.4項「メッセージ・イベントを使用した、BPMNプロセス・インタフェースの同期操作の定義」または23.8項「送信および受信タスクを使用した、BPMNプロセスでの同期操作の定義」を参照してください。

図22-2 サービス・タスクを使用した同期BPMNプロセスまたはサービスの起動

「図22-2 サービス・タスクを使用した同期BPMNプロセスまたはサービスの起動」の説明

22.5.1 サービス・タスクを使用した同期サービス操作の起動方法

同期サービス操作を起動するには、サービス・タスクを使用する必要があります。

サービス・タスクを使用して同期サービス操作を起動するには:

1. BPMNプロセスを編集します。

2. プロセス中の同期サービス操作を起動する場所を決定します。

3. プロセス中の決定した場所にサービス・タスクを追加します。

4. サービス・タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで、「参照」をクリックします。
「会話」ダイアログが表示されます。

8. 「新規」ボタンをクリックします。
「会話の作成」ダイアログが表示されます。

9. 「タイプ」リストから、「サービス・コール」を選択します。

10. 起動する同期サービスを選択します。

11. 「OK」をクリックします。

12. 「サービス」フィールドの隣の「参照」ボタンをクリックして、使用するサービスを選択します。

13. 同期サービスが入力データを必要とするか、出力データを返す場合、サービス・タスクのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこのデータにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

14. 「OK」をクリックします。

22.5.2 サービス・タスクを使用した同期サービス操作の起動時に行われる処理

BPMNサービス・エンジンがサービス・タスクを実行する際、サービスが応答するまで待機してからプロセス・フローを続行します。サービスの実行が完了すると、レスポンスをサービス・タスクに送信します。

サービス操作が出力データを返す場合、このデータは、サービス・タスクのデータ・アソシエーションを使用してプロジェクト内のデータ・オブジェクトにマッピングされます。

22.5.3 サービス・タスクを使用した同期BPMNプロセス操作の起動方法

同期BPMNプロセス操作を起動するには、サービス・タスクを使用する必要があります。

サービス・タスクを使用して同期BPMNプロセス操作を起動するには:

1. BPMNプロセスを編集します。

2. プロセス中の同期BPMNプロセスを起動する場所を決定します。

3. プロセス中の決定した場所にサービス・タスクを追加します。

4. サービス・タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで、「参照」をクリックします。
「会話」ダイアログが表示されます。

8. 「新規」ボタンをクリックします。
「会話の作成」ダイアログが表示されます。

注意:

サービス・タスクは、アウトバウンドの会話のみサポートします。

9. 「タイプ」リストから、「プロセス・コール」を選択します。

10. 「プロセス」フィールドの隣の「参照」ボタンをクリックして、起動するプロセスを選択します。

11. 「ターゲットの会話」リストから、起動するフロー・オブジェクトを選択します。

12. 同期BPMNプロセスが入力データを必要とするか、出力データを返す場合、サービス・タスクのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこのデータにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

13. 「OK」をクリックします。

22.5.4 サービス・タスクを使用した同期BPMNプロセス操作の起動時に行われる処理

BPMNサービス・エンジンがサービス・タスクを実行する際、同期BPMNプロセスが応答するまで待機してからプロセス・フローを続行します。同期BPMNプロセスの実行が完了すると、レスポンスをサービス・タスクに送信します。

同期BPMNプロセスが出力データを返す場合、このデータは、サービス・タスクのデータ・アソシエーションを使用してプロジェクト内のデータ・オブジェクトにマッピングされます。

22.6 送信および受信タスクを使用した他のBPMNプロセスおよびサービスとの通信

送信および受信タスクを使用すると、プロジェクト内の他のBPMNプロセスおよびサービスと通信できます。

メッセージ・イベントと送信および受信タスクとの唯一の違いは、送信および受信タスクには境界イベントを追加できる点です。非同期サービスを起動し、境界として構成されたタイマー・イベントを使用して期限を追加する場合、メッセージ・イベントではなく送信および受信タスクを使用する必要があります。

送信および受信タスクは次の場合に使用できます。

- 非同期サービスの起動。

- 非同期BPMNプロセスの起動。

- プロセスと他のプロセスが通信するためのインタフェースの定義。

プロセスの開始操作を定義するために受信タスクを使用する場合、None開始イベントの後に置き、インスタンスを作成するよう構成する必要があります。

異なるメッセージ・イベントの実装は、イベントのタイプと、会話内でのその役割によって異なります。表22-1で、メッセージ・イベントの様々な実装を説明します。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、これらを1つのプロセス内で混在させないことをお薦めします。

表22-2 送信および受信タスクの実装

タスク

会話の開始

会話の継続

送信タスク

- サービスの起動

- BPMNプロセスの起動

インタフェースを定義する受信タスクを続行する場合:

- 非同期操作のコールバック・インタフェースを定義します。

- 同期操作の出力を定義します。

- 同期操作の例外を定義します。

受信タスク

- 操作のインタフェースの定義

- ビジネス・カタログのインタフェースの使用

インタフェースを定義する受信タスクを続行する場合:

- 継続する受信タスクのインタフェースを使用します。

- 操作のインタフェースの定義

サービスまたはBPMNプロセスを起動する送信タスクを続行する場合:

- サービスまたはBPMNプロセスのコールバックを起動します。

22.7 送信および受信タスクを使用した非同期サービスおよび非同期BPMNプロセスの起動

送信および受信タスクを使用して、サービスおよびBPMNプロセスで非同期操作を起動できます。

サービスまたはBPMNプロセスから非同期操作を起動する場合、会話を開始するよう構成された送信タスクを使用する必要があります。

BPMNサービス・エンジンが送信タスクを実行する際、次のものに基づいてXMLメッセージを作成します。

- 非同期操作

- 非同期操作が必要とする入力

- メッセージ・スロー・イベントに対して定義されたデータ・アソシエーション

その後、XMLメッセージをサービスまたはBPMNプロセスに送信し、プロセス・フローの残りの実行を継続します。非同期サービスまたはBPMプロセスが応答するのを待機しません。

非同期サービスまたはBPMNプロセスはメッセージを受信し、リクエストされた操作を実行します。完了すると、起動元のBPMNプロセスに操作の結果のメッセージを送信します。このメッセージは、非同期サービスまたはBPMNプロセスのコールバック操作です。

非同期操作を起動したBPMNプロセスは、結果を取得するために、コールバック操作を起動する必要があります。コールバック操作を起動すると、非同期プロセスが完了していれば即時応答を受信できますが、そうでなければ応答を取得するのに非同期プロセスが完了するまで待機する必要があります。

図22-3 送信および受信タスクを使用した非同期サービスまたはBPMNプロセスの起動

「図22-3 送信および受信タスクを使用した非同期サービスまたはBPMNプロセスの起動」の説明

22.7.1 送信タスクを使用した非同期サービス操作の起動方法

送信タスクを使用して非同期サービス操作を起動できます。

送信タスクを使用して非同期サービス操作を起動するには:

1. 非同期サービスを起動するBPMプロセスを編集します。

2. プロセス中の非同期サービスを起動する場所を決定します。

3. プロセス中の決定した場所に送信タスクを追加します。

4. 送信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「開始」を選択します。

8. 「プロパティ」セクションで、「実装」リストから「サービス・コール」を選択します。

9. 「名前」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

10. 起動する非同期サービスを選択します。

11. 「OK」をクリックします。

12. 「操作」リストで、非同期サービスから起動する操作を選択します。

13. 非同期サービスが入力データを必要とする場合、送信タスクのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこの入力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

14. 「OK」をクリックします。

15. 22.7.2項「受信タスクを使用した非同期サービスのコールバック操作の起動方法」の手順を実行し、非同期プロセスのコールバック操作を起動します。

22.7.2 受信タスクを使用した非同期サービスのコールバック操作の起動方法

受信タスクを使用して、非同期サービス操作とペアになるコールバック操作を起動できます。

非同期サービスのコールバック操作を起動するには:

1. 非同期サービスのコールバックを起動するBPMプロセスを編集します。

2. プロセス中の非同期サービスのコールバック操作を起動する場所を決定します。

3. プロセス中の決定した場所に受信タスクを追加します。

4. 受信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「続行」を選択します。
「プロパティ」セクションが変更され、「イニシエータ・ノード」リストが表示されます。

8. 「イニシエータ・ノード」リストで、非同期サービスを起動するプロセス中のアクティビティを選択します。
「プロパティ」セクションの内容が変更され、「名前」フィールドおよび「操作」リストが表示されます。

9. 「名前」フィールドの隣の「参照」ボタンをクリックして非同期プロセスを選択します。
「タイプ」ダイアログが表示されます。

10. コールバックを起動する非同期サービスを選択します。

11. 「OK」をクリックします。
「タイプ」ダイアログが閉じ、受信タスクのプロパティ・ダイアログに、「名前」フィールドで選択したサービスが表示されます。

12. 「操作」リストから、起動するコールバック操作を選択します。

13. コールバック操作が入力データを必要とする場合、受信タスクのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこの入力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

14. 「OK」をクリックします。

22.7.3 送信および受信タスクを使用した非同期サービスの起動時に行われる処理

送信タスクを使用して非同期サービス操作を起動する際、BPMNサービス・エンジンはサービスが応答するまで待機しません。送信タスクに続くフロー・オブジェクトの実行を継続します。

BPMNプロセスは、受信タスクを使用してサービス・コールバック操作を起動することにより、非同期サービスのレスポンスを取得できます。

サービスの実行が完了した後も、BPMNプロセスは受信タスクを使用してコールバック操作を起動するまでサービス・レスポンスを受信しません。

BPMNサービス・エンジンが受信タスクを実行する間もサービスがまだ実行中であれば、エンジンは、トークンをプロセス中の次のフロー・オブジェクトに渡す前に、サービス操作が完了するまで待機します。

22.7.4 送信タスクを使用した非同期BPMNプロセス操作の起動方法

送信タスクを使用して非同期BPMNプロセス操作を起動できます。

非同期BPMNプロセス操作を起動するには:

1. 非同期BPMNプロセスを起動するBPMプロセスを編集します。

2. プロセス中の非同期BPMNプロセスを起動する場所を決定します。

3. プロセス中の決定した場所に送信タスクを追加します。

4. 送信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「開始」を選択します。

8. 「プロパティ」セクションで、「実装」リストから「プロセス・コール」を選択します。

9. 「プロセス」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

10. 起動する非同期BPMNプロセスを選択します。

11. 「OK」をクリックします。

12. 「ノード」リストで、非同期BPMNプロセスから操作を選択します。

13. 非同期BPMNプロセスが入力データを必要とする場合、送信タスクのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこの入力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

14. 「OK」をクリックします。

15. 22.7.5項「受信タスクを使用した非同期BPMNプロセスのコールバック操作の起動方法」の手順を実行し、非同期プロセスのコールバック操作を起動します。

22.7.5 受信タスクを使用した非同期BPMNプロセスのコールバック操作の起動方法

受信タスクを使用して、非同期プロセス操作とペアになるコールバック操作を起動できます。

非同期BPMNプロセスのコールバック操作を起動するには:

1. 非同期BPMNプロセスのコールバックを起動するBPMプロセスを編集します。

2. プロセス中の非同期BPMNプロセスのコールバック操作を起動する場所を決定します。

3. プロセス中の決定した場所に受信タスクを追加します。

4. 受信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「続行」を選択します。
「プロパティ」セクションが変更され、「イニシエータ・ノード」リストが表示されます。

8. 「イニシエータ・ノード」リストで、非同期プロセスを起動するプロセス中のアクティビティを選択します。
「プロパティ」セクションの内容が変更され、「プロセス」フィールドおよび「ノード」リストが表示されます。

9. 「プロセス」フィールドの隣の「参照」ボタンをクリックして非同期プロセスを選択します。
「タイプ」ダイアログが表示されます。

10. コールバックを起動する非同期BPMNプロセスを選択します。

11. 「OK」をクリックします。
「タイプ」ダイアログが閉じ、受信タスクのプロパティ・ダイアログに、「名前」フィールドで選択したサービスが表示されます。

12. 「ノード」リストから、起動するコールバック操作を選択します。

13. 非同期コールバック操作が入力データを必要とする場合、受信タスクのデータ・アソシエーションを構成して、プロセス内のデータ・オブジェクトがどのようにこの入力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

14. 「OK」をクリックします。

22.7.6 送信および受信タスクを使用した非同期BPMNプロセスの起動時に行われる処理

送信タスクを使用して非同期サービス操作を起動する際、BPMNサービス・エンジンはサービスが応答するまで待機しません。送信タスクに続くフロー・オブジェクトの実行を継続します。

BPMNプロセスは、受信タスクを使用してサービス・コールバック操作を起動することにより、非同期サービスのレスポンスを取得できます。

サービスの実行が完了した後も、BPMNプロセスは受信タスクを使用してコールバック操作を起動するまでサービス・レスポンスを受信しません。

BPMNサービス・エンジンが受信タスクを実行する間もサービスがまだ実行中であれば、エンジンは、トークンをプロセス中の次のフロー・オブジェクトに渡す前に、サービス操作が完了するまで待機します。

22.8 コール・アクティビティを使用したプロセス起動の概要

コール・アクティビティを使用して別のプロセスからプロセスを起動できます。起動されたプロセスは、それを起動するプロセスの子になります。

コール・アクティビティを実行すると、エンジンは再使用可能なプロセスに対して新しいトークンを作成しません。親プロセスのトークンが、この再使用可能なプロセスに渡されます。トークンが子プロセスを完了すると、親プロセスに戻されてこのコール・アクティビティの後続のアクティビティの実行が続行されます。

子プロセスは、再使用可能なプロセスである必要があります。再使用可能なプロセスは、複数のプロセスから起動できます。再使用可能なプロセスの開始は、コール・アクティビティから起動することでのみ実行できます。

再使用可能なプロセスはSOAコンポジットの一部でないため、他のSOAコンポーネントから再使用可能なプロセスにアクセスすることはできません。

再使用可能なプロセスの開始イベントのタイプは必ずnoneである必要があります。終了イベントは、エラー・イベントまたはメッセージ・イベントであることができます。

22.9 コール・アクティビティを使用したプロセスの起動

コール・アクティビティを使用すると、別のプロセスからプロセスを起動できます。子プロセスは、再使用可能なプロセスである必要があります。BPMプロジェクト内の複数のプロセスから、再使用可能なプロセスを起動できます。

22.9.1 コール・アクティビティを使用してプロセスを起動する方法

コール・アクティビティを使用して別のプロセスからプロセスを起動できます。起動されるプロセスは、再使用可能なプロセスである必要があります。

コール・アクティビティを使用してプロセスを起動するには:

1. プロセスにコール・アクティビティを追加します。

2. コール・アクティビティを右クリックします。

3. 「プロパティ」を選択します。

4. 「実装」タブをクリックします。

5. 「プロセス」リストで、再使用可能なプロセスを選択します。
再使用可能なプロセスを作成する方法は、5.1.2項「新規のビジネス・プロセスを作成する方法」を参照してください。

6. 必要に応じて、データ・アソシエーションまたは変換を構成します。
データ・アソシエーションの詳細は、8.13項「データ・アソシエーションの概要」を参照してください。

変換の詳細は、8.14項「変換の概要」を参照してください。

7. 「OK」をクリックします。

22.10 シグナル・イベントを使用したプロセス間の通信の概要

シグナル・イベントを使用すると、BPMプロジェクト内のすべてのプロセスにメッセージをブロードキャストできます。そのシグナルをリスニングするよう構成されたプロセスのみ、シグナルに反応します。

営業見積サンプルの場合、見積が承認されたらシグナルをトリガーし、見積の承認に依存しているすべてのプロセスをトリガーできます。

BPMNプロセスがシグナルをブロードキャストすると、メディエータおよびBPELプロセスも反応し、これらもシグナルをブロードキャストしてBPMNプロセスをトリガーできます。

Oracle BPMは、Oracle Event Delivery Network (EDN)を使用してシグナルを送信および受信します。Oracle EDNの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のビジネス・イベントおよびイベント配信ネットワークの使用に関する項を参照してください。

Oracle BPMでイベントにアクセスする方法は、第12章「ビジネス・カタログの概要」を参照してください。

SOAプロジェクトによって定義されるEDNイベントは、ビジネス・カタログの「イベント」事前定義済モジュールEvents内に自動的に表示されます。シグナル・イベントを追加する際、シグナル・イベントがブロードキャストまたは反応するイベントをビジネス・カタログ内で選択できます。

シグナルは、スロー中間シグナル・イベントまたはシグナル終了イベントからブロードキャストできます。BPMNプロセスでは、別のプロセス内のシグナル開始イベントのシグナルのみ受信できます。

メッセージをブロードキャストするプロセスには、受信者に関する情報は含まれません。シグナルをブロードキャストするプロセスに影響を与えずに、シグナルに反応するプロセスを追加または削除できます。

同様に、特定のメッセージに反応するプロセスには、そのメッセージをブロードキャストするプロセスに関する情報は含まれません。メッセージをブロードキャストするプロセスをプロジェクトに追加すると、その特定のメッセージを待っているすべてのプロセスは、変更しなくてもそのメッセージに反応します。

シグナルのブロードキャストに使用するイベントにはペイロードが含まれており、これを使用して、この特定のシグナルに反応するよう構成されたすべてのプロセスに情報を送信できます。イベント内のペイロードに値を割り当てるには、シグナル・スロー・イベントのデータ・アソシエーションを構成する必要があります。このデータ・アソシエーションにより、プロセスおよびプロジェクトのデータ・オブジェクトに格納された関連するデータをイベントに渡すことができます。対応するプロセスがシグナルを受信する際、別のデータ・アソシエーションを使用してイベント内のデータを取得する必要があります。このデータ・アソシエーションは、シグナル開始イベントで受信されたイベントでどのデータ・オブジェクトがデータを格納するかを定義します。

図22-4 シグナルのブロードキャスト

「図22-4 シグナルのブロードキャスト」の説明

22.11 シグナル・イベントを使用したプロセス間の通信

シグナル・イベントを使用すると、メッセージと、そのメッセージを待機するように構成されたすべてのプロセスの間で通信できます。

22.11.1 複数のプロセスへのシグナルのブロードキャスト方法

この手順を実行する前に、ブロードキャストするイベントをSOAプロジェクトに追加する必要があります。

シグナルを複数のプロセスにブロードキャストするには:

1. プロセス中のシグナルをブロードキャストする場所を決定します。

2. コンポーネント・パレットの「スロー・イベント」セクションで「シグナル」を選択します。
プロセスの完了直後にシグナルをブロードキャストする場合、既存の終了イベントの実装タイプをシグナルに変更するか、タイプがシグナルの新しい終了イベントを追加します。

3. シグナル・イベントをプロセスにドロップします。

4. シグナル・イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「イベント」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

8. イベントを選択します。

9. 「OK」をクリックします。
「タイプ」ダイアログが閉じ、「タイプ」フィールドにタイプ名が表示されます。

10. 「OK」をクリックします。

22.11.2 シグナルのブロードキャスト時に行われる処理

BPMNエンジンがスローまたは終了シグナル・イベントを実行すると、Oracle EDNにイベントを公開します。この特定のシグナルをリスニングするよう構成されているすべてのSOAコンポーネントに、Oracle EDNによってこのイベントが配信されます。

22.11.3 特定のシグナルに反応するプロセスの構成方法

この手順を実行する前に、反応対象のイベントをSOAプロジェクトに追加する必要があります。

プロセスが特定のシグナルに反応するよう構成するには:

1. プロセスの開始イベントの実装タイプをシグナルに変更するか、新しいシグナル開始イベントをプロセスに追加します。

2. 開始イベントを右クリックします。

3. 「プロパティ」を選択します。

4. 「実装」タブをクリックします。

5. 「イベント」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

6. イベントを選択します。

7. 「OK」をクリックします。
「タイプ」ダイアログが閉じ、「タイプ」フィールドにタイプ名が表示されます。

8. 「OK」をクリックします。

22.11.4 特定のシグナルに反応するプロセスの構成時に行われる処理

別のBPMNプロセスまたはSOAコンポーネントが特定のシグナルをブロードキャストするまでプロセスは開始しません。BPMNプロセスまたはSOAコンポーネントがOracle EDNを使用してこのシグナルをブロードキャストすると、プロセスがこのシグナルにトリガーされます。

23 プロセス・インタフェースの定義

この章では、他のプロセスまたはサービスによって、サービスとして起動できるように、BPMNプロセスを公開するよう構成する方法を説明します。Oracle BPMでは、BPMNプロセス内のフロー・オブジェクトをプロセス操作として公開できます。他のBPMNプロセスおよびサービスによってこれらの操作を起動できます。

この章の内容は次のとおりです。

- 23.1項「プロセス・インタフェースの定義」

- 23.2項「メッセージ・イベントを使用したBPMNプロセス・インタフェースの定義」

- 23.3項「メッセージ・イベントを使用したBPMNプロセス内の非同期操作の定義」

- 23.4項「メッセージ・イベントを使用したBPMNプロセス・インタフェース内の同期操作の定義」

- 23.5項「ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義」

- 23.6項「送信および受信タスクを使用したBPMNプロセス・インタフェースの定義」

- 23.7項「送信および受信タスクを使用した非同期プロセス操作の定義」

- 23.8項「送信および受信タスクを使用したBPMNプロセス内の同期操作の定義」

- 23.9項「ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義」

- 23.10項「プロセスの入力および出力の定義」

この章では、SOAコンポジットに関する知識があることを前提としています。SOAコンポジットの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

23.1 プロセス・インタフェースの定義

プロセス・インタフェースとは、他のプロセスまたはサービスが使用できるようにBPMNプロセスが公開する操作のグループです。SOAコンポジットでは、BPMNプロセス・インタフェースは「公開されたサービス」セクションに表示されます。

他のプロセスおよびサービスが使用できるようにするためには、BPMNプロセスのインタフェースを定義する必要があります。定義するインタフェースには、他のプロセスおよびサービスが起動できる操作が含まれます。

同期プロセス操作は、入力および出力引数を定義します。

非同期プロセス操作を定義する際、対応するコールバック操作も定義する必要があります。非同期操作によって入力引数が定義され、コールバック操作によって出力引数が定義されます。

プロセス・インタフェースを定義するには、BPMNプロセスの操作を定義するか、またはビジネス・カタログから既存のインタフェースを使用できます。これらのどのオプションでも、メッセージ・イベントまたは送信および受信タスクを使用して実装できます。

23.2 メッセージ・イベントを使用したBPMNプロセス・インタフェースの定義

プロセス・インタフェースには、他のサービスおよびプロセスがBPMNプロセスと対話するために起動可能な操作が含まれます。これらの操作は、同期操作または非同期操作のいずれをも使用できます。

プロセス・インタフェースは、メッセージ・イベントまたは送信および受信タスクを使用して定義できます。

BPMNプロセス内の操作を公開するには、イニシエータとして構成されたメッセージ開始イベントまたはメッセージ・キャッチ・イベントを使用できます。これらのメッセージ・イベントにより、同期操作または非同期操作のいずれにするかを定義できます。また、プロセスの入力も定義できます。

プロセス・インタフェースには、BPMNプロセスの開始イベントを公開する操作が必ず含まれている必要があります。このBPMNプロセスを起動するプロセスまたはサービスは、常に、プロセス内の操作を起動する前に、開始イベントに対応する操作を起動する必要があります。

プロセスの出力を定義するには、操作を定義するイベントを続行するメッセージ・スロー・イベントまたはメッセージ終了イベントを構成する必要があります。操作が非同期の場合、これらのイベントはコールバック操作も定義します。

インタフェースに非同期操作が含まれている場合、この操作の結果を返すコールバック操作も定義する必要があります。BPMNプロセスでコールバック操作を定義する方法は、23.2.1項「メッセージ・イベントを使用したBPMNプロセスのコールバック・インタフェースの定義」を参照してください。

図23-1では、インタフェースでメッセージ開始メッセージ・イベントを公開するBPMNプロセスを示しています。また、SOAコンポジット・エディタによってこの操作がどのように表示されるかも示されています。

図23-1 メッセージ開始イベントを操作として公開するBPMNプロセス

「図23-1 メッセージ開始イベントを操作として公開するBPMNプロセス」の説明

さらに、プロセス・インタフェースには、プロセス中のキャッチ・メッセージ・イベントによって公開される操作を含められます。キャッチ・メッセージ・イベントに対応する操作を起動する前に、常に、メッセージ開始イベントに対応する操作を起動する必要があります。

図23-2では、メッセージ開始メッセージ・イベントに加え、インタフェースでキャッチ・メッセージ・イベントを公開するBPMNプロセスを示しています。また、SOAコンポジット・エディタによってこの操作がどのように表示されるかも示されています。

図23-2 インタフェースでメッセージ開始およびメッセージ・キャッチ・イベントを公開するBPMNプロセス

「図23-2 インタフェースでメッセージ開始およびメッセージ・キャッチ・イベントを公開するBPMNプロセス」の説明

23.2.1 メッセージ・イベントを使用したBPMNプロセスのコールバック・インタフェースの定義

BPMNプロセスは、定義する各非同期操作に対し、コールバック操作を公開する必要があります。

コールバック操作により、非同期操作を起動したサービスまたはプロセスにレスポンスが返されます。コールバック操作によって出力引数を定義できます。出力引数を定義する場合、データ・アソシエーションを使用して、その値をプロセス内のデータ・オブジェクトにマッピングする必要があります。

メッセージ・スロー・イベントまたはメッセージ終了イベントを使用してコールバック操作を定義できます。

別のBPMNプロセスから非同期BPMNプロセスを起動する方法は、第22章「メッセージ・イベントを使用した非同期サービスおよび非同期BPMNプロセスの起動」を参照してください。

図23-3では、BPMNプロセスのコールバック操作を公開する終了イベントを示しています。また、SOAコンポジット・エディタでコールバック操作がどのように表示されるかも示されています。

注意:

操作の公開に送信タスクを使用した場合、コールバック操作の定義に受信タスクを使用する必要があります。送信イベントを使用したコールバック操作の定義方法は、23.7項「送信および受信タスクを使用した非同期プロセス操作の定義」を参照してください。

図23-3 開始操作と対応するコールバックを公開する非同期BPMNプロセス

「図23-3 開始操作と対応するコールバックを公開する非同期BPMNプロセス」の説明

23.3 メッセージ・イベントを使用したBPMNプロセス内の非同期操作の定義

メッセージ・イベントを使用して、BPMNプロセスの非同期操作を定義できます。非同期操作を公開する際、開始操作も公開する必要があります。非同期サービスを起動するクライアントは、まず開始操作を起動してプロセス内にインスタンスを作成する必要があります。非同期操作は作成したインスタンスで実行されます。

また、定義した各非同期操作に対し、コールバック操作を指定する必要があります。

23.3.1 メッセージ・イベントを使用した、BPMNプロセスの開始操作を非同期として構成する方法

BPMNプロセスの開始イベントを非同期操作として公開できます。

BPMNプロセスの開始操作を非同期として構成するには:

1. BPMNプロセスを編集します。

2. 開始アクティビティを右クリックします。

3. 「プロパティ」を選択します。

4. 「実装」タブをクリックします。

5. 「実装タイプ」がメッセージでない場合、「メッセージ」に変更します。
「会話」セクションが表示されます。

6. 「会話プロパティ」セクションで、「実装」リストから「インタフェースの定義」を選択します。

7. 非同期BPMNプロセスが入力データを必要とする場合、プロセスの入力を「引数の定義」セクションで定義する必要があります。
プロセスの入力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

8. 「拡張」セクションを展開します。

9. 「非同期」を選択します。

10. 開始操作の名前を入力します。
操作に指定した名前が、SOAコンポジットに表示する際に使用されます。

11. 「OK」をクリックします。

12. 23.3.2項「メッセージ・イベントを使用したコールバック操作の定義方法」の手順を実行し、非同期BPMNプロセスのコールバック操作を定義します。

23.3.2 メッセージ・イベントを使用したコールバック操作の定義方法

メッセージ・イベントを使用して、非同期操作とペアになるコールバック操作を公開できます。

コールバック操作を定義するには:

1. BPMNプロセスを編集します。

2. プロセス中の対応する操作の応答を返す場所を決定します。

3. プロセスが完了する前に応答を返す場合、プロセスに中間メッセージ・スロー・イベントを追加します。

注意:

プロセスが完了するときに応答を返す場合、メッセージ終了イベントを追加するか、実装タイプを終了からメッセージに変更します。

4. メッセージ・スロー・イベントまたはメッセージ終了イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. スロー・メッセージ・イベントを編集する場合、「会話」セクションで「続行」を選択します。終了メッセージ・イベントを編集する場合、これがデフォルトの選択肢で、変更できません。

8. 「イニシエータ」リストから、コールバックに関連付けるイベントを選択します。

9. 非同期プロセスが出力データを返すようにする場合、プロセスの出力を「引数の定義」セクションで定義する必要があります。
プロセスの出力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

10. 「拡張」セクションを展開します。

11. コールバック操作の名前を変更する場合、名前を入力します。
操作に指定した名前が、SOAコンポジットに表示する際に使用されます。

12. 「OK」をクリックします。

23.3.3 メッセージ・イベントを使用した、BPMNプロセスの開始操作を非同期として構成するときに行われる処理

プロセスの開始イベントを起動する際、プロセス・フローを続行する前にレスポンスを待機しないでください。レスポンスを取得するには、プロセスのコールバック操作を起動する必要があります。

非同期BPMNプロセスは、メッセージ・イベントまたは送信および受信タスクを使用して起動できます。

非同期BPMNプロセスを起動する方法は、22.3項「メッセージ・イベントを使用した非同期サービスおよび非同期BPMNプロセスの起動」および22.7項「送信および受信タスクを使用した非同期サービスおよび非同期BPMNプロセスの起動」を参照してください。

SOAコンポジットで、非同期プロセスのインタフェースには、最低2つの操作が表示されます。プロセスを開始する操作と、そのコールバック操作です。

23.3.4 中間メッセージ・イベントを使用したBPMNプロセス・インタフェースへの非同期操作の追加方法

中間メッセージ・イベントを非同期操作として公開できます。

非同期操作をBPMNプロセス・インタフェースに追加するには:

1. BPMNプロセスを編集します。

2. プロセス中の新しい操作を追加する場所を決定します。

3. 中間キャッチ・メッセージ・イベントを追加します。

4. キャッチ・メッセージ・イベントを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「開始」を選択します。

8. 「プロパティ」セクションで、「実装」リストから「インタフェースの定義」を選択します。

9. 操作に出力引数を使用する場合、入力引数を定義します。
出力引数の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

10. 「拡張」セクションを展開します。

11. 「非同期」を選択します。

12. コールバック操作の名前を変更する場合、「操作名」フィールドに名前を入力します。

13. 「OK」をクリックします。

14. 23.3.2項「メッセージ・イベントを使用したコールバック操作の定義方法」の手順を実行し、この非同期操作のコールバック操作を定義します。

23.3.5 メッセージ・イベントを使用したBPMNプロセス・インタフェースへの非同期操作の追加時に行われる処理

非同期操作および対応するコールバック操作は、他のプロセスによって起動が可能です。

SOAコンポジットには、BPMNプロセス・インタフェースに非同期操作およびそのコールバックが表示されます。

23.4 メッセージ・イベントを使用したBPMNプロセス・インタフェースの同期操作の定義

メッセージ・イベントを使用して、BPMNプロセスの同期操作を定義できます。同期操作を定義するには、メッセージ開始またはキャッチ・イベント、およびそれに続くメッセージ・スローまたはキャッチを使用します。メッセージ開始またはキャッチ・イベントはプロセスの入力を定義します。メッセージ・スローまたは終了イベントはプロセスの出力を定義します。

メッセージ・キャッチ・イベントを使用して同期操作を定義する場合、開始操作も定義する必要があります。まず開始操作を起動した後に同期操作を起動し、プロセス内にインスタンスを作成する必要があります。同期操作は作成したインスタンスで実行されます。

同期BPMNプロセスの起動方法は、22.5項「サービス・タスクを使用したサービスおよびBPMNプロセスの同期操作の起動」を参照してください。

メッセージ・イベントを使用すると、同期操作を定義する場合にエラー・メッセージを送信できます。エラー・メッセージ・イベントの詳細は、21.8項「メッセージ・イベントを使用したピア・プロセスでのエラー処理」を参照してください。

23.4.1 メッセージ・イベントを使用してBPMNプロセスの開始操作を同期として構成する方法

BPMNプロセスのメッセージ開始イベントを同期操作として公開できます。

メッセージ・イベントを使用したBPMNプロセスの開始操作を同期として構成するには:

1. BPMNプロセスを編集します。

2. 開始アクティビティを右クリックします。

3. 「プロパティ」を選択します。

4. 「実装」タブをクリックします。

5. 「実装タイプ」がメッセージでない場合、「メッセージ」に変更します。
「会話」セクションが表示されます。

6. 「会話プロパティ」セクションで、「実装」リストから「インタフェースの定義」を選択します。

7. 同期BPMNプロセスが入力データを必要とする場合、プロセスの入力を「引数の定義」セクションで定義する必要があります。
プロセスの入力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

8. 「拡張」セクションを展開します。

9. 「同期」を選択します。

10. 開始操作の名前を入力します。
操作に指定した名前が、SOAコンポジットに表示する際に使用されます。

11. 「OK」をクリックします。

12. 23.4.2項「同期プロセスの終了イベントの構成方法」の手順に従って、終了イベントを構成します。

注意:

同期開始イベントを追加する際、同じ会話の一部である終了またはキャッチ・メッセージ・イベントも追加する必要があります。終了またはキャッチ・メッセージ・イベントは開始イベントに続くものなので、これらも同期イベントです。

23.4.2 同期プロセスの終了イベントの構成方法

開始イベントを同期操作として公開する場合、プロセスの終了イベントを同期として構成する必要があります。

同期プロセスの終了イベントを構成するには:

1. 終了イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「実装タイプ」がメッセージでない場合、「メッセージ」に変更します。
「会話」セクションが表示されます。

5. 選択されているイニシエータ・ノードがない場合、「イニシエータ・ノード」リストからプロセスの開始イベントを選択します。
インタフェースを定義するサブセクションが「プロパティ」セクションに表示されます。

6. 同期BPMNプロセスが出力データを返す場合、プロセスの出力を「引数の定義」セクションで定義する必要があります。
プロセスの出力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

7. 同期BPMNプロセスが出力データを返す場合、プロジェクト内のデータ・オブジェクトがどのようにプロセスの出力にマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

8. 「OK」をクリックします。

23.4.3 メッセージ・イベントを使用した、BPMNプロセスの開始操作を同期として構成するときに行われる処理

プロセス開始イベントにより、同期操作が公開されます。プロセス開始イベントをクライアントから起動する際、プロセス・フローを続行する前に、レスポンスを待機する必要があります。同期プロセスを起動するサービス・タスクは、トークンがプロセス中の次のアクティビティに移動する前に、同期プロセスが完了するのを待ちます。

BPMNプロセスの同期操作を起動するには、サービス・タスクを使用する必要があります。

同期BPMNプロセスの起動方法は、22.5項「サービス・タスクを使用したサービスおよびBPMNプロセスの同期操作の起動」を参照してください。

SOAコンポジットでは、同期プロセスのインタフェースには、開始イベントの1つの操作のみが表示されます。

23.5 ビジネス・カタログのインタフェースを持つメッセージ・イベントを使用したプロセス・インタフェースの定義

プロセスのインタフェースを定義するメッセージ・イベントを構成する際、インタフェースを定義するかわりに既存のインタフェースを使用できます。

ビジネス・カタログ内の「参照」事前定義済モジュールの任意の操作を選択して、プロセス操作のインタフェースとして使用できます。

操作のインタフェースを定義するために選択した参照の操作により、使用する操作が同期または非同期のどちらであるかが決定します。

ビジネス・カタログのインタフェースを使用してメッセージ開始またはメッセージ・キャッチ・イベントを定義する場合、関連付けられたメッセージ・スローまたはメッセージ終了イベントもビジネス・カタログのインタフェースを使用する必要があります。定義する操作が非同期の場合、メッセージ・スローまたはメッセージ終了イベントはコールバック操作のみ使用できます。

一般には、プロセス・インタフェースを定義する際、コンポジットに存在するインタフェースを使用するためにビジネス・カタログのインタフェースを使用し、後にこのインタフェースからBPMNプロセスにワイヤを追加します。

同じインタフェースの実装を複数提供できます。たとえば、既存のインタフェースをBPELおよびBPMNテクノロジで実装できます。BPMNインタフェースを実装するには、ビジネス・カタログのインタフェースを使用してプロセスを定義する必要があります。

図23-4では、BPMNプロセスがどのようにしてBPELプロセスのインタフェースを再利用してBPMNでパラレルな実装を提供できるかを示しています。BPMNプロセスは、ビジネス・カタログに表示されるBPELプロセスのインタフェースを使用して操作を定義します。さらに、SOAコンポジット・エディタで、BPMNプロセスがインタフェースを定義するために別のSOAコンポジットを使用していることが表示されている様子を示しています。

図23-4 ビジネス・カタログのインタフェースを使用するプロセス

「図23-4 ビジネス・カタログのインタフェースを使用するプロセス」の説明

23.5.1 ビジネス・カタログのインタフェースを使用して、メッセージ開始およびキャッチ・イベントを使用するBPMNプロセス・インタフェースの操作を定義する方法

ビジネス・カタログのインタフェースを使用して、BPMNプロセスのインタフェースを定義できます。

ビジネス・カタログのインタフェースを使用して操作を定義するには:

1. BPMNプロセスを編集します。

2. プロセス・インタフェースの定義に使用する開始イベントまたはキャッチ・イベントを追加します。

3. 開始またはキャッチ・イベントを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. キャッチ・メッセージ・イベントを編集する場合、「会話」セクションで「開始」を選択します。開始イベントを編集する場合、これがデフォルトの選択肢で、変更できません。

7. 「プロパティ」セクションで、「実装」リストから「カタログからのインタフェース」を選択します。
「プロパティ」セクションが変更され、「名前」および「操作」が表示されます。

8. 「名前」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

9. プロセス・インタフェースとして使用する参照を選択します。

10. 「OK」をクリックします。

11. 「操作」リストで、プロセス・インタフェースとして使用する操作を選択します。

12. 選択したインタフェースが入力データを必要とする場合、メッセージ・イベントのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこの入力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

13. 「OK」をクリックします。

14. 既存のメッセージ終了またはメッセージ・スロー・イベントがビジネス・カタログのインタフェースを使用するよう構成するか、新しいイベントを追加して構成します。23.5.2項「メッセージ・イベントを使用するビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成する方法」の手順を参照してください。

23.5.2 メッセージ・イベントを使用するビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成する方法

ビジネス・カタログのインタフェースを使用して、BPMNプロセスのインタフェースを定義できます。

ビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成するには:

1. BPMNプロセスを編集します。

2. メッセージ終了またはメッセージ・スロー・イベントを右クリックします。

3. 「プロパティ」を選択します。

4. 「実装」タブをクリックします。

5. 「会話」セクションで「続行」を選択します。
「プロパティ」セクションが変更され、「イニシエータ・ノード」、「名前」および「操作」が表示されます。

6. 「イニシエータ・ノード」リストで、プロセス・インタフェースを定義するメッセージ開始またはメッセージ・キャッチ・イベントを選択します。

7. 「名前」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

8. メッセージ・キャッチまたはメッセージ終了インタフェースとして使用するコンポーネントを選択します。

9. 「OK」をクリックします。

10. 「操作」リストで、メッセージ・キャッチまたはメッセージ終了インタフェースとして使用する操作を選択します。

11. 選択したインタフェースが出力データを必要とする場合、メッセージ・イベントのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこの出力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

12. 「OK」をクリックします。

23.5.3 操作の定義にビジネス・カタログのインタフェースを使用したときに行われる処理

定義される操作は、ビジネス・カタログ内のインタフェースの操作の署名を使用します。BPMNプロセスで操作を起動するには、ビジネス・カタログのインタフェースの操作を起動するために使用するのと同じ操作名および入力を使用する必要があります。BPMNプロセスの操作は、ビジネス・カタログのインタフェースの操作と同じ出力を返します。

SOAコンポジットには、BPMNプロセスと、その操作の定義に使用されたインタフェースとの間にワイヤが表示されます。

ビジネス・カタログのインタフェースを使用してすべてのプロセス操作を定義すると、BPMNプロセスWSDLを削除するかどうかJDeveloperによって尋ねられます。BPMNプロセスはインタフェースを定義せず、既存のインタフェースを使用するため、WSDLは不要になっており、削除しても構いません。

23.6 送信および受信タスクを使用したBPMNプロセス・インタフェースの定義

プロセス・インタフェースには、他のサービスおよびプロセスがBPMNプロセスを実行するために起動可能な操作が含まれます。これらの操作は、同期操作または非同期操作のいずれをも使用できます。

プロセス・インタフェースは、メッセージ・イベントまたは送信および受信タスクを使用して定義できます。

メッセージ・イベントを使用したプロセス・インタフェースの定義方法は、23.2項「メッセージ・イベントを使用したBPMNプロセス・インタフェースの定義」を参照してください。

BPMNプロセス内の操作を公開するために、受信タスクを使用できます。受信タスクにより、操作が同期または非同期のいずれであるかが決定されます。また、プロセスの入力も定義できます。

プロセス・インタフェースには、インスタンスを作成する受信タスクを公開する操作が必ず含まれている必要があります。このBPMNプロセスを起動するプロセスまたはサービスは、常に、プロセス内の操作を起動する前に、この操作を起動する必要があります。

プロセスの出力を定義するには、操作を定義する受信を続行する送信タスクを構成する必要があります。操作が非同期の場合、送信タスクはコールバック操作も定義します。

インタフェースに非同期操作が含まれている場合、この操作の結果を返すコールバック操作も定義する必要があります。BPMNプロセスでコールバック操作を定義する方法は、23.6.1項「送信タスクを使用したBPMNプロセスのコールバック・インタフェースの定義」を参照してください。

さらに、プロセス・インタフェースには、プロセス中の受信タスクによって公開される操作を含められます。受信タスクに対応する操作を起動する前に、常に、インスタンスを作成するよう構成された受信タスクに対応する操作を起動する必要があります。

図23-5では、インスタンスを作成する受信タスクに加え、インタフェースで受信タスクを公開するBPMNプロセスを示しています。また、SOAコンポジット・エディタによってこれらの操作がどのように表示されるかも示されています。

図23-5 送信および受信タスクを使用して定義された非同期操作を公開するBPMNプロセス

「図23-5 送信および受信タスクを使用して定義された非同期操作を公開するBPMNプロセス」の説明

操作の公開に送信タスクを使用した場合、コールバック操作の定義に受信タスクを使用する必要があります。送信イベントを使用したコールバック操作の定義方法は、23.6.1項「送信タスクを使用したBPMNプロセスのコールバック・インタフェースの定義」を参照してください。

23.6.1 送信タスクを使用したBPMNプロセスのコールバック・インタフェースの定義

BPMNプロセスは、定義する各非同期操作に対し、コールバック操作を公開する必要があります。送信タスクを使用してコールバック操作を定義できます。

コールバック操作により、非同期操作を起動したサービスまたはプロセスにレスポンスが返されます。サービスまたはプロセスが応答を待機している場合、即座に受信します。サービスまたはプロセスが応答を待っていない場合、プロセスまたはコード中の応答を待機する位置に到達すると応答を受信します。

コールバック操作によって出力引数を定義できます。出力引数を定義する場合、データ・アソシエーションを使用して、その値をプロセス内のデータ・オブジェクトにマッピングする必要があります。

図23-5に、BPMNプロセスのコールバック操作を公開する受信タスクを示します。

23.7 送信および受信タスクを使用した非同期プロセス操作の定義

送信および受信タスクを使用して、BPMNプロセスの非同期操作を定義できます。非同期操作を公開する際、開始操作も公開する必要があります。非同期サービスを起動するプロセスは、まず開始操作を起動してプロセス内にインスタンスを作成する必要があります。非同期操作は作成したインスタンスで実行されます。

また、定義した各非同期操作に対し、コールバック操作を指定する必要があります。

23.7.1 送信および受信タスクを使用した非同期プロセス操作の定義方法

送信および受信タスクを使用して非同期プロセス操作を定義できます。

送信および受信タスクを使用して非同期プロセス操作を定義するには:

1. BPMNプロセスを編集します。

2. 開始および終了イベントのトリガーをNoneに変更します。

1. イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「実装タイプ」リストから「なし」を選択します。

5. 「OK」をクリックします。

3. 開始イベント直後に受信タスクを追加します。

4. 受信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「インスタンスの作成」を選択します。

8. 「会話」セクションで「開始」を選択します。

9. 「会話プロパティ」セクションで「インタフェースの定義」を選択します。

10. 非同期BPMNプロセスが入力データを必要とする場合、プロセスの入力を「引数の定義」セクションで定義する必要があります。
プロセスの出力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

11. 「拡張」セクションを展開します。

12. 「非同期」を選択します。

13. 開始操作の名前を入力します。
操作に指定した名前が、SOAコンポジットに表示する際に使用されます。

14. 「OK」をクリックします。

15. 23.7.3項「送信タスクを使用したコールバック・プロセス操作の定義方法」の手順を実行し、非同期BPMNプロセスのコールバック操作を定義します。

23.7.2 受信タスクを使用したプロセス・インタフェースへの非同期プロセス操作の追加方法

受信タスクを非同期プロセス操作として公開できます。

受信タスクを使用して非同期プロセス操作を追加するには:

1. BPMNプロセスを編集します。

2. プロセス中の新しい操作を追加する場所を決定します。

3. 決定した場所に受信タスクを追加します。

4. 受信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「開始」を選択します。

8. 「会話プロパティ」セクションで「インタフェースの定義」を選択します。

9. 非同期BPMNプロセスが入力データを必要とする場合、プロセスの入力を「引数の定義」セクションで定義する必要があります。
プロセスの出力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

10. 「拡張」セクションを展開します。

11. 「非同期」を選択します。

12. 開始操作の名前を入力します。
操作に指定した名前が、SOAコンポジットに表示する際に使用されます。

13. 「OK」をクリックします。

23.7.3 送信タスクを使用したコールバック・プロセス操作の定義方法

送信タスクを、非同期プロセス操作とペアになるコールバック操作として公開できます。

送信タスクを使用して非同期プロセスのコールバック操作を定義する方法:

1. BPMNプロセスを編集します。

2. プロセス中の対応する操作の応答を返す場所を決定します。

3. プロセス中の決定した場所に送信タスクを追加します。
送信タスクは、プロセス・フロー中の受信タスクよりも後に配置する必要があります。

4. 送信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「会話」セクションで「続行」を選択します。

8. 「イニシエータ」リストから、コールバックに関連付ける受信タスクを選択します。

9. 非同期プロセスが出力データを返すようにする場合、プロセスの出力を「引数の定義」セクションで定義する必要があります。
プロセスの出力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

10. 「拡張」セクションを展開します。

11. 「同期」または「非同期」を選択します。

12. 開始操作の名前を変更する場合、名前を入力します。
操作に指定した名前が、SOAコンポジットに表示する際に使用されます。

13. 「OK」をクリックします。

23.7.4 送信および受信タスクを使用した非同期操作の定義時に行われる処理

非同期操作および対応するコールバック操作は、他のプロセスによって起動が可能です。

定義したプロセスの非同期操作を起動する際、プロセス・フローを続行する前にレスポンスを待機しないでください。レスポンスを取得するには、プロセスのコールバック操作を起動する必要があります。

SOAコンポジットには、BPMNプロセス・インタフェースに非同期操作およびそのコールバックが表示されます。

非同期BPMNプロセスは、メッセージ・イベントまたは送信および受信タスクを使用して起動できます。

非同期BPMNプロセスを起動する方法は、22.3項「メッセージ・イベントを使用した非同期サービスおよび非同期BPMNプロセスの起動」および22.7項「送信および受信タスクを使用した非同期サービスおよび非同期BPMNプロセスの起動」を参照してください。

23.8 送信および受信タスクを使用したBPMNプロセス内の同期操作の定義

送信および受信タスクを使用して、BPMNプロセス内の同期操作を定義できます。同期操作は、受信タスクと、受信タスクを続行する送信タスクを使用して定義します。受信タスクはプロセスの入力を定義し、送信タスクはプロセスの出力を定義します。

送信タスクを使用して同期操作を定義する場合、開始操作も定義する必要があります。まず開始操作を起動した後に同期操作を起動し、プロセス内にインスタンスを作成する必要があります。同期操作は作成したインスタンスで実行されます。

別のBPMNプロセスからBPMNプロセス内の同期操作を起動する方法は、第22章「サービス・タスクを使用したサービスおよびBPMNプロセスの同期操作の起動」を参照してください。

23.8.1 送信および受信タスクを使用した、プロセス操作を同期として定義する方法

送信および受信タスクを同期プロセス操作として公開できます。

プロセス操作を同期として構成するには:

1. BPMNプロセスを編集します。

2. 開始および終了イベントのトリガーをNoneに変更します。

1. イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「実装タイプ」リストから「なし」を選択します。

5. 「OK」をクリックします。

3. 開始イベントの後に受信タスクを追加します。

4. 受信タスクを右クリックします。

5. 「プロパティ」を選択します。

6. 「実装」タブをクリックします。

7. 「インスタンスの作成」を選択します。

8. 「会話プロパティ」セクションで「インタフェースの定義」を選択します。

9. 同期BPMNプロセスが入力データを必要とする場合、プロセスの入力を「引数の定義」セクションで定義する必要があります。
プロセスの入力の定義方法は、23.10項「プロセスの入力および出力の定義」を参照してください。

10. 「拡張」セクションを展開します。

11. 「同期」を選択します。

12. 開始操作の名前を入力します。
操作に指定した名前が、SOAコンポジットに表示する際に使用されます。

13. 「OK」をクリックします。

23.8.2 送信および受信タスクを使用した同期操作の定義時に行われる処理

非同期操作および対応するコールバック操作は、他のプロセスによって起動が可能です。

BPMNプロセスの同期操作を起動するには、サービス・タスクを使用する必要があります。

同期BPMNプロセスの起動方法は、22.5項「サービス・タスクを使用したサービスおよびBPMNプロセスの同期操作の起動」を参照してください。

SOAコンポジットでは、同期プロセスのインタフェースには、受信タスクの1つの操作のみが表示されます。

23.9 ビジネス・カタログのインタフェースを持つ送信および受信タスクを使用したプロセス・インタフェースの定義

プロセスのインタフェースを定義する受信タスクを構成する際、インタフェースを定義するかわりに既存のインタフェースを使用できます。

ビジネス・カタログ内のコンポーネントの任意の操作を選択して、プロセス操作のインタフェースとして使用できます。

操作のインタフェースを定義するために選択したビジネス・カタログ内のコンポーネントの操作により、使用する操作が同期または非同期のどちらであるかが決定します。

ビジネス・カタログのインタフェースを使用して受信タスクを定義する場合、関連付けられた送信タスクもビジネス・カタログのインタフェースを使用する必要があります。定義する操作が非同期の場合、メッセージ送信タスクはコールバック操作のみ使用できます。

図23-6では、ビジネス・カタログのBPELプロセスを使用して操作を定義するプロセスを示しています。さらに、SOAコンポジット・エディタで、BPMNプロセスがインタフェースを定義するために別のSOAコンポジットを使用していることが表示されている様子を示しています。

図23-6 送信および受信タスクを使用して定義されたビジネス・カタログのインタフェースを使用するBPMNプロセス

「図23-6 送信および受信タスクを使用して定義されたビジネス・カタログのインタフェースを使用するBPMNプロセス」の説明

23.9.1 ビジネス・カタログのインタフェースを使用して、送信および受信タスクを使用するBPMNプロセス・インタフェースの操作を定義する方法

ビジネス・カタログのインタフェースを使用して、BPMNプロセスのインタフェースを定義できます。

ビジネス・カタログのインタフェースを使用して操作を定義するには:

1. BPMNプロセスを編集します。

2. プロセス・インタフェースの定義に使用する開始イベントまたはキャッチ・イベントを追加します。

3. 開始またはキャッチ・イベントを右クリックします。

4. 「プロパティ」を選択します。

5. 「実装」タブをクリックします。

6. キャッチ・メッセージ・イベントを編集する場合、「会話」セクションで「続行」を選択します。開始イベントを編集する場合、これがデフォルトの選択肢で、変更できません。

7. 「プロパティ」セクションで「カタログからのインタフェース」を選択します。
「プロパティ」セクションが変更され、「名前」および「操作」が表示されます。

8. 「名前」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

9. プロセス・インタフェースとして使用するコンポーネントを選択します。

10. 「OK」をクリックします。

11. 「操作」リストで、プロセス・インタフェースとして使用する操作を選択します。

12. 選択したインタフェースが入力データを必要とする場合、メッセージ・イベントのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこの入力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

13. 「OK」をクリックします。

14. 既存のメッセージ終了またはメッセージ・スロー・イベントがビジネス・カタログのインタフェースを使用するよう構成するか、新しいイベントを追加して構成します。23.5.2項「メッセージ・イベントを使用するビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成する方法」の手順を参照してください。

23.9.2 送信および受信タスクを使用するビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成する方法

ビジネス・カタログのインタフェースを使用して、BPMNプロセスのインタフェースを定義できます。

ビジネス・カタログのインタフェースを使用するようメッセージ終了またはメッセージ・スロー・イベントを構成するには:

1. BPMNプロセスを編集します。

2. メッセージ終了またはメッセージ・スロー・イベントを右クリックします。

3. 「プロパティ」を選択します。

4. 「実装」タブをクリックします。

5. 「会話」セクションで「続行」を選択します。
「プロパティ」セクションが変更され、「イニシエータ・ノード」、「名前」および「操作」が表示されます。

6. 「イニシエータ・ノード」リストで、プロセス・インタフェースを定義するメッセージ開始またはメッセージ・キャッチ・イベントを選択します。

7. 「名前」フィールドの隣の「参照」ボタンをクリックします。
「タイプ」ダイアログが表示されます。

8. メッセージ・キャッチまたはメッセージ終了インタフェースとして使用するコンポーネントを選択します。

9. 「OK」をクリックします。

10. 「操作」リストで、メッセージ・キャッチまたはメッセージ終了インタフェースとして使用する操作を選択します。

11. 選択したインタフェースが入力データを必要とする場合、メッセージ・イベントのデータ・アソシエーションを構成して、プロジェクト内のデータ・オブジェクトがどのようにこの入力データにマッピングされるかを指定する必要があります。
データ・アソシエーションを構成する方法は、8.13項「データ・アソシエーションの概要」を参照してください。

12. 「OK」をクリックします。

23.9.3 操作の定義にビジネス・カタログのインタフェースと送信および受信タスクを使用したときに行われる処理

定義される操作は、ビジネス・カタログ内のインタフェースの操作の署名を使用します。BPMNプロセスで操作を起動するには、ビジネス・カタログのインタフェースの操作を起動するために使用するのと同じ操作名および入力を使用する必要があります。BPMNプロセスの操作は、ビジネス・カタログのインタフェースの操作と同じ出力を返します。

SOAコンポジットには、BPMNプロセスと、その操作の定義に使用されたインタフェースとの間にワイヤが表示されます。

ビジネス・カタログのインタフェースを使用してすべてのプロセス操作を定義すると、BPMNプロセスWSDLを削除するかどうかJDeveloperによって尋ねられます。BPMNプロセスはインタフェースを定義せず、既存のインタフェースを使用するため、WSDLは不要になっており、削除しても構いません。

23.10 プロセスの入力および出力の定義

操作をBPMNプロセスに追加すると、プロセス内で、他のプロセスまたはサービスがこの操作との通信に使用できる位置を定義することになります。

プロセスと、他のプロセスまたはサービスとの間の通信には、通常、入力が必要で、出力が返されます。

BPMNプロセス操作の定義に使用するフロー・イベントを使用して、入力および出力引数を定義できます。これらの入力および出力引数により、プロセスの入力および出力が定義されます。

23.10.1 BPMNプロセスへの入力および出力引数の追加手順

メッセージ開始および終了イベント、または送信および受信タスクを使用して操作を公開する場合、必要な入力および出力引数を定義できます。

BPMNプロセスに入力および出力引数を追加するには:

1. 「引数の定義」セクションで「追加」ボタンをクリックします。
「引数の作成」ダイアログが表示されます。

2. 引数を識別するための名前を入力します。

3. 「その他のタイプを参照します。」ボタンをクリックします。
「タイプの参照」ダイアログが表示されます。

4. 「タイプ」リストから基本データ型を選択するか、「<コンポーネント>」を選択して複合データ型を使用します。

5. 「<コンポーネント>」を選択した場合、選択可能な複合データ型のリストからコンポーネントを選択します。

6. 「OK」をクリックします。
「タイプの参照」ダイアログが閉じ、選択したデータ型が「引数の作成」ダイアログの「タイプ」フィールドに表示されます。

7. 「OK」をクリックします。
引数が「引数の定義」表に表示されます。

23.10.2 BPMNプロセスの入力および出力引数の編集手順

BPMNプロセスの引数の名前およびタイプを変更できます。

BPMNプロセスの入力および出力引数を編集するには:

1. 「引数の定義」表から、引数を選択します。

2. 「引数の定義」セクションで「編集」ボタンをクリックします。
「引数の編集」ダイアログが表示されます。

3. タイプの名前を変更します。

4. 「OK」をクリックします。
「引数の定義」の引数に、更新した名前およびタイプが表示されます。

23.10.3 BPMNプロセスの入力または出力引数の削除手順

使用しない、または不要の入力および出力引数を削除できます。

入力または出力引数を削除するには:

1. 「引数の定義」表から、引数を選択します。

2. 「引数の定義」セクションで「削除」ボタンをクリックします。
選択した引数が「引数の定義」表から削除されます。

24 相関を使用したビジネス・プロセスの通信

この章では、相関を使用して他のBPMNプロセスおよびサービスと通信するBPMNプロセスの開発方法について説明します。相関は、ピア・プロセスでメッセージを受信するインスタンスの識別に使用されます。

この章の内容は次のとおりです。

- 24.1項「相関の概要」

- 24.2項「相関のコンポーネントについて」

- 24.3項「一般的な設計ワークフロー」

- 24.4項「BPMN要素の相関の定義」

- 24.5項「相関キーの作成」

24.1 相関の概要

相関を使用すると、インスタンスの状態に基づいてビジネス・プロセスが相互に通信できます。プロセス内のすべてのプロセス・データ・オブジェクトの状態によって、インスタンスの状態が定義されます。

ビジネス・プロセスの相関を定義すると、インスタンスの状態によって他のプロセス内のインスタンスを識別したり、特定のインスタンスにメッセージを送信できます。

たとえば、販売プロセスと、対応する出荷およびメール送信プロセスとの通信に相関を使用できます。顧客が注文を確認すると、出荷プロセスは、注文IDを使用して両方のプロセスのインスタンスを検索するように定義する相関を使用し、出荷およびメール送信プロセスにメッセージを送信します。

相関を初期化すると、サービス・エンジンがインスタンスのローカライズにこの値を使用するため、値を変更できなくなります。相関に新しい値を割り当てようとすると、相関違反エラーが発生します。

フロー・オブジェクトの複数の相関を定義および初期化できます。メッセージを送信するフロー・オブジェクトは、フロー・オブジェクト用に定義された1つのみまたはすべての相関を使用できます。すべての既存の相関を使用する場合は、メッセージとともに送信するすべての値で同一インスタンスが識別される必要があります。

サービス・タスクなどのいくつかのフロー・オブジェクトは、2つのタイプの相関(入力および出力)を定義します。このような場合、同じアクティビティで相関を初期化して使用できます。

相関のスコープは、相関が定義されているプロセスまたはサブプロセスのインスタンスです。マルチインスタンス・ループ状態のサブプロセスの場合、相関のスコープはマルチインスタンス・サブプロセスの各インスタンスです。

24.2 相関のコンポーネントについて

次の一覧で、相関の様々なコンポーネントについて説明します。

- 相関定義
フロー・オブジェクト用に定義された相関キーのセットが含まれています。

- 相関キー
相関で使用するプロパティを定義します。相関キーを定義する場合は、識別するための名前を指定します。相関キーのスコープはプロジェクトであるため、相関キーを定義した後は、プロジェクト内のフロー・オブジェクトの相関定義にそれを使用できようになります。

BPMプロジェクトにBPELプロセスが含まれる場合は、BPELプロセスで定義された相関キーがBPMプロジェクト内での再利用のために自動的に表示されます。

- 相関プロパティ
プロパティは、注文ID、顧客名、社会保障番号など、プロセス内の非常に典型的な属性の抽象概念です。プロパティには、属性およびデータ型を識別するための名前が含まれています。プロパティは、基本のデータ型のみをサポートします。

- 相関プロパティ・エイリアス
式を使用して相関プロパティに値を割り当てる方法を定義できます。アクティビティの引数および事前定義済変数を使用して、相関プロパティ・エイリアスに値を割り当てることができます。

24.3 一般的な設計ワークフロー

次のワークフローでは、相関を使用して相互に通信するビジネス・プロセスを含むプロジェクトを設計する際に実行する一般的な手順を説明します。

1. 相互に通信するプロセスを設計します。

2. コール側プロセスで、他のプロセスにメッセージを送信するフロー・オブジェクトを追加します。

3. メッセージを送信するフロー・オブジェクトの相関を定義し、プロパティ・エイリアスを開始するように構成します。
相関を定義する方法の詳細は、24.4項「BPMN要素の相関の定義」を参照してください。

4. 起動されたプロセスで、メッセージを受信するフロー・オブジェクトを追加します。

5. 定義した相関を使用してプロパティ・エイリアスに値を割り当てるように、メッセージを受信するフロー・オブジェクトを構成します。
相関を定義する方法の詳細は、24.4項「BPMN要素の相関の定義」を参照してください。

24.4 BPMN要素の相関の定義

ビジネス・プロセスの通信に使用する次のBPMNフロー・オブジェクトの相関を定義できます。

- メッセージ・イベント

- 送信タスクおよび受信タスク

- シグナル・イベント

1つのフロー・オブジェクトに対して複数の相関を定義できます。メッセージを送信するフロー・オブジェクトでは、相関を1つのみ使用するかすべて使用するかを選択できます。後者の場合、相関の起動に使用する値によって、同一インスタンスが識別されます。

24.4.1 フロー・オブジェクトの相関を定義する方法

フロー・オブジェクトのプロパティの定義中に、相関を定義できます。Studioには、簡易モードおよび拡張モードという、相関を定義するための2つのモードがあります。含まれるプロパティが1つのみの相関を定義する場合は、簡易モードを使用します。定義する相関に、それぞれ複数のプロパティを持つ複数の相関キーが含まれる場合は、拡張モードを使用します。

フロー・オブジェクトの相関を定義するには:

1. BPMN要素を右クリックします。
「プロパティ」ダイアログが表示されます。

2. 「実装」タブをクリックします。

3. 「相関」リンクをクリックします。
「相関定義」ダイアログが表示されます。

4. 次のモードのいずれかを使用して相関を定義します。

- 簡易モード: 24.4.2項「簡易モードを使用して相関を定義する方法」の手順に従ってください。

- 拡張モード: 24.4.3項「拡張モードを使用して相関を定義する方法」の手順に従ってください。

24.4.2 簡易モードを使用して相関を定義する方法

簡易モードを使用すると、含まれるプロパティが1つのみの相関を定義できます。このモードでは、そのプロパティ用に定義される情報に基づいて相関部分を自動的に作成することで、相関の定義を簡略化します。

簡易モードを使用して相関を定義するには:

1. 「プロパティ」リストから、プロパティを選択します。
「プロパティ」リストが空白の場合は、次の手順で新しいプロパティを作成します。

1. 「プロパティ」リストの隣にある「新規」ボタンをクリックします。

2. 名前を入力します。

3. タイプを選択します。
使用可能なタイプは、「文字列」、「整数」、「実数」、「小数」、ブール、「時間」です。

2. BPMN要素で相関の値を開始する場合は、「開始」を選択します。

3. 「相関プロパティ・エイリアス」テキスト・ボックスで、相関プロパティに値を割り当てるための式を定義します。
複雑な式を定義するには、「相関プロパティ・エイリアス」テキスト・ボックスの隣にある「式ビルダー」ボタンをクリックします。詳細は、次を参照してください ...

4. 「OK」をクリックします。

24.4.3 拡張モードを使用して相関を定義する方法

拡張モードを使用すると、複数の相関プロパティを持つ複数の相関キーを定義できます。

拡張モードを使用して相関を定義するには:

1. 「相関定義」ダイアログで、「拡張モードに切替え」をクリックします。
「相関キー」表が表示されます。

2. 各相関キーに、相関を追加する手順は次のとおりです。

1. 「追加」ボタンをクリックします。
「相関キーの作成」ダイアログが表示されます。

2. 既存の相関キーを選択するか、「新規相関キー」ボタンをクリックして新しい相関キーを作成します。
新しい相関キーを定義する方法の詳細は、24.5.2項「相関キーを構成する方法」を参照してください。

3. BPMN要素で相関の値を開始する場合は、「開始」を選択します。

4. 「OK」をクリックします。

3. 「相関プロパティ・エイリアス」セクションで、表示された各プロパティに対して、相関プロパティに値を割り当てる式を定義します。
複雑な式を定義するには、プロパティ・テキスト・ボックスの隣にある「式ビルダー」ボタンをクリックします。詳細は、次を参照してください ...

4. 「OK」をクリックします。
「相関定義」ダイアログが閉じて、「相関」アイコンがカラーで表示されます。

24.5 相関キーの作成

プロジェクト・レベルで相関キーを定義すると、プロジェクト内のプロセスで相関キーを再利用できます。また、相関キーを使用するフロー・オブジェクトを追加する前に、相関キーの作成を決定することもできます。両方の場合とも、「構造」ビューから相関キーを作成する必要があります。

24.5.1 相関キーを作成する方法

プロジェクト・レベルで相関キーを作成すると、後でフロー・オブジェクトの相関を定義する際にその相関キーを使用できます。

相関キーを作成するには:

1. ビジネス・プロセスを選択します。

2. 「構造」ビューを開きます。

3. 「構造」ビューの「相関」ノードを展開します。

4. 「相関キー」ノードを右クリックします。

5. 「新規」を選択します。
「相関キーの作成」ダイアログが表示されます。

24.5.2 相関キーを構成する方法

定義する相関キーを構成するプロパティを構成できます。

相関キーを構成するには:

1. 相関名を入力します。

2. 「相関プロパティ」リストが空白の場合や相関に使用するプロパティが定義されていない場合は、新しい相関プロパティを定義する必要があります。相関プロパティを定義する手順は次のとおりです。

1. 「新規」ボタンをクリックします。
「相関プロパティの作成」ダイアログが表示されます。

2. 相関プロパティの名前を入力します。

3. タイプを選択します。
使用可能なタイプは、「文字列」、「整数」、「実数」、「小数」、ブール、「時間」です。

4. 「OK」をクリックします。

3. 相関を定義する相関プロパティを選択します。

1. 「相関プロパティ」リストから、相関に含めるプロパティを選択します。

2. 「選択」ボタンをクリックします。
選択したプロパティが、「選択済」リストに表示されます。

4. 「OK」をクリックします。

25 会話の定義

この章では、BPMプロジェクトで会話を作成および構成する方法について説明し、コラボレーション・ダイアグラムを表示および使用する方法についても説明します。

この章の内容は次のとおりです。

- 25.1項「会話の概要」

- 25.2項「様々なタイプの会話について」

- 25.3項「会話の作成」

- 25.4項「BPMN要素の会話の定義」

- 25.5項「コラボレーション・ダイアグラムの表示」

25.1 会話の概要

複数のプロセス間のメッセージ交換は、会話によってグループ化されます。プロセス間のメッセージ交換をコラボレーションと呼びます。

会話は、2つの参加者間のコラボレーションの状態を定義するものです。マルチインスタンスのサブプロセス内など、プロセスまたはサービスが同じでインスタンスが異なる複数のパラレルな会話がプロセスに必要な場合は、会話を使用する必要があります。

プロセス・インスタンスには、他のプロセスの様々なインスタンスとの通信が必要となる場合があります。たとえば、調達プロセスは、それぞれが異なるアイテムを表す、仕入先プロセスの2つの異なるインスタンスと相互作用する必要がある場合があります。会話を使用すると、このメッセージ交換をモデリングできます。

プロセス内で複数の会話を定義して、それらをそのプロセスのフロー・オブジェクト間で再利用できます。

コラボレーションのメンバーを参加者と呼びます。コラボレーションの参加者は、次のいずれかになります。

- BPMNプロセス

- BPELプロセス

- ヒューマン・タスク

- ビジネス・ルール

- 外部参照

コラボレーション・ダイアグラムを使用してプロセス・フローを表示すると、会話での他の参加者とプロセスとの相互作用も表示できます。

25.1.1 デフォルトの会話の定義

デフォルトでは、BPMプロジェクトに1つの会話が定義されています。複数の会話を定義しない場合は、このデフォルトの会話を使用して、プロジェクト内のプロセス間のメッセージ交換をすべて収集する必要があります。

プロジェクトごとに定義できるデフォルトの会話は1つのみです。ただし、デフォルトで使用する会話ではなく、別の会話をデフォルトとして使用するようにプロジェクトを変更できます。詳細は、次を参照してください。

25.2 様々なタイプの会話について

様々なタイプの会話を使用すると、プロセスが他のプロセスやサービスとの間で確立できる各種の相互作用を指定できます。

次に、各タイプの会話について説明します:

- インタフェースの定義: BPMNプロセスと相互作用するために他のサービスやプロセスで起動できる操作を定義する場合は、このタイプを使用します。

- インタフェースの使用: ビジネス・カタログのコンポーネントからインタフェースを使用するようにプロセスを構成する場合は、このタイプを使用します。

- プロセス・コール: 別のBPMNプロセスを起動する場合は、このタイプを使用します。

- サービス・コール: BPMプロジェクトに定義されているサービスを起動する場合は、このタイプを使用します。

他のプロセスまたはサービスと通信する方法の詳細は、次の章を参照してください。

- 第22章「他のBPMNプロセスおよびサービスとの通信」

- 第23章「プロセス・インタフェースの定義」

25.3 会話の作成

会話によって、BPMプロジェクト内のプロセス間のメッセージ交換をグループ化できます。

25.3.1 会話を作成する方法

会話を作成すると、プロセス・インスタンスと他のプロセスまたはサービス内のインスタンスとの間のメッセージ交換をモデリングできます。

会話を作成するには:

1. BPMプロジェクト・ナビゲータで、相関を定義するプロジェクトからプロセスを選択します。

2. 「構造」ウィンドウで、「会話」ノードを右クリックします。

3. 「新規」を選択します。
「会話の作成」ダイアログが表示されます。

4. 会話を識別するための名前を入力します。

5. この会話をこのプロジェクトのデフォルトの会話にする場合は、「デフォルトの会話」を選択します。

6. 「タイプ」リストから、この会話のタイプを選択します。
使用可能なタイプは次のとおりです。

- インタフェースの定義

- インタフェースの使用

- プロセス・コール

- サービス・コール

様々なタイプの会話の詳細は、次を参照してください ...

7. この会話をSOAPサービスとして公開する場合は、「SOAPサービスとして公開」を選択します。

8. 「OK」をクリックします。

25.3.2 プロジェクトのデフォルトの会話の変更

プロジェクトのデフォルトの会話を変更できます。

プロジェクトのデフォルトの会話を変更するには:

1. BPMプロジェクト・ナビゲータで、相関を定義するプロジェクトからプロセスを選択します。

2. 「構造」ウィンドウで、「会話」ノードを展開します。

3. 現在のデフォルトの会話を右クリックします。

4. 「編集」を選択します。
「会話の編集」ダイアログが表示されます。

5. 「デフォルトの会話」チェック・ボックスの選択を解除します。

6. 「OK」をクリックします。

7. 「構造」ウィンドウで、デフォルトとして構成する会話を右クリックします。

8. 「編集」を選択します。
「会話の編集」ダイアログが表示されます。

9. 「デフォルトの会話」チェック・ボックスを選択します。

10. 「OK」をクリックします。

25.4 BPMN要素の会話の定義

プロセスと他のプロセスまたはサービスとの通信に使用するBPMN要素では、会話を定義することが必要となります。定義した会話によって、BPMプロジェクト内のプロセスおよびサービス間でのメッセージ交換がグループ化されます。

会話を定義する必要があるBPMN要素は次のとおりです。

- メッセージ・イベント

- 送信タスクおよび受信タスク

- シグナル・イベント

25.4.1 BPMN要素の会話を定義する方法

BPMN要素の会話を定義するには:

1. BPMN要素を右クリックします。
「プロパティ」ダイアログが表示されます。

2. 「実装」タブをクリックします。

3. 「会話」フィールドの隣の「参照」ボタンをクリックします。
「会話」ダイアログが表示されます。

4. リストから会話を選択します。
会話を検索するには、「検索」フィールドに名前の一部または全体を入力します。

新しい会話を作成するには、「新規」ボタンをクリックします。新しい会話を作成する方法の詳細は、25.3項「会話の作成」を参照してください。

5. 「OK」をクリックします。
選択した会話のタイプに応じて、「メッセージ交換」セクションに様々なフィールドが表示されます。

6. 「メッセージ交換」セクションを構成します。
「メッセージ交換」セクションを構成する方法の詳細は、次を参照してください ...

7. 「OK」をクリックします。

25.4.2 BPMN要素の会話を定義した後の結果

プロセスまたはサブプロセス・レベルで会話を定義すると、特定インスタンスの会話が表示される範囲を決定できます。

25.5 コラボレーション・ダイアグラムの表示

コラボレーション・ダイアグラムには、プロセスのフロー、およびそのプロセスが同じダイアグラム内の他のプロセスまたはサービスとどのように相互作用するのかが表示されます。

25.5.1 コラボレーション・ダイアグラムを表示する方法

コラボレーション・ダイアグラムを使用すると、プロセスのコラボレーションを表示できます。

コラボレーション・ダイアグラムを表示するには:

1. BPMNプロセスを開きます。

2. BPMNプロセス・エディタで、下部の「設計者」タブの隣にある「コラボレーション」タブをクリックします。
選択したプロセスのコラボレーション・ダイアグラムが表示されます。

25.5.2 コラボレーションを非表示にする方法

ダイアグラムの残りのコラボレーションに焦点を当てることができるように、コラボレーションを非表示にできます。

コラボレーションを非表示にするには:

1. コラボレーション・ダイアグラムで、会話の参加者を右クリックします。

2. 会話の非表示を選択します。
選択した参加者が、コラボレーション・ダイアグラムに表示されなくなります。

25.5.3 コラボレーションを表示する方法

以前に非表示にした会話を表示できます。

コラボレーションを表示するには:

1. コラボレーション・ダイアグラムで、会話の参加者を右クリックします。

2. 会話の表示を選択します。
以前に非表示にした会話が、コラボレーション・ダイアグラムに表示されます。

26 式の記述

この章では、式および条件を必要とするBPMN要素の式および条件の記述方法について説明します。Oracle BPMでは、異なるユーザーの要件に適応する2タイプの式エディタが提供されています。この章では、各式ビルダーで使用される式言語および記述する式で使用できる操作について説明します。

この章の内容は次のとおりです。

- 26.1項「Oracle BPMでの式の概要」

- 26.2項「条件シーケンス・フローでの条件の記述」

- 26.3項「複合ゲートウェイでの式の記述」

- 26.4項「タイマー・イベントでの式の記述」

- 26.5項「データ・アソシエーションでの式の記述」

- 26.6項「サブプロセス内のループ・マーカーおよびマルチインスタンス・マーカーでの条件の記述」

- 26.7項「シンプルな式ビルダーを使用した式および条件の記述」

- 26.8項「シンプルな式ビルダーでサポートされている演算子」

- 26.9項「シンプルな式ビルダーでサポートされている関数」

- 26.10項「XPath式ビルダーを使用した式の記述」

- 26.11項「配列の使用」

- 26.12項「リテラルの使用」

- 26.13項「XPath BPM拡張関数」

26.1 Oracle BPMでの式の概要

BPM要素では、動作を定義する条件または式を記述する必要がある場合があります。たとえば、500ドルを超えるすべての支出がマネージャによって承認されていることを確認する条件シーケンス・フローを使用するプロセスのフローを制御することがあります。

Oracle BPMでは、次の2つの式および条件の記述方法が提供されています。

- シンプルな式ビルダーの使用

- XPATH式ビルダーの使用

シンプルな式ビルダーではドット表記を使用し、その構文はJavaによく似ています。XPATH式ビルダーでは標準XPATH言語を使用します。

シンプルな式言語で式を記述した後にそれをXPathに変換することも、逆の変換をすることもできます。言語間で式を変換する場合、式エディタは式の意味に影響を与えない演算子とカッコを削除します。

Oracle BPMでは式を使用して、次のBPMN要素を構成します。

- 条件シーケンス・フロー

- 複合ゲートウェイ

- タイマー・イベント

- データ・アソシエーション

- ループ・マーカー

- マルチインスタンス・マーカー

- ユーザー・タスク拡張プロパティ

式の結果は、構成する要素のタイプに応じて異なります。表26-1は、各BPM要素で必要とされる式を説明しています。

表26-1 式タイプ

BPMN要素

式タイプ

条件シーケンス・フロー

評価時にブール値となる条件。

複合ゲートウェイ

評価時にブール値となる条件。

タイマー・イベント

時間日付: 評価時に日時値となる式。

サイクル: 評価時に間隔値となる式。

データ・アソシエーション

評価時にデータ・アソシエーションでの引数と同じタイプの値となる式。

ユーザー・タスク拡張プロパティ

評価時に文字列値となる式。

ループ・マーカー

評価時にブール値となる条件。

マルチインスタンス・マーカー

ループ・カーディナリティ: 評価時に整数値となる式。

完了条件: 評価時にブール値となる条件。

式をサポートするBPM要素の構成ダイアログには、埋込みの式エディタおよび式ビルダーを起動するボタンがあります。後者は長い式を操作する場合に適しています。どちらの式ビルダーでも、使用可能な変数を参照できます。XPATH式ビルダーでは、使用可能な関数も参照できます。

26.2 条件シーケンス・フローでの条件の記述

条件シーケンス・フローを実装するには、条件を指定する必要があります。トークンが条件シーケンス・フローに到着すると、BPMNサーバー・エンジンが条件シーケンス・フローの条件を評価し、トークンがどのシーケンス・フローに従うかを決定します。

通常、条件はプロジェクトおよびプロセス・データ・オブジェクトの値に基づいていますが、要件には基づいていません。コンパイラが条件を評価する際に、条件はブール値となる必要があります。ブール値とならない条件を記述した場合、シンプルな式ビルダーではエラーが発生します。

26.2.1 条件シーケンス・フローの実装方法

条件シーケンス・フローを実装する式を定義する必要があります。

条件シーケンス・フローを実装するには:

1. 条件シーケンス・フローを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「タイプ」リストから、「条件」を選択します。

5. 「式」セクションで、条件を記述するのに使用する式ビルダーのタイプを選択します。

6. 条件が単純な場合、表示されたテキスト領域に条件を記述できます。
複雑な条件を処理する場合、テキスト領域の横にある「式ビルダーの起動」ボタンをクリックして、式ビルダーを起動できます。

7. 「OK」をクリックします。

26.3 複合ゲートウェイでの式の記述

複合ゲートウェイを実装するには、到着したトークンをゲートウェイが解放する時期を指定する条件を提供する必要があります。新規トークンが複合ゲートウェイに到着するたびに、BPMNサービス・エンジンはこの条件を評価します。条件がtrueと評価されると、複合ゲートウェイはtrueと評価されるまでに到着したすべてのトークンを解放します。

通常、条件は、複合ゲートウェイに到着したトークンの数に基づいています。たとえば、2つのトークンがマージ・ゲートウェイに到着した後でゲートウェイがトークンを解放するようにするとします。

例26-1は、2つのトークンがマージ・ゲートウェイに到着した後でゲートウェイに到着したトークンを解放するゲートウェイを構成する条件を示しています。

例26-1 複合ゲートウェイでの条件

activationCount >= 2

26.3.1 複合ゲートウェイの実装方法

ゲートウェイを実装する式を定義する必要があります。

複合ゲートウェイを実装するには:

1. 複合ゲートウェイを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「式」セクションで、条件を記述するのに使用する式ビルダーのタイプを選択します。

5. 条件が単純な場合、表示されたテキスト領域に条件を記述できます。
複雑な条件を処理する場合、テキスト領域の横にある「式ビルダーの起動」ボタンをクリックして、式ビルダーを起動できます。

6. 「OK」をクリックします。

26.4 タイマー・イベントでの式の記述

タイマー・イベントを実装するために、日付または間隔を指定するか、日付または間隔を計算する式を記述するかを選択できます。

通常、日付または間隔が固定しない場合に式を使用します。

次の例は、日付を表すタイマー・イベントで使用できる式を示しています。

- 'now' + '30m'

- deadline - '1day'

- arrivalDate.dateTime + '1h'

次の例は、間隔を表すタイマー・イベントで使用できる式を示しています。

- waitToRetry.interval()

- period(deadline)

26.4.1 タイマー・イベントでの式の使用方法

式を使用して、タイマー・イベントの実装における日付または間隔を計算できます。

タイマー・イベントで式を使用するには:

1. タイマー・イベントを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「式の使用」を選択します。

5. 「式」セクションで、条件を記述するのに使用する式ビルダーのタイプを選択します。

6. 式が単純な場合、表示されたテキスト領域に式を記述できます。
複雑な式を処理する場合、テキスト領域の横にある「式ビルダーの起動」ボタンをクリックして、式ビルダーを起動できます。式を記述できる式ビルダーが表示されます。

7. 「OK」をクリックします。

26.5 データ・アソシエーションでの式の記述

データ・アソシエーションで式を使用して、アクティビティ実装引数に関連付ける前に入出力値を変更できます。

通常、データ・オブジェクトとアクティビティ実装引数間に不一致がある場合に、式を使用します。次の例は、データ・アソシエーションで式を使用できる状況を説明しています。

- データ・オブジェクトの値とサービスが必要とする引数間の不一致。
たとえば、アクティビティが起動するサービスがプロセスで使用する製品IDと異なる製品IDを使用するとします。この場合、製品IDのデータ・オブジェクトの内容をサービスが必要とする値に適合させる式を使用できます。

- データ・オブジェクトのデータ型とサービスが必要とする引数のデータ型間の不一致。
たとえば、アクティビティが起動するサービスは文字列を使用してオーダーの状態を格納し、サービスは整数値でオーダーの状態を指定する必要があるとします。この場合、その文字列が指定する状態に対応する整数値を計算する式を使用します。

26.5.1 データ・アソシエーションでの式の使用方法

データ・アソシエーションで式を使用して、引数またはデータ・オブジェクトの値をマッピングする前に変更できます。

データ・アソシエーションで式を使用するには:

1. データ・アソシエーションを変更するアクティビティを右クリックします。

2. 「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「データ・アソシエーション」セクションで、「アソシエーションの使用」を選択します。

5. 「タイプ」リストから、データ・アソシエーションのタイプを選択します。
使用できる式のタイプは、選択するデータ・アソシエーションのタイプによって異なります。

6. 「タイプ」リストの横にある「編集」ボタンをクリックします。
「データ・アソシエーション」ダイアログが表示されます。

7. 式を使用して変更する入出力引数を特定します。

8. 式が単純な場合、表示されたテキスト領域に式を記述できます。
複雑な式を処理する場合、入出力テキスト領域の横にある「式ビルダー」ボタンをクリックして、式ビルダーを起動できます。式を記述できる式ビルダーが表示されます。

9. 「OK」をクリックします。

26.6 サブプロセス内のループ・マーカーおよびマルチインスタンス・マーカーでの条件の記述

ループ・マーカーおよびマルチインスタンス・マーカーを使用して複数回実行するサブプロセスを構成できます。

ループ・マーカーおよびマルチインスタンス・マーカーを構成するには、サブプロセスを繰り返す方法を指定する式および条件を定義する必要があります。

ループ・マーカー

ループ・マーカーによって、条件に基づいてサブプロセスを複数回実行できます。サブプロセスの実行前または実行後に条件を評価するように、ループ・マーカーを構成できます。特定の反復回数後に停止するように、ループ・マーカーを構成することもできます。

ループ・マーカーを構成するには、BPMNサービス・エンジンがサブプロセスの繰返しを続行する必要があるかどうかを決定するループ条件を記述する必要があります。

マルチインスタンス・マーカー

マルチインスタンス・マーカーによって、データのセット上の各要素のサブプロセスを実行できます。BPMNサービス・エンジンがマルチインスタンス・ループ・マーカーを使用してサブプロセスを実行すると、インスタンスのセット、データのセット上の各要素のインスタンスが作成されます。パラレルまたは順番にこれらのインスタンスを処理するように、マルチインスタンス・マーカーを構成できます。

マルチインスタンス・ループ・マーカーの次のフィールドには、式を記述する必要があります。

- ループ・カーディナリティ
この式は、サブプロセス内に作成するトークンの数を定義します。

- 完了条件
この式は、サブプロセスの繰返しを停止する時期を決定します。BPMサービス・エンジンは、トークンがサブプロセスを完了するたびにこの条件を評価します。条件がtrueと評価されると、サブプロセスが完了したとみなされ、インスタンスはプロセス内の次のフロー・オブジェクトに移動します。

26.6.1 ループ・マーカーの構成方法

ループ・マーカーを構成して、サブプロセスを複数回実行できます。

ループ・マーカーを構成するには:

1. サブプロセスを右クリックします。

2. 「プロパティ」を選択します。

3. 「ループ特性」タブをクリックします。

4. 「ループ」を選択します。

5. 次のように、ループ条件を指定します。

1. 式言語を選択します。
使用可能なオプションは「シンプル」または「XPath」です。

2. 下のテキスト領域に、ループを駆動する条件を記述します。
オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

6. オプションで、次のように、実行するループの最大回数を指定できます。

1. 「ループ最大」を選択します。

2. 数字を指定します。

7. 「次より前」を選択してフロー・オブジェクトの実行前に条件を評価するか、選択解除してフロー・オブジェクトの実行後に条件を評価します。

8. 「OK」をクリックします。

26.6.2 マルチインスタンス・マーカーの構成方法

マルチインスタンス・マーカーを構成して、データのセットに基づいてサブプロセスを複数回実行できます。

マルチインスタンス・マーカーを構成するには:

1. サブプロセスを右クリックします。

2. 「プロパティ」を選択します。

3. 「ループ特性」タブをクリックします。

4. 「MultiInstance」を選択します。

5. 次のように、ループ・カーディナリティを指定します。

1. 式言語を選択します。
使用可能なオプションは「シンプル」または「XPath」です。

2. 下のテキスト領域に、ループ・カーディナリティの指定を記述します。
オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

6. オプションで、次のように、完了条件を指定できます。

1. 式言語を選択します。
使用可能なオプションは「シンプル」または「XPath」です。

2. 下のテキスト領域に、ループが完了したかどうかを決定する条件を記述します。
オプションで、式ビルダーを使用して条件を記述できます。式ビルダーを起動するには、テキスト領域の横にある「式ビルダー」ボタンをクリックします。

7. データ出力を指定するには、「ループ・データ出力」フィールドの横にある「参照」ボタンをクリックします。
データ・オブジェクトまたはサブプロセスに渡す複合データ・オブジェクトの属性を選択できます。通常、選択したデータ・オブジェクトはアイテムのコレクションです。

8. データ入力を指定するには、「ループ・データ入力」フィールドの横にある「参照」ボタンをクリックします。
データ・オブジェクトまたはサブプロセスの結果を割り当てる複合データ・オブジェクトの属性を選択します。

9. オプションで、「順次」チェック・ボックスを選択して、次のトークンがサブプロセスの実行を開始する前に各トークンがサブプロセスを完了する必要があることを指定します。

10. 「OK」をクリックします。

26.7 シンプルな式ビルダーを使用した式および条件の記述

シンプルな式ビルダーには、式を入力するテキスト領域および使用できる変数のリストが含まれています。

シンプルな式ビルダーは、次の機能をサポートしています。

- 構文の強調表示
シンプルな式ビルダーでは、式内の構文を強調表示して、読取りおよび理解を容易にします。異なるデータ型の値には異なる色が使用されます。

- 自動コード補完
メソッドを呼び出すドットの入力後に数秒待機すると、シンプルな式ビルダーでは、そのデータ・オブジェクトで呼び出すことができる使用可能な関数のリストが表示されます。シンプルな式ビルダーに式を補完させる場合、[Ctrl]+[Space]を押すことができます。

- オンザフライのエラー・チェック
式を記述すると、シンプルな式ビルダーで式がチェックされます。コンパイルされていない式に赤い波線が引かれます。エラーの原因を見つけるには、赤い波線の上にカーソルを置き、エラーの説明を示すツールチップが表示されるのを待ちます。

図26-1は、シンプルな式ビルダーのダイアログを示しています。

図26-1 シンプルな式ビルダー

26.7.1 式内のデータ・オブジェクトの使用方法

式内のデータ・オブジェクトを使用して、データ・オブジェクトに基づいて計算を実行できます。

式内のデータ・オブジェクトを使用するには:

1. シンプルな式ビルダーを開きます。

2. データ・オブジェクトを挿入する場所にカーソルを置きます。

3. 「変数」セクションから、データ・オブジェクトを選択します。

4. 「式に挿入」をクリックします。
「式」テキスト領域に、選択したデータ・オブジェクトが表示されます。

26.7.2 式内の関数の使用方法

式内の関数を使用するには、シンプルな式ビルダーの式リストから式を選択することも、「式」テキスト領域に関数名を入力することもできます。名前の一部を記述して[Ctrl]+[Space]を押すと、式ビルダーによって関数の名前が補完されます。

シンプルな式ビルダーを使用して式で関数を使用するには:

1. シンプルな式ビルダーを開きます。

2. 関数を挿入する場所にカーソルを置きます。

3. 「関数」セクションから、関数のタイプを選択します。

4. 「関数」リストから、関数を選択します。
「説明」フィールドは、関数の説明を示しています。

5. 「式に挿入」をクリックします。
「式」テキスト領域に、選択した関数が表示されます。

26.8 シンプルな式ビルダーでサポートされている演算子

シンプルな式ビルダーでは、次の演算子タイプを使用して、式を作成できます。

- 算術演算子

- 単項演算子

- 等号演算子と関係演算子

- 条件演算子

これらの演算子を使用して式および条件を作成し、プロセス・フローを駆動できます。一般に、これらの式は、プロセス内のデータ・オブジェクトに基づいて計算を実行します。式と条件はデータ・オブジェクトの値を使用して作成できますが、値は変更できません。

次の式の例では、演算子が使用されています:

- totalAmount - discount

- deadlineExpired and orderStatus !=complete

- activationCount > 3

- unitsSold <= 1200

- 'now' + '2m'

- deadline - '1h'

- not formComplete

表26-1、表26-2、表26-3、表26-4および表26-5は、シンプルな式ビルダーでサポートされている演算子を説明しています。

表26-2 算術演算子

演算子

名前

説明

+

加算

数値データ型を加算します。

文字列同士を連結します。

間隔値を日時値に加算します。

-

減算

数値データ型を減算します。

日時値から間隔値を減算します。

*

乗算

数値データ型を乗算します。

/

除算

数値データ型を除算します。

rem

剰余

除数が被除数で除算しきれない場合の剰余を計算します。

( )

優先順位

演算式の評価の順序を指定します。

表26-3 単項演算子

演算子

名前

説明

+

プラス

数値オペランドの値には影響しません。ある値が正であることを明示的に示す場合に使用します。

-

マイナス

算術式の符号をマイナスにします。数字の符号を反転します。

NOT

NOT

論理補数演算子。ブール式の値を否定します。

表26-4 等号演算子と関係演算子

演算子

名前

説明

=

等しい

最初のオペランドが2番目のオペランドと等しい場合にTrueを戻します。

!=

等しくない

最初のオペランドが2番目のオペランドと等しくない場合にtrueを戻します。

>

より大きい

最初のオペランドが2番目のオペランドより大きい場合にTrueを戻します。

>=

次以上

最初のオペランドが2番目のオペランド以上の場合にTrueを戻します。

<

より小さい

最初のオペランドが2番目のオペランドより小さい場合にtrueを戻します。

<=

次以下

最初のオペランドが2番目のオペランド以下の場合にTrueを戻します。

表26-5 条件演算子

演算子

名前

説明

and

条件付きAND

両方のオペランドがtrueと評価された場合にtrueを戻します。

or

条件付きOR

1つのオペランドがTrueと評価された場合にTrueを戻します。

26.8.1 演算子の優先順位

演算子の優先順位とは、コンパイラが演算子を評価する順序のことです。式内の演算子の優先順位は、カッコを使用して変更できます。

シンプルな式ビルダーの演算子の優先順位は次のとおりです。

- 単項のプラスおよび単項のマイナス

- 乗算、除算、剰余

- 加算および減算

- 次より小さい、次より大きい、次以下、次以上

- 等しい、等しくない

- NOT

- 条件付きAND

- 条件付きOR

26.9 シンプルな式ビルダーでサポートされている関数

シンプルな式ビルダーでは、式および条件を計算および操作するのに使用できる関数をサポートしています。

次の項では、シンプルな式ビルダーでサポートされている関数を説明しています。

- 第26.9.1項「文字列関数」

- 第26.9.2項「数値関数」

- 26.9.3項「日付/時刻関数」

26.9.1 文字列関数

次の関数によって、文字列変数およびリテラルを操作し、これらに基づいて計算を実行できます。

26.9.1.1 length

この文字列内の文字数を戻します。

シグネチャ:

Int length(String stringToMeasure)

引数:

-

例:

name.length()

length(name)

name.length

26.9.1.2 連結

1つ以上の文字列を連結します。

例:

name + " " + lastName

"Oracle " + "BPM"

26.9.1.3 contains

文字列に指定された文字列が含まれる場合にtrueを戻します。

シグネチャ:

Bool contains(String mainString, String subString)

引数:

subString - 検索する文字列。

例:

productName.contains("book")

contains(productName, "book")

26.9.1.4 startsWith

文字列が指定された文字列で始まる場合にtrueを戻します。

シグネチャ:

Bool startsWith(String mainString, String subString)

引数:

subString - 文字列の最初で検索する文字列。

例:

productId.startsWith("ABC")

startsWith(productId, "ABC")

26.9.2 数値関数

次の関数によって、数値のデータ型を使用した計算を実行できます。使用可能な数値のデータ型は、実数、小数および整数です。

26.9.2.1 floor

この関数を呼び出すのに使用される数値よりも小さい値のうち最大の整数値を戻します。実数および小数のデータ型でこの関数を使用できます。

シグネチャ:

Int floor(Real number)

Int floor(Decimal number)

引数:

-

例:

number.floor()

floor(number)

number.floor

floor(totalAmount/3)

temperature.floor()

26.9.2.2 ceil

この関数を呼び出すのに使用される数値よりも大きい値のうち最小の整数値を戻します。実数および小数のデータ型でこの関数を使用できます。

シグネチャ:

Int ceil(Real number)

Int ceil(Decimal number)

引数:

-

例:

number.ceil()

ceil(number)

number.ceil

26.9.2.3 round

この数字に最も近い整数値を戻します。同等に近い整数値が2つある場合、大きい方を戻します。実数および小数のデータ型でこの関数を使用できます。

シグネチャ:

Int round(Real number)

Int round(Decimal number)

引数:

-

例:

number.round()

round(number)

number.round

26.9.2.4 abs

この数字の絶対値を戻します。整数、実数および小数のデータ型でこの関数を使用できます。

シグネチャ:

Int abs(Int number)

Real abs(Real number)

Decimal abs(Decimal number)

引数:

-

例:

number.abs()

abs(number)

number.abs

26.9.3 日付/時刻関数

次の関数によって、時間変数およびリテラルを操作し、これらに基づいて計算を実行できます。使用可能な時間のデータ型は、日時および間隔です。

26.9.3.1 now

システムの現在の日付および時刻の特別な表記。

例:

setReceivedDate('now')

26.9.3.2 加算

間隔を日時の変数または値に加算します。

例:

today + '1d3h'

now + 3d

vacationStartingDate + '1M'

26.9.3.3 減算

間隔を日時の変数または値から減算します。

例:

today - '2d3h25m'

now - age

expirationDate - '7d'

26.9.3.4 year

この日時の変数の年を戻します。

シグネチャ:

Int year(DateTime date)

引数:

-

例:

today.year()

year(today)

today.year

26.9.3.5 month

この日時の変数の月を戻します。

シグネチャ:

Int month(DateTime date)

引数:

-

例:

today.month()

month(today)

today.month

26.9.3.6 day

この日時の変数の日を戻します。

シグネチャ:

Int day(DateTime date)

引数:

-

例:

today.day()

day(today)

today.day

26.9.3.7 hours

この日時の変数の時間を戻します。

シグネチャ:

Int hours(DateTime date)

引数:

-

例:

today.hours()

hours(today)

today.hours

26.9.3.8 minutes

この日時の変数の分を戻します。

シグネチャ:

Int minutes(DateTime date)

引数:

-

例:

today.minutes()

minutes(today)

today.minutes

26.9.3.9 seconds

この日時の変数の秒を戻します。

シグネチャ:

Int seconds(DateTime date)

引数:

-

例:

today.seconds()

seconds(today)

today.seconds

26.9.3.10 timezone

UTCからのオフセットを表す間隔値を戻します。

シグネチャ:

Interval timezone()

引数:

-

例:

'1995-02-03 23:30:23-3:30'.timezone()

timezone('1995-02-03 23:30:23-3:30')

'1995-02-03 23:30:23-3:30'.timezone

この例の結果は「-3h30m」です。

26.10 XPath式ビルダーを使用した式の記述

Oracle BPMでは、SOA XPath式ビルダーを使用して式を記述できます。この式ビルダーは、標準XPATH言語をサポートしています。

XPath式ビルダーでは、式で使用できる変数のリストが表示されます。また、式で使用できる関数のリストも表示されます。関数を選択すると、式に追加する前にその関数の構文および説明をプレビューできます。

XPathでサポートされている関数の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の付録B「XPath拡張関数」を参照してください。

さらに、Oracle BPMはBPM拡張関数のグループをサポートしています。

図26-2は、XPath式ビルダーを示しています。

図26-2 XPath式ビルダー

26.10.1 XPath式への変数の追加方法

XPath式に変数を追加して、変数に基づいて計算を実行できます。

XPath式に変数を追加するには:

1. XPath式ビルダーを起動します。

2. 変数を挿入する場所にカーソルを置きます。

3. 「変数」リストから変数を選択します。

4. 「式に挿入」をクリックします。
「式」テキスト領域に、選択した変数が表示されます。

26.10.2 XPath式内の関数の使用方法

XPath式で関数を呼び出すことができます。XPath式ビルダーでは、機能ごとにグループ化された関数のリストを参照できます。

XPath式で関数を使用するには:

1. XPath式ビルダーを起動します。

2. 式を挿入する場所にカーソルを置きます。

3. 「関数」リストから関数カテゴリを選択します。
「関数」リストの下に、選択したカテゴリで使用可能な関数のリストが表示されます。

4. 使用可能な関数のリストから関数を選択します。

5. 「式に挿入」をクリックします。
「式」テキスト領域に、選択した関数が表示されます。

26.11 配列の使用

いくつかのサービス操作は、配列タイプの引数が必須であるか、戻す場合があります。この配列は、単純タイプまたは複合タイプのコレクションであることができます。

配列タイプのパラメータをサービス操作に提供する場合は、次のことを実行できます。

- 配列を戻す操作の起動

- 配列リテラルを使用した配列の定義
配列リテラルの定義の詳細は、26.12.4項「配列リテラルの使用」を参照してください。

通常、プロセス操作が配列タイプの引数を戻す場合、データ・アソシエーションを使用して、配列の要素のいずれかまたは要素のいずれかの属性をデータ・オブジェクトに割り当てます。データ・アソシエーションの詳細は、8.13.1項「データ・アソシエーション・エディタの概要」を参照してください。

例26-2に、配列の要素にアクセスする式を示します。この例での配列の名前はpersonsで、アクセスする要素は配列の3番目の要素です。

例26-2 配列の要素にアクセスする式

persons[3]

配列の最初の要素の索引が1であることに注意してください。たとえば、persons配列内の最初の要素にアクセスするには、persons[1]という式を記述する必要があります。

26.11.1 配列内の要素の属性へのアクセス

シンプルな式言語では、配列内の要素の属性にアクセスすることもできます。たとえば、personsの配列を戻すサービス操作を起動し、配列内の要素の名前属性にアクセスして、データ・アソシエーションを使用してプロセス・データ・オブジェクトに渡すことができます。

例26-3に、配列の要素の属性にアクセスする式を示します。この例での配列の名前はpersonsで、アクセスする要素は配列の3番目の要素、アクセスする属性はその人物の名前です。

例26-3 配列の要素の属性にアクセスする式

persons[1].name

26.11.2 配列の長さの取得

シンプルな式言語を使用すると、配列の長さを取得してプロセス・ロジックでそれを使用することができます。これは、マルチインスタンス・マーカーのループ・カーディナリティを定義する場合によく使用します。マルチインスタンス・マーカーの詳細は、26.6項「サブプロセス内のループ・マーカーおよびマルチインスタンス・マーカーでの条件の記述」を参照してください。

配列の長さを取得するには、length関数を呼び出す必要があります。

例26-3は、配列の長さを取得する式を示しています。この例の配列の名前はpersonsです。例では関数名の後にカッコを使用していますが、この関数にはパラメータが必要ないため、カッコを省略してもかまいません。

例26-4 配列の長さを取得する式

persons.length()

26.12 リテラルの使用

リテラルは、特定の値を表すことができます。リテラルは、値をデータ・オブジェクトに割り当てる場合にも、起動するメソッドにパラメータを渡す場合にも使用できます。値をデータ・オブジェクトに割り当てるには、データ・アソシエーションまたはスクリプト・タスクを使用できます。

シンプルな式言語は、次のタイプのリテラルをサポートします。

- 文字列リテラル

- 時間リテラル

- 時間隔リテラル

- 配列リテラル

26.12.1 文字列リテラルの使用

リテラルを使用して値を文字列型のデータ・オブジェクトに割り当てることができます。文字列リテラルを使用すると、文字列型のパラメータをメソッドに提供することもできます。

文字列リテラルを定義するには、単語または一連の単語を二重引用符で囲んで記述する必要があります。文字列に数値を含めることもできます。

次に、文字列リテラルの例を示します。

- "Wednesday"

- "marie@oracle.com"

- "500 Oracle Parkway"

- "+1.650.506.7000"

26.12.2 時間リテラルの使用

リテラルを使用して値を時間型のデータ・オブジェクトに割り当てることができます。時間リテラルを使用すると、時間型のパラメータをメソッドに提供することもできます。

時間リテラルは、様々なレベルの精度を使用して日付を定義できます。

次に、時間型の変数の指定に使用できる様々な時間リテラルの例を示します。

- '13:30'

- '13:30:23'

- '13:30:23.001023'

- '13:30:23.001023Z'

- '13:30:23.001023-05'

- '13:30:23.001023-3:30'

- '1979-02-19'

- '1979-02-19 13:30'

- '1979-02-19 13:30:23'

- '1979-02-19 13:30:23.001023'

- '1979-02-19 13:30:23.001023Z'

- '1979-02-19 13:30:23.001023-05'

- '1979-02-19 13:30:23.001023-3:30'

- '1979-02-19T13:30'

- '1979-02-19T13:30:23'

- '1979-02-19T13:30:23.001023'

- '1979-02-19T13:30:23.001023Z'

- '1979-02-19T13:30:23.001023-05'

- '1979-02-19T13:30:23.001023-3:30'

- '19790219T'

- '19790219T133023.001023-330'

26.12.3 時間隔リテラルの使用

リテラルを使用して値を時間隔型のデータ・オブジェクトに割り当てることができます。時間隔リテラルを使用すると、時間隔型のパラメータをメソッドに提供することもできます。

時間隔リテラルは、様々なレベルの精度を使用して日付を定義できます。

時間リテラルを定義するには、値の組合わせを使用し、その後に時間の単位を一重引用符で囲んで続ける必要があります。

表26-6に、使用可能な時間単位フィールドを示します。

表26-6 時間単位接尾辞

時間単位接尾辞

説明

Y

年

M

月

dまたはD

日

hまたはH

時

m

分

sまたはS

秒

x

マイクロ秒

表26-7に、時間隔リテラルの例を示します。

表26-7 時間隔リテラルの例

例

説明

'1Y1M3h2m1.500s'

1年、1か月、3時間、2分、1.500ミリ秒

'1.5h'

1.5時間

'3M15d'

3か月と15日

26.12.4 配列リテラルの使用

リテラルを使用して値を時間隔型のデータ・オブジェクトに割り当てることができます。時間隔リテラルを使用すると、時間隔型のパラメータをメソッドに提供することもできます。

配列リテラルを定義するには、値をカンマで区切り、大カッコで囲んで、値リストを提供する必要があります。データ・オブジェクトからリテラルまたは属性を使用して値を指定することもできます。

次のリストは、配列リテラルの例を示します。

- [ "One", "Two", "Three" ]

- [ 1, 2, 3 ]

- [ customer.firstName, customr.lastName ]

26.13 XPath BPM拡張関数

BPM拡張関数では、XPathを使用して次の要素にアクセスできます。

- プロセスおよびプロジェクト・データ・オブジェクト

- 引数

- アクティビティ・インスタンス属性

XPathでは、これは、BPMNプロセス内に記述された要素の値にアクセスする唯一の方法です。

26.13.1 getActivityInstanceAttribute

特定のアクティビティ・インスタンス属性の値を戻します。サポートされているアクティビティ・インスタンス属性の詳細は、アクティビティ・インスタンス属性の概要に関する項を参照してください。

シグネチャ:

bpmn:getActivityInstanceAttribute(activityName, attributeName)

引数:

activity name - アクティビティ・インスタンス属性を含むアクティビティの名前。

attributeName - 値を検索するアクティビティ・インスタンス属性の名前。

例:

bpmn:getActivityInstanceAttribute(userTask, priority)

bpmn:getActivityInstanceAttribute(userTask, title)

26.13.2 getDataInput

データ・アソシエーション内の特定の入力引数の値を戻します。

シグネチャ:

bpmn:getDataInput(dataInputName)

引数:

dataInputName - データ入力引数の名前を含む文字列。

例:

26.13.3 getDataObject

特定のデータ・オブジェクトの値を戻します。

シグネチャ:

bpmn:getDataObject(dataObjectName)

引数:

dataObjectName - 値を取得するデータ・オブジェクトの名前を含む文字列。

例:

bpmn:getDataObject(discount)

bpmn:getDataObject(approveTermsOutcome)

26.13.4 getDataOutput

データ・アソシエーション内の特定のデータ出力引数の値を戻します。

シグネチャ:

pmn:getDataOutput(dataOutputName)

引数:

dataOutputName - データ出力引数の名前を含む文字列。

例:

26.13.5 getGatewayInstanceAttribute

ゲートウェイでの特定のアクティビティ・インスタンス属性の値を戻します。ゲートウェイでサポートされているアクティビティ・インスタンス属性の詳細は、アクティビティ・インスタンス属性の概要に関する項を参照してください。

シグネチャ:

bpmn:getGatewayInstanceAttribute(gatewayName, attributeName)

引数:

gatewayName - 値を取得する属性を含むゲートウェイの名前を含む文字列。

attributeName - 値を取得する属性の名前を含む文字列。

例:

26.13.6 getProcessInstanceAttribute

プロセス・アクティビティ・インスタンス属性に対応する値を戻します。サポートされているアクティビティ・インスタンス属性の詳細は、アクティビティ・インスタンス属性の概要に関する項を参照してください。

シグネチャ:

bpmn:getProcessInstanceAttribute(attributeName)

引数:

attributeName - 値を検索するプロセス・インスタンス属性の名前を含む文字列。

例:

bpmn:getProcessInstanceAttribute(owner)

第VII部

ユーザー相互作用コンポーネントの使用

この部では、BPMプロジェクトでユーザー相互作用コンポーネントを使用する方法の概要について説明します。

この部の内容は次のとおりです。

- 第27章「ヒューマン・ワークフローの開始」

- 第28章「Oracle BPMでのヒューマン・タスクの設計」

- 第29章「ヒューマン・タスクの構成」

- 第30章「ガイド付きビジネス・プロセスの使用」

- 第31章「ガイド付きビジネス・プロセスのクライアント・アプリケーションの構築」

- 第32章「承認管理の使用」

27 ヒューマン・ワークフローの開始

この章では、開発者を対象として、ヒューマン・ワークフローの概念、機能およびアーキテクチャについて説明します。ヒューマン・ワークフローには、ユースケースが用意されています。ワークフロー全体を始めて設計する際の手順についても説明します。

この章の内容は次のとおりです。

- 第27.1項「ヒューマン・ワークフローの概要」

- 第27.2項「ヒューマン・ワークフローの概念の概要」

- 第27.3項「ヒューマン・ワークフローの機能の概要」

- 第27.4項「ヒューマン・ワークフローのアーキテクチャの概要」

27.1 ヒューマン・ワークフローの概要

多くのエンドツーエンドのビジネス・プロセスでは、プロセスに人的な操作が必要です。たとえば、承認や例外管理、またはビジネス・プロセスの進行に必要なアクティビティの実行には、人的な操作が必要です。ヒューマン・ワークフロー・コンポーネントには、次の機能があります。

- プロセスの人的な操作。適切なユーザーまたはグループへのタスクの割当てやルーティングなどがあります。

- タスク(ヒューマン・アクティビティ)が適切なタイミングで実行されることを保証するために必要な期限、エスカレーション、通知およびその他の機能

- エンド・ユーザーへのタスクの提示。ワークリスト・アプリケーション(Oracle BPM Worklist)などの様々な方法を使用します。

- 編成、フィルタ処理、優先度設定および他の機能。エンド・ユーザーがタスクを効率的に実行するために必要です。

- スーパーバイザおよびビジネス所有者がタスクのパフォーマンスを管理するために必要なレポート、再割当て、ロード・バランシングおよびその他の機能

図27-1に、ヒューマン・ワークフローの概要を示します。

図27-1 ヒューマン・ワークフロー

「図27-1 ヒューマン・ワークフロー」の説明

図27-1では、次のアクションが発生しています。

- BPELプロセスは、タスクの実行に人的な操作が必要になると、ヒューマン・タスク・タイプの特別なアクティビティを起動します。

- このアクティビティによって、ヒューマン・タスク・サービス・コンポーネントにタスクが作成されます。このプロセスは、タスクが完了するまで待機します。プロセスでは、タスクからのその他のコールバックを監視し、そのコールバックに対応することも可能です。

- タスクにはメタデータが関連付けられています。このメタデータは、タスクのライフサイクルを管理するために、ヒューマン・タスク・サービス・コンポーネントで使用されます。このメタデータには、次の指定が含まれています。

- タスクを実行するユーザー。タスクの実行に複数のユーザーが必要な場合は、その順序。

- 他のステークホルダ。

- タスクの完了期限。

- ユーザーによるタスクの実行方法、ユーザーに提示する情報、ユーザーの入力内容と実行可能なアクション。

- ヒューマン・タスク・サービス・コンポーネントでは、LDAPなどのアイデンティティ・ディレクトリを使用して、ユーザーのロールと権限を判断します。

- ヒューマン・タスク・サービス・コンポーネントでは、次のような様々なチャネルを使用してユーザーにタスクを提示します。

- Oracle BPM Worklist。監督者やプロセス所有者の考え方をサポートするロール・ベースのアプリケーションで、タスクを検索、編成、管理および実行するための機能を提供します。

- ワークリスト機能。エンタープライズ・ポータルに公開可能なポートレットとして使用することもできます。

- 通知。電子メール、電話、SMSおよびその他のチャネルで送信できます。電子メール通知はアクション可能で、ユーザーは、Oracle BPM WorklistまたはOracle WebLogic Serverに接続しないで、電子メール・クライアント内からタスクに対してアクションを実行できます。

ポートレットの詳細は、該当する項を参照してください。

27.2 ヒューマン・ワークフローの概要

この項では、ヒューマン・ワークフローの主要な設計時および実行時の概念について説明します。ヒューマン・ワークフロー設計の主要な3つのステージの概要についても説明します。

27.2.1 設計時および実行時の概念の概要

ヒューマン・タスクを設計するには、その前に、設計時および実行時の概念を理解することが重要です。タスクは通常、件名、優先度、タスク参加者、タスク・パラメータまたはデータ、期限、通知またはリマインダ、およびタスク・フォームで構成されています。この項では、主要な概念に関する概要を説明します。

注意:

ヒューマン・ワークフローの設計時タスクは、ヒューマン・タスク・エディタと呼ばれるグラフィカル・エディタで実行されます。チュートリアルでは、このエディタの使用方法について説明しています。

27.2.1.1 タスクの割当ておよびルーティング

ヒューマン・ワークフローでは、タスクの宣言的な割当ておよびルーティングをサポートしています。最も簡単なケースでは、タスクは単一の参加者(ユーザーまたはグループ)に割り当てられます。ただし、多くの場合は、複雑なタスク割当てとルーティングが必要です(たとえば、図27-2に示すように、タスクに管理チェーンによる承認が必要な場合や、タスクを一連のユーザーがパラレルで作業したり、投票する必要がある場合です)。ヒューマン・ワークフローでは、このようなシナリオに対して宣言的なパターン・ベースのサポートを提供します。

図27-2 タスクの参加者

「図27-2 タスクの参加者」の説明

27.2.1.1.1 参加者

参加者は、割当ておよびルーティング・ポリシー定義内のユーザーまたは一連のユーザーです。図27-2では、ユーザーを表すアイコンの各ブロックが参加者です。

27.2.1.1.2 参加者タイプ

簡単なケースでは、参加者はユーザー、グループまたはロールにマップされます。ただし、第27.2.1.1項「タスクの割当ておよびルーティング」で説明したように、ワークフローでは、管理チェーンやグループ投票などの一般的なルーティング・シナリオに対して宣言的なパターンをサポートしています。使用可能な参加者タイプは、次のとおりです。

- 単一の承認者
これは簡単なケースで、参加者はユーザー、グループまたはロールにマップされます。

たとえば、休暇申請がマネージャに割り当てられているとします。マネージャは、休暇が始まる3日前までに申請タスクを操作する必要があります。マネージャが申請を正式に承認または却下すると、その決定が従業員に通知されます。マネージャがタスクを操作しない場合、申請は却下として処理されます。正式な却下の場合と同様に通知アクションが実行されます。

- パラレル
この参加者タイプは、一連のユーザーがパラレルで作業する必要があることを示します。このパターンは通常、投票で使用されます。

たとえば、雇用に関して複数のユーザーが応募者の採否を票決する必要がある場合です。結果が有効になるために必要な得票率(多数決や満場一致など)を指定します。

- シリアル
この参加者タイプは、一連のユーザーが順番に作業する必要があることを示します。ルーティング・ポリシーには、複数の参加者を順番に使用した順番による作業を指定できますが、このパターンは一連のユーザーが動的である場合に有用です。このシリアル・タイプの一般的なシナリオは、管理チェーン・エスカレーションです。このエスカレーションは、このパターンの指定内にある管理チェーンに基づいてリストを指定することで実行されます。

- FYI (情報専用)
この参加者は、単一の承認者と同様に、単一のユーザー、グループまたはロールにマップされます。ただし、このパターンは、参加者が通知タスクを単に受信し、ビジネス・プロセスではこの参加者のレスポンスを待機しないことを示します。FYIの参加者は、タスクの結果に直接影響を与えることはできませんが、場合によっては、コメントを提供したり、添付ファイルを追加できます。

たとえば、採用候補者の採用について地域マネージャが承認し、その候補が承認または却下のために州全体の統括マネージャに渡されたことが、地域の営業所に通知される場合です。FYIはタスクの結果を直接左右できませんが、コメントを提供したり添付ファイルを追加できる場合があります。

詳細は、第29.4項「タスク参加者の割当て」を参照してください。

27.2.1.1.3 参加者の割当て

タスクは、ユーザーによる実行が必要な作業です。タスクを作成する場合は、そのタスクに参加して操作するユーザーを割り当てます。実行時に、参加者はOracle BPM Worklistからタスクに対してアクションを実行できます。これらのアクションには、休暇申請の承認、発注の却下、ヘルプ・デスク・リクエストへのフィードバックの提供などがあります。参加者には次の3つのタイプがあります。

- ユーザー
タスクの操作に個別のユーザーを割り当てることができます。たとえば、特定のタスクに対してユーザーjlondonやjsteinを割り当てることができます。ユーザーは、SOAインフラストラクチャで構成されたアイデンティティ・ストアに定義されます。これらのユーザーは、Oracle WebLogic Serverの組込みLDAP、Oracle Internet Directoryまたは第三者LDAPディレクトリに格納できます。

- グループ
タスクの操作にグループを割り当てることができます。グループには、タスクを要求して操作できる個別のユーザーが含まれています。たとえば、ユーザーjcooperとfkafkaは、タスクの操作を割り当てたグループLoanAgentGroupのメンバーである可能性があります。

ユーザーと同様に、グループはSOAインフラストラクチャのアイデンティティ・ストアに定義されます。

- アプリケーション・ロール
タスクの要求と操作に、アプリケーション・ロールのメンバーであるユーザーを割り当てることができます。

アプリケーション・ロールは、アプリケーション・レベルで認可するように論理的にグループ化されたユーザーまたは他のロールで構成されます。これらのロールは、アプリケーション固有のもので、アプリケーションJavaポリシー・ストア(アイデンティティ・ストアではなく)で定義されます。これらのロールは、アプリケーションが直接使用するもので、Java EEコンテナによって把握されているとはかぎりません。

アプリケーション・ロールはポリシーを定義します。アプリケーション・ロールにはJava権限を付与できます。したがって、アプリケーション・ロールは、直接的または他のロールを介して間接的に付与される一連の権限を定義します。ポリシーには、エンタープライズ・グループまたはユーザーに対するアプリケーション・ロールの付与を含めることができます。ファイル・ベースのポリシー・ストアのjazn-data.xmlファイルには、これらのロールが<policy-store>の下の<app-role>要素に定義され、デプロイメント時にファーム・レベルでsystem-jazn-data.xmlに書き込まれます。これらのロールは、デプロイメント後にOracle Enterprise Manager Fusion Middleware Controlを使用して定義することもできます。ロールが事前にデプロイされている場合は、設計時に、タスク所有者または承認者をアプリケーション・ロールに設定できます。

Oracle BPM Worklistの詳細は、第27.2.1.6項「タスク・フォーム」を参照してください。

27.2.1.1.4 非定型ルーティング

多様性に対応するプロセスでは、すべての参加者を常に決定できるわけではありません。ヒューマン・ワークフローを使用すると、参加者がタスク実行の一部として他の参加者を招待できるように指定できます。

詳細は、第29.5.1.1項「全参加者による他の参加者の招待の許可」を参照してください。

27.2.1.1.5 ルーティング・フローの結果ベースの完了

デフォルトでは、タスクは、ルーティング・ポリシーに定義したフローに従って(図27-2に示すように)、開始参加者から最終参加者へ移行します。ただし、タスクのルーティング・フロー内の特定ステップでの特定結果によっては、次の参加者へのタスクの提示を続行することが不要になったり、望ましくない場合があります。たとえば、最初のマネージャが承認を却下した場合は、2番目のマネージャにルーティングする必要はありません。ヒューマン・ワークフローでは、特定の結果が発生した場合にタスクまたはサブタスクを完了するように指定することをサポートしています。

詳細は、第29.5.1.2項「次の参加者へのタスクのルーティングの停止」を参照してください。

27.2.1.2 静的、動的およびルールベースのタスク割当て

タスクへのユーザー、グループおよびアプリケーション・ロールの割当てには様々な方法があります。

- 静的なタスク割当て
ユーザー、グループおよびアプリケーション・ロールを静的に(または、アイデンティティ・サービスを参照して)割り当てることができます。値は次のいずれかです。

- 単一のユーザー、グループまたはアプリケーション・ロール(jstein、CentralLoanRegionまたはApproverRoleなど)。

- ユーザー、グループまたはアプリケーション・ロールのデリミタ付き文字列(jstein, wfaulk, cdickensなど)。

- 動的なタスク割当て
ユーザー、グループおよびアプリケーション・ロールを動的に割り当てるには、次の方法があります。

- タスク割当てパターンを使用します。このパターンを使用すると、次の操作を実行できます。

- 簡単に参加者が手動でタスクを申請できるようにします。デフォルトの動作です。タスク割当てパターンは適用されません。

- 参加者タイプが「単一」または「FYI」のいずれかの場合は、タスク割当てパターンを割り当てて、リクエストされたタイプの単一の割当て先を参加者のすべての割当て先候補から選択できます。
たとえば、割当て先候補がユーザーjcooper、グループLoanAgentおよびアプリケーション・ロールDevelopersで構成されているとします。さらに、リクエストされたタイプがuserであるとします。このタスク割当てパターンを適用すると、単一のユーザーが、ユーザーjcooper、グループLoanAgentのすべてのメンバー、およびアプリケーション・ロールDevelopersを付与されているすべてのユーザーから選択されます。

- 参加者タイプが「パラレル」または「シリアル」の場合は、タスク割当てパターンを割り当てて、リクエストされたタイプの単一の割当て先を参加者のそれぞれの割当て先候補から選択できます。
たとえば、割当て先候補がユーザーjcooper、グループLoanAgentおよびアプリケーション・ロールDevelopersで構成されているとします。さらに、リクエストされたタイプがuserであるとします。このタスク割当てパターンを適用すると、ユーザーjcooper、グループLoanAgent内の1人のユーザー、およびアプリケーション・ロールDevelopersを付与されている1人のユーザーが選択されます。

- XPath式を使用します。これらの式を使用すると、参加者タイプに含まれていないユーザーに対する割当てを動的に決定できます。この場合、割当て先候補のリストを作成して、そのうちの1人がタスクを申請する必要があります。

たとえば、ペイロード変数で指定されたタスク承認者の動的リストを作成するというビジネス要件を設定できます。このXPath式は、0(ゼロ)個以上のXMLノードに解決できます。各ノードの値は次のいずれかです。

- 単一のユーザー、グループまたはアプリケーション・ロール。

- ユーザー、グループまたはアプリケーション・グループのデリミタ付き文字列。割当て先のデリミタ付き文字列のデフォルト・デリミタはカンマ(,)です。

たとえば、タスクに、タスク承認者が格納されているpoという名前のペイロード・メッセージ属性がある場合は、次のXPath式を使用できます。

- /task:task/task:payload/po:purchaseOrder/po:approvers

- ids:getManager('jstein', 'jazn.com')
この式は、jsteinのマネージャを返します。

- ids:getReportees('jstein', 2, 'jazn.com')
この式は、jsteinの2レベルまでの報告先すべてを返します。

- ids:getUsersInGroup('LoanAgentGroup', false, 'jazn.com')
この式は、グループLoanAgentGroupのすべての直接ユーザーと間接ユーザーを返します。

両方のオプションを同時に使用できます(たとえば、XPath式を使用してグループを動的に選択してから、タスク割当てパターンを適用して、そのグループからユーザーを動的に選択できます)。

- ビジネス・ルールを使用したタスク割当て
複雑な式を使用してタスク参加者のリストを作成できます。ビジネス・ルールの使用結果は、XPath式の使用結果と同じです。

27.2.1.3 タスクのステークホルダ

タスクには複数のステークホルダが含まれます。参加者は、タスク定義の割当ておよびルーティングのセクションに定義されたユーザーです。これらのユーザーは、タスクに対してアクションを実行する主要なステークホルダです。

割当ておよびルーティング・ポリシーに指定されている参加者に加えて、ヒューマン・ワークフローでは次の追加のステークホルダがサポートされています。

- 所有者
この参加者には、タスクに対するビジネス管理権限があります。この参加者は、タスク定義の一部として指定したり、起動プロセスから(および特定のインスタンスに)指定することができます。タスク所有者は、所有するタスクを操作したり、他の参加者のかわりにタスクを操作することもできます。タスク所有者は、タスクの結果と割当ての両方を変更できます。

ヒューマン・タスク・エディタで所有者を指定するか、または「ヒューマン・タスク」ダイアログの「詳細」タブで所有者を指定するには、第29.2.7項「タスク所有者の指定方法」を参照してください。

- イニシエータ
プロセスを開始するユーザーです(たとえば、起案者は承認用の経費レポートを提出します)。このユーザーは、開始したタスクのフィルタを使用してタスクのステータスを確認できます。また、他の参加者による情報のリクエストに関する潜在的候補者として起案者を含めることは、有用な考え方です。

詳細は次の項を参照してください。

- レビューア
この参加者は、タスクのステータスを確認して、コメントおよび添付ファイルを追加できます。

- 管理者
この参加者は、すべてのタスクを表示して、テストの再割当てやエラーを処理するためのタスクの一時停止などの特定のアクションを実行できます。タスク管理者は、タスクの結果を変更できます。

タスク管理者は、タスク参加者が実行できる承認、却下などのアクション・タイプは実行できませんが、この参加者タイプは再割当て、取消しなどのアクションを実行できるため最も強力なタイプです。

- エラー割当て先
エラーが発生すると、タスクはこの参加者に割り当てられます(存在しないユーザーにタスクが割り当てられた場合など)。エラーの割当て先は、Oracle BPM Worklistからタスク・リカバリ・アクションを実行できます。Oracle BPM Worklistは、実行時にタスク・アクションを実行するタスク・フォームです。

詳細は、第29.5.4項「エラー割当て先の構成方法」を参照してください。

27.2.1.4 タスク期限

ヒューマン・ワークフローでは、タスクに関連する期限の指定がサポートされています。期限には、次のアクションを関連付けることができます。

- リマインダ:
割当て後の時刻または有効期限前の時刻に基づいて、タスクのリマインダを複数回送信できます。

- エスカレーション:
タスクは、管理階層にエスカレートされます。

- 期限切れ:
タスクは期限切れです。

- 更新:
タスクは、自動的に更新されます。

詳細は、第29.7項「タスクのエスカレート、期限更新または終了」を参照してください。

27.2.1.5 通知

ヒューマン・タスクは、通知を使用するように構成できます。通知を使用すると、関連するユーザーに、タスクのライフ・サイクル期間にタスクの状態が変化したことを警告できます。たとえば、タスクの承認や取消しの際は、通知が割当て先に送信されます。

異なるアクションについて様々なタイプの参加者に通知を送信するように指定できます。たとえば、次のように指定できます。

- タスクの所有者は、タスクがエラー状態の場合(存在しないユーザーに送信された場合など)通知メッセージを受信します。

- タスク割当て先は、タスクがエスカレートされた場合通知メッセージを受信します。

通知メッセージのコンテンツと、メッセージの送信に使用する通知チャネルを指定できます。

- 電子メール
アクション可能な電子メール通知メッセージを構成できます。つまり、タスク割当て先は、その電子メール内からタスクを操作できます。

- ボイス・メッセージ

- インスタント・メッセージ(IM)

- ショート・メッセージ・サービス(SMS)

たとえば、タスク割当て先がタスクを操作する前に追加の情報をリクエストした場合は、例27-1に示すようなメッセージを電子メールで送信できます。

例27-1 電子メール・メッセージ

For me to approve this task, more information is required to justify the need
for this business trip

実行時には、メッセージ送信者のアドレスをスパムとしてマークし、不正または無効なアドレス・リストを表示することもできます。これらのアドレスは、不正アドレス・リストから自動的に削除されます。

通知の詳細は、次を参照してください。

- 第29.8項「参加者通知プリファレンスの指定」

27.2.1.6 タスク・フォーム

タスク・フォームは、タスクと相互作用する方法を提供します。Oracle BPM Worklistのタスク・フォームには、タスク割当て先に割り当てられたすべてのワークリスト・タスクが表示されます。特定のタスクにドリルダウンすると、タスク・フォームには、ユーザーのワークリストに対するタスクのコンテンツが表示されます。たとえば、経費承認タスクでは様々な経費の明細項目が記載されたフォームが表示され、ヘルプ・デスク・タスク・フォームでは重大度や問題の場所などの詳細が表示されます。

このため、Oracle SOA Suiteの統合開発環境には、Oracle Application Development Framework (Oracle ADF)が含まれています。Oracle ADFを使用すると、SOAコンポジット・アプリケーションのヒューマン・タスクを表すタスク・フォームを設計できます。

ADFベースのタスク・フォームは自動的に生成できます。上級ユーザーは、ADFデータ・コントロールを使用して独自のタスク・フォームを設計して、ページ上にコンテンツをレイアウトし、実行時にはワークフロー・サービス・エンジンに接続して、タスク・コンテンツを取得し、タスクを操作できます。

タスク・フォームは、JSF、.NET、またはAPIを使用する他のクライアント・テクノロジで作成できます。

タスクを開始し、操作するためにMicrosoft Excelとの統合も提供されています。

詳細は、次のOracleドキュメントを参照してください。

27.2.1.7 拡張概念

この項では、ヒューマン・ワークフローの拡張概念について説明します。

27.2.1.7.1 ルールベースのルーティング

Oracle Business Rulesを使用すると、ルーティング・フローを動的に変更できます。使用すると、参加者がそれぞれの手順を完了するたびに、関連付けられているルールが起動し、そのルールからルーティング・フローを上書きできます。

詳細は、第29.5.2項「ビジネス・ルールを使用した詳細タスク・ルーティングの指定方法」を参照してください。

27.2.1.7.2 ルールベースの参加者割当て

Oracle Business Rulesを使用すると、参加者に関連付けるユーザー、グループおよびロールのリストを動的に作成できます。

詳細は、第29.4項「タスク参加者の割当て」を参照してください。

27.2.1.7.3 ステージ

ステージは、参加者タイプの各ブロックに対して承認プロセスを編成するための1方法です。1つ以上のステージを順番に、またはパラレルで指定できます。各ステージ内で、1つ以上の参加者タイプ・ブロックを順番に、またはパラレルで指定できます。

詳細は、第29.4項「タスク参加者の割当て」を参照してください。

27.2.1.7.4 アクセス・ルール

割当て先が表示および更新できるタスクの部分を決定するアクセス・ルールを指定できます。たとえば、割当て先が読み取るタスク・ペイロード・データを構成できます。このアクションを使用できるのは、読取り権限のある割当て先のみです。割当て先も含めて、誰にも書込み権限はありません。

詳細は、第29.9.1項「タスク・コンテンツへのアクセス・ポリシーの指定方法」を参照してください。

27.2.1.7.5 コールバック

ヒューマン・ワークフローでは、宣言的に指定可能な詳細な動作がサポートされていますが、一部の高度な状況では、さらに拡張可能な動作が必要になる場合があります。このような拡張性はタスク・コールバックによって可能となり、これらのコールバックは、BPELプロセスまたはJavaクラスの起動時に処理できます。

詳細は、第29.11.1項「タスク・ステータスのコールバック・クラスの指定方法」を参照してください。

27.2.1.8 レポートおよび監査証跡

Oracle BPM Worklistには、タスク分析用の組込みレポートが複数用意されています。

- 不参加タスク
ユーザーのグループまたは報告先のグループに割り当てられたタスクの中で、まだ獲得されていないタスクが分析されます。

- タスクの優先度
ユーザー、報告先またはそのグループに割り当てられたタスクが優先度に基づいて分析されます。

- タスクのサイクル・タイム
ユーザーのグループまたは報告先のグループに基づいて、タスクの割当てから完了までの所要時間が分析されます。

- タスクの生産性
ユーザー、報告先またはグループについて、特定期間中に割り当てられたタスク数と完了したタスク数が分析されます。

- タスク時間分布
割当て先がタスクを実行するために要した時間が表示されます。

タスクの参加者が実行したアクションの監査証跡、およびワークフローの様々な時点におけるタスク・ペイロードと添付ファイルのスナップショットを表示できます。タスクの短い履歴には、次のタスクによって作成されたすべてのバージョンが表示されます。

- タスクの開始

- タスクの再開始

- タスクの結果の更新

- タスクの完了

- タスクのエラー処理

- タスクの期限切れ

- タスクの取消し

- エラー割当て先に対するタスクのアラート

詳細は次の項を参照してください。

27.2.2 ヒューマン・ワークフローの設計ステージの概要

ヒューマン・ワークフロー・モデリングは、表27-1に示すように、3つのステージのモデリングで構成されています。

表27-1 ヒューマン・ワークフロー・モデリングのステージ

ステップ

説明

参照先

1

ヒューマン・タスクのコンテンツは、ヒューマン・タスク・エディタで作成および定義します。これには、参加者タイプ、ルーティング・ポリシー、エスカレーションと有効期限のポリシー、通知などの定義が含まれます。

2

ヒューマン・タスク定義をBPELプロセスに関連付けます。BPELプロセスは、一連のアクティビティ(ヒューマン・タスク・アクティビティを含む)とサービスをエンドツーエンドのプロセス・フローに統合します。

3

タスク・フォームを作成します。このフォームでは、実行時にOracle BPM Worklistで操作するタスクの詳細が表示されます。

27.3 ヒューマン・ワークフロー機能の概要

この項では、ヒューマン・ワークフローのユースケースの概要を説明します。この項の後で、ヒューマン・タスク全体の設計をチュートリアルで説明します。

27.3.1 ヒューマン・ワークフローのユースケース

次の各項では、ワークフロー・サービスの複数のユースケースについて説明します。

27.3.1.1 ユーザーまたはロールへのタスクの割当て

休暇申請プロセスは、ユーザーから休暇の詳細を取得し、承認担当のマネージャにその申請をルーティングすることから開始されます。ユーザーの詳細と組織階層は、ユーザー・ディレクトリまたはアイデンティティ・ストアからルックアップできます。図27-3に、このシナリオを示します。

図27-3 ディレクトリ内のユーザーまたはロールに対するタスクの割当て

「図27-3 ディレクトリ内のユーザーまたはロールに対するタスクの割当て」の説明

27.3.1.2 様々な参加者タイプの使用

タスクは、「グループ投票」、「管理チェーン」または「承認者の順序リスト」参加者タイプの複数のユーザーを介してルーティングできます。たとえば、融資承認フローの一部として融資申請が考えられます。融資申請は、初めに融資エージェント・ロールに割り当てることができます。融資金額が$100,000を超えている場合は、特定の融資エージェントが融資を取得して承認した後で、さらに複数の管理レベルにその融資をルーティングさせることが可能です。図27-4に、このシナリオを示します。

図27-4 フロー・パターンとルーティング・ポリシー

「図27-4 フロー・パターンとルーティング・ポリシー」の説明

これらのタイプをビルディング・ブロックとして使用することで、複雑なワークフローを作成できます。

27.3.1.3 エスカレーション、有効期限および委任

カスタム・エスカレーション機能を使用すると、タスク・タイプに基づいて、優先度の高いタスクを特定のユーザーまたはロールに割り当てることができます。ただし、ユーザーが一定期間内にタスクを操作しない場合は、そのタスクを期限切れとし、追加アクションのためにマネージャにエスカレートできます。エスカレーションの一環として、電子メール、電話ボイス・メッセージまたはSMSでユーザーに通知することも可能です。同様に、マネージャは、様々なタスク割当て間で負荷を分散するために、ある報告先から別の報告先にタスクを委任できます。BPELで定義されるすべてのタスクには、関連する有効期限があります。また、図27-5に示すように、エスカレーション・ポリシーまたは期限更新ポリシーを指定する場合もあります。たとえば、ヘルプ・デスク・サービス・リクエストのプロセスの一部としてサポート・コールが考えられます。優先度の高いタスクを特定のユーザーに割り当て、そのユーザーが2日以内に対応しない場合、そのタスクは、追加アクションのためにマネージャにルーティングされます。

図27-5 エスカレーションと通知

「図27-5 エスカレーションと通知」の説明

27.3.1.4 自動割当ておよび委任

ユーザーは、自分のかわりに他のユーザーにタスクを実行させるように決定できます。タスクは、Oracle BPM Worklistから明示的または自動的に委任することができます。たとえば、マネージャは、自分が担当する高優先度のタスクを、休暇中はすべて自動的に直属の部下の1人にルーティングするという休暇ルールを設定します。タスクをその内容に基づいて別のユーザーにルーティングできる場合もあります。自動ルーティングのもう1つの例は、グループに属する複数のユーザー間でタスクを割り当てることです。たとえば、ヘルプ・デスクの監督者は、西部地域のすべてのタスクをラウンド・ロビン方式で割り当てたり、未処理タスクの最も少ないユーザー(最もビジーでない箇所)にタスクを割り当てるように決定します。

27.3.1.5 タスク・コンテンツに基づいたユーザーの動的割当て

人事部のJamesという従業員が$5000の新しいハードウェアの購入を申請します。この会社には、$3000を超えるすべてのハードウェアの購入はマネージャおよび副社長の承認が必要で、ITの取締役が確認するというポリシーがあります。このシナリオでは、ワークフローを、Jamesのマネージャ、人事部の副社長およびITの取締役を自動的に判断するように構成できます。ハードウェアの購入前に、発注書がこれら3人の承認者にルーティングされます。

27.4 ヒューマン・ワークフロー・アーキテクチャの概要

この項では、ヒューマン・ワークフロー・アーキテクチャの概要を説明します。次の内容について説明します。

- タスクのライフ・サイクル中に様々な操作を実行するサービス。これには、ユーザーのタスクの問合せ、タスクに関連したメタデータ情報の取得などがあります。

- ヒューマン・タスクは、次の2つの方法で使用します。

- BPELプロセス・サービス・コンポーネントへの関連付け

- スタンドアロン・モードでの使用

- ヒューマン・タスクの期間におけるサービス・エンジンの役割。

27.4.1 ヒューマン・ワークフロー・サービス

リリース11g 以降、すべてのヒューマン・タスク・メタデータはメタデータ・サービス(MDS)リポジトリに保存されて管理されます。ワークフロー・サービスは、ビジネス・プロセスと人間の相互作用の様々な側面を処理する多数のサービスで構成されています。

図27-6は、次のワークフロー・サービス・コンポーネントを示しています。

- タスク・サービス
タスク・サービスにより、タスク状態の管理およびタスクの永続性が提供されます。これらのサービスに加え、タスク・サービスでは、タスクの更新、完了、エスカレート、再割当てなどの操作が公開されます。タスク・サービスは、ユーザーに割り当てられているタスクを取得するためにOracle BPM Worklistで使用されます。また、このサービスでは、タスク状態が変化したときにユーザーやグループに通知を送信するかどうかも決定されます。タスク・サービスは、次のサービスで構成されます。

- タスク・ルーティング・サービス
タスク・ルーティング・サービスは、タスクのルーティング、エスカレートおよび再割当てを実行するサービスを提供します。サービスでは、宣言的な指定をルーティング・スリップ形式で解析することで、これらの決定が行われます。

- タスク問合せサービス
タスク問合せサービスでは、様々な検索基準(キーワード、カテゴリ、ステータス、ビジネス・プロセス、属性値、タスクの履歴情報など)に基づいて、ユーザーのタスクを問い合せます。

- タスク・メタデータ・サービス
タスク・メタデータ・サービスにより、タスク関連のメタデータ情報を取得するための操作が公開されます。

- アイデンティティ・サービス
アイデンティティ・サービスは、Oracle Application Server 11g のセキュリティ・インフラストラクチャまたはカスタム・ユーザー・リポジトリの上部に位置するWebサービスのシン・レイヤーです。これにより、ユーザーの認証および認可と、ユーザー・プロパティ、ロール、グループ・メンバーシップ、権限のルックアップが可能になります。

- 通知サービス
通知サービスは、電子メール、電話ボイス・メッセージ、IMおよびSMSのいずれかのチャネルを通じて、指定のユーザーに対して特定のコンテンツを含む通知を配信します。詳細情報を参照してください。

- ユーザー・メタデータ・サービス
ユーザー・メタデータ・サービスにより、ワークフロー・ユーザー関連のメタデータ(ユーザー作業キュー、プリファレンス、休暇、委任ルールなど)が管理されます。

- ランタイム構成サービス
ランタイム構成サービスは、タスク・サービスのランタイム環境で使用されるメタデータの管理メソッドを提供します。主に、タスク・ペイロード・マップ済属性マッピングの管理をサポートします。

- エビデンス・サービス
エビデンス・サービスはデジタル署名されたワークフロー・タスクの保存と否認防止をサポートします。

図27-6 ワークフロー・サービス・コンポーネント

「図27-6 ワークフロー・サービス・コンポーネント」の説明

図27-7は、サービスとビジネス・プロセス間の相互作用を示しています。

図27-7 ワークフロー・サービスとビジネス・プロセス間の相互作用

「図27-7 ワークフロー・サービスとビジネス・プロセス間の相互作用」の説明

27.4.2 ヒューマン・タスクの使用

ヒューマン・タスクの使用方法には、次の2つがあります。

- BPELプロセスへのヒューマン・タスクの関連付け
多くの場合、ヒューマン・タスクをBPELプロセスに関連付けます。BPELプロセスは、一連のアクティビティ(ヒューマン・タスク・アクティビティを含む)とサービスをエンドツーエンドのプロセス・フローに統合します。

- スタンドアロンのヒューマン・タスク
SOAコンポジット・エディタでは、BPELプロセスに関連付けないスタンドアロン・コンポーネントとしてのヒューマン・タスクを作成することもできます。スタンドアロン・ヒューマン・タスク・サービス・コンポーネントは、アプリケーションで自動化されたアクティビティが必要のない環境で役に立ちます。スタンドアロンの場合、クライアントは独自にタスクを作成できます。

27.4.3 サービス・エンジン

実行時、ヒューマン・タスク・サービス・コンポーネントのビジネス・ロジックおよび処理ルールは、ヒューマン・ワークフロー・サービス・エンジンによって実行されます。各サービス・コンポーネント(BPELプロセス、ヒューマン・ワークフロー、デシジョン・サービス(ビジネス・ルール)およびOracle Mediator)には、タスクを実行するための独自のサービス・エンジン・コンテナがあります。すべてのヒューマン・タスク・サービス・コンポーネントは、属しているSOAコンポジット・アプリケーションに関係なく、単一のヒューマン・タスク・サービス・エンジンで実行されます。

ヒューマン・ワークフロー・サービス・エンジンの構成、監視および管理の詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

28 Oracle BPMでのヒューマン・タスクの設計

この章では、Oracle BPMで使用可能な様々なエディタを使用したヒューマン・タスクの設計方法について説明します。また、ヒューマン・タスクをBPMプロジェクト内のユーザー・タスクと関連付ける方法についても説明します。

この章の内容は次のとおりです。

- 28.1項「Oracle BPMでのヒューマン・タスクの設計の概要」

- 28.3項「Oracle BPM Studioからのヒューマン・タスクの編集」

- 28.3項「Oracle BPM Studioからのヒューマン・タスクの編集」

- 28.4項「SOAコンポジット・エディタによるヒューマン・タスクの作成」

- 28.5項「既存のヒューマン・タスクを使用したユーザー・タスクの実装」

- 28.6項「ヒューマン・タスク・エディタを使用したヒューマン・タスクの編集」

- 28.7項「ヒューマン・タスク・エディタを使用したヒューマン・タスクの構成」

Oracle BPMでビジネス・カタログのヒューマン・タスクがどのように表示されるのかについては、第14章「ヒューマン・タスクの使用」を参照してください。

Oracle SOA Suiteを使用したヒューマン・タスクの定義方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

- ヒューマン・タスクの設計

- ヒューマン・タスクのタスク・フォームの設計

28.1 Oracle BPMでのヒューマン・タスクの設計の概要

ヒューマン・タスクを使用すると、BPMプロセスのエンド・ユーザーとの相互作用をモデリングできます。プロセスにユーザー・タスクを実装するには、ヒューマン・タスクを使用する必要があります。

Oracle BPM Suiteには、モデリングしているヒューマン・タスクの要件に応じて使用できる様々なエディタが用意されています。

いくつかのヒューマン・タスク機能は、Oracle BPM Suiteから使用するときにのみ使用可能です。詳細については、28.7項「ヒューマン・タスク・エディタを使用したヒューマン・タスクの構成」を参照してください。

28.1.1 一般的な設計ワークフロー

Oracle BPMでヒューマン・タスクを使用する方法は、次のとおりです。

- ヒューマン・タスク・エディタを使用したヒューマン・タスクの作成

- Oracle BPM付属の簡易インタフェースを使用したヒューマン・タスクの作成

- 既存のヒューマン・タスクの使用

作業方法は、作業の計画内容、チーム内の開発者間の作業の分担方法、および開発するヒューマン・タスクの複雑さを考慮して決定します。

ユーザー・タスクのプロパティ・ダイアログを使用したヒューマン・タスクの作成

- BPMNプロセスの作成

- ユーザー・タスクの追加

- ユーザー・タスクの実装プロパティ・ダイアログからのヒューマン・タスクの作成
詳細は、28.2項「Oracle BPM Studioによるヒューマン・タスクの作成」を参照してください。

- SOA Suiteを使用した対応するタスクフローの作成

ヒューマン・タスク・エディタを使用したヒューマン・タスクの作成:

- SOAコンポジット・エディタによるヒューマン・タスクの作成
詳細は、28.4項「SOAコンポジット・エディタによるヒューマン・タスクの作成」を参照してください。

- SOA Suiteを使用した対応するタスクフローの作成
詳細を参照してください。

- ユーザー・タスクを使用するBPMNプロセスの作成

- 定義済ヒューマン・タスクを使用したBPMNプロセスのユーザー・タスクの実装
詳細は、28.5項「既存のヒューマン・タスクを使用したユーザー・タスクの実装」を参照してください。

既存のヒューマン・タスクの使用:

- BPMNプロセスの作成

- ユーザー・タスクの追加。

- ユーザー・タスクの実装プロパティ・ダイアログでの既存のヒューマン・タスクの選択
詳細は、第28章「既存のヒューマン・タスクを使用してユーザー・タスクを実装する方法」を参照してください。

28.2 Oracle BPM Studioによるヒューマン・タスクの作成

Oracle BPM Studioを使用して単純なヒューマン・タスクを作成できます。Oracle BPM Studio付属の簡易インタフェースには、ビジネス・プロセスで使用されるヒューマン・タスクを構成する最も重要なフィールドのみが表示され、ヒューマン・タスク・エディタの複雑さを軽減しています。「ヒューマン・タスクの作成」ダイアログを使用してヒューマン・タスクを作成した後、必要であれば、ヒューマン・タスク・エディタを使用してヒューマン・タスクを編集できます。

図28-1に、「ヒューマン・タスクの作成」ダイアログを示します。

図28-1 「ヒューマン・タスクの作成」ダイアログ

「図28-1 「ヒューマン・タスクの作成」ダイアログ」の説明

「ヒューマン・タスクの作成」ダイアログで定義できるプロパティは次のとおりです。

- タイトル
Oracleプロセス・ワークスペースおよびOracle BPM Worklistアプリケーションでエンド・ユーザーに表示されるヒューマン・タスクの名前を定義します。

- 優先度
ヒューマン・タスクの優先度を指定します。有効値は1(優先度最高)から5(優先度最低)です。デフォルト値は3です。

- 結果
ヒューマン・タスクについて可能性がある結果引数を指定します。実行時に実行できるタスクとして選択した結果は、Oracle BPM Worklistに表示されます。

- パラメータ
ヒューマン・タスク・ペイロードを定義します。ヒューマン・タスクのデータ・アソシエーションはヒューマン・タスクのパラメータに基づきます。データ・アソシエーションは、データ・オブジェクトを入力引数としてマッピングします。

- 結果ターゲット
ヒューマン・タスクの結果引数を格納する文字列データ・オブジェクトを指定します。データ・オブジェクトは1つだけ選択できます。この結果の値は、「結果」プロパティで定義された値のいずれかです。

28.2.1 Oracle BPM Studioによるヒューマン・タスクの作成手順

Oracle BPM Studioのユーザー・タスク・プロパティ・ダイアログでヒューマン・タスクを作成できます。

Oracle BPM Studioでヒューマン・タスクを作成するには:

1. BPMNプロセスを編集します。

2. ユーザー・タスクを右クリックします。

3. 「プロパティ」を選択します。
「プロパティ - ユーザー・タスク」ダイアログが表示されます。

図28-2に、「プロパティ - ユーザー・タスク」ダイアログを示します。

4. 「実装」タブをクリックします。

5. 「ヒューマン・タスク」フィールドの隣の「追加」ボタンをクリックします。
「ヒューマン・タスクの作成」ダイアログが表示されます。

図28-1に、「ヒューマン・タスクの作成」ダイアログを示します。

6. 「名前」フィールドで、ヒューマン・タスクを識別するための名前を入力します。

7. 「優先度」リストから優先度を選択します。

8. 実装に適したヒューマン・タスク・パターンを選択します。
ヒューマン・タスク・パターンの詳細は、第32章「承認管理の使用」を参照してください。

9. 「タイトル」フィールドに、クライアント・アプリケーション(プロセス・ワークスペースなど)に表示されるタスクのタイトルを入力します。

10. オプションで、次の設定を構成できます。

- 結果
ヒューマン・タスクの結果の構成方法については、28.2.2項「ヒューマン・タスクの結果の構成方法」を参照してください。

- パラメータ
ヒューマン・タスクの結果の構成方法については、28.2.3項「ヒューマン・タスクへのパラメータの追加方法」を参照してください。

- 結果のターゲット
ヒューマン・タスクの結果の構成方法については、28.2.4項「ヒューマン・タスクの結果ターゲットの構成方法」を参照してください。

11. 「OK」をクリックします。
「ヒューマン・タスクの作成」ダイアログが閉じ、ユーザー・タスク・プロパティ・ダイアログの「ヒューマン・タスク」フィールドに作成したヒューマン・タスクが表示されます。

12. 「OK」をクリックします。
ユーザー・タスク・プロパティが閉じ、ユーザー・タスクについて構成した実装が保存されます。

28.2.2 ヒューマン・タスクの結果の構成方法

Oracle BPM Studioでヒューマン・タスクを作成すると、ヒューマン・タスクの結果を構成できます。構成した結果値は、Oracle BPM Worklistでヒューマン・タスクの選択可能なアクションとして表示されます。

ヒューマン・タスクの結果を構成するには:

1. 「ヒューマン・タスクの作成」ダイアログで、「結果」フィールドの隣の「参照」ボタンをクリックします。
「結果」ダイアログが表示されます。

2. 1つ以上の結果を選択するか、新しいカスタム結果を追加するために「追加」ボタンをクリックします。

3. オプションで、「コメントが必要な結果」をクリックし、コメントが必要な結果を選択します。

4. 「OK」をクリックします。
「結果」ダイアログが閉じ、「ヒューマン・タスクの作成」ダイアログの「結果」フィールドに選択した結果が表示されます。

28.2.3 ヒューマン・タスクへのパラメータの追加方法

ヒューマン・タスク・ペイロードを作成するために、ヒューマン・タスクに複数のパラメータを追加できます。Oracle BPM Studioでは、これらのパラメータを使用して、ヒューマン・タスクを使用するユーザー・タスクのデータ・アソシエーションを作成します。

ヒューマン・タスクにパラメータを追加するには:

1. 「ヒューマン・タスクの作成」ダイアログで、「パラメータ」表の「追加」ボタンをクリックします。
「データ・オブジェクト」ダイアログが表示されます。

2. 「データ・オブジェクト」ダイアログからデータ・オブジェクトを選択し、「パラメータ」表にドロップします。
選択したデータ・オブジェクトが「パラメータ」表に表示されます。

3. 「データ・オブジェクト」ダイアログを閉じます。

4. オプションで、「パラメータ」表の「編集可能」列を選択し、パラメータを編集可能としてマークできます。

28.2.4 ヒューマン・タスクの結果ターゲットの構成方法

ヒューマン・タスクを作成する際、結果ターゲットを定義する必要があります。結果ターゲットは、ヒューマン・タスクの結果をBPMプロジェクトの文字列データ・オブジェクトにマッピングします。排他ゲートウェイを使用すると、結果ターゲット値に基づいてプロセスのフローを構成できます。

ヒューマン・タスクの結果ターゲットを構成するには

1. 「ヒューマン・タスクの作成」ダイアログで、「結果ターゲット」フィールドの隣の「追加」ボタンをクリックします。
「データ・オブジェクト」ダイアログが表示されます。

2. 「データ・オブジェクト」ダイアログから文字列データ・オブジェクトを選択し、「結果ターゲット」フィールドにドロップします。
新しいデータ・オブジェクトを追加するには、「データ・オブジェクト」ノードを右クリックし、「追加」を選択します。

選択したデータ・オブジェクトが「結果ターゲット」フィールドに表示されます。

3. 「データ・オブジェクト」ダイアログを閉じます。

28.2.5 Oracle BPM Studioによるヒューマン・タスクの作成時に行われる処理

ヒューマン・タスクは、ビジネス・カタログのHumanTasks事前定義済モジュールに自動的に表示されます。このヒューマン・タスクを使用して、編集中のユーザー・タスク、またはBPMプロジェクトの他のユーザー・タスクを実装できます。

ヒューマン・タスク・エディタを使用して、作成したヒューマン・タスクを編集し、実装の詳細を構成できます。

28.3 Oracle BPM Studioからのヒューマン・タスクの編集

ユーザー・タスクのプロパティ・ダイアログまたはヒューマン・タスク・エディタを使用して、ヒューマン・タスクを編集できます。通常は、複雑なヒューマン・タスクにヒューマン・タスク・エディタを使用します。

図28-2に、ユーザー・タスクのプロパティ・ダイアログを示します。

図28-2 ユーザー・タスクのプロパティ・ダイアログ

「図28-2 ユーザー・タスクのプロパティ・ダイアログ」の説明

ユーザー・タスクのプロパティ・ダイアログを使用すると、プレーン・テキスト、シンプルな式およびXPATH式を使用して次のプロパティを定義できます。

- タイトル
Oracleプロセス・ワークスペースおよびOracle BPM Worklistアプリケーションでエンド・ユーザーに表示されるヒューマン・タスクの名前を定義します。

- 優先度
ヒューマン・タスクの優先度を指定します。有効値は1(優先度最高)から5(優先度最低)です。デフォルト値は3です。

- 再開
承認プロセスを最初から再開します。

- イニシエータ
タスクを開始するユーザーを指定します。イニシエータは、Oracle BPM Worklistから作成済のタスクを表示し、タスクの取消しまたは一時停止などの特定のタスクを実行できます。

- 所有者
タスク所有者のユーザーIDを指定します。

- 識別キー
タスクのユーザー定義IDを定義します。たとえば、注文書の承認に関するタスクの場合、タスクの識別キーとして注文書IDを設定できます。タスクは、識別キーを使用してOracle BPM Worklistから検索できます。この属性にデフォルト値はありません。

- アイデンティティ・コンテキスト
複数のレルムを使用している場合、このフィールドは必須です。複数のレルムの割当先が同じタスクを実行することはできません。

- アプリケーション・コンテキスト
タスクで使用されるアプリケーション・ロールが含まれるアプリケーション名を指定します。これによって、アプリケーション・ロールが操作するコンテキストが指定されます。

28.3.1 ユーザー・タスクのプロパティ・ダイアログを使用したヒューマン・タスクの編集方法

ユーザー・タスクのプロパティ・ダイアログを使用してヒューマン・タスクを編集するには:

1. ヒューマン・タスクで実装されたユーザー・タスクを含むBPMNプロセスを開きます。

2. ユーザー・タスクを右クリックします。

3. 「プロパティ」を選択します。
ユーザー・タスクのプロパティ・ダイアログ・ボックスが表示されます。

4. 「実装」タブをクリックします。

5. 「ヒューマン・タスク属性」および「拡張」セクションでプロパティを変更します。

28.4 SOAコンポジット・エディタによるヒューマン・タスクの作成

SOAコンポジット・エディタからBPMプロジェクトにヒューマン・タスクを追加できます。通常、BPMNプロセスのユーザー・タスクをモデリングする前にヒューマン・タスクを設計するときに追加します。

28.4.1 SOAコンポジット・エディタからのヒューマン・タスクの作成方法

SOAコンポジット・エディタを使用してBPMプロジェクトにユーザー・タスクを追加できます。

SOAコンポジット・エディタからヒューマン・タスクを作成するには:

1. 「アプリケーション」ビューを選択します。

2. ヒューマン・タスクを追加するBPMプロジェクトを展開します。

3. 「SOAコンテンツ」ノードを展開します。

4. composite.xmlノードをダブルクリックして、SOAコンポジット・エディタを開きます。

5. コンポーネント・パレットで、ヒューマン・タスクをグラブします。

6. SOAコンポジットの「コンポーネント」領域でヒューマン・タスクをドロップします。
「ヒューマン・タスクの作成」ダイアログが表示されます。

7. ヒューマン・タスクを識別する名前を入力します。

8. オプションで、ヒューマン・タスク・ネームスペースのURLを変更します。

9. オプションで、「SOAPバインディングを持つコンポジット・サービスの作成」オプションをオンにします。

10. 「OK」をクリックします。
ヒューマン・タスク・コンポーネントが、SOAコンポジットの「コンポーネント」領域に表示されます。

28.4.2 SOAコンポジット・エディタからのヒューマン・タスクの作成時に行われる処理

作成したヒューマン・タスクを使用して、BPMプロジェクトにユーザー・タスクを実装できます。実装方法の詳細は、28.5項「既存のヒューマン・タスクを使用したユーザー・タスクの実装」を参照してください。

28.5 既存のヒューマン・タスクを使用したユーザー・タスクの実装

ヒューマン・タスク・エディタを使用してヒューマン・タスクを作成し、そのヒューマン・タスクをユーザー・タスクの実装に割り当てることができます。

また、BPMプロセスのデータ・オブジェクトがヒューマン・タスクの入力および出力引数にどのようにマッピングされるかを定義する必要があります。これには、データ・アソシエーションまたは変換を使用できます。データ・アソシエーションおよび変換の詳細は、第8章「プロセス設計の情報の扱い」を参照してください。

28.5.1 既存のヒューマン・タスクを使用したユーザー・タスクの実装方法

ユーザー・タスクを実装するには、別のユーザー・タスク用に作成した既存のヒューマン・タスクを使用するか、またはヒューマン・タスク・エディタを使用します。

既存のヒューマン・タスクを使用してユーザー・タスクを実装するには:

1. BPMNプロセスを開きます。

2. ユーザー・タスクを右クリックします。

3. 「プロパティ」を選択します。
「プロパティ - ユーザー・タスク」ダイアログが表示されます。

4. 「実装」タブをクリックします。

5. 「ヒューマン・タスク」フィールドの隣の「参照」ボタンをクリックします。
「ヒューマン・タスクの参照」ダイアログが表示されます。

6. リストからヒューマン・タスクを選択します。

7. 「OK」をクリックします。
「ヒューマン・タスクの参照」ダイアログが閉じ、「ヒューマン・タスク」フィールドに選択したヒューマン・タスクが表示されます。

8. 「OK」をクリックします。

28.5.2 既存のヒューマン・タスクを使用したユーザー・タスクの実装時に行われる処理

ユーザー・タスクの実装に、既存のヒューマン・タスクが使用されます。

SOAコンポジットは、BPMNプロセスとヒューマン・タスクの間にワイヤを追加し、その関係を表示します。

BPMNサービス・エンジンがユーザー・タスクの実装を実行する際、ユーザー・タスクのデータ・アソシエーションに定義されているパラメータを使用してヒューマン・ワークフロー・サービスを起動します。ヒューマン・ワークフロー・サービスがヒューマン・タスクの実行を完了すると、定義済のデータ・アソシエーションを使用して結果をBPMNサービス・エンジンに渡します。

28.5.3 プロセス・ペイロードをヒューマン・タスク・ペイロードに関連付ける方法

プロセス・ペイロードをヒューマン・タスク・ペイロードに関連付けるには、BPMNプロセスでヒューマン・タスク、ユーザー・タスク・イベントおよび開始イベントを構成し、ペイロードxsdファイルに基づいてビジネス・オブジェクトを作成する必要があります。

プロセス・ペイロードをヒューマン・タスク・ペイロードに関連付けるには:

1. 「外部スキーマに基づく」オプションを使用してビジネス・オブジェクトを作成します。

1. モジュールを右クリックします。

2. 「新規」、「ビジネス・オブジェクト」の順に選択します。

3. 「外部スキーマに基づく」を選択します。

4. 「参照」ボタンをクリックします。

5. 「プロジェクトにコピー」を選択します。

6. 「リソースの参照」をクリックします。
「タイプ・チューザ」ダイアログが開きます。

7. ペイロードxsdファイルからビジネス・オブジェクトのタイプを選択します。

2. BPMNプロセスで開始イベントを編集します。

3. そのタイプとして作成したビジネス・オブジェクトを使用して、カスタム引数を定義します。

4. そのタイプとして作成したビジネス・オブジェクトを使用して、プロセスにプロセス・データ・オブジェクトを追加します。

5. カスタム引数とデータ・オブジェクトの間のデータ・アソシエーションを定義します。

6. ヒューマン・タスク・エディタで、「データ」タブをクリックします。

7. 「追加」ボタンのリストから「その他のペイロードの追加」を選択します。

8. 「タイプ・チューザ」ダイアログのペイロード要素を選択します。

9. プロセス・エディタでユーザー・タスクを右クリックし、「プロパティ」を選択します。

10. プロセス・データ・オブジェクトとタスク・ペイロードの間のデータ・アソシエーションを定義します。

28.6 ヒューマン・タスク・エディタを使用したヒューマン・タスクの編集

複雑なヒューマン・タスクの構成では、通常、編集にヒューマン・タスク・エディタを使用する必要があります。ヒューマン・タスク・エディタを使用すると、Orable BPM付属の簡易インタフェースの使用時に表示されないプロパティを編集できます。

図28-3に、ヒューマン・タスク・エディタを示します。

図28-3 ヒューマン・タスク・エディタ

「図28-3 ヒューマン・タスク・エディタ」の説明

28.6.1 ヒューマン・タスク・エディタを使用したヒューマン・タスクの編集方法

ヒューマン・タスク・エディタを使用して、BPMプロジェクトで使用されるヒューマン・タスクを編集できます。通常は、複雑なヒューマン・タスクの編集にヒューマン・タスク・エディタを使用します。

ヒューマン・タスク・エディタを使用してヒューマン・タスクを編集するには:

1. ヒューマン・タスクで実装されたユーザー・タスクを含むBPMNプロセスを開きます。

2. ユーザー・タスクを右クリックします。

3. 「ヒューマン・タスクを開く」を選択します。
ヒューマン・タスク・エディタが表示されます。

4. ヒューマン・タスクを変更します。

28.7 ヒューマン・タスク・エディタを使用したヒューマン・タスクの構成

この項では、Oracle BPM Suiteからヒューマン・タスクを使用するときにのみ使用可能なプロパティの構成方法を説明します。

残りのプロパティは、Oracle SOA Suiteと共有されます。これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の、「ヒューマン・タスクの設計」の章のヒューマン・タスク・エディタを使用したヒューマン・タスク定義の作成に関する説明を参照してください。

ヒューマン・タスク・エディタを使用して構成できるプロパティ・セットは、次のとおりです。

- 一般
タイトル、説明、優先度および所有者などの基本情報を定義できます。

タイトル・フィールドの隣のリストから「変換」オプションを選択して作成および国際化されたタイトルをクリックすると、ヒューマン・タスクのタイトルをローカライズできます。リソース・バンドルの定義方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の多言語設定およびスタイルシートの指定に関する説明を参照してください。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のタイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストに関する説明を参照してください。

- データ
タスク・ペイロードの構造を構成するメッセージ要素を定義できます。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のタスク・ペイロード・データ構造の指定に関する説明を参照してください。

- 割当て
参加者をタスクに割り当て、タスクが定義済ワークフローを通過するようにルーティング・ポリシーを構成できます。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のタスク参加者の割当てに関する説明を参照してください。

- プレゼンテーション
スタイルシートおよび多言語設定を使用して、ヒューマン・タスクの表示に使用されるプレゼンテーションを構成できます。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の多言語設定およびスタイルシートの指定に関する説明を参照してください。

- 期限
タスクの期間および有効期限を指定できます。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のタスクのエスカレーション、更新、および終了に関する説明を参照してください。

- 通知
タスクのステータスが変更されたときにユーザーに通知する方法を構成できます。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の参加者の通知プリファレンスの指定に関する説明を参照してください。

通知の受信者の電子メール・アドレスを指定する方法の詳細は、28.7.1項「通知の受信者の電子メール・アドレスを指定する方法」を参照してください。

- アクセス
ヒューマン・タスクのコンテンツのアクセス・ポリシーおよび制限を構成できます。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のタスク・コンテンツのアクセス・ポリシーおよびタスク・アクションの指定に関する説明を参照してください。

- イベント
BPEL callbacks.dの処理方法を指定できます。

これらのプロパティの構成方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のJavaまたはビジネス・イベント・コールバックの指定に関する説明を参照してください。

- ドキュメント
Oracle UCMリポジトリにタスクの添付を格納するようにヒューマン・タスクを構成できます。詳細は、28.7.2「タスクの添付を格納するようにOracle UCMリポジトリを構成する方法」を参照してください。

いくつかのヒューマン・タスク機能は、Oracle BPM Suiteのインストールからヒューマン・タスクを使用するときにのみ使用できます。

Oracle BPM Suiteのインストールからヒューマン・タスクを使用する場合は、次の考慮事項に配慮する必要があります。

- Oracle BPM Suiteを使用してヒューマン・タスクを作成する場合、enableAutoClaimプロパティはデフォルトでtrueに設定されます。

- プロセス・コンテキストの所有者プロパティは、ヒューマン・タスクを含むユーザー・タスクに割り当てられる参加者を使用して設定されます。

- プロセスにイニシエータ・タスクが含まれる場合、プロセス・コンテキストの作成者属性は、イニシエータ・タスクに割り当てられた参加者を使用して自動的に設定されます。

- パラレル参加者の完了基準を指定する場合は、デフォルトの結果を以前の結果の1つとして設定できます。

28.7.1 通知の受信者の電子メール・アドレスを指定する方法

BPM Suiteのインストールでヒューマン・タスク・エディタを使用すると、通知の受信者の電子メール・アドレスを指定できます。

通知の受信者の電子メール・アドレスを指定するには:

1. ヒューマン・タスク・エディタを開きます。

2. 「通知」タブをクリックします。

3. 「受信者」リストをダブルクリックします。
「受信者」リストは編集可能なリストで、それをダブルクリックすると、テキスト・フィールドになります。

4. 受信者の電子メール・アドレスを入力します。
必要に応じて、「受信者」テキスト・フィールドの横にあるボタンを使用して、アプリケーション・サーバーで電子メール・アドレスを調べるか、XPathを使用して電子メール・アドレスを指定することができます。

注意:

電子メール・アドレスを使用して指定受信者に通知を送信する場合、通知サービスは割当て先のユーザー・コンテキストを使用して通知に含めるタスク情報を取得します。

28.7.2 タスクの添付を格納するようにOracle UCMリポジトリを構成する方法

UCMリポジトリに添付を格納するようにヒューマン・タスクを構成できます。これらの添付には、1つまたは複数のメタデータ・プロパティが含まれることがあります。これらのプロパティに値を割り当てるか、またはユーザーが値を指定できるようにプロパティを構成できます。

タスクの添付用にOracle UCMリポジトリを構成するには:

1. 「プロジェクト・ナビゲータ」ツリーで、「ビジネス・カタログ」ノードを展開します。

2. 「ヒューマン・タスク」ノードを展開します。

3. 構成するヒューマン・タスクをダブルクリックします。
ヒューマン・タスク・エディタが表示されます。

4. 「ドキュメント」タブをクリックします。

5. 「ドキュメント・パッケージの使用」を選択します。
メタデータ・プロパティを構成するセクションが表示されます。表には、すでに必須の標準メタデータ(「セキュリティ・グループ」および「ドキュメント・タイプ」)が含まれています。

6. オプションで、次の手順で新しい標準またはカスタム・メタデータ・プロパティを入力します。

1. 「追加」ボタンをクリックします。

2. 「名前」列をクリックし、リストから標準プロパティを選択するか、カスタム名を入力します。

3. 「値」列をクリックし、プロパティに値を割り当てます。「名前別」を選択してテキストを指定してプロパティに値を割り当てるか、または「式別」を選択して式を指定します。

4. 「表示」列をクリックして、次の表示モードを選択します。
編集可能: 添付をアップロードするときにタスク・フォームで値を指定できます。

非表示: 値はタスク・フォームに表示されません。

読取り専用: 値はタスク・フォームに表示されますが、ユーザーは値を変更できません。

注意:

カスタム・メタデータはタスク・フォームに表示されないため、タスク・ペイロードに値をマッピングするか、または静的値を指定する必要があります。

29 ヒューマン・タスクの構成

この章では、ヒューマン・タスクの様々なプロパティの構成方法について説明します。基本プロパティ、タスク・ペイロード・データ構造、参加者の割当て、ルーティング・ポリシー、ローカリゼーション、エスカレーション、通知プリファレンス、アクセス・ポリシーとタスク・アクション、制限、およびJavaコールバックとビジネス・イベント・コールバックについて説明します。

この章の内容は次のとおりです。

- 第29.1項「ヒューマン・タスク・エディタのセクションへのアクセス」

- 第29.2項「タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストの指定」

- 第29.3項「タスク・ペイロードのデータ構造の指定」

- 第29.4項「タスク参加者の割当て」

- 第29.5項「ルーティング・ポリシーの選択」

- 第29.6項「多言語設定とスタイルシートの指定」

- 第29.7項「タスクのエスカレート、期限更新または終了」

- 第29.8項「参加者通知プリファレンスの指定」

- 第29.9項「タスク・コンテンツへのアクセス・ポリシーとタスク・アクションの指定」

- 第29.10項「タスク割当てに対する制限の指定」

- 第29.11項「Javaコールバックまたはビジネス・イベント・コールバックの指定」

- 第29.12項「Oracle Enterprise Content Managementでのドキュメントの格納」

- 第29.12項「Oracle Enterprise Content Managementでのドキュメントの格納」

ヒューマン・ワークフローの問題のトラブルシューティングの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のヒューマン・ワークフローのトラブルシューティングに関する項を参照してください。

29.1 ヒューマン・タスク・エディタのセクションへのアクセス

この項では、ヒューマン・タスク・エディタのセクションにアクセスする方法について説明します。各セクションについて簡単に説明し、詳細の参照先を示します。

29.1.1 ヒューマン・タスク・エディタのセクションへのアクセス方法

ヒューマン・タスク・エディタのセクションにアクセスする手順は、次のとおりです。

1. SOAコンポジット・エディタの「ヒューマン・タスク」アイコンをダブルクリックするか、Oracle BPELデザイナの「ヒューマン・タスク」アイコンをダブルクリックして、右上隅にある「編集」アイコンをクリックします。
ヒューマン・タスク・エディタは、図29-1の左側に示す主要なセクションで構成されています。これらのセクションを使用すると、ヒューマン・タスクのメタデータを設計できます。

図29-1 ヒューマン・タスク・エディタ

「図29-1 ヒューマン・タスク・エディタ」の説明

表29-1に、ヒューマン・タスク・エディタのこれらの主要なセクションを使用してワークフロー・タスクを作成する方法を示します。

表29-1 ヒューマン・タスク・エディタ

セクション

説明

参照先

一般

(「タイトル」、「説明」、「結果」、「カテゴリ」、「優先度」、「所有者」および「アプリケーション・コンテキスト」)

タスクの詳細(タイトル、タスクの結果、所有者、その他の属性など)を定義できます。

第29.2項「タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストの指定」

データ

タスク・ペイロード(タスクのデータ)の構造(メッセージ要素)を定義できます。

第29.3項「タスク・ペイロードのデータ構造の指定」

割当て

参加者をタスクに割り当て、そのタスクをワークフローを使用してルーティングするためのポリシーを作成できます。

第29.4項「タスク参加者の割当て」

第29.5項「ルーティング・ポリシーの選択」

プレゼンテーション

次の設定を指定できます。

- 多言語設定

- 添付用WordMLおよびカスタム・スタイル・シート

第29.6項「多言語設定とスタイルシートの指定」

期限

タスクの有効期間、カスタム・エスカレーションJavaクラスおよび期日を指定できます。

第29.7項「タスクのエスカレート、期限更新または終了」

通知

ユーザーにタスクが割り当てられたとき、またはタスクのステータスが変化したときの通知を作成して送信できます。

第29.8項「参加者通知プリファレンスの指定」

アクセス

タスク・コンテンツとタスク・アクションのアクセス・ルール、ワークフロー署名ポリシーおよび割当て制限を指定できます。

第29.9項「タスク・コンテンツへのアクセス・ポリシーとタスク・アクションの指定」

第29.9.2項「ワークフロー・デジタル署名ポリシーの指定方法」

第29.10項「タスク割当てに対する制限の指定」

イベント

コールバック・クラスおよびBPELコールバックでのタスクとルーティングの割当てを指定できます。

第29.11項「Javaコールバックまたはビジネス・イベント・コールバックの指定」

ドキュメント

タスクの添付ファイルをドキュメントとしてコンテンツ管理システムに格納できます。

第29.12項「Oracle Enterprise Content Managementでのドキュメントの格納」

29.2 タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストの指定

この項の内容は次のとおりです。

- 第29.2.1項「タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストの指定方法」

- 第29.2.2項「タスクのタイトルの指定方法」

- 第29.2.3項「タスクの説明の指定方法」

- 第29.2.4項「タスクの結果の指定方法」

- 第29.2.5項「タスク優先度の指定方法」

- 第29.2.6項「タスク・カテゴリの指定方法」

- 第29.2.7項「タスク所有者の指定方法」

- 第29.2.8項「アプリケーション・コンテキストの指定方法」

29.2.1 タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストの指定方法

タイトル、説明、結果、優先度、カテゴリ、所有者およびアプリケーション・コンテキストを指定する手順は、次のとおりです。

1. 「一般」タブをクリックします。
図29-2に、ヒューマン・タスク・エディタの「一般」セクションを示します。

このセクションでは、タスクのタイトル、説明、結果、カテゴリ、優先度、所有者などの詳細を指定できます。

図29-2 ヒューマン・タスク・エディタ — 「一般」セクション

「図29-2 ヒューマン・タスク・エディタ — 「一般」セクション」の説明

表29-2に、「一般」セクションの各サブセクションの構成方法を示します。

表29-2 ヒューマン・タスク・エディタ — 「一般」セクション

サブセクション

参照先

タイトル

第29.2.2項「タスクのタイトルの指定方法」

説明

第29.2.3項「タスクの説明の指定方法」

結果

第29.2.4項「タスクの結果の指定方法」

優先度

第29.2.5項「タスク優先度の指定方法」

カテゴリ

第29.2.6項「タスク・カテゴリの指定方法」

所有者

第29.2.7項「タスク所有者の指定方法」

アプリケーション・コンテキスト

第29.2.8項「アプリケーション・コンテキストの指定方法」

29.2.2 タスクのタイトルの指定方法

タスクのタイトルを指定する手順は、次のとおりです。

タスクのタイトルを入力します(オプション)。開始したタスクにタイトルが設定されていない場合のみ、この値がタイトルにデフォルト設定されます。このタイトルによって、タスクが視覚的に識別されます。タスクのタイトルはOracle BPM WorklistまたはOracle BPM Workspaceに表示されます。タイトルは、Oracle BPM Worklistで検索することもできます。

1. 「一般」セクションの「タスクのタイトル」フィールドで、タスクのタイトルを指定する方法を選択します。

- プレーン・テキスト: 名前(承認された休暇申請など)を手動で入力します。

- テキストとXPath: 手動によるテキストと動的な式の組合せを入力します。タイトルの一部(注文IDに必要な承認:など)を手動で入力した後、テキストの右側の空白にカーソルを置き、このフィールドの右側にあるアイコンをクリックします。この操作によって、タイトルの残りの部分を動的に作成するための式ビルダーが表示されます。名前の動的部分を完成した後は、「OK」をクリックし、このフィールドに戻ります。完全な名前が表示されます。次に例を示します。

Approval Required for Order Id: <%/task:task/task:payload/task:orderId%>

式は、実行時にタスク・ペイロードからの正確な注文ID値を使用して解決されます。

「ヒューマン・タスクの作成」ダイアログの「一般」タブで「タスクのタイトル」フィールドにタイトルを入力すると、ここで入力したタイトルは上書きされます。

29.2.3 タスクの説明の指定方法

必要に応じて、「一般」セクションの「説明」フィールドにタスクの説明を指定できます。説明を使用すると、タスクに関する補足的な詳細を提供できます。たとえば、タスクのタイトルがコンピュータのアップグレード・リクエストの場合、このフィールドには、コンピュータのモデル、CPUの能力、RAM容量などの補足的な詳細を記載できます。この説明は、Oracle BPM Worklistには表示されません。

29.2.4 タスクの結果の指定方法

タスクの結果により、タスクに可能な結果が取得されます。Oracle BPM Worklistには、ここで指定した結果が実行時に実行可能なタスク・アクションとして表示されます。図29-3に詳細を示します。

図29-3 Oracle BPM Worklist内の結果

「図29-3 Oracle BPM Worklist内の結果」の説明

次のタイプのタスクの結果を指定できます。

- シード済結果の選択

- カスタム結果の入力

タスクの結果には、ここで指定した実際の結果値とは異なる実行時の表示値を割り当てることもできます。これにより、Oracle BPM Worklistでは、結果を異なる言語で表示できます。国際化の詳細は、第29.6.2項「多言語設定の指定方法」を参照してください。

タスクの結果を指定する手順は、次のとおりです。

1. 「一般」セクションの「結果」フィールドの右側にある「検索」アイコンをクリックします。
タスクに予想される結果が「結果ダイアログ」(図29-4を参照)に表示されます。「APPROVE」および「REJECT」はデフォルトで選択されています。

図29-4 結果ダイアログ

「図29-4 結果ダイアログ」の説明

2. 表29-3に示す情報を入力します。

表29-3 結果ダイアログ

フィールド

説明

1つ以上の結果の選択

追加するタスク結果を選択するか、デフォルトの結果を選択解除します。

「追加」アイコン

クリックすると、カスタム結果を追加するダイアログが起動されます。

ダイアログの「名前」フィールドにカスタム名を入力し、「OK」をクリックします。結果が「結果」フィールドに表示されます。

注意: 次のネーミング制限を考慮してください。

- ヒューマン・タスク・エディタの「アクセス」セクションの「アクション」タブにリストされている名前と一致するカスタム名は指定しないでください(たとえば、削除を指定しないでください)。同じ名前を指定すると、実行時に問題が発生する可能性があります。

- 空白を含むカスタム名(たとえば、On Hold)を指定しないでください。空白が含まれていると、Oracle BPM Worklistでカスタム結果にアクセスするときにエラーが発生します。空白を含む結果を指定する必要がある場合は、リソース・バンドルを使用します。詳細は次の項を参照してください。

- カスタム・タスクの結果は、大文字か小文字の英字で始まる必要があります。使用できるのは、英字とゼロ(0)から9までの数字のみです。

コメントが必要な結果

クリックすると、実行時にOracle BPM Worklistで割当て先がコメントを追加する結果を選択できます。割当て先は、実行時にタスクを保存しないでコメントを追加し、アクションを実行する必要があります。

デフォルトの結果

この結果に対するデフォルトの結果を選択します。

ここで選択したシード済結果とカスタム結果が、パラレル参加者タイプの「多数決の結果」セクションに表示され、選択できます。

3. 詳細は、第29.4.4.1項「投票結果の指定」を参照してください。

29.2.5 タスク優先度の指定方法

タスクの優先度を指定します。優先度は、1から5までで、1が最高値です。タスクの優先度は、デフォルトで3に設定されています。この優先度値は、「ヒューマン・タスクの作成」ダイアログの「一般」タブで優先度値を選択すると上書きされます。優先度に基づいてタスクをフィルタ処理し、Oracle BPM Worklistで優先度のビューを作成できます。

タスク優先度を指定する手順は、次のとおりです。

1. 「一般」セクションの「優先度」リストで、タスクの優先度を選択します。

「ヒューマン・タスクの作成」ダイアログでの優先度の値の指定については、該当する項を参照してください。

29.2.6 タスク・カテゴリの指定方法

タスク・カテゴリは、必要に応じて、「一般」セクションの「カテゴリ」フィールドに指定できます。この指定によって、システムで作成されるタスクのカテゴリが決まります。たとえば、ヘルプ・デスク環境では、顧客のリクエストをソフトウェア関連またはハードウェア関連として分類できます。カテゴリはOracle BPM Worklistに表示されます。カテゴリに基づいてタスクをフィルタ処理し、Oracle BPM Worklistでカテゴリのビューを作成できます。

タスク・カテゴリを指定する手順は、次のとおりです。

1. 「一般」セクションの「カテゴリ」フィールドでタスク・カテゴリを指定する方法を選択します。

- 名前別: 名前を手動で入力します。

- 式別: このフィールドの右側にあるアイコンをクリックし、カテゴリを動的に作成するための式ビルダーを表示します。

29.2.7 タスク所有者の指定方法

タスク所有者は、所有するビジネス・プロセスに属するタスクを参照し、割当て済タスクの参加者タイプのいずれかにかわって操作を実行できます。また、所有者は、タスクの再割当て、取消しまたはエスカレートも実行できます。タスク所有者は、タスクのビジネス管理者と見なすことができます。また、タスク所有者は、「ヒューマン・タスクの作成」ダイアログの「詳細」タブで指定することもできます。「詳細」タブで指定されたタスク所有者は、ここで入力するタスク所有者を上書きします。

タスク所有者の詳細は、第27.2.1.3項「タスクのステークホルダ」を参照してください。

タスク所有者を指定する手順は、次のとおりです。

1. タスク所有者の指定方法を選択します。

- アイデンティティ・サービスのユーザー・ディレクトリまたはアプリケーション・ロールのリストを介して静的に指定

- XPath式を介して動的に指定
次に例を示します。

- タスクに、ownerが格納されているpoという名前のペイロード・メッセージ属性がある場合は、/task:task/task:payload/po:purchaseOrder/po:ownerなどのXPath式を指定できます。

- ids:getManager('jstein', 'jazn.com')
jsteinのマネージャがタスク所有者です。

ユーザー、グループおよびアプリケーション・ロールの詳細は、第27.2.1.1.3項「参加者の割当て」を参照してください。

29.2.7.1 ユーザー・ディレクトリまたはアプリケーション・ロールのリストを介したタスク所有者の静的な指定

タスク所有者は、Oracle SOA Suiteで使用するように構成されたユーザー・ディレクトリ(Oracle Internet Directory、Java AuthoriZatioN(JAZN)/XML、LDAPなど)またはアプリケーション・ロールのリストを参照することで選択できます。

ユーザー・ディレクトリまたはアプリケーション・ロールのリストを介してタスク所有者を静的に指定する手順は、次のとおりです。

1. 「一般」セクションの「所有者」フィールドの右側にある最初のリストで、タスク所有者のタイプとして「ユーザー」、「グループ」または「アプリケーション・ロール」を選択します。図29-5に詳細を示します。

注意:

デフォルトで、ヒューマン・タスク内のグループ名は大/小文字を区別します。したがって、Groupを選択した場合に大文字の名前(たとえば、LOANAGENTGROUP)を入力すると、Oracle BPM Worklistの「管理タスク」タブにはタスクが表示されません。グループ名で大/小文字を不可知にする(大/小文字を区別しない)には、システムMBeanブラウザでcaseSensitiveGroupsプロパティをfalseに設定する必要があります。詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

図29-5 ユーザー・ディレクトリまたはアプリケーション・ロールの参照によるタスク所有者の指定

「図29-5 ユーザー・ディレクトリまたはアプリケーション・ロールの参照によるタスク所有者の指定」の説明

2. 「一般」セクションの「所有者」フィールドの右側にある2番目のリストで、「静的」を選択します。

3. 選択した所有者のタイプに基づいて、表29-4の手順を参照してください。

表29-4 所有者のタイプ

選択内容

手順

「ユーザー」または「グループ」

4

アプリケーション・ロール

5

4. 「ユーザー」または「グループ」を選択した場合は、図29-6に示す「アイデンティティ・ルックアップ」ダイアログが表示されます。

図29-6 「アイデンティティ・ルックアップ」ダイアログ

「図29-6 「アイデンティティ・ルックアップ」ダイアログ」の説明

ユーザーまたはグループを選択するには、最初にアプリケーション・サーバー接続を作成する必要があります。そのためには「追加」アイコンをクリックします。次の制約に注意してください:

- アイデンティティ・サービス・レルムのリストを取得するOracle WebLogic管理サーバーに対して、アプリケーション・サーバー接続を作成しないでください。これは、この管理サーバーには、実行するアイデンティティ・サービスがないためです。したがって、「アイデンティティ・ルックアップ」ダイアログで検索パターンを使用して検索を実行した場合は、レルム情報もユーザーも表示されません。かわりに、管理対象のOracle WebLogic Serverに対してアプリケーション・サーバー接続を作成してください。

- 完全なドメイン名(myhost.us.oracle.comなど)を使用して構成されているアプリケーション・サーバー接続を選択する必要があります。ホスト名(myhostなど)のみで構成されている接続を選択すると、使用可能なレルムが「レルム」リストに表示されない可能性があります。既存の接続にドメイン名が含まれていない場合は、次の手順を実行します。

- 「リソース・パレット」で、アプリケーション・サーバー接続を右クリックします。

- 「プロパティ」を選択します。

- 「構成」タブで、適切なドメインをホスト名に追加します。

- 「アイデンティティ・ルックアップ」ダイアログに戻り、接続を再度選択します。

1. アプリケーション・サーバー接続を選択または作成し、選択用のレルムを表示します。レルムには、ユーザーおよびロール(グループ)のポリシー・ストアへのアクセスが用意されています。

2. 検索文字列(jcooper、j*、*など)を入力して所有者を検索します。「ユーザー名」フィールドの右側にある「ルックアップ」アイコンをクリックすると、検索基準と一致するすべてのユーザーがフェッチされます。図29-7に詳細を示します。「選択」をクリックすると、1つ以上のユーザーまたはグループをハイライトして選択できます。

図29-7 レルムが選択された状態の「アイデンティティ・ルックアップ」

「図29-7 レルムが選択された状態の「アイデンティティ・ルックアップ」」の説明

3. ユーザーをハイライトして「階層」をクリックし、そのユーザーの階層を表示します。同様に、「報告先」をクリックすると、選択したユーザーまたはグループの報告先が表示されます。図29-8に詳細を示します。

図29-8 「アイデンティティ・ルックアップ」ダイアログのユーザー階層

「図29-8 「アイデンティティ・ルックアップ」ダイアログのユーザー階層」の説明

4. ユーザーまたはグループをハイライトして「詳細」をクリックし、そのユーザーまたはグループの詳細を表示します。図29-9に詳細を示します。

図29-9 ユーザーまたはグループの詳細

「図29-9 ユーザーまたはグループの詳細」の説明

5. 「OK」をクリックして「アイデンティティ・ルックアップ」ダイアログに戻ります。

6. 「選択」をクリックして、ユーザーを「選択したユーザー」セクションに追加します。

7. 「OK」をクリックしてヒューマン・タスク・エディタに戻ります。
選択内容が「所有者」フィールドに表示されます。

5. 「アプリケーション・ロール」を選択した場合は、「アプリケーション・ロールの選択」ダイアログが表示されます。

1. 「アプリケーション・サーバー」リストで、アプリケーション・ロールが設定されているアプリケーション・サーバーのタイプを選択するか、「追加」アイコンをクリックして接続を作成するための「アプリケーション・サーバー接続の作成」ウィザードを起動します。

2. 「アプリケーション」リストで、アプリケーション・ロールが設定されているアプリケーションを選択します(カスタム・アプリケーションまたはSOAインフラストラクチャ・アプリケーション(soa-infra)など)。

3. 「選択可能」セクションで、適切なアプリケーション・ロールを選択し、「>」ボタンをクリックします。すべてを選択するには、「>>」ボタンをクリックします。図29-10に詳細を示します。

図29-10 アプリケーション・ロール

「図29-10 アプリケーション・ロール」の説明

4. 「OK」をクリックします。

29.2.7.2 XPath式によるタスク所有者の動的な指定

タスク所有者を「式ビルダー」ダイアログで動的に選択できます。

タスク所有者を動的に指定する手順は、次のとおりです。

1. 「一般」セクションの「所有者」フィールドの右側にある最初のリストで、タスク所有者のタイプとして「ユーザー」、「グループ」または「アプリケーション・ロール」を選択します。図29-11に詳細を示します。

図29-11 タスク所有者の動的な指定

「図29-11 タスク所有者の動的な指定」の説明

2. 「一般」セクションの「所有者」フィールドの右側にある2番目のリストで、「XPath」を選択します。

3. アイコンをクリックして、式ビルダーを起動します。
図29-12に示す「式ビルダー」ダイアログが表示されます。

図29-12 式ビルダー

「図29-12 式ビルダー」の説明

4. 使用可能な変数のスキーマおよび関数を参照してタスク所有者を作成します。

5. 「OK」をクリックしてヒューマン・タスク・エディタに戻ります。
選択内容が「所有者」フィールドに表示されます。

詳細は、次のOracleドキュメントを参照してください。

- 「式ビルダー」ダイアログとXPathビルディング・アシスタントの使用手順については、「ヘルプ」をクリックしてください。

- ワークフロー・サービスのDynamic Assignment Function、アイデンティティ・サービス関数およびXPathビルディング・アシスタントの使用手順の詳細は、該当する項を参照してください。

29.2.8 アプリケーション・コンテキストの指定方法

タスクで使用するアプリケーション・ロールが含まれているアプリケーションの名前を指定できます。これによって、アプリケーション・ロールが操作するコンテキストが指定されます。タスクを明示的に作成しなくても結果的に所有した場合は、このコンテキストを設定できます。

1. 「一般」セクションの「アプリケーション・コンテキスト」フィールドに名前を入力します。

29.3 タスク・ペイロード・データ構造の指定方法

図29-13に、ヒューマン・タスク・エディタの「データ」セクションを示します。

このセクションでは、XSDファイルに定義されているタスク・ペイロード(タスクのデータ)の構造(メッセージ要素)を指定できます。XSDファイルの要素を表すパラメータを作成します。これにより、ペイロード・データがワークフロー・タスクで使用できるようになります。次に例を示します。

- ストアフロント・アプリケーションから注文するための注文ID要素に対してパラメータを作成します。

- ヘルプ・デスク・リクエストを作成するための場所、タイプ、問題の説明、重大度、ステータスおよび解決の各要素に対してパラメータを作成します。

タスク・ペイロード・データは、1つ以上の要素またはタイプで構成されます。選択内容に基づいてタスク・ペイロードのXMLスキーマ定義が作成されます。

図29-13 ヒューマン・タスク・エディタ — 「パラメータ」セクション

「図29-13 ヒューマン・タスク・エディタ — 「パラメータ」セクション」の説明

29.3.1 タスク・ペイロード・データ構造の指定方法

タスク・ペイロード・データ構造を指定する手順は、次のとおりです。

1. 「データ」タブをクリックします。

2. 「追加」アイコンをクリックして、ペイロード・タイプを選択します。

- 文字列

- 整数

- ブール

- その他

図29-14に示すように、「タスク・パラメータの追加」ダイアログが表示されます。

図29-14 「タスク・パラメータの追加」ダイアログ

「図29-14 「タスク・パラメータの追加」ダイアログ」の説明

3. 表29-5に記載されている詳細を入力します。

表29-5 「タスク・パラメータの追加」ダイアログのフィールドと値

フィールド

説明

パラメータ・タイプ

「タイプ」または「要素」を選択し、「検索」アイコンをクリックすると、タスク・パラメータ選択用の「タイプ・チューザ」ダイアログが表示されます。

パラメータ名

デフォルト名をそのまま使用するか、カスタムの名前を入力します。このフィールドが表示されるのは、パラメータ・タイプとして「タイプ」を選択した場合のみです。

ワークリストにより編集可能

このチェック・ボックスを選択すると、タスク・ペイロードのこの部分をOracle BPM Worklistで編集できます。たとえば、融資承認タスクの場合、APR属性は、タスクをレビューするユーザーによる更新が必要な場合がありますが、SSNフィールドは編集できません。

参加者が表示および更新できるタスクの部分を決定するアクセス・ルールも指定できます。詳細は、第29.9.1項「タスク・コンテンツへのアクセス・ポリシーの指定方法」を参照してください。

注意:

Oracle BPM Worklistで定義できるのは、単純なXMLタイプ(文字列、整数など)または複雑なタイプ(注文書など)のペイロード・パラメータに対するペイロード・マップ済属性(以前はフレックス・フィールド・マッピングと呼ばれていました)のみです。キーワードを使用してタスクを検索する必要がある場合、またはタスク・コンテンツに基づいてビューまたは委任ルールを定義する必要がある場合は、単純なXMLタイプに基づいたペイロード・パラメータを使用する必要があります。これらの単純タイプは、Oracle BPM Worklistでフレックス列にマップできます。

4. 図29-15に示すように、タイプを選択します。

図29-15 パラメータ・タイプ

「図29-15 パラメータ・タイプ」の説明

5. 「OK」をクリックしてヒューマン・タスク・エディタに戻ります。
選択内容が「データ」セクションに表示されます。

6. 選択内容を編集するには、対象項目を選択して「データ」セクションの右上にある「編集」アイコンをクリックします。

29.4 タスク参加者の割当て

図29-16に、ヒューマン・タスク・エディタの「割当て」セクションを示します。このセクションでは、ビジネス要件を満たす参加者タイプを選択できます。参加者タイプを構成するときは、タスクを操作するユーザー、グループおよびアプリケーション・ロールのリストを作成します。

図29-16 ヒューマン・タスク・エディタ — 「割当て」セクション

「図29-16 ヒューマン・タスク・エディタ — 「割当て」セクション」の説明

単純または複雑なワークフロー・ルーティング・ポリシーを作成するためには、参加者タイプを簡単に組み合せて調整できます。以前に構成したヒューマン・タスクの機能を拡張して、より複雑なワークフローをモデリングすることもできます。

参加者タイプはステージの下のブロックにグループ化されます(たとえば、図29-16ではStage1という名前です)。ステージは、参加者タイプの各ブロックに対して承認プロセスを編成するための1方法です。1つ以上のステージを順番に、またはパラレルで指定できます。各ステージ内で、1つ以上の参加者タイプ・ブロックを順番に、またはパラレルで指定できます。参加者タイプ・ブロックの順序は、[↑]キーと[↓]キーを使用して再配置できます。

次に例を示します。

- すべての参加者タイプ・ブロックを単一のステージに作成できます(たとえば、注文のすべての内容が全体として承認または却下される注文書リクエスト)。

- より複雑な承認タスクを作成して、1つ以上のステージを含めることができます。たとえば、最初のステージに参加者タイプ・ブロックのグループを配置し、2番目のステージに他のブロックを配置できます。第1ステージに配置した参加者のリストでは明細入力の承認が処理され、第2ステージに配置した参加者のリストではヘッダー入力の承認が処理されます。

参加者タイプごとに、構成タスクに使用するエディタが関連付けられています。割当て先の追加順序は、実行順序を示します。

別のステージ名を指定したり、追加ステージの作成が必要なビジネス要件を指定するには、次の手順を実行します。追加ステージの作成は高度な要件で、自社の環境には必要がない場合があります。

この項の内容は次のとおりです。

- 第29.4.1項「ステージ名を指定してパラレルおよび順次ブロックを追加する方法」

- 第29.4.2項「タスク参加者の割当て方法」

- 第29.4.3項「単一参加者タイプの構成方法」

- 第29.4.4項「パラレル参加者タイプの構成方法」

- 第29.4.5項「シリアル参加者タイプの構成方法」

- 第29.4.6項「FYI参加者タイプの構成方法」

参加者タイプの詳細は、第27.2.1.1項「タスクの割当ておよびルーティング」を参照してください。

29.4.1 ステージ名を指定してパラレルおよび順次ブロックを追加する方法

ステージ名を指定し、パラレルおよび順次ブロックを追加する手順は、次のとおりです。

デフォルトでは、ステージに「Stage1」という名前が指定されます。この名前は、必要に応じて変更できます。

1. 名前をダブルクリックします。
図29-17に示す「編集」ダイアログが表示されます。

図29-17 「編集」ダイアログ

「図29-17 「編集」ダイアログ」の説明

2. 名前を入力し、「OK」をクリックします。

3. 図29-18に示すように、ステージとその参加者タイプ・ブロックを選択します。

4. 「追加」アイコンをクリックします。

図29-18 第2ステージの追加

「図29-18 第2ステージの追加」の説明

5. リストからオプションを選択します(たとえば、「パラレル・ステージ」)。
図29-19に示すように、第2ステージが第1ステージに対してパラレルに追加されます。

図29-19 パラレル・ステージ

「図29-19 パラレル・ステージ」の説明

6. 右側の第2ステージを選択し、「追加」アイコンをクリックします。第2ステージ(たとえば、図29-20ではStage1という名前です)を選択するのではなく、参加者タイプ・ブロック(たとえば、図29-20ではEdit Participantという名前です)のみを選択した場合は、「追加」アイコンの下にあるすべてのオプションが無効になります。

7. 「順次ステージ」を選択します。
順次ステージが、選択したブロックの下に追加されます。

図29-20 順次ステージ

「図29-20 順次ステージ」の説明

これらのブロック内に参加者タイプを作成します。

29.4.2 タスク参加者の割当て方法

タスク参加者を割り当てる手順は、次のとおりです。

1. 「割当て」セクションで、次のいずれかのタスクを実行します。

1. ステージ・ボックスの下のブロックをハイライト表示し、「編集」アイコンをクリックします。タスク参加者を初めて作成すると、このボックスには「<参加者の編集>」のラベルが付きます。
or

2. ステージ・ボックスの下の参加者ボックスをダブルクリックします。

「参加者タイプの編集」ダイアログが表示されます。このダイアログでは、特定の参加者タイプを選択できます。

2. 「タイプ」リストから、図29-21に示す参加者タイプを選択します。

図29-21 「タイプ」リスト

「図29-21 「タイプ」リスト」の説明

3. 選択内容に応じて、表29-6に示す項を参照してください。

表29-6 参加者タイプ

参加者タイプ

この参加者タイプの説明参照先

この参加者タイプの構成手順参照先

- 単一

- パラレル

- シリアル

- FYI

第27.2.1.1.2項「参加者タイプ」

第29.4.3項「単一参加者タイプの構成方法」

第29.4.4項「パラレル参加者タイプの構成方法」

第29.4.5項「シリアル参加者タイプの構成方法」

第29.4.6項「FYI参加者タイプの構成方法」

29.4.3 単一参加者タイプの構成方法

図29-22に、単一参加者タイプの「参加者タイプの編集」ダイアログを示します。図29-23に、展開された「詳細」セクションを示します。

図29-22 参加者タイプの編集 — 「単一」タイプ

「図29-22 参加者タイプの編集 — 「単一」タイプ」の説明

図29-23 参加者タイプの編集 — 「単一」タイプ(展開された「詳細」セクション)

「図29-23 参加者タイプの編集 — 「単一」タイプ(展開された「詳細」セクション)」の説明

タスクに対して動的に割り当てるために、単一参加者をグループ、アプリケーション・ロールまたは参加者リストから選択できます。

単一参加者タイプを構成する手順は、次のとおりです。

1. 「ラベル」フィールドに、この参加者タイプを認識できるラベルを入力します。このラベル(Approval Manager、Primary Reviewersなど)は、タスク定義のすべての参加者の中で一意にする必要があります。
表29-7に、単一参加者タイプの「参加者タイプの編集」ダイアログの各サブセクションの構成方法を示します。

表29-7 参加者タイプの編集 — 「単一」タイプ

サブセクション

参照先

参加者リスト

第29.4.3.1項「単一タスク参加者リストの作成」

割当て済期間の制限の設定(「詳細」セクション)

第29.4.3.2項「タスクの操作に対する時間制限の指定」

この参加者による他の参加者の招待を許可(「詳細」セクション)

第29.4.3.3項「タスクへの他の参加者の招待」

スキップ・ルールの指定(「詳細」セクション)

第29.4.3.4項「タスク参加者のバイパス」

29.4.3.1 単一タスク参加者リストの作成

参加者リストに割り当てられているユーザーは、タスクを操作できます。単一タスク参加者リストでは、タスクの操作に必要なユーザーは1人のみです。単一のユーザーか、このパターンのユーザー、グループまたはアプリケーション・ロールのリストを指定できます。リストが指定されている場合、リスト上のすべてのユーザーがタスクに割り当てられています。このうちの1人が手動でタスクを申告して操作する必要があるか、または割当てパターンによっていずれかのユーザーがリストから自動的に選択されるようにするかを指定できます。1人のユーザーがタスクを操作する場合、このタスクは他の割当て先のタスク・リストから取り消されます。

単一ユーザー参加者やパラレル、シリアルおよびFYIユーザー参加者に対して、次のような様々なタイプのリストを作成できます。

- 値ベースの名前と式のリスト
これらのリストでは、ユーザー、グループまたはアプリケーション・ロールをタスク割当て先として静的または動的に選択できます。

- 値ベースの管理チェーンのリスト
管理チェーンは通常、管理チェーン階層内の複数のユーザーからシリアル承認を得るために使用されます。したがって、このリストは多くの場合、シリアル参加者タイプに有効です。通常は、階層内のすべてのユーザーがタスクを操作する場合に使用します。管理チェーンは単一参加者タイプでも使用できます。ただし、この場合は、階層内のすべてのユーザーにタスクが同時に割り当てられます。1人のユーザーがタスクを操作すると、そのタスクは、他のユーザーから取り消されます。

たとえば、注文書がマネージャに割り当てられているとします。マネージャが承認した注文は、上位のマネージャに割り当てられます。そのマネージャが承認すると、さらに上位のマネージャに割り当てられ、3人のマネージャが注文を承認するまで上位へと順番にルーティングされます。条件付き中途完了を指定した場合は、マネージャのいずれかがリクエストを却下するか、リクエストの期限が切れると、注文は却下されます。それ以外の場合、タスク・フローは引き続きルーティングされます。

- ルールベースの名前と式のリストおよび管理チェーンのリスト
ビジネス・ルールを使用すると、複雑な式でタスク参加者のリストを作成できます。たとえば、$5000未満の注文書リクエストは承認のためにマネージャに送信するというビジネス・ルールを作成します。一方、$5000以上の注文書リクエストは、承認のためにマネージャのマネージャに送信します。ビジネス・ルールの2つの主要な機能は、ファクトとアクション・タイプです。詳細は、第29.5.2項「ビジネス・ルールを使用した詳細タスク・ルーティングの指定方法」を参照してください。

参加者タイプを選択すると、図29-24に示すように、ダイアログ・ボックスを使用してタスク参加者の割当て先(ユーザー、グループまたはアプリケーション・ロール)のリストを作成するためのオプションを選択できます。前述の3つの選択肢(「名前および式」、「管理チェーン」および「ルールベース」)を使用できます。

図29-24 参加者のリストの作成

「図29-24 参加者のリストの作成」の説明

オプションを選択した後は、図29-25に示すように、タスク参加者割当て先(ユーザー、グループまたはアプリケーション・ロール)およびデータ型を動的に割り当てます。

図29-25 タスク割当て先の割当

「図29-25 タスク割当て先の割当」の説明

この項では、これらの参加者リストの作成方法について説明します。

29.4.3.1.1 値ベースの名前と式で構成される参加者リストの作成

ユーザー、グループまたはアプリケーション・ロールをタスク参加者として静的または動的に割り当てる方法を選択します。

概念的な情報は、次を参照してください。

- ユーザー、グループおよびアプリケーション・ロールについては、第27.2.1.1.3項「参加者の割当て」を参照してください。

- タスク参加者の静的および動的割当てについては、第27.2.1.2「静的、動的およびルールベースのタスク割当て」を参照してください。

値ベースの名前と式で構成される参加者リストを作成する手順は、次のとおりです。

1. 「参加者のリストの作成で使用」リストから、「名前および式」を選択します。

2. 次のいずれかの操作を行います。

- 「参加者が手動でタスクを申告」を選択します。このオプションを選択すると、タスクはリスト内のすべての参加者に割り当てられます。タスク割当て先の個別のユーザーは、タスクを手動で申告して作業できます。

- 「単一への自動割当て」リストを選択して、「ユーザー」、「グループ」または「アプリケーション・ロール」を選択し、割当てパターンを選択します。
各割当てパターンの詳細を確認し、割当てパターンを選択して構成するには、「割当てパターン」をクリックします。「割当てパターン」ダイアログ・ボックスが表示されます。図29-26に、「割当てパターン」ダイアログ・ボックスの例を示します。

図29-26 「割当てパターン」の選択および構成

「図29-26 「割当てパターン」の選択および構成」の説明

「アプリケーション・サーバー」フィールドでアプリケーション・サーバー接続を指定すると、「割当てパターン」リストに割当てパターンがロードされます。「割当てパターン」リストからいずれかのパターンを選択すると、その選択の説明がテキスト・ボックスに表示されます。

その割当てパターンですべてのタイプのタスクが考慮されるようにするには、「すべてのタイプのタスクを使用してパターン条件を評価」を選択します。それ以外の場合、そのパターンでは、選択ユーザーを決定するときに、このタスク・タイプのみが考慮されます。たとえば、休暇申請タスクを最もビジーでないユーザーに割り当てる場合に、「すべてのタイプのタスクを使用してパターン条件を評価」を選択すると、最もビジーでないユーザーを決定するときに、割り当てられたすべてのタスクが考慮されます。「すべてのタイプのタスクを使用してパターン条件を評価」を選択しない場合は、最もビジーでないユーザーを決定するときに、割り当てられている休暇申請タスクのみが考慮されます。

特定のパターンを使用すると、パターンの評価方法を制御する入力パラメータを指定できる場合があります。たとえば、図29-26に示すように、「最も生産性の高い箇所」パターンを使用すると、生産性が計算される「時間間隔」(日数)を指定できます。入力値は静的な値とするか、またはXPath式を使用して動的に設定できます。パターンによってはパラメータを使用できない場合があります。

3. 「属性の指定で使用」リストから、「値ベース」を選択します。
ダイアログがリフレッシュされ、図29-27に示すように、フィールドが表示されます。

図29-27 値ベースの名前と式

「図29-27 値ベースの名前と式」の説明

4. 「追加」アイコンをクリックし、ユーザー、グループまたはアプリケーション・ロールをタスク参加者として選択します。

「参加者名」表の「識別タイプ」列に、選択したユーザー、グループまたはアプリケーション・ロールが表示されます。

5. 「識別タイプ」列での選択を変更するには、その列をクリックしてドロップダウン・リストを表示します。

6. 「データ型」列で、現在選択されている値をクリックし、値を割り当てるドロップダウン・リストを表示します。

- 名前別: 識別タイプがユーザーまたはグループの場合は、右側の「参照」アイコン(...)をクリックし、アイデンティティ・サービスを介して構成されたユーザーまたはグループを選択するためのダイアログを表示します。アイデンティティ・サービスを使用すると、ユーザー・プロパティ、ロールおよびグループ・メンバーシップのルックアップが可能になります。ユーザー情報は、Oracle Internet DirectoryなどのLDAPサーバーから取得します。IDの検索にはワイルドカード(*)を使用できます。
アプリケーション・ロールを選択する場合は、「参照」アイコンをクリックし、アプリケーション・ロールを選択するための「アプリケーション・ロールの選択」ダイアログを表示します。アプリケーション・ロールを検索するには、最初にアプリケーション・サーバーへの接続を作成する必要があります。検索する際は、ロール名を見つけるためにアプリケーション名を指定する必要があります。タスク定義で参照できるのは、単一のアプリケーション名のみです。割当て先またはタスク所有者は、異なるアプリケーションのアプリケーション・ロールを使用できません。

- 式別: ユーザー、グループまたはアプリケーション・ロールの識別タイプについて、「参照」アイコンをクリックし、「式ビルダー」ダイアログでタスク割当て先を動的に選択します。bpws:getVariableData(...)式またはids:getManager() XPath関数を使用します。

指定した値が「値」列に表示されます。

7. 値を手動で入力するには、「値」列のフィールドをクリックし、値を指定します。

29.4.3.1.2 値ベースの管理チェーンで構成される参加者リストの作成

管理チェーン・パラメータをタスク参加者として静的または動的に割り当てる方法を選択します。

概念的な情報については次を参照してください。

- ユーザー、グループおよびアプリケーション・ロールについては、第27.2.1.1.3項「参加者の割当て」を参照してください。

- タスク参加者の静的および動的割当てについては、第27.2.1.2「静的、動的およびルールベースのタスク割当て」を参照してください。

- 管理チェーンについては、第29.4.3.1項「単一タスク参加者リストの作成」を参照してください。

値ベースの管理チェーンに基づいて参加者リストを作成する手順は、次のとおりです。

1. 「参加者のリストの作成で使用」リストから、「管理チェーン」を選択します。

2. 次のいずれかの操作を行います。

- 「参加者が手動でタスクを申告」を選択します。このオプションを選択すると、タスクはリスト内のすべての参加者に割り当てられます。タスク割当て先の個別のユーザーは、タスクを手動で申告して作業できます。

- 「単一への自動割当て」リストを選択して「ユーザー」を選択し、割当てパターンを選択します。
各割当てパターンの詳細を確認し、割当てパターンを選択して構成するには、「割当てパターン」をクリックします。「割当てパターン」ダイアログ・ボックスが表示されます。図29-26に、「割当てパターン」ダイアログ・ボックスの例を示します。

「アプリケーション・サーバー」フィールドでアプリケーション・サーバー接続を指定すると、「割当てパターン」リストに割当てパターンがロードされます。「割当てパターン」リストからいずれかのパターンを選択すると、その選択の説明がテキスト・ボックスに表示されます。

その割当てパターンですべてのタイプのタスクが考慮されるようにするには、「すべてのタイプのタスクを使用してパターン条件を評価」を選択します。それ以外の場合、そのパターンでは、選択ユーザーを決定するときに、このタスク・タイプのみが考慮されます。たとえば、休暇申請タスクを最もビジーでないユーザーに割り当てる場合に、「すべてのタイプのタスクを使用してパターン条件を評価」を選択すると、最もビジーでないユーザーを決定するときに、割り当てられたすべてのタスクが考慮されます。「すべてのタイプのタスクを使用してパターン条件を評価」を選択しない場合は、最もビジーでないユーザーを決定するときに、割り当てられている休暇申請タスクのみが考慮されます。

特定のパターンを使用すると、パターンの評価方法を制御する入力パラメータを指定できる場合があります。たとえば、図29-26に示すように、「最も生産性の高い箇所」パターンを使用すると、生産性が計算される「時間間隔」(日数)を指定できます。入力値は静的な値とするか、またはXPath式を使用して動的に設定できます。パターンによってはパラメータを使用できない場合があります。

3. 「属性の指定で使用」リストから、「値ベース」を選択します。
ダイアログがリフレッシュされ、図29-28に示すように、フィールドが表示されます。

図29-28 値ベースの管理チェーン

「図29-28 値ベースの管理チェーン」の説明

4. 「開始参加者」表のリストにユーザー、グループまたはアプリケーション・ロールを割り当てる手順の詳細は、第29.4.3.1項「単一タスク参加者リストの作成」のステップ4からステップ7を参照してください。

5. 「最上位の参加者」リストで、タスク参加者のレベル数を割り当てる方法を選択します。

- 役職別: 管理チェーンの最終(最高)承認者の役職を選択します。

- XPath: 「式ビルダー」ダイアログを介して最上位の参加者を動的に入力する場合に選択します。

6. 「レベル数」リストで、最上位参加者を割り当てる方法を選択します。

- 番号別: このタスクに含める管理チェーンのレベル数の値を入力します。たとえば、2を入力して、タスクが最初にユーザーjcooperに割り当てられている場合は、ユーザーjstein(jcooperのマネージャ)とユーザーwfaulk(jsteinのマネージャ)の両方がリストに(最初の割当て先であるjcooperとは別に)含まれます。

- XPath: 「式ビルダー」ダイアログを介して値を動的に入力する場合に選択します。

29.4.3.1.3 ルールセットで構成される参加者リストの作成

ルールセットは、ルールおよびデシジョン表の実行単位を提供します。また、ルールセットはルールの共有単位を提供します。ルールはルールセットに所属します。複数のルールセットを順に実行できます。これはルール・フローと呼ばれます。順番はルールセット・スタックで決まります。順番は、スタック上でルールセットをプッシュおよびポップするルール・アクションによって操作できます。ルールセットでは、ルールの優先度を適用することで、ルールセット内でのルールの起動順序を指定します。また、ルールセットは有効日も指定します。この指定によって、ルールセットは常に有効か、日時の範囲、開始日時または終了日時に基づいて制限されるかが識別されます。

ルールセットの作成方法は、そのルールセットへのアクセス方法に基づいています。これについては、次の項で説明しています。

ルールセットに基づいて参加者リストを指定する手順は、次のとおりです。

ビジネス・ルールによって、参加者リストを定義できます。ビジネス・ルールの使用については、2つのオプションがあります。

- ルールによって、特定のリスト・ビルダー(「名前および式」、「管理チェーン」など)のパラメータが定義されます。この場合、タスク・ルーティング・パターンは、特定のリスト・ビルダーを使用するようにモデリングされます。このリスト・ビルダーには、ルールで作成されたパラメータがリストされます。ルールは、Oracle JDeveloperでモデリングされたタイプと同じタイプのリスト・ビルダーを返します。

1. 「参加者のリストの作成で使用」リストから、「名前および式」または「管理チェーン」を選択します。

2. 「属性の指定で使用」リストから、「ルールベース」を選択します。

3. 「ルールセットのリスト」フィールドに、名前を入力します。
図29-29に詳細を示します。

図29-29 ルールセット

「図29-29 ルールセット」の説明

4. 次のいずれかの操作を行います。

- 「参加者が手動でタスクを申告」を選択します。このオプションを選択すると、タスクはリスト内のすべての参加者に割り当てられます。タスク割当て先の個別のユーザーは、タスクを手動で申告して作業できます。

- 「単一への自動割当て」リストを選択して、「ユーザー」、「グループ」または「アプリケーション・ロール」を選択し、割当てパターンを選択します。
各割当てパターンの詳細を確認し、割当てパターンを選択して構成するには、「割当てパターン」をクリックします。「割当てパターン」ダイアログ・ボックスが表示されます。図29-26に、「割当てパターン」ダイアログ・ボックスの例を示します。

「アプリケーション・サーバー」フィールドでアプリケーション・サーバー接続を指定すると、「割当てパターン」リストに割当てパターンがロードされます。「割当てパターン」リストからいずれかのパターンを選択すると、その選択の説明がテキスト・ボックスに表示されます。

その割当てパターンですべてのタイプのタスクが考慮されるようにするには、「すべてのタイプのタスクを使用してパターン条件を評価」を選択します。それ以外の場合、そのパターンでは、選択ユーザーを決定するときに、このタスク・タイプのみが考慮されます。たとえば、休暇申請タスクを最もビジーでないユーザーに割り当てる場合に、「すべてのタイプのタスクを使用してパターン条件を評価」を選択すると、最もビジーでないユーザーを決定するときに、割り当てられたすべてのタスクが考慮されます。「すべてのタイプのタスクを使用してパターン条件を評価」を選択しない場合は、最もビジーでないユーザーを決定するときに、割り当てられている休暇申請タスクのみが考慮されます。

特定のパターンを使用すると、パターンの評価方法を制御する入力パラメータを指定できる場合があります。たとえば、図29-26に示すように、「最も生産性の高い箇所」パターンを使用すると、生産性が計算される「時間間隔」(日数)を指定できます。入力値は静的な値とするか、またはXPath式を使用して動的に設定できます。パターンによってはパラメータを使用できない場合があります。

5. 「OK」をクリックします。

- ルールによって、リスト・ビルダーおよびリスト・ビルダー・パラメータが定義されます。この場合は、リスト自体がルールを使用して作成されます。ルールによって、リスト・ビルダーとパラメータが定義されます。

1. 「参加者のリストの作成で使用」リストから、「ルールベース」を選択します。

2. 「ルールセットのリスト」フィールドに、名前を入力します。
図29-30に詳細を示します。

図29-30 ルールセット

「図29-30 ルールセット」の説明

3. 次のいずれかの操作を行います。

- 「参加者が手動でタスクを申告」を選択します。このオプションを選択すると、タスクはリスト内のすべての参加者に割り当てられます。タスク割当て先の個別のユーザーは、タスクを手動で申告して作業できます。

- 「単一への自動割当て」リストを選択して、「ユーザー」、「グループ」または「アプリケーション・ロール」を選択し、割当てパターンを選択します。
各割当てパターンの詳細を確認し、割当てパターンを選択して構成するには、「割当てパターン」をクリックします。「割当てパターン」ダイアログ・ボックスが表示されます。図29-26に、「割当てパターン」ダイアログ・ボックスの例を示します。

「アプリケーション・サーバー」フィールドでアプリケーション・サーバー接続を指定すると、「割当てパターン」リストに割当てパターンがロードされます。「割当てパターン」リストからいずれかのパターンを選択すると、その選択の説明がテキスト・ボックスに表示されます。

その割当てパターンですべてのタイプのタスクが考慮されるようにするには、「すべてのタイプのタスクを使用してパターン条件を評価」を選択します。それ以外の場合、そのパターンでは、選択ユーザーを決定するときに、このタスク・タイプのみが考慮されます。たとえば、休暇申請タスクを最もビジーでないユーザーに割り当てる場合に、「すべてのタイプのタスクを使用してパターン条件を評価」を選択すると、最もビジーでないユーザーを決定するときに、割り当てられたすべてのタスクが考慮されます。「すべてのタイプのタスクを使用してパターン条件を評価」を選択しない場合は、最もビジーでないユーザーを決定するときに、割り当てられている休暇申請タスクのみが考慮されます。

4. 「OK」をクリックします。

ルール・ディクショナリが未作成で、参加者リストを簡単に指定するために複数のルール関数とファクトが事前にシードされている場合は、いずれのオプションでもルール・ディクショナリが作成されます。ルール・ディクショナリには、参加者リストを作成するための次のルール関数がシードされています。

- CreateResourceList

- CreateManagementChainList

Taskファクトはタスク・サービスによってアサートされ、ルール条件のベースとなります。

ルール・ディクショナリが作成されると、Oracle Business Rulesデザイナが表示されます。

1. ルール条件をモデリングします。アクション部分で、前述の関数のいずれか1つをコールして、リストの作成を完了します。図29-31に詳細を示します。

図29-31 ビジネス・ルール

「図29-31 ビジネス・ルール」の説明

ルール関数のパラメータは、Oracle JDeveloperモデリングでのパラメータに類似しています。Oracle JDeveloperでの構成に加え、Oracle Business Rulesデザイナでは、次の属性について複数の追加オプションを使用できます。

- responseType: レスポンス・タイプが「REQUIRED」の場合は、割当て先がタスクを操作する必要があります。それ以外の場合、割当てはFYI割当てに変換されます。

- ruleName: ルール名で割当ての理由を作成できます。

- lists: このオブジェクトは、作成されるリストの所有者です。このオプションをクリックすると、事前にアサートされたファクトのListsオブジェクトが表示されます。このオブジェクトはパラメータとして使用されます。

図29-32に、管理チェーンベースの参加者を指定するルールの例を示します。

図29-32 ビジネス・ルール

「図29-32 ビジネス・ルール」の説明

複数のルールが起動されると、最も高い優先度のルールに基づいて作成されたリスト・ビルダーが選択されます。

29.4.3.2 タスクの操作に対する時間制限の指定

ユーザー、グループまたはアプリケーション・ロールには、タスクの操作に関して与えられる時間を指定できます。ユーザー、グループまたはロールが指定の時間内に操作しないと、ヒューマン・タスク・エディタの「期限」セクション(ルーティング・スリップ・レベル)で設定したグローバルなエスカレーションおよび期限更新ポリシーが適用されます。たとえば、タスクをエスカレートするようにグローバル・ポリシーが設定されているときに、この参加者が指定の期間内に操作しない場合、そのタスクは必要に応じてマネージャまたは他のユーザーにエスカレートされます。

タスク操作に時間制限を指定する手順は、次のとおりです。

1. 図29-33に示すように、単一タイプの「参加者タイプの編集」ダイアログの「詳細」セクションを開きます。

図29-33 「参加者タイプの編集」の「詳細」セクション — 「単一」タイプ

「図29-33 「参加者タイプの編集」の「詳細」セクション — 「単一」タイプ」の説明

2. 「割当て済期間の制限の設定」を選択します。

3. 時間を指定します。
ヒューマン・タスク・エディタの「期限」セクションで、グローバルなエスカレーションおよび期限更新ポリシーを設定する方法の詳細は、第29.7項「タスクのエスカレート、期限更新または終了」を参照してください。

29.4.3.3 タスクへの他の参加者の招待

このワークフロー内の次の割当て先にタスクをルーティングする前に、他の参加者をタスク割当て先として招待できます。たとえば、承認ワークフローがJames CooperからJohn Steinbeckに進むとします。このオプションを選択すると、James Cooperは最初にIrving StoneにルーティングしてからJohn Steinbeckにルーティングするように指定できます。

これは非定型ルーティングとも呼ばれます。このオプションが選択されている場合は、実行時にOracle BPM Worklistの「アクション」リストに「非定型ルート」が追加されます。

他の参加者をタスクに招待する手順は、次のとおりです。

1. 図29-33に示すように、単一タイプの「参加者タイプの編集」ダイアログの「詳細」セクションを開きます。

2. 「この参加者による他の参加者の招待を許可」を選択します。

29.4.3.4 タスク参加者のバイパス

特定の条件が満たされている場合は、タスク参加者(ユーザー、グループまたはアプリケーション・ロール)をバイパスできます。たとえば、ユーザーが発行した出張旅費レポートが特定の金額を下回っている場合、マネージャによる承認は不要です。

タスクをバイパスする手順は、次のとおりです。

1. 図29-33に示すように、単一タイプの「参加者タイプの編集」ダイアログの「詳細」セクションを開きます。

2. 「スキップ・ルールの指定」を選択します。
これにより、「式ビルダー」ダイアログにアクセスして条件を作成するためのアイコンが表示されます。

タスク参加者をバイパスするための式は、ブール値に評価される必要があります。たとえば、/task:task/task:payload/order:orderAmount < 1000は、参加者をスキップするための有効なXPath式です。

動的なルール条件の作成の詳細は、第29.5.2項「ビジネス・ルールを使用した詳細タスク・ルーティングの指定方法」を参照してください。

29.4.4 パラレル参加者タイプの構成方法

図29-34および図29-35は、「パラレル」ダイアログの上部および下部のセクションを示しています。

この参加者タイプは、パラレルで作業する複数のユーザーが同時にタスクを操作する(たとえば、雇用に関するフローで複数のユーザーが応募者の採否を票決する)必要がある場合に使用します。結果が有効になるために必要な得票率(多数決や満場一致など)を指定します。

たとえば、ビジネス・プロセスでは、雇用プロセス中に面接担当者全員からフィードバックを収集し、それをとりまとめて各面接担当者に採用または不採用リクエストを割り当てます。最後に、面接担当者の大多数が不採用ではなく採用に投票すると、候補者が雇用されます。

図29-34 参加者タイプの編集 — 「パラレル」タイプ(ダイアログの上部セクション)

「図29-34 参加者タイプの編集 — 「パラレル」タイプ(ダイアログの上部セクション)」の説明

図29-35 参加者タイプの編集 — 「パラレル」タイプ(ダイアログの下部セクション)

「図29-35 参加者タイプの編集 — 「パラレル」タイプ(ダイアログの下部セクション)」の説明

参加者をパラレル参加者タイプに割り当てる手順は、次のとおりです。

1. 「ラベル」フィールドに、この参加者タイプを認識できるラベルを入力します。このラベル(Approval Manager、Primary Reviewersなど)は、タスク定義のすべての参加者の中で一意にする必要があります。
表29-8に、パラレル参加者タイプの「参加者タイプの編集」ダイアログの各サブセクションの構成方法を示します。

表29-8 参加者タイプの編集 — 「パラレル」タイプ

サブセクション

参照先

投票結果

第29.4.4.1項「投票結果の指定」

参加者リスト

第29.4.4.2項「パラレル・タスク参加者リストの作成」

割当て済期間の制限の設定(「詳細」セクション)

第29.4.4.3項「タスクの操作に対する時間制限の指定」

この参加者による他の参加者の招待を許可(「詳細」セクション)

第29.4.4.4項「タスクへの他の参加者の招待」

スキップ・ルールの指定(「詳細」セクション)

第29.4.4.5項「タスク参加者のバイパス」

29.4.4.1 投票結果の指定

「デフォルトの結果」リストで選択したデフォルトの結果よりも優先される投票結果を指定できます。この結果が有効になるのは、必要なパーセントに到達した場合です。結果はこの表にリストされている順序で評価されます。

グループ投票詳細を指定する手順は、次のとおりです。

1. パラレル・タイプの「参加者タイプの編集」ダイアログの「投票結果」セクションに移動します。

2. 「投票結果」列のリストから、タスクの結果(「Any」、「ACCEPT」、「REJECT」、第29.2.4項「タスクの結果の指定方法」で指定した他の結果など)を選択します。
「Any」結果を使用すると、実行時に結果を動的に決定できます。たとえば、「Any」を選択して、結果パーセントを60に設定した場合は、実行時に60%に到達した結果が最終投票結果になります。割当て先の60%が結果の却下に投票すると、その結果は却下されます。

3. 「結果タイプ」列のリストから、最終タスクの結果の決定方法を選択します。

- 式別: XPath式を使用して詳細を動的に指定します。

- パーセンテージ別: このタスクの結果が有効であると決定するパーセント値を指定します。

4. ステップ3での選択内容に基づいて、「値」列のリストに値を指定します。

- 「式別」を選択した場合は、このフィールドの右側にある「参照」アイコンをクリックし、式を作成するための「式ビルダー」ダイアログを表示します。

- 「パーセンテージ別」を選択した場合は、このタスクの結果が有効になるために必要なパーセント値を入力します。たとえば、多数決(51)や満場一致(100)などです。たとえば、予想される2つの結果(「ACCEPT」および「REJECT」)と、5つのサブタスクがあるとします。2つのサブタスクが承認され、3つが却下された場合に、承認に必要なパーセントが50に設定されていると、タスクの結果は却下になります。図29-36に詳細を示します。
この機能は確定的ではありません。たとえば、サブタスクが2つある場合に30%を選択することは無意味です。

図29-36 「投票結果」セクション

「図29-36 「投票結果」セクション」の説明

5. 「追加」アイコンをクリックして、追加の結果を指定します。

6. 「デフォルトの結果」リストで、同意パーセントの値に達しない場合にこのタスクで有効にするデフォルトの結果を選択するか、XPath式を入力します。この状況が発生するのは、得票数が同数の場合、またはタスクの有効期限が切れる前に応答しない参加者がいる場合です。第29.2.4項「タスクの結果の指定方法」で「結果」ダイアログに入力したシード済結果とカスタム結果は、このリストに表示されます。

7. さらにグループ投票詳細を指定します。

- 最小のパーセントに達するとただちに投票結果がトリガーされます
このサブセクションが選択されている場合は、完了したサブタスクの結果に基づいてタスクの結果を早期に計算でき、保留中のサブタスクの取消しが可能になります。たとえば、4人のユーザーがタスクの操作に割り当てられており、デフォルトの結果が「APPROVE」で、同意パーセントが「50」に設定されているとします。最初の2人のユーザーがタスクを承認した場合は、同意パーセント値に達しているため、第3および第4のユーザーがタスクを操作する必要はありません。

- 結果をトリガーせずにすべての投票の完了まで待機
このサブセクションが選択されている場合、ワークフローはすべてのレスポンスを待機してから結果を開始します。

8. コメントおよび添付ファイルをすべてのグループ協力者またはワークフロー参加者と共有するには、「添付ファイルとコメントの共有」を選択します。通常、この情報はOracle BPM Worklistのフッター・リージョンに表示されます。

29.4.4.2 パラレル・タスク参加者リストの作成

参加者のリストに割り当てられているユーザーは、タスクを操作できます。様々なタイプのリストを作成できます。

- 値ベースの名前と式のリスト

- 値ベースの管理チェーンのリスト

- ルールベースの名前と式のリスト

- ルールベースの管理チェーンのリスト

- ルールベースのリンク

これらの参加者リストの作成方法の詳細は、第29.4.3.1項「単一タスク参加者リストの作成」を参照してください。

29.4.4.3 タスクの操作に対する時間制限の指定

ユーザー、グループまたはアプリケーション・ロールには、タスクの操作に関して与えられる時間を指定できます。ユーザー、グループまたはロールが指定の時間内に操作しないと、ヒューマン・タスク・エディタの「期限」セクション(ルーティング・スリップ・レベル)で設定したグローバルなエスカレーションおよび期限更新ポリシーが適用されます。たとえば、タスクをエスカレートするようにグローバル・ポリシーが設定されているときに、この参加者が指定の期間内に操作しない場合、そのタスクは必要に応じてマネージャまたは他のユーザーにエスカレートされます。

タスク操作に時間制限を指定する手順は、次のとおりです。

1. パラレル・タイプの「参加者タイプの編集」ダイアログの「詳細」セクション(図29-35を参照)で、「詳細」アイコンをクリックしてセクションを開きます。

2. 「割当て済期間の制限の設定」を選択します。

3. 時間を指定します。

ヒューマン・タスク・エディタの「期限」セクションで、グローバルなエスカレーションおよび期限更新ポリシーを設定する方法の詳細は、第29.7項「タスクのエスカレート、期限更新または終了」を参照してください。

29.4.4.4 タスクへの他の参加者の招待

このワークフロー内の次の割当て先にタスクをルーティングする前に、他の参加者をタスク割当て先として招待できます。たとえば、承認ワークフローがJames CooperからJohn Steinbeckに進むとします。このオプションを選択すると、James Cooperは最初にIrving StoneにルーティングしてからJohn Steinbeckにルーティングするように指定できます。

他の参加者をタスクに招待する手順は、次のとおりです。

1. パラレル・タイプの「参加者タイプの編集」ダイアログの「詳細」セクションで、「詳細」アイコンをクリックしてセクションを開きます(開いていない場合)。

2. 「この参加者による他の参加者の招待を許可」を選択します。

29.4.4.5 タスク参加者のバイパス

特定の条件が満たされている場合は、タスク参加者(ユーザー、グループまたはアプリケーション・ロール)をバイパスできます。たとえば、ユーザーが発行した出張旅費レポートが特定の金額を下回っている場合、マネージャによる承認は不要です。

タスク参加者をバイパスする手順は、次のとおりです。

1. パラレル・タイプの「参加者タイプの編集」ダイアログで、「スキップ・ルールの指定」チェック・ボックスを選択します。
これにより、「式ビルダー」ダイアログにアクセスして条件を作成するためのアイコンが表示されます。式はブール値に評価される必要があります。

参加者をスキップするための有効なXPath式は、第29.4.3.4項「タスク参加者のバイパス」を参照してください。

29.4.5 シリアル参加者タイプの構成方法

図29-37に、「シリアル」ダイアログを示します。図29-38に、展開された「詳細」セクションを示します。

この参加者タイプを使用すると、ワークフロー用に参加者の順序リストを作成できます。たとえば、文書をJohn、MaryおよびScottに順番にレビューさせる場合は、この参加者タイプを使用します。シリアル参加者タイプの場合、参加者はユーザーまたはグループのリストになります。

図29-37 参加者タイプの編集 — 「シリアル」タイプ

「図29-37 参加者タイプの編集 — 「シリアル」タイプ」の説明

図29-38 参加者タイプの編集 — 「シリアル」タイプ(展開された「詳細」セクション)

「図29-38 参加者タイプの編集 — 「シリアル」タイプ(展開された「詳細」セクション)」の説明

シリアル参加者タイプを構成する手順は、次のとおりです。

1. 「ラベル」フィールドに、この参加者タイプを認識できるラベルを入力します。このラベル(Approval Manager、Primary Reviewersなど)は、タスク定義のすべての参加者の中で一意にする必要があります。
表29-9に、シリアル参加者タイプの「参加者タイプの編集」ダイアログの各サブセクションの構成方法を示します。

表29-9 参加者タイプの編集 — 「シリアル」タイプ

サブセクション

参照先

参加者リスト

第29.4.5.1項「シリアル・タスク参加者リストの作成」

割当て済期間の制限の設定(「詳細」セクション)

第29.4.5.2項「タスクの操作に対する時間制限の指定」

この参加者による他の参加者の招待を許可(「詳細」セクション)

第29.4.5.3項「タスクへの他の参加者の招待」

スキップ・ルールの指定(「詳細」セクション)

第29.4.5.4項「タスク参加者のバイパス」

29.4.5.1 シリアル・タスク参加者リストの作成

参加者のリストに割り当てられているユーザーは、タスクを操作できます。様々なタイプのリストを作成できます。

- 値ベースの名前と式のリスト

- 値ベースの管理チェーンのリスト

- ルールベースの名前と式のリスト

- ルールベースの管理チェーンのリスト

- ルールベースのリスト

これらの参加者リストを作成する方法は、第29.4.3.1項「単一タスク参加者リストの作成」を参照してください。

29.4.5.2 タスクの操作に対する時間制限の指定

ユーザー、グループまたはアプリケーション・ロールには、タスクの操作に関して与えられる時間を指定できます。ユーザー、グループまたはロールが指定の時間内に操作しないと、ヒューマン・タスク・エディタの「期限」セクション(ルーティング・スリップ・レベル)で設定したグローバルなエスカレーションおよび期限更新ポリシーが適用されます。たとえば、タスクをエスカレートするようにグローバル・ポリシーが設定されているときに、この参加者が指定の期間内に操作しない場合、そのタスクは必要に応じてマネージャまたは他のユーザーにエスカレートされます。

タスク操作に時間制限を指定する手順は、次のとおりです。

1. シリアル・タイプの「参加者タイプの編集」ダイアログの「詳細」セクション(図29-37を参照)で、「詳細」アイコンをクリックしてセクションを開きます。

2. 「割当て済期間の制限の設定」をクリックします。

3. 時間を指定します。
ヒューマン・タスク・エディタの「期限」セクションで、グローバルなエスカレーションおよび期限更新ポリシーを設定する方法の詳細は、第29.7項「タスクのエスカレート、期限更新または終了」を参照してください。

29.4.5.3 タスクへの他の参加者の招待

このワークフロー内の次の割当て先にタスクをルーティングする前に、他の参加者をタスク割当て先として招待できます。たとえば、承認ワークフローがJames CooperからJohn Steinbeckに進むとします。このオプションを選択すると、James Cooperは最初にIrving StoneにルーティングしてからJohn Steinbeckにルーティングするように指定できます。

他の参加者をタスクに招待する手順は、次のとおりです。

1. シリアル・タイプの「参加者タイプの編集」ダイアログの「詳細」セクションで、「詳細」アイコンをクリックしてセクションを開きます(まだ開いていない場合)。

2. 「この参加者による他の参加者の招待を許可」を選択します。

注意:

シリアル参加者タイプでは、次のようにして他の参加者を招待できます。

- 不定参加者をいつでも招待できることをグローバルに指定します。この場合、順次ワークフロー内であっても、承認者は順次ワークフローのあらゆるレベルで他の参加者を招待できます。

- ワークフローの特定の地点のみで他の参加者を臨時的に招待できることを指定します。この場合、他の不定参加者は、ワークフローの特定の地点のみで特別に招待されます。

29.4.5.4 タスク参加者のバイパス

特定の条件が満たされている場合は、タスク参加者(ユーザー、グループまたはアプリケーション・ロール)をバイパスできます。たとえば、ユーザーが発行した出張旅費レポートが特定の金額を下回っている場合、マネージャによる承認は不要です。

タスク参加者をバイパスする手順は、次のとおりです。

1. シリアル・タイプの「参加者タイプの編集」ダイアログの「詳細」セクションで、「スキップ・ルールの指定」チェック・ボックスを選択します。
これにより、「式ビルダー」ダイアログにアクセスして条件を作成するためのアイコンが表示されます。式はブール値に評価される必要があります。

参加者をスキップするための有効なXPath式は、第29.4.3.4項「タスク参加者のバイパス」を参照してください。

29.4.6 FYI参加者タイプの構成方法

図29-39に、「FYI」タイプの「参加者タイプの編集」ダイアログを示します。このダイアログの下部には、「参加者除外リスト」が含まれています(図29-39には表示されていません)。

この参加者タイプは、ユーザーにタスクを送信するが、ビジネス・プロセスでユーザーのレスポンスを待機しない場合に使用します。プロセスは単に継続されます。FYIはタスクの結果を直接左右できませんが、コメントを提供したり添付ファイルを追加できる場合があります。

たとえば、雑誌の購読契約の更新期日がきているとします。ユーザーが期日までに現在の購読契約を取り消さない場合は、購読契約の期限が更新されます。リクエストが期限切れになるかユーザーが操作するまで、このユーザーに週に1回ずつリマインダが送信されます。

図29-39 参加者タイプの編集 — 「FYI」タイプ

「図29-39 参加者タイプの編集 — 「FYI」タイプ」の説明

FYI参加者タイプを構成する手順は、次のとおりです。

1. 「ラベル」フィールドに、この参加者タイプを認識できるラベルを入力します。このラベル(Approval Manager、Primary Reviewersなど)は、タスク定義のすべての参加者の中で一意にする必要があります。

29.4.6.1 FYIタスク参加者リストの作成

参加者のリストに割り当てられているユーザーは、タスクを操作できます。様々なタイプのリストを作成できます。

- 値ベースの名前と式のリスト

- 値ベースの管理チェーンのリスト

- ルールベースの名前と式のリスト

- ルールベースの管理チェーンのリスト

- ルールベースのリスト

これらの参加者リストを作成する方法は、第29.4.3.1項「単一タスク参加者リストの作成」を参照してください。

29.5 ルーティング・ポリシーの選択

参加者タイプを構成してヒューマン・タスク・エディタに戻った後に、図29-40に示す「タスクは開始参加者から最終参加者へ移行します」アイコンをクリックします。

図29-40 ヒューマン・タスク・エディタ — 「割当て」セクション

「図29-40 ヒューマン・タスク・エディタ — 「割当て」セクション」の説明

これによって、図29-41に示す「割当ての構成」ダイアログが表示され、ワークフローを介してタスクをルーティングする方法を指定できます。

図29-41 割当ての構成

「図29-41 割当ての構成」の説明

表29-10に、用意されているルーティング・ポリシー・メソッドを示します。

表29-10 ルーティング・ポリシー・メソッド

ルーティング・ポリシーの選択

このポリシーを使用する環境

セクション

指定した順序で全参加者へタスクをルート

このポリシーを選択すると、次のサブオプションを指定できます。

タスクは、参加者の表示順に従って各参加者にルーティングする必要があります。これは事前に決定されているデフォルトのルーティングです。たとえば、雇用プロセスで、3人のユーザーが面接して検討結果を提供する場合、タスクは人事部に送信されます。

第29.5.1項「指定した順序でタスクを全参加者にルーティングする方法」

- 全参加者による他の参加者の招待を許可

参加者は、タスクを承認する際に、ユーザーまたはグループを次の割当て先(臨時)として選択できます。

第29.5.1.1項「全参加者による他の参加者の招待の許可」

- 参加者が次を選択するとタスクを完了: <結果>

タスクの参加者が、タスクを承認または却下できます。したがって、他の参加者にタスクが送信されずにワークフローが終了します。たとえば、マネージャが却下した注文書は、レビューのためにそのマネージャのマネージャに送信されません。

第29.5.1.2項「他の参加者へのタスクのルーティングの停止」

- パラレル・サブタスクで早期完了を有効化

注意: このオプションは、複数のステージがあり、参加者がパラレルで作業する環境を意図しています。

参加者はサブタスクをパラレルで実行し、あるグループでのサブタスクの却下または承認が、他のグループでのサブタスクの却下または承認の原因になることはありません。

第29.5.1.3項「パラレル・サブタスクでの早期完了の有効化」

- 早期完了するサブタスクの親タスクを完了

注意: このオプションは、複数のステージがあり、参加者がパラレルで作業する環境を意図しています。

参加者はサブタスクをパラレルで実行し、あるグループでのサブタスクの却下または承認が、他のグループでのサブタスクの却下または承認の原因となります。

第29.5.1.4項「早期完了するサブタスクの親サブタスクの完了」

拡張ルールの使用

タスクのルーティング先の参加者は、モデリングしたビジネス・ルール・ロジックによって判断されます。たとえば、融資申請タスクは、融資エージェント、そのマネージャおよびシニア・マネージャを経由するように設計されているとします。この場合、融資エージェントは承認したが、そのマネージャが却下すると、その融資申請タスクは融資エージェントに戻されます。

第29.5.2項「ビジネス・ルールを使用した詳細タスク・ルーティングの指定方法」

外部ルーティングを使用

タスクの参加者は動的に決定されます。たとえば、ある企業のルールでは、タスク参加者は、実行時に決定しバックエンド・データベースから取得する必要があります。

第29.5.3項「外部ルーティングの使用方法」

「割当て」タブ

参加者に、失敗したタスクがリカバリの目的で割り当てられます。

第29.5.4項「エラー割当て先の構成方法」

29.5.1 指定した順序でタスクを全参加者にルーティングする方法

選択された参加者全員がタスクをレビューするように選択できます。これは、表示された順序で各参加者にタスクがルーティングされるデフォルト・ルーティングです。このタイプのルーティングは、ステート・マシン・ベースのルーティングとは異なります。

指定した順序でタスクを全参加者にルーティングする手順は、次のとおりです。

1. 「割当て」セクションで、「タスクは開始参加者から最終参加者へ移行します」の右側にあるアイコンをクリックします。

2. 図29-42に示すように、リストから「指定した順序で全参加者へタスクをルート」を選択します。

図29-42 全参加者へのタスクのルーティング

「図29-42 全参加者へのタスクのルーティング」の説明

ルーティング・ポリシーの定義方法は、次の各タスクを参照してください。

- 全参加者による他の参加者の招待の許可

- 参加者の選択によるタスクの完了

- パラレル・サブタスクでの早期完了の有効化

- 早期完了するサブタスクの親サブタスクの完了

29.5.1.1 全参加者による他の参加者の招待の許可

このチェック・ボックスは、10.1.3より前のOracle BPEL Process Managerリリースの非定型ワークフロー・パターンに相当します。これは、参加者が1人以上存在する場合に適用されます。この場合は、各ユーザーがタスクの承認時に次の割当て先としてユーザーまたはグループを選択します。

全参加者に対して他の参加者の招待を許可する手順は、次のとおりです。

1. 「割当て」セクションで、「タスクは開始参加者から最終参加者へ移行します」の右側にあるアイコンをクリックします。

2. 「指定した順序で全参加者へタスクをルート」を選択します。

3. 「全参加者による他の参加者の招待を許可」チェック・ボックスを選択し、このタスクの割当て先がこのワークフローの次の割当て先にルーティングする前に、他の参加者をワークフローに招待できるようにします。

29.5.1.2 他の参加者へのタスクのルーティングの停止

ワークフローの他の参加者に関係なくタスクを早期完了させる条件を指定できます。

たとえば、経費レポートがマネージャに送信されてから取締役に送信されるとします。最初の参加者(マネージャ)がレポートを却下した場合は、次の参加者(取締役)に送信せずにワークフローを終了できます。

条件付き中途完了を設定する手順は、次のとおりです。

1. 「割当て」セクションで、「タスクは開始参加者から最終参加者へ移行します」の右側にあるアイコンをクリックします。

2. リストから「指定した順序で全参加者へタスクをルート」を選択します。

3. 「参加者が次を選択するとタスクを完了: <結果>」チェック・ボックスを選択します。
「中途完了の詳細」ダイアログが表示されます。

タスクの中途完了を指定するには、次の2つの方法があります。

- 結果

- XPath式のルーティング条件

結果を指定した場合は、選択したタスクの結果が発生すると、そのタスクが完了します。結果とルーティング条件の両方を指定した場合は、ワークフロー・サービスにより2つの条件の論理OR演算子が実行されます。

4. 図29-43に示すように、適切な結果を選択して「>」ボタンをクリックします。すべてを選択するには、「>>」ボタンをクリックします。

図29-43 中途完了の詳細

「図29-43 中途完了の詳細」の説明

5. 「ルーティング条件」フィールドの右側にあるアイコンをクリックして「式ビルダー」ダイアログを表示すると、このダイアログで、このタスクを中途完了させる条件を動的に作成できます。たとえば、ユーザーが発行した出張旅費レポートが特定の金額を下回っている場合、マネージャによる承認は不要です。
早期完了のXPath式は、少なくとも1人のユーザーのタスク操作が完了するまで評価されません。

6. 早期完了を有効化するには、「パラレル・サブタスクで早期完了を有効化」をクリックします。詳細は、第29.5.1.3項「パラレル・サブタスクでの早期完了の有効化」を参照してください。

7. 親タスクの早期完了を有効化するには、「早期完了するサブタスクの親タスクを完了」をクリックします。詳細は、第29.5.1.4項「早期完了するサブタスクの親サブタスクの完了」を参照してください。

8. 「OK」をクリックしてヒューマン・タスク・エディタに戻ります。
「参加者が次を選択するとタスクを完了: <結果>」チェック・ボックスの右側にあるアイコンをクリックすると、この情報を編集できます。

29.5.1.3 パラレル・サブタスクでの早期完了の有効化

このオプションは、次の環境で使用できます。

- 複数のステージがあり、参加者のグループがパラレルでサブタスクを実行する環境。

- 1グループの参加者がサブタスクを承認または却下する環境。この場合、同じグループ内の他の参加者によるタスクの操作は停止されます。ただし、他のパラレル・グループによるサブタスクの操作は停止されません。このグループでは、タスクの操作が続行されます。

たとえば、それぞれが別のステージにある2つのパラレル・サブグループがあるとします。一方のグループは、注文の明細を操作します。他方のグループは、同じ注文のヘッダーを操作します。第1グループの参加者ApproveLines.Participant2が明細を却下すると、第1グループの他のすべてのタスク参加者は、タスクの操作を停止します。一方、第2パラレル・グループは注文ヘッダーの操作を続行します。このシナリオでは、タスク全体は早期完了しません。図29-44に詳細を示します。

図29-44 パラレル・サブタスクの早期完了

「図29-44 パラレル・サブタスクの早期完了」の説明

29.5.1.4 早期完了するサブタスクの親サブタスクの完了

このオプションは、次の環境で使用できます。

- 複数のステージがあり、参加者のグループがパラレルでサブタスクを実行する環境。

- 1グループの参加者がサブタスクを承認または却下する環境。この場合、同じグループ内の他の参加者によるタスクの操作は停止されます。これにより、他のパラレル・グループによるサブタスクの操作も停止されます。

たとえば、図29-44に示すように、それぞれが別のステージにある2つのパラレル・サブグループがあるとします。一方のグループは、注文の明細を操作します。他方のグループは、同じ注文のヘッダーを操作します。第1グループの参加者ApproveLines.Participant2が明細を却下すると、第1グループの他のすべてのタスク参加者は、タスクの操作を停止します。さらに、第2パラレル・グループも注文ヘッダーの操作を停止します。このシナリオでは、タスク全体が早期完了します。

29.5.2 ビジネス・ルールを使用した詳細タスク・ルーティングの指定方法

複雑なワークフロー・ルーティング・シナリオを作成するには、拡張ルーティング・ルールを使用します。参加者タイプ(単一、パラレル、シリアル、FYI)は、中途完了、割当て先のスキップなどの基本条件を使用して、一連のユーザーから別のユーザーに直線的なフローを作成する際に使用されます。ただし、多くの場合、ワークフローの複数のユーザー間で、より複雑な前後へのルーティングを実行することが必要になります。1つの選択肢は、これらのタスクの調整として、BPELプロセスを使用することです。もう1つの選択肢は、ビジネス・ルールを使用して宣言的にルーティングを指定することです。この項では、ヒューマン・タスク・エディタとビジネス・ルールを使用して、これらの複雑な相互作用をモデリングする方法について説明します。

29.5.2.1 ビジネス・ルールを使用した詳細タスク・ルーティングの概要

ステート・マシン・ルーティング・ルールは、Oracle Business Rulesを使用して定義できます。このアクションによって、評価されるOracle Business Rulesを作成できます。

- その前に、ルーティング・スリップ・タスク参加者がタスクの結果を設定します。

- その後に、タスクが次のルーティング・スリップ参加者に割り当てられます。

このアクションにより、第29.5.1項「指定した順序でタスクを全参加者にルーティングする方法」に説明されている標準的なタスク・ルーティング・スリップのメソッドを上書きし、タスクに対して複雑なルーティング動作を作成できます。

Oracle Business Rulesを使用して、ビジネス・オブジェクト(ファクトと呼ばれる)に依存する一連のルール(ルールセットと呼ばれる)を定義し、実行するアクションを判断します。

29.5.2.2 ファクト

ファクトとは、特定のビジネス・データを備えたオブジェクトです。ルーティング・スリップの割当て先がタスクの結果を設定するたびに、タスクを次の割当て先に自動的にルーティングするかわりに、タスク・サービスが次のステップを実行します。

- ファクトをデシジョン・サービスにアサートします。

- 拡張ルーティング・ルールセットを実行します。

ルールでは、アサートされたファクトの値をテストし、TaskActionファクト・タイプに値を設定することで、ルーティングの動作を指定できます。

表29-11は、タスク・サービスによりアサートされたファクト・タイプを示しています。

表29-11 タスク・サービスによりアサートされたファクト・タイプ

ファクト・タイプ

説明

Task

このファクトには、ワークフロー・タスク・インスタンスの現在の状態が含まれます。すべてのタスク属性がタスクに対してテストされます。タスク・ファクトには現在のタスク・ペイロードも含まれます。このファクトを使用すると、ペイロード値およびタスク属性値との照合テストを構築できます。

PreviousOutcome

このファクトには、前回のタスクの結果と、結果を設定した割当て先が記述されます。このファクトには、次の属性が含まれます。

- actualParticipant(実際の参加者): タスクの結果を設定した参加者の名前(jsteinなど)。

- logicalParticipant(論理上の参加者): タスクの結果を設定する責任があるルーティング・スリップ参加者の論理名またはラベル(assignee1など)。

- outcome(結果): 設定された結果(approve、rejectなど)。

- level(レベル): 前の参加者が管理チェーンの一部の場合、この属性にはそのレベルが記録されます(1は、チェーンの第1レベルを示します)。他の参加者タイプの場合、値は-1です。

- totalNumberOfApprovals(承認の総数): 現在のタスクの結果を設定したユーザーの総数。

TaskAction

このファクトは、書込みルールのテストを意図したものではありません。かわりに、このファクトはルールセットによって更新され、タスクのルーティング方法を示すためにタスク・サービスに返されます。ルールでTaskActionファクトを直接更新することはできません。かわりに、第29.5.2.3項「アクション・タイプ」の説明に従って、RL関数の1つをコールする必要があります。これらの関数によって、TaskActionファクトの更新が適切な値で処理されます。

ワークフロー・ルーティング・ルールのみで使用できるファクト・タイプと、ワークフロー参加者ルールのみで使用できるファクト・タイプがあります。表29-12に、それぞれのタイプを使用できるルールを示します。

表29-12 ファクト・タイプの使用

ファクト・タイプ

ルーティング・ルールでの使用

参加者ルールでの使用

Task

はい

はい

PreviousOutcome

はい

いいえ

TaskAction

はい

いいえ

Lists

いいえ

はい

RoutingSlipObjectFactory

いいえ

はい

ResourceListType

いいえ

はい

ManagementChainListType

いいえ

はい

ResourceType

いいえ

はい

ParameterType

いいえ

はい

AutoActionType

いいえ

はい

ResponseType

いいえ

はい

29.5.2.3 アクション・タイプ

タスクのルーティング方法をタスク・サービスに指示するために、ルールでは多数のタスク・アクションの1つを指定できます。この指定は、ルール・セッションにアサートされたTaskActionファクトを更新することによって実行されます。ただし、ルールでTaskActionファクトを直接更新することはできません。かわりに、アクションRL関数の1つをコールし、TaskActionファクトをパラメータとして渡す必要があります。これらの関数によって、ファクトへの実際の更新が処理されます。たとえば、先に進むアクションを指定するには、call GO_FORWARD(TaskAction)をルールのアクション部分に追加する必要があります。

ステート・マシン・ルーティング・ルールが評価されるたびに、ルールは表29-13に記載されているアクションの1つを実行します。

表29-13 ビジネス・ルールのアクション

アクション

説明

パラメータ

GO_FORWARD

ルーティング・スリップの次の参加者に進みます(デフォルト動作)。

なし

PUSHBACK

ルーティング・スリップの前の参加者(直前にタスクの結果を設定した前の参加者)に戻ります。

なし

GOTO

ルーティング・スリップでの特定の参加者に進みます。

participant'

タスクをルーティングする参加者のラベルを識別する文字列です(Approver1など)。

COMPLETE

ルーティングを終了し、タスクを完了します。タスクが完了としてマークされ、ルーティングがさらに要求されることはありません。

なし

ESCALATE

タスク・エスカレーション・ポリシーに従って(通常は現在の割当て先のマネージャに)タスクをエスカレートし、再割当てします。

なし

29.5.2.4 サンプル・ルールセット

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

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

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

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

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

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

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

- 早期承認ルール(図29-45):

図29-45 早期承認ルール

「図29-45 早期承認ルール」の説明

- 却下されたルールのプッシュバック(図29-46):

図29-46 却下されたルールのプッシュバック

「図29-46 却下されたルールのプッシュバック」の説明

- Assignee1が却下したルールの完了(図29-47):

図29-47 Assignee1が却下したルールの完了

「図29-47 Assignee1が却下したルールの完了」の説明

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

29.5.2.5 リンク・ディクショナリのサポート

ヒューマン・ワークフローで、ビジネス・ルール・アーティファクトが2つのルール・ディクショナリに格納されるようになりました。これは、アプリケーションをカスタマイズする必要があるシナリオで役立ちます。たとえば、アプリケーションのバージョン1を作成して、顧客に発送するとします。顧客は、Oracle SOAコンポーザを使用してアプリケーションのルールセットをカスタマイズできます。このカスタマイズされたルールセットが、ベース・ルール・ディクショナリとは別のルール・ディクショナリに格納されるようになりました。カスタマイズされたルールセットが格納されるルール・ディクショナリは、ベース・ディクショナリのルールとリンクしています。後でアプリケーションのバージョン2を発送するときに、製品に導入された追加の変更がベース・ルール・ディクショナリに含まれている場合があります。顧客が以前に行ったルールセットのカスタマイズによる変更も保持されているため、ベース・ディクショナリの新規の変更で使用できます。ルールを使用するタスクを含む既存のアプリケーションが開かれたときに、そのルールが1つのディクショナリを使用する古い形式の場合、ルールは自動的にアップグレードされ、次の2つのルール・ディクショナリに分割されます。

- ベース・ディクショナリ

- カスタム・ディクショナリ

カスタマイズの詳細は、該当する項を参照してください。

29.5.2.6 拡張ルーティング・ルールの作成

拡張ルーティング・ルールを作成する手順は、次のとおりです。

1. 「割当て」セクションで、「タスクは開始参加者から最終参加者へ移行します」の右側にあるアイコンをクリックします。

2. リストから「拡張ルールの使用」を選択します。

3. 図29-48に示すように、「ルール・ディクショナリ」の右側にある「編集」アイコンをクリックします。

図29-48 ルール・ディクショナリの作成

「図29-48 ルール・ディクショナリの作成」の説明

これにより、Oracle Business Rulesデザイナ(図29-49を参照)が開始されます。ルール・デザイナにはリポジトリが事前にシードされており、必要なすべてのファクト定義が格納されています。ディクショナリ用のデシジョン・サービス・コンポーネントが作成され、タスク・サービス・コンポーネントに関連付けられます。

図29-49 ヒューマン・タスク・ルール・ディクショナリ

「図29-49 ヒューマン・タスク・ルール・ディクショナリ」の説明

4. Oracle Business Rulesを使用して、タスクのステート・マシン・ルーティング・ルールを定義します。
これにより、ヒューマン・タスク内で完全に接続されたデシジョン・サービスと、関連するルール・リポジトリとデータ・モデルが自動的に作成されます。

ビジネス・ルールの詳細は、次のドキュメントを参照してください。

- 第29.5.2.4項「サンプル・ルールセット」(ヒューマン・タスク・ルールセットの例)

- 『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』

- 『Oracle Fusion Middleware Oracle Business Rulesランゲージ・リファレンス・ガイド』

29.5.3 外部ルーティングの使用方法

ワークフローの参加者を動的に決定する外部ルーティング・サービスを構成します。このルーティング・ポリシーを指定すると、他の参加者タイプはすべて無視されます。タスクのルーティングを決定する参加者タイプ(単一承認者、シリアル承認者、パラレル承認者など)のリストを実行時に提供するのは、外部ルーティング・サービスとみなされています。

このオプションは、タスク割当て先の決定にルーティング・ルールを使用しない場合に使用します。この場合、タスク割当てのすべてのロジックは、外部ルーティング・サービスに委任されます。

注意:

「割当ての構成」ダイアログで「外部ルーティングを使用」を選択した場合は、Javaクラスを指定し、「OK」をクリックして終了します。次回、このダイアログを開くと、ドロップダウン・リストには、他の2つの選択肢(「指定した順序で全参加者へタスクをルート」および「拡張ルールの使用」)は表示されません。3つの選択肢すべてに再度アクセスするには、割当て全体を削除する必要があります。

外部ルーティングを使用する手順は、次のとおりです。

1. 「割当て」セクションで、「タスクは開始参加者から最終参加者へ移行します」の右側にあるアイコンをクリックします。

2. リストから「外部ルーティングを使用」を選択します。

3. 図29-50に示すように、「編集」アイコンをクリックします。

図29-50 「外部ルーティングを使用」の選択

「図29-50 「外部ルーティングを使用」の選択」の説明

図29-51に示すように、外部ルーティング・ダイアログが表示されます。

図29-51 「外部ルーティングを使用」ダイアログ

「図29-51 「外部ルーティングを使用」ダイアログ」の説明

4. 「クラス名」フィールドで、完全修飾クラス・ファイル名(org.mycompany.tasks.RoutingServiceクラス名など)を入力します。このクラスは、次のインタフェースを実装している必要があります。

oracle.bpel.services.workflow.task.IAssignmentService

5. 表29-14に示すように、外部サービスに渡す名前またはXPath式別に、名前/値ペアのパラメータを追加します。

表29-14 外部ルーティング

フィールド

説明

名前別

「名前」フィールドに名前を入力し、「値」フィールドに値を入力します。

式別

名前を入力し、フィールドの右側にあるアイコンをクリックして「式ビルダー」ダイアログを表示し、値を動的に入力します。

6. 「追加」アイコンをクリックし、その他の名前/値ペアのパラメータを追加します。

29.5.4 エラー割当て先の構成方法

タスクは、間違った割当てなどの理由でエラーになることがあります。このようなエラーが発生すると、タスクは、修正処理を実行するエラー割当て先に割り当てられます。リカバリ可能なエラーは、次のとおりです。

- すべての参加者に対して無効なユーザーおよびグループ。

- 割当て先および有効期間に関連する無効なXPath式。

- 有効期限のエスカレーション・エラー。

- エスカレーション・ポリシーの評価

- 期限更新ポリシーの評価

- 管理チェーンの計算。

- 動的割当てルールの評価。タスクは、現在はエラーではありませんが、現在のユーザーに割り当てられたままです。したがって、リカバリ可能です。

- 動的割当ての循環割当て(「ユーザーA」→「ユーザーB」→「ユーザーA」など)。タスクは、現在はエラーではありませんが、チェーンの最終ユーザーに割り当てられたままです。したがって、リカバリ可能です。

次のエラーは、リカバリ可能ではありません。このような場合、タスクは終了状態ERROREDに移動します。

- 無効なタスク・メタデータ

- 読取り不可のタスク・メタデータ。

- ステート・マシン・ルールからの無効なGOTO参加者。

- 割当てサービスが見つからない場合。

- 割当てサービスによるエラー。

- カスタム・エスカレート関数の評価。

- パラレルのデフォルト結果とパーセント値に対する無効なXPathおよび値。

ワークフローのエラー割当て先は、ワークフロー・タスクのモデリング中に指定できます。エラー割当て先が指定されている場合は、その割当て先が評価されてタスクが割り当てられます。実行時にエラー割当て先が指定されていない場合は、管理ユーザーが検索され、アラート状態のタスクが割り当てられます。エラー割当て先は、次のいずれかのアクションを実行します。

- 非定型ルート
タスクを、そのタスクに実際に割り当てられているユーザーにルーティングします。非定型ルーティングを使用すると、タスクを順番に、またはパラレルなどでユーザーにルーティングできます。

- 再割当て
タスクを、このタスクに実際に割り当てられているユーザーに再割当てします。

- エラー・タスク
このタスクを修正できないことを示します。

エラー割当て先の評価中にエラーがあると、タスクはエラー発生としてマークされます。

このダイアログでは、割当てエラーが発生した場合にタスク割当て先となるユーザーまたはグループを指定できます。

エラー割当て先を構成する手順は、次のとおりです。

1. 「割当て」セクションで、「タスクは開始参加者から最終参加者へ移行します」の右側にあるアイコンをクリックします。

2. 「割当て」タブをクリックします。

3. 図29-52に示すように、「追加」アイコンをクリックして、レビューアまたはエラー割当て先を割り当てます。

図29-52 エラー割当て詳細

「図29-52 エラー割当て詳細」の説明

4. 「追加」アイコンをクリックし、このタスクに参加するユーザー、グループまたはアプリケーション・ロールを選択します。
「開始参加者」表の「識別タイプ」列に、選択したユーザー、グループまたはアプリケーション・ロールが表示されます。

5. ユーザー、グループまたはアプリケーション・ロールを選択する手順の詳細は、第29.4.3.1項「単一タスク参加者リストの作成」のステップ5から7を参照してください。

6. パラレル参加者タイプを使用する場合は、サブタスク・ペイロードの格納場所を次のオプションで指定できます。

- サーバー設定を使用
Oracle Enterprise Manager Fusion Middleware ControlのSharePayloadAcrossAllParallelApproversシステムMBeanブラウザ・ブール型プロパティで、ルート・タスク内のサブタスクのペイロードを共有するかどうかを決定します。デフォルトで、このプロパティは「true」に設定されています。「true」に設定されている場合、「すべてのタスク参加者が同じペイロードを共有(パフォーマンスが向上し、記憶域のスペースが削減されます)」オプションが使用されます。このプロパティを「false」に設定すると、「各パラレル参加者がペイロードのローカル・コピーを所有」オプションが使用されます。このプロパティを変更するには、次の手順を実行します。

1. 「soa-infra」を右クリックして、「管理」→「システムMBeanブラウザ」の順に選択します。

2. 「アプリケーション定義のMBean」→「oracle.as.soainfra.config」→「サーバー: server_name」→「WorkflowConfig」→「human-workflow」の順に開きます。

3. 「SharePayloadAcrossAllParallelApprovers」をクリックします。

4. リストでこのプロパティを変更し、「適用」をクリックします。

- すべてのタスク参加者が同じペイロードを共有(パフォーマンスが向上し、記憶域のスペースが削減されます)
サブタスクのペイロードは、そのサブタスクのルート・タスクに格納されます。この状況は、ルート・タスクのペイロードが、そのサブタスクすべてで共有されることを意味します。内部的には、このオプションによってパフォーマンスが向上し、記憶域のスペース使用が削減されます。記憶域のスペース使用が削減されるのは、ルート・タスクのペイロードが、そのサブタスクすべてで共有されるためです。

- 各パラレル参加者がペイロードのローカル・コピーを所有
各サブタスクが独自にペイロードのコピーを持ちます。内部的には、このオプションを使用すると、より大きな記憶域のスペースが使用されるため、パフォーマンスが低下し、記憶域のスペース消費が増加します。

7. 「OK」をクリックします。

ユーザー、グループまたはアプリケーション・ロールの詳細は、第27.2.1.1.3項「参加者の割当て」を参照してください。

29.6 多言語設定とスタイルシートの指定

図29-53に示すように、「プレゼンテーション」セクションでは、Oracle BPM Worklistで様々な言語でタスク詳細を表示するためのリソース・バンドルを指定したり、添付ファイルのWordMLおよびカスタム・スタイル・シートを指定できます。

図29-53 「プレゼンテーション」セクション

「図29-53 「プレゼンテーション」セクション」の説明

29.6.1 添付ファイルとしてのWordMLスタイルシートとその他のスタイルシートの指定方法

添付ファイルのWordMLスタイルシートを指定する手順は、次のとおりです。

1. 「プレゼンテーション」セクションの「添付ファイルのスタイルシート」リストで、次のオプションのいずれかを選択します。

- Word ML: このオプションを使用すると、WordML XSLTスタイルシートを使用して電子メール添付ファイルとして送信するためのMicrosoft Word文書を動的に作成できます。XSLTスタイルシートは、タスク・ドキュメントに適用されます。

- その他: このオプションを使用すると、XSLTスタイルシートを使用して電子メール添付ファイルを作成できます。XSLTスタイルシートは、タスク・ドキュメントに適用されます。

2. 「検索」アイコンをクリックし、添付ファイルとして使用するスタイル・シートを選択します。

29.6.2 多言語設定の指定方法

リソース・バンドルは、Oracle BPM Worklistで様々な言語でタスク詳細を表示するように指定できます。次のタスク詳細でリソース・バンドルがサポートされます。

- プレーン・テキストまたはmessage(key)書式によるタスクの結果値の表示。

- 様々な言語による電子メール通知メッセージの有効化。実行時にXPath拡張関数hwf:getTaskResourceBundleString(taskId, key, locale?)を指定して、指定したリソース・バンドルから国際化された文字列を取得します。通知受信者のロケールは、関数hwf:getNotificationProperty(propertyName)で取得できます。

リソース・バンドルは単純にプロパティ・ファイルでもあります。たとえば、タスクの結果の表示名を構成するリソース・バンドルは、次のようになります。

- APPROVE=Approve

- REJECT=Reject

多言語設定を指定する手順は、次のとおりです。

1. 「プレゼンテーション」セクションで、「リソース・バンドル」の横にある「追加」アイコンをクリックします。
図29-54に示す「リソースの詳細」ダイアログが表示されます。

図29-54 「リソースの詳細」ダイアログ

「図29-54 「リソースの詳細」ダイアログ」の説明

2. 「リソース名」フィールドで、リソース・バンドルに使用するリソース名を入力します。このファイルは.propertiesベースのリソース・バンドル・ファイルである必要があります。

3. 「リソースの場所」フィールドで、「検索」アイコンをクリックし、使用するJARまたはZIPリソース・バンドル・ファイルを選択します。リソース・バンドルはシステム・アーカイブ(SAR)ファイルの一部です。
リソース・バンドルがコンポジット・プロジェクト外部にある場合は、SCA-INF/libにローカル・コピーを格納するように求めるプロンプトが表示されます。

リソース・バンドル・ファイルがコンポジット・クラス・ローダー(SCA-INF/classesの直下またはSCA-INF/libのJARファイル内)にない場合は、そのファイルがある場所を指定する必要があります。たとえば、リソース・バンドルがコンポジット・クラス・ローダー外部の場所(たとえば、http://host:port/bundleApp/taskBundles.jarのようなHTTPの場所など)からアクセス可能な場合は、その場所をこのフィールドに指定する必要があります。

4. 「OK」をクリックしてヒューマン・タスク・エディタに戻ります。
詳細は次の項を参照してください。

29.7 タスクのエスカレート、期限更新または終了

図29-55に、ヒューマン・タスク・エディタの「期限」セクションを示します。

このグローバル・ポリシー・セクション(ルーティング・スリップ・レベル)で、タスクの有効期間を指定できます。有効期間を参加者タイプ・レベルではなくルーティング・スリップ・レベルで指定すると、この期間は全参加者のタスクの有効期間となります。ただし、参加者タイプ・レベルで(「割当て済期間の制限の設定」チェック・ボックスを介して)有効期間を指定すると、その設定は「期限」セクション(ルーティング・スリップ・レベル)で指定した設定よりも優先されます。

指定した期間後にタスクがユーザーのマネージャにエスカレートされるように指定できます。詳細は、第29.4.3.2項「タスクの操作に対する時間制限の指定」を参照してください。

図29-55 ヒューマン・タスク・エディタ — 「期限」セクション

「図29-55 ヒューマン・タスク・エディタ — 「期限」セクション」の説明

29.7.1 エスカレーションおよび有効期限ポリシーの概要

この項では、このレベルで有効期間を指定し、その設定を参加者全員のタスクの有効期間にする方法の概要を説明します。

たとえば、図29-56に示すように、参加者LoanAgentGroupおよび参加者Supervisorの両者間でタスクを操作するための日数が3日であるとします。

図29-56 「期限切れまでの時間」ポリシー

「図29-56 「期限切れまでの時間」ポリシー」の説明

参加者レベルまたはこのルーティング・スリップ・レベルで有効期限が指定されていない場合、そのタスクの有効期間設定はありません。

参加者のいずれかのレベルで有効期間が設定されている場合、その参加者には対応する有効期間が使用されます。ただし、参加者レベルの有効期間が設定されていない参加者には、引き続きグローバルな有効期間が使用されます。グローバルな有効期間は、常にタスクでの経過時間だけ減分されます。

参加者について参加者レベルの有効期限を解析するためのポリシーは、次のとおりです。

- シリアル
「管理チェーン」内の各割当ては、「シリアル」で指定されている内容と同じ有効期間を取得します。期間は、この割当てによって生じるすべての割当てに対するものではありません。タスクが管理チェーン内のいずれかの割当てで有効期限に達すると、エスカレーションおよび期限更新ポリシーが適用されます。

- パラレル

- パラレル・ワークフローでは、パラレル参加者がリソースとして指定されている場合は、リソースごとにルーティング・スリップが作成されます。作成された各ルーティング・スリップの有効期間には、次のルールが適用されます。

- パラレル参加者の有効期間が指定されている場合は、それと同じ有効期間。

- ルーティング・スリップ・レベルで指定されている場合は、タスクに残っている有効期間。

- それ以外は有効期間なし。

- パラレル参加者がルーティング・スリップとして指定されている場合、その有効期間はルーティング・スリップにより決定されます。

注意:

パラレル・タスク内で親タスクが期限切れになった場合、期限切れになっていないサブタスクや未完了のサブタスクは取り消されます。

29.7.2 期限切れがないポリシーの指定方法

タスクが期限切れにならないように指定できます。

「期限切れなし」ポリシーを指定する手順は、次のとおりです。

1. 図29-55に示すように、「期限」セクションのドロップダウン・リストで、「期限切れなし」を選択します。

29.7.3 期限切れがあるポリシーの指定方法

タスクに有効期限を指定できます。タスクが期限切れになると、ルーティング・スリップ・レベルのエスカレーション・ポリシーまたは期限更新ポリシーが適用されます。どちらのポリシーも指定されていない場合、タスクは期限切れになります。ルーティング・スリップ・レベルの有効期限ポリシーは、すべての参加者に共通です。

タスクに有効期限を指定する手順は、次のとおりです。

1. 図29-57に示すように、「期限」セクションのドロップダウン・リストで、「期限切れまでの時間」を選択します。

2. タスクがオープンになっている最大期間を指定します。
パラレル参加者に対する有効期限ポリシーは、次のように解析されます。

- パラレル参加者がパラレル要素でリソースとして指定されている場合、各パラレル参加者に対する有効期限ポリシーはありません。

- パラレル参加者がルーティング・スリップとして指定されている場合、そのパラレル参加者にはルーティング・スリップの有効期限ポリシーが適用されます。

図29-57は、タスクが3日で期限切れになることを示しています。

図29-57 「期限切れまでの時間」ポリシー

「図29-57 「期限切れまでの時間」ポリシー」の説明

29.7.4 有効期限ポリシー期間の延長方法

ユーザーが割当て時間内に応答しない場合は、有効期限の期間を延長できます。このためには、期限切れの際にタスクの期限を更新できる回数(3回の追加更新など)と各期限更新期間(期限更新ごとに3日間など)を指定します。

有効期限ポリシー期間を延長する手順は、次のとおりです。

1. 図29-58に示すように、「期限」セクションのドロップダウン・リストで、「期限更新までの時間」を選択します。

2. このタスクの期限更新を継続する最大回数を指定します。
図29-58では、タスクが期限切れになると、最大3回まで期限が更新されます。タスクが参加者LoanAgentGroupの手元で期限切れになるか、参加者Supervisorの手元で期限切れになるかは関係ありません。

図29-58 「期限更新までの時間」ポリシー

「図29-58 「期限更新までの時間」ポリシー」の説明

29.7.5 タスク・ポリシーのエスカレート方法

ユーザーが割当て時間内に応答しない場合は、タスクをエスカレートできます。たとえば、ユーザー・ディレクトリに構成されているエスカレーション階層を使用している場合は、ユーザーのマネージャにタスクをエスカレートできます。エスカレーション・コールバックを使用している場合は、定義したユーザーにタスクをエスカレートできます。タスクが最大回数までエスカレートされた場合、エスカレートは停止します。エスカレートされたタスクは、そのタスクの期限切れ以降もユーザーの受信ボックス内に残すことができます。

タスク・ポリシーをエスカレートする手順は、次のとおりです。

1. 図29-59に示すように、「期限」セクションのドロップダウン・リストで、「エスカレートまでの時間」を選択します。

2. さらに次の値を指定します。両方を設定すると、エスカレーション・ポリシーがより限定的になります。

- エスカレーション・レベルの最大数
タスクをエスカレートする管理レベル数。このフィールドは必須です。

- 承認者の最高役職
最上位承認者の役職(自分、マネージャ、取締役またはCEOなど)。これらの役職は、対応するユーザー・リポジトリのタスク割当て先の役職と比較されます。このフィールドはオプションです。

エスカレーション・ポリシーでは、タスクを期限切れ時にエスカレートできる回数と期限更新期間を指定します。図29-59では、タスクが期限切れになると、最大3回までエスカレートされます。タスクが参加者LoanAgentGroupの手元で期限切れになるか、参加者Supervisorの手元で期限切れになるかは関係ありません。

図29-59 「エスカレートまでの時間」ポリシー

「図29-59 「エスカレートまでの時間」ポリシー」の説明

29.7.6 エスカレーション・ルールの指定方法

このオプションを使用すると、特定のワークフローについてカスタム・エスカレーション・ルールをプラグインできます。たとえば、期限切れ時に、タスクを現在のユーザーの部門マネージャに割り当てるには、カスタム・タスク・エスカレーション関数を記述してワークフロー・サービスに登録し、その関数をタスク定義に使用できます。

デフォルトのエスカレーション・ルールでは、タスクは現在のユーザーのマネージャに割り当てられます。新規エスカレーション・ルールを追加するには、次の手順に従います。

エスカレーション・ルールを指定する手順は、次のとおりです。

1. 次のインタフェースを実装します。

oracle.bpel.services.workflow.assignment.dynamic.IDynamicTaskEscalationFunction

この実装はサーバーのクラス・パスで使用可能である必要があります。

2. Oracle Enterprise Manager Fusion Middleware Controlにログインします。

3. ナビゲータで、「SOA」フォルダを開きます。

4. 「soa-infra」を右クリックして、「SOA管理」→「ワークフロー構成」→「タスク」タブを選択します。
「ワークフロー・タスク・サービス・プロパティ」ページが表示されます。

5. 新しい関数を追加します。次に例を示します。

- 関数名: DepartmentSupervisor

- クラスパス: oracle.bpel.services.workflow.assignment.dynamic.patterns.DepartmentSupervisor

- 関数のパラメータ名

- 関数のパラメータ値

6. 「期限」セクションの「カスタム・エスカレーションJavaクラス」フィールドに、エスカレーション・ルールについて「ワークフロー・タスク・サービス・プロパティ」ページに定義されている関数名を入力します。
詳細は次の項を参照してください。

29.7.7 期日の指定方法

期日は、タスクを完了する必要がある日付を示すために使用されます。期日は、有効期限とは異なります。期限切れタスクの場合は、期限切れとしてマークされるか、エスカレーション・ポリシーに基づいて自動的にエスカレートまたは期限更新されます。通常、期日は有効期限より早い日付で、タスクの期限切れが近いことをユーザーに示します。

図29-55に示すように、タスクの期日を入力できます。タスクは指定された期日をすぎると、期限切れとなります。この日付は有効期限ポリシーの付加項目です。期日は、有効期限ポリシーが指定されているかどうかに関係なく指定できます。期日を使用すると、Oracle BPM Worklistに期日を表示し、期限切れタスクをリストし、受信ボックス内の期限切れタスクをフィルタ処理できます。期限切れタスクは、TaskQueryService.queryTask(...) APIの述語を使用して、問合せできます。

期日を指定する手順は、次のとおりです。

1. 「期限」セクションで、「要求されたアクションの期日」チェック・ボックスを選択します。

2. 「期間別」を選択して特定の期間を入力するか、「式別」を選択してXPath式として値を動的に入力します。
次の点に注意してください。

- 期日は、(Oracle BPM Worklistの「To Doタスクの作成」ダイアログを使用する)タスクと、(ヒューマン・タスク・エディタを使用する).taskファイルの両方で設定できます。これにより、タスクの開始時に、タスク定義のないTo Doタスクで期日を設定できるようになります。タスク(実行時オブジェクト)に設定された期日は、.taskファイルに設定された期日よりも優先されます。

- タスク定義では、期日は各参加者に対してではなく、グローバルなレベルでのみ指定できます。

- タスクに対して期日が設定されている場合、.taskファイルの期日は無視されます。

- タスクに対して期日が設定されていない場合は、.taskファイルの期日が評価され、タスクに設定されます。

- タスクと.taskファイルのいずれにも期日がない場合、タスクには期日がありません。

注意:

To Doタスクに対してビジネス・ルールを指定することはできません。

詳細は次の項を参照してください。

29.8 参加者通知プリファレンスの指定

図29-60に、ヒューマン・タスク・エディタの「通知」セクションの「一般」タブ(完全に開いた状態)を示します。

通知は、ユーザーまたはグループにタスクが割り当てられる時期を示すか、タスクのステータスに変更があったことを通知します。通知は、電子メール、ボイス・メッセージ、インスタント・メッセージまたはSMSで送信できます。異なるアクションについて様々なタイプの参加者に通知が送信されます。デフォルトでは、通知はデフォルト・メッセージを使用して構成されます。たとえば、タスクが完了してクローズされたことを示す通知メッセージが送信されます。独自の構成を作成するか、既存の構成を変更できます。

注意:

組込みLDAPでは、グループの電子メール・アドレスがサポートされていません。したがって、タスクがグループIDに割り当てられると、電子メールはグループの電子メール・アドレスではなく、そのグループの全メンバーに送信されます。

図29-60 ヒューマン・タスク・エディタ — 「通知」セクションの「一般」タブ

「図29-60 ヒューマン・タスク・エディタ — 「通知」セクションの「一般」タブ」の説明

参加者の通知プリファレンスを指定する手順は、次のとおりです。

1. 図29-60に示すように、「通知」タブをクリックします。
表29-15に、「通知」セクションの「一般」タブの各サブセクションの構成方法を示します。

表29-15 ヒューマン・タスク・エディタ — 「通知」セクションの「一般」タブ

サブセクション

参照先

タスク・ステータス

受信者

第29.8.1項「受信者へのタスク・ステータス変更の通知方法」

通知ヘッダー

第29.8.2項「通知メッセージの編集方法」

通知サービスの詳細は、該当する項を参照してください。

2. 「通知」セクションで、「詳細」タブをクリックします。図29-61に詳細を示します。

図29-61 「通知」セクション - 「詳細」タブ

「図29-61 「通知」セクション - 「詳細」タブ」の説明

表29-16に、「通知」セクションの「詳細」タブの各サブセクションの構成方法を示します。

表29-16 ヒューマン・タスク・エディタ — 「通知」セクションの「詳細」タブ

サブセクション

参照先

リマインダ

第29.8.3項「リマインダの設定方法」

エンコーディング

第29.8.4項「キャラクタ・セットのエンコーディングの変更方法」

通知のセキュア化(詳細を除く)

第29.8.5項「詳細を除く通知をセキュア化する方法」

ワークリストURLを通知に表示

第29.8.6項「通知でのOracle BPM Worklist URLの表示方法」

通知をアクション可能にする

第29.8.7項「電子メール・メッセージをアクション可能にする方法」

電子メール通知によるタスクの添付ファイルの送信

第29.8.8項「電子メール通知によるタスクの添付ファイルの送信方法」

グループ通知構成

第29.8.9項「グループおよびアプリケーション・ロールへの電子メール通知の送信方法」

通知ヘッダーの属性

第29.8.10項「通知ヘッダーのカスタマイズ方法」

29.8.1 受信者へのタスク・ステータス変更の通知方法

「タスク・ステータス」列には、3つのデフォルト・ステータス・タイプ「割当て」、「完了」および「エラー」が表示されます。通知メッセージの受信用に他のステータス・タイプを選択できます。

受信者にタスク・ステータス変更を通知する手順は、次のとおりです。

1. 「通知」セクションで、「一般」タブをクリックします。

2. 「タスク・ステータス」列で、タイプをクリックしてタスク・タイプの完全なリストを表示します。

- アラート済
タスクがアラート済の状態の場合は、受信者に通知できます。ただし、いずれの通知受信者(割当て先、承認者、所有者、起案者またはレビューア)も、アラート済の状態を知らせるFYI通知の単なる受信者であり、アラート済の状態からエラー状態にタスクを移動することはできません。所有者は、タスクの再割当て、取消し、削除またはパージを実行できます。また、エラーを解決できない場合はタスクをエラー状態に移動するようにエラー割当て先に依頼できます。アラート済からエラー状態にタスクを移動できるのは、エラー割当て先のみです。

エラー割当て先は、「割当ての構成」ダイアログの「割当て」タブで構成します。このタブは「割当て」セクションの「タスクは開始参加者から最終参加者へ移行します」アイコンの下にあります。詳細は、第29.5.4項「エラー割当て先の構成方法」を参照してください。

- 割当て
ユーザーまたはグループにタスクが割り当てられた場合。この場合は、次のアクションが取得されます。

- ユーザーへのタスクの割当て

- シリアル・ワークフローでの新規ユーザーへのタスクの割当て

- タスクの期限更新

- タスクの委任

- タスクの再割当て

- タスクのエスカレート

- タスク情報の発行

- 完了

- エラー

- 期限切れ

- 情報のリクエスト

- 再開

- 一時停止

- 更新

- タスク・ペイロードの更新

- タスクの更新

- コメントの追加

- 添付ファイルの追加および更新

- 結果の更新

- 取消

- その他のすべてのアクション

- 前述のタスク・タイプ以外のアクションこれにはタスクの取得が含まれます。

3. タスク・ステータスのタイプを選択します。
通知は、様々な範囲でタスクに関与するユーザーに送信できます。これには、タスクがグループに割り当てられている場合が含まれます。グループに通知エンドポイントが設定されていない場合は、グループの各ユーザーに通知が送信されます。

4. 「受信者」列でエントリをクリックして、通知メッセージの受信者候補のリストを表示します。

- 割当て先
タスクが現在割り当てられているユーザーまたはグループ。

- イニシエータ
タスクを作成したユーザー。

- 承認者
この時点までにタスクを操作したユーザー。これは、複数のユーザーがタスクを承認するシリアル参加者タイプに適用され、通知はこれらのユーザー全員に送信される必要があります。

- 所有者
タスクの所有者

- レビューア
タスクにコメントおよび添付ファイルを追加できるユーザー。

詳細は次の項を参照してください。

29.8.2 通知メッセージの編集方法

デフォルトの通知メッセージを、選択した受信者に配信できます。必要な場合は、デフォルト・メッセージのテキストを変更できます。

通知メッセージを編集する手順は、次のとおりです。

1. 「通知」セクションで、「一般」タブをクリックします。

2. 「通知ヘッダー」列で、「編集」アイコンをクリックして、デフォルトの通知メッセージを変更します。
図29-62に示す「通知メッセージの編集」ダイアログが表示されます。

図29-62 「通知メッセージの編集」ダイアログ

「図29-62 「通知メッセージの編集」ダイアログ」の説明

このメッセージは、サポート対象のすべての通知チャネル(電子メール、ボイス、インスタント・メッセージおよびSMS)に適用されます。電子メール・メッセージには、このメッセージに定義したワークリスト・タスク詳細も挿入できます。メッセージの配信チャネルは、指定した通知プリファレンスに基づいています。

3. 必要に応じてメッセージの文言を変更します。

4. 「OK」をクリックしてヒューマン・タスク・エディタに戻ります。

通知プリファレンスの詳細は、該当する項を参照してください。

29.8.3 リマインダの設定方法

タスクのリマインダを送信できます。リマインダは、タスクがユーザーに割り当てられた時刻またはタスクの有効期限が切れる時刻に基づいています。リマインダの数およびリマインダ間の間隔も構成可能です。

リマインダを設定する手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. リストから、リマインダの送信数を選択します。

3. 割当て先に1回、2回または3回通知するように選択した場合は、リマインダの間隔を選択し、リマインダを割当て前に送信するか割当て後に送信するかを選択します。

詳細は次の項を参照してください。

29.8.4 キャラクタ・セットのエンコーディングの変更方法

Unicodeは、任意の言語の情報を単一のキャラクタ・セットを使用して格納できる全世界共通のエンコード・キャラクタ・セットです。Unicodeでは、プラットフォーム、プログラムまたは言語に関係なく、すべての文字に一意のコード値が指定されます。UTF-8のデフォルト設定を使用するか、Javaクラスでキャラクタ・セットを指定できます。

キャラクタ・セットのエンコーディングを変更する手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. 「エンコーディング」リストから、「Javaクラスで指定」を選択します。

3. 使用するJavaクラスを入力します。

29.8.5 詳細を除く通知をセキュア化する方法

通知のセキュア化、メッセージのアクション可能化および添付ファイルの送信を設定する手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. 「通知のセキュア化(詳細を除く)」を選択します。
選択すると、デフォルトの通知メッセージが使用されます。電子メールには、HTMLのワークリスト・タスク詳細、添付ファイルまたはアクション可能なリンクはありません。メッセージにはタスク番号のみが含まれます。

詳細は次の項を参照してください。

29.8.6 通知でのOracle BPM Worklist URLの表示方法

電子メール通知メッセージにOracle BPM Worklist URLを表示するかどうかを構成できます。

通知にOracle BPM Worklist URLを表示する手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. 「ワークリストURLを通知に表示」チェック・ボックスを選択すると、Oracle BPM Worklist URLが電子メール通知メッセージに表示されます。このチェック・ボックスを選択しないと、URLは表示されません。

29.8.7 電子メール・メッセージをアクション可能にする方法

電子メール・メッセージをアクション可能にする手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. 「通知をアクション可能にする」を選択します。このアクションにより、電子メールを介してタスク・アクションを実行できます。

注意:

FYIタスクはアクション可能ではないため、電子メール・メッセージから確認できません。

追加構成の詳細は、該当する項を参照してください。

アウトバウンドおよびインバウンド電子メールの構成の詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。

29.8.8 電子メール通知によるタスクの添付ファイルの送信方法

電子メール通知によってタスクの添付ファイルを送信できます。

電子メール通知によってタスクの添付ファイルを送信する手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. 「電子メール通知によるタスクの添付ファイルの送信」を選択します。

29.8.9 グループおよびアプリケーション・ロールへの電子メール通知の送信方法

タスクが割り当てられたグループおよびアプリケーション・ロールに電子メール通知を送信できます。

グループおよびアプリケーション・ロールに電子メール通知を送信する手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. 「グループ通知構成」リストから、次のいずれかのオプションを選択します。

- 電子メールを個別に送信
グループまたはアプリケーション・ロール内の各ユーザーが個別の電子メール通知を受け取ります。これはデフォルト選択です。

また、「ロケールに基づいて個別のタスク・フォームを使用」チェック・ボックスが自動的に選択されます。

- 選択すると、言語ロケールに基づいた個別のタスク・フォームを使用して個別の電子メールが送信されます。

- 選択しないと、タスク・フォームを再使用(共有)して個別の電子メールが送信されます。

- すべてのユーザー・アドレスを含む電子メールを送信
グループまたはアプリケーション・ロール内の各ユーザー・ロケールに対して共有の通知電子メールが1回生成され、その結果電子メール・コンテンツの生成時間が短縮されます。電子メールは、グループまたはアプリケーション・ロール内のすべてのユーザーに送信されます。

注意:

- すべてのユーザー(またはユーザーのサブセット)が同じ電子メールを受け取るため、グループまたはアプリケーション・ロール内のユーザーは同じ権限を持つと想定されています。これにより、権限のないユーザーにタスク詳細が表示されないようにします。

- 1通の電子メールをすべてのユーザーに送信する場合、アドレス・フィールドで許容される最大文字数は2000です。制限を超過すると、最大制限内に含まれているユーザー・アドレスにのみ電子メールが送信されます。

29.8.10 通知ヘッダーのカスタマイズ方法

カスタム通知ヘッダーは、名前/値ペアを指定し、通知の中でキー・フィールドを識別するために使用されます。ユーザーは、これらの入力項目を使用して、通知の配布プリファレンスを定義します。たとえば、「名前」を「ApprovalType」、「値」を「経費」に設定したり、「名前」を「優先度」、「値」を「高」に設定することができます。その後、ユーザーはOracle BPM Worklistで配信プリファレンスを指定できます。これらのプリファレンスは通知の内容に基づいています。

ルールベースの通知サービスは、使用する優先通知チャネルを特定する目的のみに使用されます。優先チャネルのアドレスは、引き続きアイデンティティ・サービスから取得されます。

通知ヘッダーをカスタマイズする手順は、次のとおりです。

1. 「通知」セクションで、「詳細」タブをクリックします。

2. 「通知ヘッダーの属性」を開きます。

3. 名前またはXPath式別に、名前/値ペアのパラメータを追加します。
プリファレンスの詳細は、次の各項を参照してください。

29.8.11 通知の受信者の電子メール・アドレスを指定する方法

BPM Suiteのインストールでヒューマン・タスク・エディタを使用すると、通知の受信者の電子メール・アドレスを指定できます。

通知の受信者の電子メール・アドレスを指定するには:

1. ヒューマン・タスク・エディタを開きます。

2. 「通知」タブをクリックします。

3. 「受信者」リストをダブルクリックします。
「受信者」リストは編集可能なリストで、それをダブルクリックすると、テキスト・フィールドになります。

4. 受信者の電子メール・アドレスを入力します。
必要に応じて、「受信者」テキスト・フィールドの横にあるボタンを使用して、アプリケーション・サーバーで電子メール・アドレスを調べるか、XPathを使用して電子メール・アドレスを指定することができます。

注意:

電子メール・アドレスを使用して指定受信者に通知を送信する場合、通知サービスは割当て先のユーザー・コンテキストを使用して通知に含めるタスク情報を取得します。

29.9 タスク・コンテンツへのアクセス・ポリシーとタスク・アクションの指定

タスク・コンテンツへのアクセス・ルールと、そのコンテンツに対して実行するアクションを指定できます。

29.9.1 タスク・コンテンツへのアクセス・ポリシーの指定方法

参加者が表示および更新できるタスクの部分を決定するアクセス・ルールを指定できます。アクセス・ルールは、タスクの取得および更新時にタスク・オブジェクトにルールを適用するワークフロー・サービスによって規定されます。

注意:

タスク・コンテンツ・アクセス・ルールおよびタスク・アクション・アクセス・ルールは相互に独立して存在します。

29.9.1.1 アクセス・ルールの概要

アクセス・ルールは、次の詳細に基づいて算定されます。

- アクセス・ルールに対応して構成されていないロールの権限は、アクセス・ルールで構成された属性によって却下されます。たとえば、割当て先が読み取るペイロードを構成するとします。このアクションでは、割当て先のみの読取り権限が有効になり、他の誰も対象になりません。割当て先も含めて、誰にも書込み権限はありません。

- アクセス・ルールで構成されていない属性には、すべての権限があります。

- ペイロードのメッセージ属性がアクセス・ルールで構成されている場合は、競合の可能性があるためにペイロード自体の構成は無視されます。この場合、APIが返すマップにはペイロードの入力項目は含まれません。読取り権限は、書込み権限によって自動的に提供されます。

- メッセージ属性のサブセットのみがアクセス・ルールで構成されている場合、影響を受けないすべてのメッセージ属性には、すべての権限があります。

- 追加権限があるのは、コメントと添付ファイルのみです。

- 特定の属性への書込み権限は意味がありません。たとえば、履歴の書込み権限によって、履歴に対する権限が付与されたり、却下されることはありません。

- 次の日付属性は、ヒューマン・タスク・エディタでは1つの属性として構成されます。TaskMetadataService.getVisibilityRules()が返すマップには、それぞれ1つのキーがあります。同様に、参加者にDATESの読取り権限がない場合、タスクには次のタスク属性のいずれも含まれません。

- START_DATE

- END_DATE

- ASSIGNED_DATE

- SYSTEM_END_DATE

- CREATED_DATE

- EXPIRATION_DATE

- ALL_UPDATED_DATE

- 次の割当て先属性は、ヒューマン・タスク・エディタでは1つの属性として構成されます。TaskMetadataService.getVisibilityRules()が返すマップには、次の割当て先属性のそれぞれに対して1つのキーがあります。同様に、参加者にASSIGNEESの読取り権限がない場合、タスクには次のタスク属性のいずれも含まれません。

- ASSIGNEES

- ASSIGNEE_USERS

- ASSIGNEE_GROUPS

- ACQUIRED_BY

- マップ済属性には、TaskMetadataService.getVisibilityRules()が返すマップ内に個別の表示はありません。

- TaskMetadataService.getVisibilityRules()が返すマップにあるすべてのメッセージ属性には、ITaskMetadataService.TASK_VISIBILITY_ATTRIBUTE_PAYLOAD_MESSAGE_ATTR_PREFIX (PAYLOAD)の接頭辞が付きます。

アプリケーションでは、アクセス・ルールに基づいてタスク属性を表示するページ(または表示しないページ)も作成できます。これは、oracle.bpel.services.workflow.metadata.ITaskMetadataServiceでAPIをコールして参加者のアクセス・ルールを取得することで実行できます。例29-1に詳細を示します。

例29-1 APIコール

public Map<String, IPrivilege> getTaskVisibilityRules(IWorkflowContext context,
String taskId)
throws TaskMetadataServiceException;

この方法の詳細は、『Oracle Fusion Middleware Workflow Services Java API Reference for Oracle BPEL Process Manager』を参照してください。

29.9.1.2 タスク・コンテンツの操作に対するユーザー権限の指定

特定のタスク・コンテンツ(ペイロードなど)の操作を特定のユーザー(タスクの作成者または所有者など)に許可する権限を指定できます。

タスク・コンテンツの操作についてユーザー権限を指定する手順は、次のとおりです。

1. 「アクセス」タブをクリックします。

2. 「コンテンツ」タブをクリックします。

3. 図29-63に示すように、アクセス権を指定するタスク・コンテンツを選択します。

図29-63 タスク・コンテンツ・アクセスの設定

「図29-63 タスク・コンテンツ・アクセスの設定」の説明

4. タスク・コンテンツを操作するユーザーに権限(読取り、書込みまたはアクセスなし)を割り当てます。ユーザーには、最高レベルを超えて権限を割り当てることはできません。たとえば、ADMINユーザーにPAYLOADタスク・コンテンツに対する書込み権限を割り当てることはできません。表29-17に、タスク・コンテンツに対する各ユーザーの最大権限を示します。

表29-17 タスク・コンテンツに対するユーザーの最高権限レベル

タスク・コンテンツ

読取り権限保持者

書込み権限保持者

割当て先

管理者、承認者、割当て先、作成者、所有者、レビューア

--

添付ファイル

管理者、承認者

割当て先、作成者、所有者、レビューア

コメント

管理者、承認者

割当て先、作成者、所有者、レビューア

日付

管理者、承認者、割当て先、作成者、所有者、レビューア

--

フレックスフィールド

管理者、承認者、レビューア

割当て先、作成者、所有者

履歴

管理者、承認者、割当て先、作成者、所有者、レビューア

--

ペイロード

管理者、承認者、レビューア

割当て先、作成者、所有者

レビューア

管理者、承認者、割当て先、作成者、所有者、レビューア

--

ペイロード要素

ペイロードから継承

ペイロードから継承

たとえば、PAYLOADタスク・コンテンツについて、ASSIGNEES、CREATORおよびOWNERの書込みアクセス権、ADMIN、APPROVERSおよびREVIEWERSの読取りアクセス権、およびアクセス権がないPUBLICというデフォルト設定をそのまま使用すると、ダイアログは図29-63に示すように表示されます。

5. このダイアログで、タスク・コンテンツの表示方法を選択します。現在選択されていないオプションを選択すると、すべての設定がデフォルトの値にリセットされます。

- 大まかな(デフォルト)
タスク・コンテンツが総括的に表示されます(たとえば、ペイロードやレビューアが1つのみ表示されます)。

- きめ細かな
コンテンツが個別の要素として表示されます (たとえば、すべてのペイロード(p1、p2、p3など)およびこのタスクに割り当てられているすべてのレビューア(jstein、wfaulk、cdickens)が表示されます)。

注意:

システムで許可されている内容とは別に、アクセス・ルールは、常にアクションの実行者とタスクの現在の状態に基づいて適用されます。

29.9.1.3 タスクの操作に対するアクションの指定

タスク・コンテンツ(ペイロードなど)の操作について、「タスク・コンテンツ・アクセスの設定」ダイアログで指定した特定のユーザー(タスクの作成者または所有者など)に許可するアクション(アクセスまたはアクセスなし)を指定できます。

タスクの操作に対してアクションを指定する手順は、次のとおりです。

1. 「アクセス」タブをクリックします。

2. 「アクション」タブをクリックします。

3. 図29-64に示すように、ユーザーを指定するタスク・アクションを選択します。

図29-64 「アクション・アクセス・ルールの追加」の選択

「図29-64 「アクション・アクセス・ルールの追加」の選択」の説明

4. 選択したアクションを参加者が実行できるかどうかを選択します。

5. このダイアログで、タスク・アクションの表示方法を選択します。現在選択されていないオプションを選択すると、すべての設定がデフォルトの値にリセットされます。

- 大まかな(デフォルト)
タスク・アクションが総括的に表示されます(たとえば、承認や却下が1つのみ表示されます)。

- きめ細かな
コンテンツに対するアクションが個別要素として表示されます (たとえば、すべての承認や却下が表示されます)。

29.9.2 ワークフロー・デジタル署名ポリシーの指定方法

デジタル署名は、デジタル署名されたヒューマン・タスクの否認防止メカニズムを提供します。この機能は、タスクを操作する参加者に対し、タスクの更新前に詳細と各自のアクションに対する署名を義務付けることで、後で否認できないようにします。

注意:

タスクに対してデジタル署名が有効な場合、アクション可能な電子メールは実行時に送信されません。設計時にアクション可能な電子メールが有効化された場合も同様です。

ワークフロー・デジタル署名ポリシーを指定する手順は、次のとおりです。

1. 「アクセス」タブをクリックします。

2. 図29-65に示すように、「署名ポリシー」リストで「ポリシーの設定」を選択します。

図29-65 デジタル署名

「図29-65 デジタル署名」の説明

3. タスク参加者が使用する署名ポリシーを指定します。

- 署名は不要
参加者は、署名せずにタスクの送信と操作を実行できます。これはデフォルトのポリシーです。

- パスワードは必須
参加者は、次の参加者にタスクを送信する前に、署名を指定します。参加者はタスクを操作する際に、パスワードを再入力する必要があります。パスワードは、デジタル署名の生成に使用されます。デジタル署名はメッセージ送信者または文書の署名者の本人認証を行います。これにより、送信されたメッセージの元の内容が変更されていないことが保証されます。

- デジタル証明書は必須
参加者は、デジタル署名されたヒューマン・タスクの否認防止のために、デジタル証明書を保持する必要があります。参加者の資格証明は、デジタル証明書によって証明されます。これは認証局(CA)が発行します。次の項目が含まれます。

- 名前

- シリアル番号

- 有効期限

- 証明書所有者の公開鍵のコピー(メッセージとデジタル署名の暗号化に使用)

- 証明書発行者のデジタル署名(メッセージ信頼性の証明)

認証局の名称とCRLおよび発行認証局のURLは、個別に構成する必要があります。

4. 「OK」をクリックします。

詳細は次の項を参照してください。

29.9.2.1 認証局の指定

デジタル署名を使用するには、Oracle Enterprise Manager Fusion Middleware ControlのシステムMBeanブラウザで信頼できるCAを指定する必要があります。このCAから発行された証明書のみが、ヒューマン・ワークフローで有効と見なされます。

認証局を指定する手順は、次のとおりです。

1. 「SOAインフラストラクチャ」メニューから、「管理」→「システムMBeanブラウザ」の順に選択します。

2. 「アプリケーション定義のMBean」→「oracle.as.soainfra.config」→「サーバー: server_name」→「WorkflowConfig」→「human.workflow」の順に選択します。

3. 「操作」タブをクリックします。

4. 「AddTrustedCA」をクリックします。

5. 「CaName」および「CaURL」の「値」フィールドに、適切な値を指定します。

6. 「起動」をクリックします。

7. 「戻る」をクリックします。
これらの値は、使用前に検証する必要があります。

29.10 タスク割当てに対する制限の指定

コールバック・クラスを使用してタスクを再割当てまたはルーティングできるユーザーを制限できます。

通常のLDAPディレクトリにシードされているユーザー・コミュニティは会社全体や部署全体を表します。ただし、タスクに関連付けるユーザーの潜在的リストは、スコープに基づいて制限したり、タスクや関連するデータの重要性に基づいて制限することが必要な場合があります。たとえば、数千のユーザーが存在する大企業では、少数のユーザーのみが注文書を承認および作成できるようにする場合があります。特にこのようなタスクでは、非定型ルーティングおよび再割当てに対して選択できるユーザーとして、会社全体規模のユーザーを対象にしないでください。かわりに、適切または権限のある少数のユーザーのみを選択対象とする必要があります。これを実行するには、制限付き割当て機能を使用します。この機能はコールバック・クラスとして実装されます。このコールバック・クラスには、インスタンス・データを含むタスク・オブジェクトが渡されるとそのタスク・オブジェクトに基づいて適切なユーザー・セットを動的に選択するロジックを実装できます。

29.10.1 タスク割当てに対する制限の指定方法

タスク割当てに対して制限を指定する手順は、次のとおりです。

1. 「アクセス」セクションで、「制限付き割当ての設定」をクリックします。
「制限付き割当ての設定」ダイアログが表示されます。

2. クラス名を入力します。入力するクラスは、oracle.bpel.services.workflow.task.IRestrictedAssignmentCallbackインタフェースを実装している必要があります。

3. 「追加」アイコンをクリックし、コールバックを起動する際に渡すプロパティ・マップの名前と値のペアを追加します。

4. 「OK」をクリックします。

29.11 Javaコールバックまたはビジネス・イベント・コールバックの指定

Javaコールバックまたはビジネス・イベント・コールバックを指定できます。

29.11.1 タスク・ステータスのコールバック・クラスの指定方法

ワークフロー・サービスのコールバックは、タスクのライフサイクルで特定のステージに到達したときにコールするように登録できます。2つのタイプのコールバックがサポートされています。

- Javaコールバック: コールバック・クラスは、インタフェースoracle.bpel.services.workflow.task.IRoutingSlipCallbackを実装している必要があります。このコールバック・クラスをサーバーのクラスパスで使用可能にします。

- ビジネス・イベント・コールバック: ヒューマン・タスクの状態が変化したときに、ビジネス・イベントが発生するようにできます。Javaクラスを開発して登録する必要はありません。コール元は、承認トランザクションの現在の状態が通知されるように、Oracle Mediatorサービス・コンポーネントを使用してコールバックを実装し、適用可能なビジネス・イベントをサブスクライブします。

タスク・ステータスのコールバック・クラスを指定する手順は、次のとおりです。

1. 「イベント」タブをクリックします。
選択できる状態変更コールバックは、次のとおりです。

- OnAssigned
標準的なルーティング、再割当て、委任、エスカレーションなどを含め、割当ての変更時にコールバック・クラスをコールする必要がある場合に選択します。タスクによって結果が更新される(つまり、チェーンのいずれかの承認者がタスクを承認または却下する)ときにコールバックする必要がある場合は、このオプションを選択する必要があります。

- OnUpdated
更新(ペイロード、コメント、添付ファイル、優先度などを含む)時にコールバック・クラスをコールする必要がある場合に選択します。

- OnCompleted
タスクが完了し、コントロールが起案者(タスクを開始するBPELプロセスなど)に渡されようとしているときに、コールバック・クラスを最終的にコールする必要がある場合に選択します。

- OnStageCompleted
ヒューマン・ワークフロー・タスクでビジネス・イベント・コールバックを有効化するために、コールバック・クラスをコールする必要がある場合に選択します。イベントが発生すると、そのイベントには、完了したステージの名前、完了したステージの結果、およびコールバックが起動された時点でのタスクのスナップショットが格納されます。

- OnSubtaskUpdated
サブタスク(パラレルおよびパラレル・シナリオのいずれかのタスク)の更新(ペイロード、コメント、添付ファイル、優先度などを含む)時にコールバック・クラスをコールする必要がある場合に選択します。

Oracle JDeveloperのインストールが、BPEL拡張とBPM拡張の両方を含むように更新されている場合は、次のコンテンツのコールバックも選択できます。

- コメント・コールバック
WFCOMMENT列以外のスキーマにコメントを格納するために、コールバック・クラスをコールする必要がある場合に選択します。

- 添付コールバック
WFATTACHMENT列以外のスキーマにコメントを格納するために、コールバック・クラスをコールする必要がある場合に選択します。

- 検証コールバック
タスクまたはペイロードのいずれかを更新や承認などの前に検証するために、コールバック・クラスをコールする必要がある場合に選択します。

2. 実行するコールバックのタイプに応じて、次の項を参照してください。

- 第29.11.1.1項「Javaコールバックの指定」

- 第29.11.1.2項「ビジネス・イベント・コールバックの指定」

29.11.1.1 Javaコールバックの指定

Javaコールバックを指定する手順は、次のとおりです。

1. 「イベント」セクションの「状態」列で、タスク状態を選択します。

2. 「Javaクラス」列の空のフィールドをクリックして値を入力します。この値は、oracle.bpel.services.workflow.task.IRoutingSlipCallbackを実装するJavaクラスの完全クラス名です。図29-66に詳細を示します。

図29-66 Javaが選択された状態の「コールバック詳細」ダイアログ

「図29-66 Javaが選択された状態の「コールバック詳細」ダイアログ」の説明

3. 「OK」をクリックします。

29.11.1.2 ビジネス・イベント・コールバックの指定

ビジネス・イベント・コールバックを指定する手順は、次のとおりです。

1. 「イベント」セクションの「状態」列で、タスク状態を選択します。

2. 「Javaクラス」フィールドは空のままにします。

3. 「ワークフロー・イベントのトリガー」チェック・ボックスを選択します。これにより、図29-67に示すように、「Javaクラス」列が使用不可になります。各コールバック(OnAssignedなど)は、1つのビジネス・イベント・ポイントに対応しています。ビジネス・イベントが起動されると、イベント詳細にはタスク・オブジェクトおよび一連のプロパティが挿入されます。各プロパティの値は、起動されるイベントの内容に基づいて移入されます。

図29-67 ビジネス・イベントが選択された状態の「コールバック詳細」ダイアログ

「図29-67 ビジネス・イベントが選択された状態の「コールバック詳細」ダイアログ」の説明

事前にシードされている静的イベント定義言語(EDL)ファイル(JDev_Home\jdeveloper\integration\seed\soa\shared\workflow\HumanTaskEvent.edl)によって、サブスクライブ対象として使用可能なビジネス・イベントのリストが提供されます。これらのビジネス・イベントは、「コールバック詳細」ダイアログで選択したコールバックに対応しています。EDLファイルを参照し、適切なビジネス・イベントをサブスクライブするOracle Mediatorサービス・コンポーネントを作成する必要があります。

注意:

EDLファイルを配置できるようにするには、ファイルベースのMDS接続が必要です。ファイルベースのMDSの場所は、JDev_Home\jdeveloper\integration\seedです。

4. イベントをサブスクライブできる同じまたは異なるSOAコンポジット・アプリケーションに、Oracle Mediatorサービス・コンポーネントを作成します。

5. Oracle Mediatorの作成時に、「テンプレート」リストで、「イベントのサブスクライブ」を選択します。

6. 「追加」アイコンをクリックして、新しいイベントをサブスクライブします。

7. 「イベント定義」フィールドの右側にある「参照」アイコンをクリックし、EDLファイルを選択します。
「SOAリソース・ブラウザ」ダイアログが表示されます。

8. 前に作成したファイルベースのMDS接続を選択します。

9. 上部のリストから「リソース・パレット」を選択します。

10. 「SOA」→「共有」→「ワークフロー」→「HumanTaskEvent.edl」の順に選択します。

11. 「OK」をクリックします。
これで、選択可能なEDLファイル・ビジネス・イベントが「イベント・チューザ」に移入されます。

12. 「イベント」フィールドで、サブスクライブするイベントを選択します。図29-68に詳細を示します。

図29-68 イベント・コールバック

「図29-68 イベント・コールバック」の説明

イベントのサブスクライブに使用可能なヒューマン・タスクは複数あります。たとえば、次を実行したとします。

- イベント(OnAssignedなど)をサブスクライブするTaskAというヒューマン・タスクを構成しました。

- 同じイベントをサブスクライブするTaskBというヒューマン・タスクを構成しました。

TaskAとTaskBのイベントを区別し、意図したOracle Mediatorによってイベントを確実に処理するためには、静的なルーティング・フィルタを追加できます。

xpath20:compare(med:getComponentName(), 'TaskA')

これにより、送信コンポーネントがTaskAの場合にのみ、このルーティングが起動されます。

13. EDLファイルがファイルベースのMDS接続から選択されなかった場合、プロンプトに従って依存XSDファイルのインポートを受け入れ、「OK」をクリックします。EDLファイルがファイルベースのMDS接続から選択された場合、プロンプトは表示されません。
これで、Oracle Mediatorサービス・コンポーネントに、サブスクライブするビジネス・イベントが移入されます。同じEDLファイルに定義されている他のビジネス・イベントも、この時点で、または後でサブスクライブできます。

ビジネス・イベントおよびコールバックの詳細は、次の各項を参照してください。

- ビジネス・イベントの詳細は、該当する項を参照してください。

- サンプルのworkflow-116-WorkflowEventCallback(Oracle SOA Suiteサンプルで使用できます)。

29.11.2 BPELコールバックのタスクとルーティング・カスタマイズの指定方法

通常、BPELプロセスはワークフロー・コンポーネントをコールしてユーザーにタスクを割り当てます。ワークフローが完了すると、ヒューマン・ワークフロー・サービスはBPELプロセスにコールバックされます。ただし、詳細なコールバック(たとえば、onTaskUpdateまたはonTaskEscalated)をBPELプロセスに送信する場合は、「BPELコールバックのタスクとルーティング・カスタマイズを許可」オプションを使用できます。

このコールバック設定については、BPELダイアグラムを必ず手動でリフレッシュしてください。

BPELコールバックのタスクとルーティングのカスタマイズを指定する手順は、次のとおりです。

1. 「イベント」セクションで、「BPELコールバックのタスクとルーティング・カスタマイズを許可」チェック・ボックスを選択します。

2. Oracle BPELデザイナに戻ります。

3. タスクのアクティビティ・ダイアログを開きます。

4. 「OK」をクリックします。

これにより、タスクのscopeアクティビティ内に、BPELコールバックをカスタマイズするためのwhile、pick、およびpickアクティビティのonMessageブランチが作成されます。

タスクおよびルーティングのカスタマイズ指定の詳細は、該当する項を参照してください。

29.11.3 BPELコールバックを無効にする方法

ユーザーtalkアクティビティ(Oracle BPELデザイナ内)にはinvokeアクティビティ、それに続いてreceiveまたはpickアクティビティがあります。「BPELコールバックの無効化」チェック・ボックスの選択を解除すると、リプライを待たずにタスク・サービスを起動できます。

BPELコールバックを無効化する手順は、次のとおりです。

1. 「イベント」セクションで、「BPELコールバックの無効化」チェック・ボックスの選択を解除します。

2. 「OK」をクリックします。

29.12 Oracle Enterprise Content Managementでのドキュメントの格納

図29-69に、ヒューマン・タスク・エディタの「ドキュメント」セクションを示します。

図29-69 ヒューマン・タスク・エディタ — 「ドキュメント」セクション

「図29-69 ヒューマン・タスク・エディタ — 「ドキュメント」セクション」の説明

29.12.1 タスクの添付を格納するようにOracle UCMリポジトリを構成する方法

UCMリポジトリに添付を格納するようにヒューマン・タスクを構成できます。これらの添付には、1つまたは複数のメタデータ・プロパティが含まれることがあります。これらのプロパティに値を割り当てるか、またはユーザーが値を指定できるようにプロパティを構成できます。

タスクの添付用にOracle UCMリポジトリを構成するには:

1. 「プロジェクト・ナビゲータ」ツリーで、「ビジネス・カタログ」ノードを展開します。

2. 「ヒューマン・タスク」ノードを展開します。

3. 構成するヒューマン・タスクをダブルクリックします。
ヒューマン・タスク・エディタが表示されます。

4. 「ドキュメント」タブをクリックします。

5. 「ドキュメント・パッケージの使用」を選択します。
メタデータ・プロパティを構成するセクションが表示されます。表には、すでに必須の標準メタデータ(「セキュリティ・グループ」および「ドキュメント・タイプ」)が含まれています。

6. オプションで、次の手順で新しい標準またはカスタム・メタデータ・プロパティを入力します。

1. 「追加」ボタンをクリックします。

2. 「名前」列をクリックし、リストから標準プロパティを選択するか、カスタム名を入力します。

3. 「値」列をクリックし、プロパティに値を割り当てます。「名前別」を選択してテキストを指定してプロパティに値を割り当てるか、または「式別」を選択して式を指定します。

4. 「表示」列をクリックして、次の表示モードを選択します。
編集可能: 添付をアップロードするときにタスク・フォームで値を指定できます。

非表示: 値はタスク・フォームに表示されません。

読取り専用: 値はタスク・フォームに表示されますが、ユーザーは値を変更できません。

注意:

カスタム・メタデータはタスク・フォームに表示されないため、タスク・ペイロードに値をマッピングするか、または静的値を指定する必要があります。

30 ガイド付きビジネス・プロセスの使用

この章では、ガイド付きビジネス・プロセスを使用して、プロセスのアクティビティをマイルストンに編成する方法について説明します。マイルストンを使用すると、経験の浅いユーザーにとってプロセスの実行が容易になります。ガイド付きビジネス・プロセスは、プロセスの複雑さを意識させずに、エンド・ユーザーに関連するタスクを示します。

- 30.1項「ガイド付きビジネス・プロセスの概要」

- 30.2項「ガイド付きビジネス・プロセスのユース・ケース」

- 30.3項「ガイド付きビジネス・プロセスの使用の標準およびガイドライン」

- 30.4項「ガイド付きビジネス・プロセスの開発の一般的なフロー」

- 30.5項「ガイド付きビジネス・プロセスの開発の概要」

- 30.6項「BPMNガイド付きビジネス・プロセスの開発」

- 30.7項「アクティビティ・ガイド・プロパティの構成」

- 30.8項「ガイド付きビジネス・プロセスのOracle Weblogic Serverへのデプロイ」

- 30.9項「ガイド付きビジネス・プロセスのテスト」

30.1 ガイド付きビジネス・プロセスの概要

ガイド付きビジネス・プロセスでは、BPMプロセスの相互作用アクティビティを、プロセス参加者にとって意味のある一連のマイルストンにまとめることができます。これによって、ビジネス・プロセスの複雑さを意識させず、プロセス参加者が実行する必要のあるステップの概略を示します。

ガイド付きビジネス・プロセスは、プロセス・フローのガイド付き視覚表現を提供します。エンド・ユーザーにビジネス・プロセスのカプセル化された階層ビューを提供することによって、ユーザーの操作性を向上します。

ガイド付きビジネス・プロセスを使用することによって、エンド・ユーザーがプロセスに関連付けられた一連のガイド付き手順に従ってビジネス・プロセスを完了できるように設定できます。ガイド付きビジネス・プロセスには手順の概要が示されます。この手順に従うことによって、エンド・ユーザーはより少ないトレーニングでビジネス・プロセスを完了できるようになり、プロセスの結果もより予測可能になります。

ガイド付きビジネス・プロセスは、ビジネス・プロセスに基づいたアクティビティ・ガイドとしてモデリングされます。アクティビティ・ガイドには、一連のマイルストンが含まれています。マイルストンには、エンド・ユーザーが完了する必要がある一連のタスクが含まれています。マイルストンに含まれている一連のタスクをユーザーが正常に実行すると、マイルストンが完了します。

各マイルストンは、ヒューマン・ワークフロー・タスクの特定のセットです。各ヒューマン・ワークフロー・タスクは、それ自体が、様々なロールの複数の参加者のコラボレーションを必要とするタスク・フローである場合があります。タスク・フローの内容によっては、参加者は未完了のタスク・フローをいったん保存して、後で再開することもできます。

図30-1 アクティビティ・ガイド

図30-2 ガイド付きビジネス・プロセスの例

サービス指向アーキテクチャの活用

サービス指向アーキテクチャは、ガイド付きビジネス・プロセスの基礎となります。ガイド付きビジネス・プロセスではSOAコンポジット・プロセスを使用し、次のSOAの機能を活用します。

- 既存の投資の再利用: Oracle SOA Suiteでは、再利用可能なサービスの基礎を提供し、そのサービスにアクセスできるようになります。コンポジット・プロセスは、SOAプラットフォーム上で実行し、プラットフォームごとに提供された既存のサービスにアクセスすることによって、既存の投資を活用します。既存のシステムを使用できることで、Oracle SOAインフラストラクチャでは、有用性およびシステムの価値が向上します。

- プロセス指向ソフトウェア: プロセス編成インフラストラクチャと結合したサービス指向アーキテクチャは、複数の異なるシステムにわたるビジネス・プロセスの制御エージェントとして機能します。

ガイド付きビジネス・プロセスを使用する場合

ガイド付きビジネス・プロセスでは、他のチームで構築されたタスクフローを使用および再利用する、大規模および長期で複数ユーザーのプロセスを実行できます。たとえば、組織の財務および人事部門が、別のビジネス・プロセスで同じヒューマン・タスクフローにアクセスする場合があります。ガイド付きビジネス・プロセスを使用すると、大きいコンポジットで既存のワークフローを再利用し、エンド・ユーザーにとってより意味のあるビジネス・プロセスを作成できます。

Oracle SOAインフラストラクチャでは、ビジネス・プロセスで使用できる再使用可能なサービスにアクセスできます。ガイド付きビジネス・プロセスは、既存のサービス、プロセスおよびタスク・フローを活用して、長期で複数ユーザーのプロセスを作成します。

ガイド付きビジネス・プロセスは、次の機能を提供します。

- 大きいコンポジット内のタスクおよびタスクフローを再利用し、タスクおよびアクティビティを再設計および再コーディングしなくても済むようにします。

- SOAインフラストラクチャを使用してタスクを編成し、ビジネス・プロセスのフローを作成します。

- マイルストンを使用して、タスクを管理可能なチャンクにモジュール化し、エンド・ユーザーに一連の関連するガイド付きタスクを示します。
たとえば、100個のタスクがある長いプロセスを、10または20個のマイルストンに細分化できます。エンド・ユーザーは、100個の個別のタスクではなく、数個のマイルストンを介したステップのみを必要とします。

ガイド付きビジネス・プロセス: デザインタイムおよびランタイム

ガイド付きビジネス・プロセスは、デザインタイム・コンポーネントおよびランタイム・インタフェースの両方で構成されます。

30.1.1 ガイド付きビジネス・プロセスのデザインタイム・アーキテクチャ

ガイド付きビジネス・プロセスは、Oracle Business Process Managementを使用して、サービス指向アーキテクチャ内のすべてである自動化ステップおよびヒューマン・ワークフロー・ステップの両方を持つコンポジット・アプリケーション・ビジネス・プロセスを作成、デプロイおよび管理する総合的で標準ベースの使用しやすいソリューションを提供します。

ガイド付きビジネス・プロセスは、セキュリティ、スケーラビリティおよび高可用性などのOracle Fusion Middlewareの機能を活用します。次の機能によって、ガイド付きビジネス・プロセスとしてコンポジット・プロセスを公開できます。

- テクノロジ抽象化。メタデータを使用することによって、ビジネス・ロジックの実際の実装はいずれのテクノロジにも依存する必要がありません。

- 宣言的な開発。ビジネス・ロジックおよびビジネス・プロセスを定義するためにメタデータを使用すると、ガイド付きビジネス・プロセスの作成時にコーディングの必要がなくなります。

ガイド付きビジネス・プロセスの開発には、BPMプロジェクトとともにSOAプロジェクトを含むコンポジット・アプリケーションの作成が含まれます。ガイド付きビジネス・プロセスとして公開されたBPMプロセスは、マイルストン・アクティビティを含むアクティビティ・ガイドで構成されます。別のクライアント・アプリケーションも、ガイド付きビジネス・プロセスのエンド・ユーザー・インタフェースとして開発する必要があります。

図30-3 ガイド付きビジネス・プロセスのデザインタイム・アーキテクチャ

次のいずれかを使用して、ガイド付きビジネス・プロセスのユーザー・インタフェースを開発できます。

- Oracle ADF

- Oracle WebCenter Portal: Framework

- ガイド付きビジネス・プロセスのランタイム・サービス。

30.1.2 ガイド付きビジネス・プロセスのコンポーネント

ガイド付きビジネス・プロセスは、一連のヒューマン・タスクを編成し、共通のユーザー・インタフェースを提供してこれらのタスクを完了および追跡するBPMNプロセスです。ガイド付きビジネス・プロセスを定義するには、次のコンポーネントで構成されるアクティビティ・ガイドを作成します。

- マイルストン: マイルストンは、特定の目標を達成するために完了する必要があるヒューマン・タスクのグループです。マイルストンのヒューマン・タスクが完了するとマイルストンが完了します。同様に、特定のマイルストンのセットが完了するとアクティビティ・ガイドが完了します。マイルストンはヒューマン・タスク・アクティビティおよび他のBPMNアクティビティを含めることができます。

- ヒューマン・タスク: アクティビティ・ガイドからADFタスク・フローを起動できます。これを行うには、ヒューマン・タスク・コンポーネントをアクティビティ・ガイドに置き、ADFタスク・フローにバインドします。

- その他のタスク: アクティビティ・ガイドはサービス・コールなどのその他のタスクを含めることができます。ただし、これらの自動化タスクは、実行時にアクティビティ・ガイド・ツリーに表示されません。

シンプルでシーケンシャルなプロセス実行を行うアクティビティ・ガイドは、すべてのマイルストンを完了する必要があります。同様に、マイルストンを完了するには、マイルストン内のすべてのヒューマン・タスク・コンポーネントを完了する必要があります。

ブランチ化および条件ロジックを含むアクティビティ・ガイドは、すべてのマイルストンを完了する必要なく実行を完了することがあります。同様に、これらのマイルストン内のヒューマン・タスク・コンポーネントもスキップされることがあります。

30.1.3 ガイド付きビジネス・プロセスのランタイム・アーキテクチャ

ガイド付きビジネス・プロセスは、Oracle Business Process Managementに依存してタスクを編成します。Oracle Business Process Management、ワークリスト・アプリケーションおよびヒューマン・タスク・フローを結合して、より大きく長期のプロセスへの異なるヒューマン・タスクにリンクします。

ランタイムには、ガイド付きビジネス・プロセスは、マイルストン内のADFタスク・フローを編成するBPMNプロセス・インスタンスとして示されます。BPMNガイド付きビジネス・プロセスのランタイム・エンジンは、BPMNサービス・エンジンです。BPMNエンジンは、すべてのヒューマン・タスク操作をヒューマン・ワークフロー・サービスに委任します。

Oracle ADF UI、Oracle WebCenter Portal UIまたはガイド付きビジネス・プロセス・アクセスAPIで開発されたカスタム・アプリケーションを使用して、アクティビティ・ガイドに編成されたプロセス・インスタンスを表示できます。Oracle BPM Worklistアプリケーションには、ガイド付きビジネス・プロセス・クライアントに表示するプロセス・インスタンスも表示されますが、これらはマイルストンに編成されません。

図30-4に示すように、ガイド付きビジネス・プロセスのランタイム・アーキテクチャは、クライアント、ビジネス・ロジックおよびデータ層から構成されます。

図30-4 ガイド付きビジネス・プロセスのランタイム・アーキテクチャ

ランタイム・サポートには、ガイド付きビジネス・プロセス問合せ、ガイド付きビジネス・プロセス・メタデータおよびガイド付きビジネス・プロセス・インスタンス管理サービスが含まれています。ランタイム・コンポーネントは、Oracle Business Process Managementおよびヒューマン・ワークフロー・サービスとのインタフェースがあります。

ガイド付きビジネス・プロセス・クライアント・アプリケーションの基礎として、次のいずれかを使用できます。

- Oracle BPM Worklistアプリケーション

- Oracle ADF

- Oracle WebCenter Portal: Framework

- ガイド付きビジネス・プロセスのランタイム・サービス。

30.1.3.1 クライアント層

ガイド付きビジネス・プロセスのランタイム・フロント・エンドまたはクライアント・アプリケーションでは、エンド・ユーザーは、デザインタイムにアクティビティ・ガイドで定義されたタスク・フローを実行できます。クライアント・アプリケーションを使用して、エンド・ユーザーは次を実行できます。

- マイルストンの展開およびそれに含まれるタスクへのドリルダウン

- マイルストンに定義されたタスクの実行

- ガイド付きビジネス・プロセスとしてのビジネス・プロセスの実行のステータスおよび完了率の表示

次を使用すると、ガイド付きビジネス・プロセスの管理およびアクセスを実行できます。

- カスタマイズされたクライアント・アプリケーション: カスタマイズされたクライアント・アプリケーションを作成し、Oracle ADF UI、Oracle WebCenter Portal UIまたはガイド付きビジネス・プロセスAPIを使用して、ガイド付きビジネス・プロセスをエンド・ユーザーに表示できます。

- Oracle BPM Worklist: ガイド付きビジネス・プロセスのタスクを表示し、ユーザーがガイド付きタスクを実行するための即時利用可能なインタフェース。

- Oracle Enterprise Manager Application Server Controlコンソール: ガイド付きビジネス・プロセス・インスタンスを管理および監視するプラットフォーム。コンソールは、開発に続いてガイド付きビジネス・プロセスをテストする際にも役立ちます。

ランタイム・ユーザー・インタフェースの機能

ランタイム・ユーザー・インタフェースの機能は次のとおりです。

- 自動フォーカス: ガイド付きビジネス・プロセスをデプロイすると、マイルストン・ノードとタスク・ノードを持つ新しいガイド付きビジネス・プロセス・インスタンスを生成できます。ユーザー・インタフェースからガイド付きビジネス・プロセス・インスタンスにアクセスすると、自動フォーカスはプロセス内の最初の未完了タスクを選択します。このタスクが完了すると、自動フォーカスはプロセス内の次の未完了タスクを選択します。自動フォーカスは、オプション・タスクもサポートしており、オプション・タスクがスキップされると、プロセス内の次の未完了タスクを選択します。

- 将来のマイルストンおよびタスク: ガイド付きビジネス・プロセスにアクセスすると、アクティビティ・ガイド・ツリーにマイルストンが表示されます。アクティビティ・ガイドには、将来実行するマイルストンおよびタスクも表示されます。これにより、実行するタスクおよびマイルストンの全体的なビューをユーザーに提供します。ガイド付きビジネス・プロセスが順番に実行される場合、将来のタスクおよびマイルストンはグレー表示されます。将来のタスクおよびマイルストンは表示されますが、実行されません。

- ブランチ化: ブランチ化では、ビジネス・プロセス・フローにスイッチを配置し、プロセスを2つ以上のブランチにスプリットできます。
どちらのブランチを実行するかを決定する条件が設定されます。フローのブランチ化が条件によって決定される場合、マイルストンのブランチ化ノードは、アクティビティ・ガイド・ツリーに省略記号(...)で表示されます。選択したブランチに対して実行するマイルストンは、スイッチがリアルタイムで実行する場合のみ表示されます。

- パラレル・マイルストン: パラレル・マイルストンは、前のマイルストンが完了した場合、特定の順序に従わずに任意の順序でいつでも実行できるマイルストンです。

- 完了済タスクの無効化: エンド・ユーザーがタスクを完了すると、そのタスクへのリンクがグレー表示され、ユーザーがアクティブではないリンクに注意を向けずに済みます。

- 進捗状況インジケータ: 進捗状況インジケータは、ガイド付きビジネス・プロセス全体の実行の進捗状況に関するフィードバックをエンド・ユーザーに提供します。ガイド付きビジネス・プロセスの完了率の棒グラフを使用して、進捗状況が示されます。

- 完了済タスク: タスクの合計数のうちの完了済タスク数が表示されます。

- フィルタ: タスクの機能状態に基づいてマイルストン内のタスクをフィルタできます。タスクをフィルタする場合に指定可能な機能状態は、「すべて」、「進行中」、「完了」、「必須」、「オプション」です。

- 明示的リフレッシュ: アクティビティ・ガイドを使用してタスクを完了する場合、アクティビティ・ガイドはタスク・フローを自動的にリフレッシュします。プロセス・ワークスペース、カスタムUIクライアントなどの別のアプリケーションからタスクを完了する場合、アクティビティ・ガイドを明示的にリフレッシュする必要があります。明示的なリフレッシュは、デフォルトでは使用できません。明示的なリフレッシュを有効にするには、ShowRefreshButtonプロパティを有効にする必要があります。
ShowRefreshButtonプロパティの構成方法は、30.7項「アクティビティ・ガイド・プロパティの構成」を参照してください。

30.1.3.2 ビジネス・ロジック層

ビジネス・ロジック層には次のコンポーネントがあります。

- ガイド付きビジネス・プロセス・メタデータ・サービス

- ガイド付きビジネス・プロセス問合せサービス

- ガイド付きビジネス・プロセス・インスタンス管理

- ガイド付きビジネス・プロセス・インスタンス・スキーマ

- ヒューマン・ワークフロー・サービス

ガイド付きビジネス・プロセス・メタデータ・サービス

ガイド付きビジネス・プロセスに関連付けられたSOAコンポジットは、ランタイムにガイド付きビジネス・プロセスを駆動します。このため、ランタイム環境のデータはガイド付きビジネス・プロセス・メタデータに格納されません。ガイド付きビジネス・プロセス・メタデータ・サービスは、メタデータ・サービス(MDS)からランタイムのガイド付きビジネス・プロセスの定義を検索および取得します。

ガイド付きビジネス・プロセス問合せサービス

ガイド付きビジネス・プロセス問合せサービスは、指定した検索基準に基づいて、ガイド付きビジネス・プロセス・インスタンス情報を取得します。問合せサービスは、既存のワークフロー・サービスを使用して、ガイド付きビジネス・プロセス・データを問い合せます。ガイド付きビジネス・プロセス問合せサービスは、追加のワークフロー・サービスとしてワークフロー・サービス・ロケータに登録されます。

ガイド付きビジネス・プロセス・インスタンス管理

ガイド付きビジネス・プロセスのランタイムの状態は、独立したオブジェクトとして保持されるため、ガイド付きビジネス・プロセスは、ガイド付きビジネス・プロセスに関連付けられたSOAコンポジットから独立した状態を持つことができます。関連するSOAコンポジット・インスタンスは、SOAコンポジットのランタイム・マネージャによって管理されます。

ガイド付きビジネス・プロセス・インスタンス・スキーマ

スキーマは、ガイド付きビジネス・プロセス・インスタンスの構造を定義します。スキーマは、ランタイムにデータベースに対して持続されたガイド付きビジネス・プロセス・データを表します。

ヒューマン・ワークフロー・サービス

ワークフロー・サービスを使用すると、エンドツーエンドのプロセス・フロー内のシステムおよびサービスへの接続を使用して、ユーザーの相互作用をインターリーブできます。BPMNでは、ワークフロー・サービスは、ユーザー・タスクを使用してBPMNプロセスにリンクされています。プロセスはユーザーまたはロールにタスクを割り当て、応答を待機します。ユーザーは、Oracle BPM Worklistを使用して、タスクを処理します。ヒューマン・ワークフロー・サービスの役割は、ビジネス・プロセスに参加しているユーザーまたはグループのすべての相互作用を処理することです。これを行うために、組織内で該当するユーザーのタスクを作成および追跡します。ユーザーは通常、Oracle BPM Worklistアプリケーション、プロセス・ワークスペース、電子メール、ポータル、カスタム・アプリケーションなどの各種クライアントを通じて、タスクにアクセスします。

ヒューマン・ワークフロー・サービスの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・ワークフローの概要」を参照してください。

30.1.3.3 データ層

Oracle Business Process Managementは、ガイド付きビジネス・プロセス、BPMNプロセス、およびタスク・インスタンスを、ランタイムにデータベースに対して持続します。Oracle Metadata Repository (MDS)には、BPMNプロセス、タスクおよびガイド付きビジネス・プロセス・メタデータなどの使用可能なサービスのスキーマを格納します。ガイド付きビジネス・プロセスをインスタンス化する際に、スキーマが使用されます。

30.2 ガイド付きビジネス・プロセスのユース・ケース

次のユース・ケースは、ガイド付きビジネス・プロセスを使用する様々な状況を示しています。

- 30.2.1項「オンラインの公共部門のフォーム処理」

- 30.2.2項「オンラインのローン申込みプロシージャ」

30.2.1 オンラインの公共部門のフォーム処理

多くの公共部門の組織では、フォームを手動で処理しており、これは大きな労働力を要し、環境面で無駄の多い手続きです。

たとえば、州の機関が入漁および狩猟の許可証を発行するための様々なフォームを提供、収集および処理する必要があるとします。州の機関は、夏および秋に外部の請負業者を追加で雇用して、情報の損失や過失が無いようにしながら、増加する許可証の申込みを効率的に処理します。

許可証の申込みを手動で処理するのではなく、2つのマイルストンを持つガイド付きビジネス・プロセスとして、エンドツーエンドのフォーム処理プロシージャをモデル化できます。

次に示すガイド付きビジネス・プロセスを使用したフォーム処理の例の概略は汎用的で、類似したフォームのエンドツーエンドの処理に適応させることができます。

マイルストン1: 申込みの記入および提出

申込者は、州のWebサイト上の入漁および狩猟の部門のところで、「申込み」ボタンをクリックして、入漁または狩猟の許可証の申込みを記入および提出できます。

このマイルストンには、次のタスクが含まれます。

1. 個人情報: 申込者は、名前、住所などの個人情報を入力する必要があります。

2. 許可証の選択: 申込者は、入漁または狩猟の許可証を選択します。

3. フォーム提出: 申込者は、「提出」ボタンをクリックして、州の入漁および狩猟の部門にフォームを送信します。ワークフローは申込みの承認者を選択し、その承認者にレビューおよびフォローアップをリクエストする電子メールを送信します。

マイルストン2: 申込みの処理および結果の通知

狩猟許可証の申込みには、レビューし、手動で承認または却下する必要があります。

このマイルストンには、次のタスクが含まれます。

1. 申込みの承認/却下: 許可証の申込みの承認者は、承認/却下フローにナビゲートします。

2. ステータス通知: ワークフローは、許可証の申込みのステータスに関する通知を申込者に送信します。

直感的なガイド付きのユーザーの体験とともに、ガイド付きビジネス・プロセスは、許可証の申込みの生産性を向上させながら、許可証の申込みプロセスの効率を最大にします。さらに、ガイド付きビジネス・プロセスは、フロントエンド・レベルおよびバックエンド・レベルの両方で、エンドツーエンドの申込みプロセスを監視できます。

30.2.2 オンラインのローン申込みプロシージャ

ローン組成業界では、銀行は、プロセス統合、規制の順守および商品提供の高速化などのビジネス要素を考慮する必要があります。ローン商品は頻繁に変更され、ローンを提供する州や地域によって異なる場合が多くあります。

次の例は、ローン組成のサブセットに焦点を合せています。このため、図では特定のプロセスのみを示しています。

ビジネス・プロセス・フロー

この例では、オンラインのローン申込みプロシージャのビジネス・プロセス・フローは次のとおりです。

1. 申込みまたは登録: 顧客は、ローン商品の資格情報を入力します。

2. ローンの処理またはロック: 顧客は、特定の商品および金利に同意します。プロシージャのこのステージでは、顧客の追加情報を収集するサブプロセスが発生します。この情報により、引受会社はローンを決定できます。

3. ローンの引受: 引受会社は収集した情報を使用し、ローンを承認または却下します。

4. 終了: ローンを販売する組織は、ローン申込みおよび承諾プロセスを終了します。

図30-5に示すように、これらのプロセスは、相互関係を持つサービスおよびプロシージャに依存しています。

図30-5 織り合わされたローン処理サービスおよびプロシージャ

- 組成: 顧客データおよび関連データを取得し、データの処理に基づいて決定し、サード・パーティ・サービスからデータをリクエストするプロセス。

- サード・パーティ・サービス: 顧客およびローンで購入する商品に関するデータを取得するのに使用されます。

- セカンダリ・プロセス: メイン・プロセスの実行中に実行するプロセス。この例は、各種抵当権付き住宅ローン商品の価格設定に焦点を合せています。

- サービス: 組成に続いて、ローンは、銀行で予約されるか、他の銀行や他のローン・ベンダーなどのセカンダリ市場で販売されます。

これらのプロセスは簡単に表示されますが、プロセスを完了するには、多くのビジネスの課題が存在します。

次第に、ソフトウェア内で実際の人間の間の相互作用を調整する必要があります。ほとんどすべてのソフトウェア・システム、特にコラボレーション・プロセスおよびコンポジット・アプリケーションでは、人間は重要な参加者です。構造化されたワークフロー・システムと人間の相互作用が存在する場合、共通の課題が提示されます。

ローンを承諾するかどうかは、顧客のクレジット履歴、収入およびその他の要素に基づいた、大規模なルールのセットの処理を必要とします。銀行が決定したビジネス・プロセスを使用して、これらの要素を調整する必要があります。申込者の個人情報およびサード・パーティ・サービスからの外部データ・リクエストなどの要素に応じて、その申込者を承認または却下するかを引受会社に警告します。

抵当権付き住宅ローン申込みのガイド付きビジネス・プロセスには、複数のマイルストンが含まれます。次のガイド付きビジネス・プロセスの概略は、抵当権付き住宅ローン申込みのプロシージャを示しています。

マイルストン1: ローン申込み

見込み客はローン供給会社のWebサイトで登録し、一連のガイド付きタスクを介してローンを申し込みます。

1. 登録: 申込者は銀行のWebサイトで登録します。

2. 商品選択: 申込者は、必要な商品のタイプおよび地域的に申込み可能な商品に基づいてローンを選択します。

3. 申込み: 申込者は、ローンの申込みに必要な個人情報を入力します。

マイルストン2: 申込みの処理

ローン申込みプロセスが完了すると、ローンは処理され、承認のためにレビューされます。

1. 情報の取得: 様々なサービスを使用して、ローンおよび申込者の財務状況や個人情報に関する情報にアクセスします。

2. レビュー: 引受会社は、ローンの申込みを手動でレビューする必要があります。

3. 承認: レビューされたデータに基づいて、承認者はローンを承認または却下する必要があります。

マイルストン3: 終了手続き

ローンが承認されると、終了手続きの準備に入ります。

このマイルストンには、次のタスクが含まれます。

1. 終了手続きの予約: タイトル・カンパニーまたは終了手続きの弁護士は、顧客との予約を設定します。

2. 終了手続きの書類: ローンの終了手続き者は、最終的な手続きとして、ローンの書類を終了手続きの代理業者に渡し、必要な書類を顧客に渡します。

30.3 ガイド付きビジネス・プロセスの使用の標準およびガイドライン

次の標準およびガイドラインは、ガイド付きビジネス・プロセスに適用します。

- ガイド付きビジネス・プロセスを、スタンドアロンOracle WebLogic Serverにデプロイする必要があります。

30.4 ガイド付きビジネス・プロセスの開発の一般的なフロー

次に、ガイド付きビジネス・プロセスの開発の主なワークフローについて説明します。

1. 次のように、ガイド付きビジネス・プロセスを開発します。

1. BPMNプロセスを開発し、ガイド付きビジネス・プロセスとして構成します。

2. マイルストンおよび関連付けられたタスクを構成します。

3. タスク・フローを開発します。

4. ガイド付きビジネス・プロセスをデプロイ、インスタンス化およびテストします。

2. ランタイムで使用するために、ガイド付きビジネス・プロセス・フロント・エンドを開発します。フロント・エンドを開発するには、次を実行します。

- Oracle ADF UIまたはOracle WebCenter Portal UIを使用して、クライアント・アプリケーションを開発します。

- Oracle BPM Worklistアプリケーションを、クライアント・アプリケーションとして使用します。

- ガイド付きビジネス・プロセスのランタイム・サービスを使用して、カスタムUIを開発します。

3. ガイド付きビジネス・プロセスのクライアント・アプリケーションをデプロイします。

4. Oracle Enterprise Manager Application Server Controlコンソールを使用して、ガイド付きビジネス・プロセス・インスタンスを監視します。

30.5 ガイド付きビジネス・プロセスの開発の概要

ガイド付きビジネス・プロセスを使用すると、プロセスをマイルストンに編成できます。これらのマイルストンは、エンド・ユーザーにとって意味のあるもので、タスクに関連する情報のみを示すことにより、プロセスの複雑さを意識させません。

ガイド付きビジネス・プロセスを作成し、プロセス内のタスクを一連のマイルストンに編成できます。マイルストンを使用すると、プロセスを実行し、より効率的な方法でプロセスの実行を追跡できます。

次のリストでは、使用できる機能を説明します。

- ブランチ化: ブランチ化では、ビジネス・プロセス・フローにスイッチを配置し、プロセスを2つ以上のブランチにスプリットできます。
どちらのブランチを実行するかを決定する条件が設定されます。フローのブランチ化が条件によって決定される場合、マイルストンのブランチ化ノードは、アクティビティ・ガイド・ツリーに省略記号(...)で表示されます。選択したブランチに対して実行するマイルストンは、スイッチがリアルタイムで実行する場合のみ表示されます。

- オプション/必須タスク: 他に構成されていいないかぎり、デフォルトでは、シーケンシャル・タスクが必要です。ガイド付きビジネス・プロセスの完了に必要なタスクは、アスタリスク(*)付きで表示されます。必須タスクはスキップできません。オプション・タスクは、ガイド付きビジネス・プロセスの完了には必須ではありません。ユーザーは必要に応じてオプション・タスクを実行することができますが、オプション・タスクのスキップを選択することもできます。オプション・タスクの使用例としては、ガイド付きビジネス・プロセスの必須タスクを完了した後に、エンド・ユーザーが必要に応じて記入できる調査などがあります。
タスクを必須またはオプションとして構成すると、ランタイムの必須またはオプションのタスク・タイプでタスクをフィルタ処理できます。

- パラレル・フロー: パラレル・フローを使用すると、ガイド付きビジネス・プロセスは複数のタスクを同時に実行でき、時間がかかり独立した複数のタスクを実行する必要がある場合に役立ちます。
前のマイルストンが完了すると、エンド・ユーザーは、任意の順序でパラレル・マイルストンを実行できます。

- 将来のマイルストンおよびタスク: ガイド付きビジネス・プロセスにアクセスすると、アクティビティ・ガイド・ツリーにマイルストンが表示されます。アクティビティ・ガイドには、将来実行するマイルストンおよびタスクも表示されます。これにより、実行するタスクおよびマイルストンの全体的なビューをユーザーに提供します。アクティビティ・ガイドが順番に実行される場合、将来のタスクおよびマイルストンはグレー表示されます。将来のタスクおよびマイルストンは表示されますが、実行されません。

- 国際化: ガイド付きビジネス・プロセスは、リソース・バンドルを使用した国際化をサポートしています。リソース・バンドルは、テキスト、ラベル、メッセージおよびその他のロケールに影響されるオブジェクトを、コア・ソース・コードから分離し、アクティビティ・ガイドのローカライズされたすべてのバージョンのシングル・コード・ベースを保持します。アクティビティ・ガイドを国際化するには、30.6.33項「BPMNガイド付きビジネス・プロセスをローカライズする方法」を参照してください。

30.6 BPMNガイド付きビジネス・プロセスの開発

BPMNガイド付きビジネス・プロセスを開発するには、まずBPMNプロセスを作成する必要があります。その後、BPMNプロセスに基づくガイド付きビジネス・プロセスを開発できます。

プロジェクトごとに1つのガイド付きビジネス・プロセスのみを定義できます。ガイド付きビジネス・プロセスは、プロジェクトのBPMNプロセスに基づいています。このプロセスはルート・プロセスです。

30.6.1 BPMNガイド付きビジネス・プロセスを開発する方法

BPMNプロセスに基づいて、ガイド付きビジネス・プロセスを開発できます。

BPMNガイド付きビジネス・プロセスを開発するには:

1. BPMNプロセスを作成するか、既存のBPMNプロセスを使用します。

2. BPMプロジェクト・ナビゲータで、BPMNプロセスを含むプロジェクトを展開します。

3. 「アクティビティ・ガイド」ノードを右クリックします。

4. 「構成」を選択します。

5. 「タイトル」テキスト・フィールドに、ガイド付きビジネス・プロセスを識別するタイトルを入力します。

6. 「ルート・プロセス」リストから、ガイド付きビジネス・プロセスに変換するBPMNプロセスを選択します。

7. 「OK」をクリックします。

30.6.2 BPMNガイド付きビジネス・プロセスの開発時に行われる処理

ガイド付きビジネス・プロセスのマイルストンに、BPMNプロセスのユーザー・タスクを追加できます。ガイド付きビジネス・プロセスの構築が終了すると、ガイド付きビジネス・プロセス・クライアントを使用して、BPMNプロセスにアクセスできます。

30.6.3 新規マイルストンをガイド付きビジネス・プロセスに追加する方法

新規マイルストンを既存のガイド付きビジネス・プロセスに追加できます。

新規マイルストンをガイド付きビジネス・プロセスに追加するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを右クリックします。

3. 「新規マイルストン」を選択します。
「新規マイルストン」ダイアログが表示されます。

4. マイルストンのタイトルを入力します。

5. 「残りのタスク」フィールドに、このマイルストンが完了したとみなされるためにユーザーが完了する必要があるタスクの数を入力します。
ランタイムに、アクティビティ・ガイド・ツリーではこの値を使用して、進捗状況インジケータに、合計タスク中の完了タスクのパーセンテージを表示します。

6. 「OK」をクリックします。

30.6.4 マイルストンのガイド付きビジネス・プロセスへの追加時に行われる処理

ガイド付きビジネス・プロセスは新規マイルストンを表示します。ルート・プロセスのユーザー・タスクを新規マイルストンに追加できます。

30.6.5 ユーザー・タスクのマイルストンへの追加方法

ガイド付きビジネス・プロセスのマイルストンに、ユーザー・タスクを追加できます。

マイルストンにユーザー・タスクを追加するには:

1. ルート・プロセスを開きます。

2. ユーザー・タスクを右クリックします。

3. 「マイルストンに追加」を選択します。
「マイルストンへのユーザー・タスクの追加」ダイアログが表示されます。

4. 「マイルストン」リストから、ユーザー・タスクを追加するマイルストンを選択します。
マイルストンが作成されていない場合、「マイルストン」リストの横にある「追加」ボタンを使用して、マイルストンを作成できます。

5. ユーザー・タスクがマイルストンの最終タスクである場合、「マイルストンの最終タスク」チェック・ボックスを選択します。

6. 「OK」をクリックします。

30.6.6 ユーザー・タスクのマイルストンへの追加時に行われる処理

ガイド付きビジネス・プロセス・クライアントから、ユーザー・タスクを実行できます。アクティビティ・ガイド・ツリーのマイルストンの下に、ユーザー・タスクが表示されます。

30.6.7 ユーザー・タスクの別のマイルストンへの移動方法

ガイド付きビジネス・プロセスには、少なくとも2つのマイルストンが含まれていることを確認します。マイルストンが1つのみである場合、「マイルストンに移動」オプションがグレー表示されます。

別のマイルストンにユーザー・タスクを移動するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、ユーザー・タスクを右クリックします。

3. 「マイルストンに移動」を選択します。
「マイルストンに移動」ダイアログが表示されます。

4. 「マイルストン」リストから、ユーザー・タスクを移動するマイルストンを選択します。

5. 「OK」をクリックします。

30.6.8 ユーザー・タスクの別のマイルストンへの移動時に行われる処理

以前のマイルストンには、ユーザー・タスクはリストされなくなります。ユーザー・タスクは、新規マイルストンに表示されます。

30.6.9 BPMNガイド付きビジネス・プロセスのマイルストンを順序付けする方法

ガイド付きビジネス・プロセスには、少なくとも2つのマイルストンが含まれていることを確認します。マイルストンが1つのみである場合、「マイルストンに移動」オプションがグレー表示されます。

BPMNガイド付きビジネス・プロセスのマイルストンを順序付けするには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを展開します。

3. 次のように、各マイルストンを右の位置に移動します。

1. マイルストンを右クリックします。

2. マイルストンを移動する場所に応じて、「上に移動」または「下に移動」を選択します。

30.6.10 ガイド付きビジネス・プロセスのマイルストンを順序付けするときに行われる処理

アクティビティ・ガイド・ツリーに、調整した順序で、マイルストンが表示されます。

30.6.11 ガイド付きビジネス・プロセスからタスクを削除する方法

ガイド付きビジネス・プロセスからタスクを削除できます。

ガイド付きビジネス・プロセスからタスクを削除するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを展開します。

3. 削除するタスクを含むマイルストンが縮小されている場合、それを展開する必要があります。

4. 削除するタスクを右クリックします。

5. 「削除」を選択します。
確認のメッセージが表示されます。

6. 「OK」をクリックします。

30.6.12 ガイド付きビジネス・プロセスからのタスクの削除時に行われる処理

ガイド付きビジネス・プロセスから、そのタスクにアクセスできません。ガイド付きビジネス・プロセスを含むマイルストンには、そのタスクはリストされなくなります。

30.6.13 マイルストンの削除方法

ガイド付きビジネス・プロセスから、使用しないまたは必要としないマイルストンを削除できます。

マイルストンを削除するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを展開します。

3. 削除するマイルストンを右クリックします。

4. 「削除」を選択します。
確認のメッセージが表示されます。

5. 「OK」をクリックします。

30.6.14 マイルストンの削除時に行われる処理

マイルストンはガイド付きビジネス・プロセスに表示されません。マイルストンのすべてのユーザー・タスクは、ガイド付きビジネス・プロセスから削除されます。ガイド付きビジネス・プロセスから、これらのタスクにアクセスできなくなります。

30.6.15 オプション・タスクの構成方法

ガイド付きビジネス・プロセスを完了するのに必須とならないように、タスクをオプションとして構成できます。

オプション・タスクを構成するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを展開します。

3. タスクを含むマイルストンを展開します。

4. タスクを右クリックします。

5. 「編集」を選択します。
「ユーザー・タスクの編集」ダイアログが表示されます。

6. 「タスクをオプションとして表示」を選択します。

7. 「OK」をクリックします。

30.6.16 オプション・タスクの構成時に行われる処理

デフォルトでは、オプションになるよう構成しない場合、すべてのタスクが必須になります。オプションとして構成するタスクにスキップ・ボタンを構成する必要があります。

ユーザーのグループに特定のタスクを割り当てると、グループの任意のユーザーがそのタスクを申告できます。タスクを申告した後に、ユーザーがそれを完了しないことにした場合、ユーザーはそのタスクをスキップできます。ユーザーがタスクをスキップすると、そのタスクはグループに再度割り当てられ、グループの他のユーザーが申告して完了できるようになります。

30.6.17 BPMNガイド付きビジネス・プロセスのパラレル・タスク・フローを構成する方法

パラレル・タスク・フローを構成するには、BPMNプロセスでゲートウェイを使用する必要があります。ゲートウェイの使用方法の詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

30.6.18 BPMNガイド付きビジネス・プロセスでタスク・フローを分岐する方法

タスク・フローを分岐するには、BPMNプロセスでゲートウェイおよび条件シーケンス・フローを使用する必要があります。ゲートウェイおよび条件シーケンス・フローの使用方法の詳細は、第6章「Oracle BPMを使用したビジネス・プロセスのモデリング」を参照してください。

30.6.19 ブロックされたアイコンを表示するタスクの構成方法

エンド・ユーザーがタスクを実行できない場合、ブロックされたアイコンおよびメッセージを表示するように、タスクを構成できます。

ブロックされたアイコンおよびメッセージを表示するようにタスクを構成するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを展開します。

3. タスクを含むマイルストンを展開します。

4. 「編集」を選択します。
「ユーザー・タスクの編集」ダイアログが表示されます。

5. 「ブロックされたアイコンとテキストを表示」チェック・ボックスを選択します。

6. ガイド付きビジネス・プロセスでブロックされていることを説明するメッセージを表示させる場合、フィールドにメッセージを入力します。

7. 「OK」をクリックします。

30.6.20 ブロックされたアイコンおよびメッセージを表示するタスクの構成時に行われる処理

現在のタスクが完了し、次のタスクがインスタンス化されていない場合、アクティビティ・ガイド・ツリーに、ブロックされたアイコンが表示されます。説明のメッセージを定義した場合、ブロックされたアイコン上にカーソルを置くと、ツールチップにメッセージが表示されます。

30.6.21 ガイド付きビジネス・プロセスのアイコンを構成する方法

「アクティビティ・ガイド」ノードの横に表示されるように、アクティビティ・ガイド・ツリーにカスタム・アイコンを構成できます。

ガイド付きビジネス・プロセスのアイコンを構成するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを右クリックします。

2. 「構成」を選択します。

3. 「アイコンの位置」フィールドの横にある「参照」ボタンをクリックします。
「参照アイコン」ダイアログが表示されます。

4. ファイル・システムからアイコンを選択します。

5. 「開く」をクリックします。
「アクティビティ・ガイドの編集」ダイアログにアイコン・パスが表示されます。

6. 「OK」をクリックします。

30.6.22 ガイド付きビジネス・プロセスのアイコンの構成時に行われる処理

アクティビティ・ガイド・ツリーは、このアイコンを使用して、アクティビティ・ガイド・ノードを識別します。アイコンを指定しない場合、アクティビティ・ガイド・ノードではアイコンが表示されません。

30.6.23 マイルストンのアイコンを構成する方法

各マイルストンの横に表示されるように、アクティビティ・ガイド・ツリーにカスタム・アイコンを構成できます。

マイルストンのアイコンを構成するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを展開します。

3. マイルストンを右クリックします。

4. 「編集」を選択します。

5. 「アイコンの位置」フィールドの横にある「参照」ボタンをクリックします。
「参照アイコン」ダイアログが表示されます。

6. ファイル・システムからアイコンを選択します。

7. 「開く」をクリックします。
「マイルストンの編集」ダイアログにアイコン・パスが表示されます。

8. 「OK」をクリックします。

30.6.24 マイルストンのアイコンの構成時に行われる処理

アクティビティ・ガイド・ツリーは、このアイコンを使用して、マイルストン・ノードを識別します。アイコンを指定しない場合、マイルストン・ノードではアイコンが表示されません。

30.6.25 ガイド付きビジネス・プロセスの表示モードを構成する方法

ガイド付きビジネス・プロセスの表示モードを構成して、マイルストンおよびタスクのリンクの表示方法を指定できます。

ガイド付きビジネス・プロセスの表示モードを構成するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを右クリックします。

2. 「編集」を選択します。

3. 「表示モード」リストで、次のオプションから選択します。

表示モード

説明

常時

このガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンおよびタスクのリンクを常に表示します。

インスタンス化時

ガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンの1つ以上のユーザー・タスクがインスタンス化されているときにのみ、マイルストンおよびタスクのリンクを表示します。

4. 「OK」をクリックします。

30.6.26 ガイド付きビジネス・プロセスの表示モードの構成時に行われる処理

ガイド付きビジネス・プロセス内のマイルストンおよびタスクは、この構成を使用して、マイルストンおよびタスクのリンクを表示します。マイルストンおよびタスクが別の構成を使用するように構成されている場合、ガイド付きビジネス・プロセスの構成は無視されます。

30.6.27 マイルストンの表示モードを構成する方法

マイルストンの表示モードを構成して、マイルストンおよびタスクのリンクの表示方法を指定できます。

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを右クリックします。

2. 「編集」を選択します。

3. 「表示モード」リストで、次のオプションから選択します。

表示モード

説明

デフォルト

ガイド付きビジネス・プロセスの構成を使用します。

常時

マイルストンのリンクを常に表示します。

インスタンス化時

マイルストンの1つ以上のユーザー・タスクがインスタンス化されているときにのみ、マイルストンのリンクを表示します。

BPMサービス・エンジンが条件を評価するまでアクティビティ・ガイド・ツリーにマイルストンが表示されないように、条件ゲートウェイの後に配置されたマイルストンに、このモードを使用します。

4. 「OK」をクリックします。

30.6.28 マイルストンの表示モードの構成時に行われる処理

ガイド付きビジネス・プロセスの構成に関係なく、この構成に従って、マイルストンのリンクが表示されます。

30.6.29 ユーザー・タスクの表示モードを構成する方法

ユーザー・タスクの表示モードを構成して、タスクのリンクの表示方法を指定できます。

ユーザー・タスクの表示モードを構成するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、ユーザー・タスクを含むマイルストンを展開します。

3. ユーザー・タスクを右クリックします。

4. 「編集」を選択します。

5. 「表示モード」リストで、次のオプションから選択します。

表示モード

説明

デフォルト

マイルストンの構成を使用します。

常時

タスクを含むマイルストンが表示されている場合、タスクのリンクを常に表示します。ユーザー・タスクがインスタンス化されていない場合、このリンクはグレー表示されます。

インスタンス化時

ユーザー・タスクがインスタンス化されているときにのみ、タスクを表示します。

BPMサービス・エンジンが条件を評価するまでアクティビティ・ガイド・ツリーにユーザー・タスクが表示されないように、条件ゲートウェイの後に配置されたユーザー・タスクに、このモードを使用します。

6. 「OK」をクリックします。

30.6.30 ユーザー・タスクの表示モードの構成時に行われる処理

ガイド付きビジネス・プロセスの構成およびマイルストンの構成に関係なく、この構成に従って、タスクのリンクが表示されます。マイルストンが表示されているときに、タスクのリンクが表示されます。

30.6.31 ガイド付きビジネス・プロセスのタスク・アクセス・モードを構成する方法

ガイド付きビジネス・プロセスのタスク・アクセス・モードを構成して、タスクのリンクが有効になるタイミングを指定できます。

ガイド付きビジネス・プロセスのタスク・アクセス・モードを構成するには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを右クリックします。

2. 「編集」を選択します。

3. 「タスク・アクセス」リストで、次のオプションから選択します。

タスク・アクセス・モード

説明

アクティブのみ

タスクへのリンクは、タスクがアクティブであり、ユーザーが更新可能なときにのみ有効になります。タスクを完了すると、タスクへのリンクはグレー表示されます。

任意の状態

タスクへのリンクは、タスクをインスタンス化した後は常に有効になります。タスクを完了した後でも有効なままです。

4. 「OK」をクリックします。

30.6.32 ガイド付きビジネス・プロセスのタスク・アクセス・モードの構成時に行われる処理

タスクが完了した後、ガイド付きビジネス・プロセスではこの構成を使用してリンクが表示されます。タスク・モードが「アクティブのみ」の場合は、タスクのリンクがグレー表示されます。タスク・モードが「任意の状態」の場合は、タスクのリンクは有効なままになり、タスクを実行しようとしたときにメッセージが表示されます。

30.6.33 BPMNガイド付きビジネス・プロセスをローカライズする方法

クライアントが異なるロケールで表示できるように、BPMNガイド付きビジネス・プロセスをローカライズできます。

BPMNガイド付きビジネス・プロセスをローカライズするには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを右クリックします。

3. 「編集」を選択します。

4. 「タイトル」リストから、「変換」を選択します。

5. 「タイトル」フィールドの横にある「変換」アイコンをクリックします。
「翻訳可能文字列の編集」ダイアログが表示されます。

6. 「リソース・バンドルの作成」をクリックします。
「リソース・バンドルの作成」ダイアログが表示されます。

7. リソース・バンドルを識別するための名前を入力します。

8. 「OK」をクリックします。
「翻訳可能文字列の編集」ダイアログに、作成したリソース・バンドルが表示されます。

9. キー・リストの横にある「追加」アイコンをクリックして、新規翻訳キーを追加します。
「新規キーの作成」ダイアログが表示されます。

10. 「名前」フィールドに、翻訳キーを識別するための名前を入力します。

11. 「翻訳可能なテキスト」フィールドに、タイトルを入力します。

12. 「OK」をクリックします。

13. 「説明」リストから、「変換」を選択します。

14. 「説明」フィールドの横にある「変換」アイコンをクリックします。
「翻訳可能文字列の編集」ダイアログが表示されます。

15. キー・リストの横にある「追加」アイコンをクリックして、新規翻訳キーを追加します。
「新規キーの作成」ダイアログが表示されます。

16. 「名前」フィールドに、翻訳キーを識別するための名前を入力します。

17. 「翻訳可能なテキスト」フィールドに、説明を入力します。

18. 「OK」をクリックします。

19. 「アクティビティ・ガイドの編集」ダイアログで、「OK」をクリックします。

20. ガイド付きビジネス・プロセスを構成するマイルストンをローカライズします。

30.6.34 マイルストンのローカライズ方法

クライアントが異なるロケールで表示できるように、マイルストンをローカライズできます。

マイルストンをローカライズするには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを右クリックします。

3. 「編集」を選択します。

4. 「タイトル」リストから、「変換」を選択します。

5. 「タイトル」フィールドの横にある「変換」アイコンをクリックします。
「翻訳可能文字列の編集」ダイアログが表示されます。

6. キー・リストの横にある「追加」アイコンをクリックして、新規翻訳キーを追加します。
「新規キーの作成」ダイアログが表示されます。

7. 「名前」フィールドに、翻訳キーを識別するための名前を入力します。

8. 「翻訳可能なテキスト」フィールドに、タイトルを入力します。

9. 「OK」をクリックします。

10. 「説明」リストから、「変換」を選択します。

11. 「説明」フィールドの横にある「変換」アイコンをクリックします。
「翻訳可能文字列の編集」ダイアログが表示されます。

12. キー・リストの横にある「追加」アイコンをクリックして、新規翻訳キーを追加します。
「新規キーの作成」ダイアログが表示されます。

13. 「名前」フィールドに、翻訳キーを識別するための名前を入力します。

14. 「翻訳可能なテキスト」フィールドに、説明を入力します。

15. 「OK」をクリックします。

16. 「アクティビティ・ガイドの編集」ダイアログで、「OK」をクリックします。

17. マイルストンに、ブロックされたアイコンおよびテキストを表示するように構成されたユーザー・タスクが含まれる場合、マイルストンを構成するユーザー・タスクをローカライズします。

30.6.35 ユーザー・タスクのローカライズ方法

ユーザー・タスクでは、次の要素をローカライズできます。

- タイトル

- 説明

- ブロックされたテキスト

このプロシージャは、ブロックされたテキストのローカライズ方法を示しています。ローカライズのフロー・オブジェクトの標準プロシージャに従って、ユーザー・タスクのタイトルおよび説明もローカライズできます。

ユーザー・タスクをローカライズするには:

1. BPMプロジェクト・ナビゲータで、「アクティビティ・ガイド」ノードを選択します。

2. 「構造」ウィンドウで、「アクティビティ・ガイド」ノードを展開します。

3. 削除するタスクを含むマイルストンが縮小されている場合、そのマイルストンを展開します。

4. タスクを右クリックします。

5. 「編集」を選択します。

6. 「ブロックされたアイコンとテキストを表示」リストで、「変換」を選択します。

7. 「タイトル」フィールドの横にある「変換」アイコンをクリックします。
「翻訳可能文字列の編集」ダイアログが表示されます。

8. キー・リストの横にある「追加」アイコンをクリックして、新規翻訳キーを追加します。
「新規キーの作成」ダイアログが表示されます。

9. 「名前」フィールドに、翻訳キーを識別するための名前を入力します。

10. 「翻訳可能なテキスト」フィールドに、タイトルを入力します。

11. 「OK」をクリックします。

30.6.36 ガイド付きビジネス・プロセスのローカライズ時に行われる処理

ガイド付きビジネス・プロセス、マイルストンおよびタスクのタイトルおよび説明は、ガイド付きビジネス・プロセス・クライアントで指定したロケールで表示されます。

30.7 アクティビティ・ガイド・プロパティの構成

アクティビティ・ガイドのプロパティを構成することでその動作をカスタマイズできます。これらのプロパティを構成するには、アクティビティ・ガイド・プロパティ・ファイルを編集する必要があります。

通常は、このファイルにactivityguide.propertiesという名前を付けます。別の名前を選択する場合は、パラメータAGPropsBeanNameを使用してag-tasktree-task-flowにその値を指定する必要があります。

表30-1に、このファイルで指定できるプロパティを示します。

例30-1は、典型的なアクティビティ・ガイド・プロパティ・ファイルを示しています。

表30-1 アクティビティ・ガイド・プロパティ

プロパティ

説明

指定可能な値

ServerConnectionMode

データの伝送のモードを指定します。

- SOAP

- REMOTE

WorklistHttpURL

デジタル署名を使用する場合にのみ必要です。Oracle BPM WorklistアプリケーションにアクセスするためのURLを指定します。

http://host:port/integration/worklisapp

SelectionFilter

アクティビティ・ガイドのプロセスをフィルタ処理するのに使用するフィルタを指定します。

- MY

- PREVIOUS

- REPORTEES

- ADMIN

AGDefinitionFilter

アクティビティ・ガイドのプロセスをフィルタ処理するのに使用する定義IDを指定します。アクティビティ・ガイドは、このIDに一致するプロセスの表示のみを行います。

アクティビティ・ガイドの定義ID

AGInstanceOrdering

アクティビティ・ガイドのプロセスの表示に使用する順序を指定します。

例: CREATION_DATE:ASC

- 列名:ASC

- 列名:DESC

デフォルト値: ASC

AGInstanceID

アクティビティ・ガイド・ツリーの表示に使用するインスタンスIDを指定します。

例: 10001

アクティビティ・ガイドのインスタンスID

CustomPredicate1

アクティビティ・ガイドのプロセスのリストをフィルタ処理するための、追加の述語を指定します。

例: CREATOR、EQ、jstein

列名, 演算子, 値

CustomPredicate2

アクティビティ・ガイドのプロセスのリストをフィルタ処理するための、別の追加の述語を指定します。この述語はCustomPredicate1で使用されます。

列名, 演算子, 値

ShowAllAGTreeNodesProperties

アクティビティ・ガイドで、アクティビティ・ガイド、マイルストンおよびタスクのプロパティを説明するセクションを、上部に表示するかどうかを指定します。

- true

- false

デフォルト値: true

ShowRefreshButton

リージョン領域でリフレッシュ・ボタンを表示するかどうかを指定します。

- true

- false

デフォルト値: false

AGTasksPopupTaskFlowID

タスクのポップアップに表示する内容を指定します。

完全修飾されたタスクフローID

HideAGTreeRootNode

アクティビティ・ガイド・ツリーのルート・ノードでガイド付きビジネス・プロセスのタイトルを非表示にします。

- true

- false

デフォルト値: false

ShowCustomBlockedIcon

ガイド付きビジネス・プロセスがカスタム・タスクがブロックされたアイコンを表示するかどうかを指定します。

- true

- false

デフォルト値: false

例30-1 アクティビティ・ガイド・プロパティ・ファイル

#ActivityGuide Properties
ServerConnectionMode=SOAP
SelectionFilter=MY
ShowRefreshButton=true
#ShowAllAGTreeNodesProperties=true
## Sample value for AGDefinitionFilter: default/BPMAGPrj2!2.0*31fcd931-6263-4b58-97cf-6fb084addabc
#AGDefinitionFilter=
#AGInstanceID=110003
#AGInstanceOrdering=CIKEY:DESC
#CustomPredicate1=STATE,EQ,OPEN
#CustomPredicate2=STATUS,EQ,In Progress
## Example Value for  AGTasksPopupTaskflowID is /WEB-INF/ag-popup-task-flow.xml#ag-popup-task-flow
#AGTasksPopupTaskflowID=
#ShowCustomBlockedIcon=true
#HideAGTreeRootNode=false
##WorklistHttpURL is required only for digital signatures
#WorklistHttpURL=http://host:port/integration/worklistapp

30.8 ガイド付きビジネス・プロセスのOracle Weblogic Serverへのデプロイ

ガイド付きビジネス・プロセスは、SOAコンポジット・プロセスと同じ方法で、アプリケーション・サーバーにデプロイされます。ただし、ガイド付きビジネス・プロセスを、JDeveloperに含まれる埋込みのOracle WebLogic Serverではなく、Oracle WebLogic Serverのスタンドアロン・インスタンスにデプロイする必要があります。

30.8.1 ガイド付きビジネス・プロセスをデプロイする方法

ガイド付きビジネス・プロセスをOracle WebLogic Serverにデプロイするには、次の主なステップを実行します。

- Oracle WebLogic Serverへの接続の作成

- JDeveloperまたはAntスクリプトを使用したガイド付きビジネス・プロセスのデプロイ

ガイド付きビジネス・プロセスをデプロイするには:

ガイド付きビジネス・プロセスのデプロイでの主なステップは次のとおりです。

1. Oracle WebLogic Serverへの接続を作成します。

1. 接続タイプWeblogic 10.3を使用します。

2. WLSドメインの名前を入力します。

2. JDeveloperを介して、またはAntスクリプトを使用して、ガイド付きビジネス・プロセスをデプロイします。
JDeveloperを使用してガイド付きビジネス・プロセスをデプロイするには:

- ガイド付きビジネス・プロセスに関連付けられたSOAコンポジットを右クリックし、「デプロイ」を選択します。SOAコンポジットの名前、および前のステップで構成されたサーバー接続の名前を選択します。

Antスクリプトを使用してガイド付きビジネス・プロセスをデプロイするには:

- SOAコンポジットを右クリックし、「デプロイ」、SOAコンポジットの名前および「JARへ」を選択します。

- 例30-2に示すコマンドを実行します。

例30-2 Antスクリプトを使用したガイド付きビジネス・プロセスのデプロイ

ant -f $ORACLE_HOME/bin/ant-sca-deploy.xml -DsarLocation <location of sca_composite.jar> -DserverURL <soa server url> - Duser <administrator user name> -Dpassword <administrator password>

SOAコンポジットのアプリケーション・サーバーへのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「Enterprise Managerを使用したSOAアプリケーションのデプロイ」を参照してください。

30.8.2 ガイド付きビジネス・プロセスのOracle WebLogic Serverへのデプロイ時に行われる処理

ガイド付きビジネス・プロセスは、WLS上で実行されます。Oracle Enterprise Manager Application Server Controlコンソールを使用して、ガイド付きビジネス・プロセスを表示できます。

SOAアプリケーションのWLSへのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「Enterprise Managerを使用したSOAアプリケーションのデプロイ」を参照してください。

30.9 ガイド付きビジネス・プロセスのテスト

Oracle Enterprise Manager Application Server Controlコンソールで、デプロイされたガイド付きビジネス・プロセスのインスタンスを作成できます。これは、テストを行う場合に役立ちます。

ガイド付きビジネス・プロセス・インスタンスを作成するには:

1. Webブラウザで、Oracle Enterprise Manager Fusion Middleware ControlコンソールのURLを次のように入力します。

例30-3 Oracle Enterprise Manager Fusion Middleware ControlコンソールのURL

http://<hostname of Weblogic standalone server>:<port>/em

2. アプリケーションを参照し、作成したSOAコンポジットをクリックします。

3. 「アクション」→「サービスのテスト - クライアント」を選択します。

4. サンプル・データを入力し、コンポジットを起動することによって、ガイド付きビジネス・プロセスをテストします。

5. Fusion Middleware Controlコンソールをリフレッシュし、SOAコンポジット・インスタンスが作成されたことを確認します。ビジネス・プロセスが完了したことを確認します。

30.9.1 ガイド付きビジネス・プロセス・インスタンスの作成時に行われる処理

ガイド付きビジネス・プロセスにインスタンスを作成すると、ガイド付きビジネス・プロセスの状態が「進行中」に変更され、クライアント・アプリケーションにアクティビティ・ガイド・ツリーを表示できます。

31 ガイド付きビジネス・プロセスのクライアント・アプリケーションの構築

この章では、ガイド付きビジネス・プロセスの作成時に定義したマイルストンを使用して、プロセス・インスタンスを表示するクライアント・アプリケーションの構築方法について説明します。

この章の内容は次のとおりです。

- 31.1項「ガイド付きビジネス・プロセスのクライアント・アプリケーションの構築の概要」

- 31.2項「Oracle ADFを使用したガイド付きビジネス・プロセスのクライアント・アプリケーションの開発」

- 31.3項「ガイド付きビジネス・プロセスのクライアント・アプリケーションの保護」

- 31.4項「ガイド付きビジネス・プロセスのクライアント・アプリケーションのローカライズ」

- 31.5項「ガイド付きビジネス・プロセスのランタイムAPI」

- 31.6項「ガイド付きビジネス・プロセスのランタイム・サービスを使用したガイド付きビジネス・プロセスのタスクのユーザー・インタフェースの例の開発」

- 31.7項「ガイド付きビジネス・プロセスのロギングの使用」

31.1 ガイド付きビジネス・プロセスのクライアント・アプリケーションの構築の概要

ガイド付きビジネス・プロセスは、ガイド付きビジネス・プロセスを表示および実行するADFアプリケーションを構築するのに使用できる事前定義済ADFタスクフローを提供します。

提供されたADFタスクフローが要件を満たさない場合、UIクライアント・アプリケーションが表示する情報を取得するために、ガイド付きビジネス・プロセスが提供する一連のAPIを使用できます。これらのAPIを使用すると、WebサービスおよびEnterprise Java Beansを使用して、マイルストンおよびタスクに関するデータを取得できます。

31.2 Oracle ADFを使用したガイド付きビジネス・プロセスのクライアント・アプリケーションの開発

ガイド付きビジネス・プロセスのクライアント・アプリケーションは、ガイド付きビジネス・プロセスのタスク・フローのユーザー・インタフェースを提供します。任意の構成で、シンプルなADF JSPXページに、クライアント・アプリケーションを開発できます。通常、クライアント・アプリケーションには、アクティビティ・ガイド・ツリーを表示するリージョンと、ツリーから選択された特定のノードの詳細を表示する別のリージョンが含まれます。

これらの2つのリージョンを表示する方法として、JSPXページの左側に動的なリージョン、右側にヒューマン・タスク・フローを配置します。ただし、構成することはできます。

31.2.1 ガイド付きビジネス・プロセスのクライアント・アプリケーションを開発する方法

ガイド付きビジネス・プロセスのクライアント・アプリケーションを開発するには:

1. JDeveloperで新しいアプリケーションを作成します。

2. ViewControllerプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。

3. 「ライブラリとクラスパス」を選択します。

4. 「JAR/ディレクトリの追加」をクリックします。
ファイル・ブラウザ・ダイアログ・ボックスが開きます。

5. <JDEV_HOME>/jdeveloper/soa/modulesの下にあるoracle.bpm.activityguide-ui.jarを選択します。

6. 「選択」をクリックします。

7. 次のコードを追加して、weblogic-application.xmlファイルにランタイム共有ライブラリoracle.soa.bpelとoracle.soa.workflow.wcの参照を追加します。

<library-ref>
<library-name>oracle.soa.bpel</library-name></library-ref><library-ref>
<library-name>oracle.soa.workflow.wc</library-name>
</library-ref>

8. アクティビティ・ガイドを表示する新規JSFページ(.jspx)を作成します。

9. 次のタスク・フローをJSFページ(.jspx)にドラッグ・アンド・ドロップします。

- ag-tasktree-task-flow: アクティビティ・ガイド・ツリーを表示する場合

- ag-humantask-task-flow: 個々のアクティビティ・ガイド・ノードを表示する場合

注意:

タスク・フローをドラッグ・アンド・ドロップすると、そのタスク・フローのリージョンが自動的に作成されます。

10. アクティビティ・ガイド・プロパティを使用してファイルを作成します。

注意:

通常は、このファイルにactivityguide.propertiesという名前を付けます。別の名前を選択する場合は、パラメータAGPropsBeanNameを使用してag-tasktree-task-flowにその値を指定する必要があります。

アクティビティ・ガイド・プロパティの詳細は、30.7項「アクティビティ・ガイド・プロパティの構成」を参照してください。

アイデンティティ伝播を使用してアクティビティ・ガイドを保護する場合、WorkflowAdminUserプロパティおよびWorkflowAdminPasswordプロパティは必要ありません。

11. サマリー情報を持つタスク・フローのポップアップを有効にするには、アクティビティ・ガイド・プロパティ・ファイルに次のプロパティを指定します。
AGTasksPopupTaskFlowID: このパラメータを使用して、ADF動的リージョンにタスク・フロー・サマリーを表示します。関連するタスク・フローIDを入力します。

このパラメータを設定しない場合、OutputTextの値が、デフォルトのタスク・サマリーとして、ポップアップに表示されます。

無効なタスク・フローのリージョンIDを指定した場合、ガイド付きビジネス・プロセスでは、リージョンがレンダリングされず、サーバー・ログにメッセージが記録されます。

12. 次のいずれかの方法を使用して、アクティビティ・ガイド・ツリーにリフレッシュ・ボタンを表示するように、アクティビティ・ガイドを構成します。

- アクティビティ・ガイド・プロパティ・ファイルで、パラメータShowRefreshButtonを追加します。この値をtrueに設定すると、リフレッシュ・ボタンの表示が有効になり、falseまたはその他の値にすると、リフレッシュ・ボタンが無効になります。

- アクティビティ・ガイド・ツリーのタスク・フローで、パラメータShowRefreshButtonを追加し、その値をtrueに設定します。このタスク・フロー・パラメータは、アクティビティ・ガイド・プロパティ・ファイルに設定されたパラメータの値をオーバーライドします。
ShowRefreshButtonパラメータの値がemptyまたはnullの場合、ファイルactivityguide.propertiesのプロパティShowRefreshButtonでは、リフレッシュ・ボタンを表示するかどうかを定義します。activityguide.propertiesファイルにこのプロパティの値を指定しない場合、リフレッシュ・ボタンはクライアントに表示されません。

例31-1は、ツリー・タスク・フローへのShowRefreshButtonパラメータの追加を示しています。

例31-1 ツリー・タスク・フローへのShowRefreshButtonパラメータの追加

<taskFlow id="dynamicRegion1"
taskFlowId="${backingBeanScope.dynamicLeft.dynamicTaskFlowId}"
xmlns="http://xmlns.oracle.com/adf/controller/binding" >
<parameters>
<parameter id="ShowRefreshButton" value="true”
xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
</parameters>
</taskFlow>

13. activity.propertiesファイルの場所を含めるように、ファイルadfc-config.xmlを編集します。これは、activityguide.propertiesファイルへの絶対パスである必要があります。
adfc-config.xmlの例を例31-2に示します。

例31-2 activityguide.propertiesファイルへの参照を使用したadfc-config.xmlファイル

<managed-bean id="__10">
<managed-bean-name id="__12">agProps</managed-bean-name>
<managed-bean-class id="__11">oracle.bpel.activityguide.ui.beans.model.AGProperties</managed-bean-class>
<managed-bean-scope id="__9">session</managed-bean-scope>
<managed-property id="__15">
<property-name>agPropsFilePath</property-name>
<property-class>java.lang.String</property-class>
<value id="__14"><!-- relative path or absolute path should be given here-->/activityguide.properties</value>
</managed-property>
</managed-bean>

14. ワークフロー・サービス・クライアント構成ファイルを作成します。例を例31-3に示します。

例31-3 ワークフロー・サービス・クライアント構成ファイル

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workflowServicesClientConfiguration xmlns="http://xmlns.oracle.com/bpel/services/client">
<server default="true" name="default">
<localClient>
<participateInClientTransaction>false</participateInClientTransaction>
</localClient>
<remoteClient>
<serverURL>t3://host:port</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
<soapClient>
<rootEndPointURL>http://host:port</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
</server>

31.2.2 Oracle ADFを使用したガイド付きビジネス・プロセスのアプリケーションの開発時に行われる処理

ADF Webプロジェクトを使用したJDeveloperアプリケーションが作成されます。アプリケーションには次のものが含まれます。

- 1つがアクティビティ・ガイド・ツリー用、もう1つがアクティビティ・ガイド・ノード詳細用の、2つのリージョンを持つJSFページ。

- activityguide.propertiesファイル。

31.2.3 ランタイムで行われる処理: Oracle ADFを使用してガイド付きビジネス・プロセスのアプリケーションを開発する方法

ランタイムに、Oracle ADFアプリケーションでは、デザインタイムに開発されたガイド付きビジネス・プロセスが表示されます。共通のADFレイヤーのコンテキスト・イベント・メカニズムによって、対応するアクティビティ・ガイド・ツリーとアクティビティ・ガイド・ノード詳細の間の通信を処理します。

ガイド付きビジネス・プロセス・インスタンスを選択すると、アクティビティ・ガイド・ツリーにそのガイド付きビジネス・プロセス・インスタンスのアクティビティ・ガイド、マイルストンおよびタスクの情報が表示されます。

または、JSFページのactivityguide.propertiesファイルのAGInstanceIDプロパティを構成して、特定のガイド付きビジネス・プロセス・インスタンスの次の情報をレンダリングすることができます。

- アクティビティ・ガイド

- マイルストン

- タスク

アクティビティ・ガイド・ツリーのマイルストン・ノードを選択すると、そのマイルストンの下のサブツリーが取得またはリフレッシュされます。

アクティビティ・ガイド・ツリーのタスク・ノードを選択すると、そのタスクの詳細タスク情報が表示されます。

31.3 ガイド付きビジネス・プロセスのクライアント・アプリケーションの保護

ガイド付きビジネス・プロセスのクライアント・アプリケーションを保護するには、適切な資格証明を持つユーザーのみが、ガイド付きビジネス・プロセスで説明されたタスクを完了できることを確認します。セキュリティ機能には、認証、認可およびポリシー施行があります。

31.4 ガイド付きビジネス・プロセス・クライアント・アプリケーションのローカライズ

ガイド付きビジネス・プロセス・クライアント・アプリケーションをローカライズすると、定義したすべてのサポート言語でこのクライアントを実行できます。

ガイド付きビジネス・プロセス・アプリケーションをローカライズする場合は、ガイド付きビジネス・プロセスの設計時に次のコンポーネントをローカライズする必要があります。

- AGのタイトル

- AGの説明

- マイルストンのタイトル

- マイルストンの説明

- ブロックされたタスクの説明テキスト

ガイド付きビジネス・プロセスは、ユーザー・インタフェースの一部である文字列(表示タイトル、説明など)を自動的に翻訳します。ガイド付きビジネス・プロセスは、次のロケールをサポートします。

- フランス語

- ドイツ語

- イタリア語

- スペイン語

- ブラジル語

- 日本語

- 韓国語

- 簡体字中国語

- 繁体字中国語

- アラビア語

- チェコ語

- デンマーク語

- オランダ語

- フィンランド語

- ギリシャ語

- ヘブライ語

- ハンガリー語

- ノルウェー語

- ポーランド語

- ポルトガル語

- ルーマニア語

- ロシア語

- スロバキア語

- スウェーデン語

- タイ語

- トルコ語

ガイド付きビジネス・プロセスのローカライズ方法の詳細は、31.4.1項「ガイド付きビジネス・プロセス・クライアント・アプリケーションでサポートされるロケールの構成方法」を参照してください。

31.4.1 ガイド付きビジネス・プロセス・クライアント・アプリケーションでサポートされるロケールの構成方法

ガイド付きビジネス・プロセス・アプリケーションで他のロケールをサポートするように構成するには、ガイド付きビジネス・プロセスの開発時に、そのロケールに必要なバンドルが提供されていることを確認します。

ガイド付きビジネス・プロセス・クライアント・アプリケーションでサポートされるロケールを構成するには:

1. Oracle JDeveloperでクライアント・アプリケーションを開きます。

2. jspxクライアント・ページを開きます。

3. 「リンク元ビュー」を選択し、次のコードを使用してロケールを変更します。
<f:view locale= #{view.locale}>

4. Project_Root /public_html/WEB-INFの下にあるfaces-config.xmlファイルを編集します。

5. エディタ・ウィンドウで「概要」タブをクリックします。

6. エディタ・ウィンドウで「アプリケーション」を選択します。

7. 「ロケール構成」領域で、「新規」をクリックして、サポートされるロケールを追加するプロパティ・インスペクタを開きます。

8. サポートされるロケールを追加します。
例31-4は、サポートされる一連のロケールを追加した後のfaces-config.xmlファイルを示しています。

例31-4 faces-config.xmlファイル

<locale-config>
<default-locale>en</default-locale>
<supported-locale>ar</supported-locale>
<supported-locale>ca</supported-locale>
<supported-locale>cs</supported-locale>
<supported-locale>da</supported-locale>
<supported-locale>de</supported-locale>
<supported-locale>zh_CN</supported-locale>
</locale-config>

9. ブラウザのロケールを、サポートされるロケールに設定します。

10. クライアント・ページを実行します。

31.5 ガイド付きビジネス・プロセスのランタイムAPI

ガイド付きビジネス・プロセスでは、使用可能なマイルストンおよびマイルストンを構成するタスクに関する詳細を取得できる一連のAPIが提供されます。事前定義されたアクティビティ・ガイドADFタスクフローが要件を満たさない場合、これらのAPIを使用して、クライアント・アプリケーションに表示する情報を取得できます。

31.5.1 ガイド付きビジネス・プロセス問合せサービスAPI

このAPIは、ガイド付きビジネス・プロセスを表示するアプリケーションの次のユーザー・ナビゲーション・シナリオをサポートするように設計されます。

フィルタを使用して、ガイド付きビジネス・プロセス・インスタンスのリストを表示します。使用可能なフィルタは次のとおりです。

- MY: ユーザーに割り当てられたアクティブなタスクを含むガイド付きビジネス・プロセス・インスタンス。

- REPORTEES: 現在のユーザーへの報告先に割り当てられたアクティブなタスクを含むガイド付きビジネス・プロセス・インスタンス。

- PREVIOUS: ユーザーに割り当てられた完了済タスクを含むガイド付きビジネス・プロセス・インスタンス、および、特定のタスクを別のユーザーに再割当てするインスタンス。

- ADMIN: ガイド付きビジネス・プロセス管理者に表示されるガイド付きビジネス・プロセス・インスタンス。アクティブなインスタンスは、すべてのユーザーに割り当てることができます。

注意:

BPMAGAdminロールは、管理者ロールが割り当てられたユーザーにマップされます。このロールによって、ユーザーは、完了済インスタンス、アクティブなインスタンスおよびエラーのあるインスタンスなど、サーバーで使用可能なすべてのガイド付きビジネス・プロセス・インスタンスを問合せできます。$DOMAIN_HOME/config/fmwconfig/system-jazn-data.xmlにある構成ファイルには、このロールの定義が含まれています。

注意:

ガイド付きビジネス・プロセスAPIを使用すると、タスクIDを指定して、詳細タスク情報を取得できますが、タスク情報は取得されません。これを行うには、ワークフロー・サービスAPIなど、別のAPIが必要です。

ワークフロー・サービスの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・ワークフロー・サービスの概要」を参照してください。

表31-1 ガイド付きビジネス・プロセス問合せサービスAPI

メソッド

説明

List queryAGDisplayInfos(String bpmProcessType,IWorkflowContext ctx,List agDisplayColumns,AGAssignmentFilter agAssignmentFilter,Predicate predicate,Ordering ordering,int startRow,int endRow)

displayColumnsに定義したフィールドで、assignmentFilterおよびpredicateで定義した基準を満たし、orderで指定した順序で、startRowとendRowの間の行番号の、AGDisplayInfoオブジェクトのリストを戻します。

AGDisplayInfoオブジェクトには、関与するガイド付きビジネス・プロセス・インスタンスのメタデータおよびランタイム・データの両方が含まれ、Oracle BPM Worklistまたはカスタム・アプリケーションで、ガイド付きビジネス・プロセス・インスタンス・ビューをレンダリングするために使用できます。

文字列パラメータbpmProcessTypeには、次の値を割り当てることができます。

- IAGQueryService.AG_PROCESS_TYPE_BPM

- IAGQueryService.AG_PROCESS_TYPE_BPEL

- IAGQueryService.AG_PROCESS_TYPE_ANY

マイルストンおよびタスクはアクティビティ・ガイド・インスタンス・ビューに表示されないので、不要なパフォーマンスのオーバーヘッドを避けるために、MILESTONE_STATE列をdisplayColumnsに含めないことをお薦めします。

AGDisplayInfo getAGDisplayInfoDetailsById(String bpmProcessType,IWorkflowContext ctx,long ciKey,List taskDisplayColumns,String agAssignmentFilter)

アクティビティ・ガイド・インスタンスIDによって指定されたAGDisplayInfoオブジェクトを戻します。

戻されたAGDisplayInfoオブジェクトには、マイルストンおよびタスクの両方の情報が含まれ、カスタム・アプリケーションでアクティビティ・ガイド・ツリー構造をレンダリングするのに使用できます。

文字列パラメータbpmProcessTypeには、次の値を割り当てることができます。

- IAGQueryService.AG_PROCESS_TYPE_BPM

- IAGQueryService.AG_PROCESS_TYPE_BPEL

- IAGQueryService.AG_PROCESS_TYPE_ANY

文字列パラメータagAssignmentFilterを使用すると、このメソッドのフィルタを指定できます。次のIAGQueryServiceパラメータを、このパラメータの値として使用できます。

- IAGQueryService.AGASSIGNMENT_FILTER_MY

- IAGQueryService.AGASSIGNMENT_FILTER_REPORTEES

- IAGQueryService.AGASSIGNMENT_FILTER_PREVIOUS

- IAGQueryService.AGASSIGNMENT_FILTER_ADMIN

MilestoneDisplayInfo getMilestoneDisplayInfo(String bpmProcessType,IWorkflowContext ctx,long cikey,String milestoneName,List taskDisplayColumns,String agAssignmentFilter)

アクティビティ・ガイド・インスタンス内のマイルストンの表示情報を戻します。

戻されたMilestoneDisplayInfoオブジェクトには、指定したマイルストンおよびマイルストン内のタスクのメタデータおよびランタイム・データが含まれます。これらを使用して、エンド・ユーザーがマイルストンをクリックしたときに、カスタム・アプリケーションのマイルストン・サブツリーをリフレッシュできます。

文字列パラメータbpmProcessTypeには、次の値を割り当てることができます。

- IAGQueryService.AG_PROCESS_TYPE_BPM

- IAGQueryService.AG_PROCESS_TYPE_BPEL

- IAGQueryService.AG_PROCESS_TYPE_ANY

文字列パラメータagAssignmentFilterを使用すると、このメソッドのフィルタを指定できます。次のIAGQueryServiceパラメータを、このパラメータの値として使用できます。

- IAGQueryService.AGASSIGNMENT_FILTER_MY

- IAGQueryService.AGASSIGNMENT_FILTER_REPORTEES

- IAGQueryService.AGASSIGNMENT_FILTER_PREVIOUS

- IAGQueryService.AGASSIGNMENT_FILTER_ADMIN

31.5.2 ガイド付きビジネス・プロセスEnterprise Java BeansのJNDI名

次の表は、ガイド付きビジネス・プロセスEnterprise Java BeansのJNDI名を説明しています。

サービス名

Enterprise JavaBeansのJNDI名

アクティビティ・ガイド・メタデータ・ストア

ejb/bpel/services/workflow/AGMetadataService

アクティビティ・ガイド問合せサービス

ejb/bpel/services/workflow/AGQueryService

31.6 ガイド付きビジネス・プロセスのランタイム・サービスを使用したガイド付きビジネス・プロセスのタスクのユーザー・インタフェースの例の開発

APIによって、カスタム・アプリケーション内からガイド付きビジネス・プロセス問合せおよびメタデータ・サービスにアクセスできます。

次の例は、ガイド付きビジネス・プロセスのランタイム・サービスにアクセスするためのJava APIの使用を示しています。

例31-5 EJBを使用したガイド付きビジネス・プロセスのランタイム・サービスへのアクセス

package client;
import com.oracle.bpel.activityguide.metadata.definition.model.AGDefinition;
import java.util.ArrayList;
import java.util.List;
import oracle.bpel.services.workflow.IWorkflowConstants;
import oracle.bpel.services.workflow.task.model.Task;
import oracle.bpel.services.workflow.verification.IWorkflowContext;
import oracle.bpel.services.workflow.client.IWorkflowServiceClient;
import oracle.bpel.services.workflow.client.IWorkflowServiceClientConstants;
import oracle.bpel.services.workflow.client.WorkflowServiceClientFactory;
import oracle.bpel.services.workflow.query.ITaskQueryService;
import oracle.bpel.services.workflow.query.impl.TaskQueryService;
import oracle.bpel.services.workflow.client.WorkflowServiceClientContext;
import oracle.bpel.services.workflow.metadata.config.ResourceBundleInfo;
import oracle.bpel.services.workflow.activityguide.query.IAGQueryService;
import oracle.bpel.services.workflow.activityguide.query.impl.AGQueryService;
import oracle.bpel.services.workflow.activityguide.query.model.AGDisplayInfo;
import oracle.bpel.services.workflow.activityguide.query.model.MilestoneDisplayInfo;
import oracle.bpel.services.workflow.activityguide.metadata.IAGMetadataService;
import oracle.bpel.services.workflow.activityguide.metadata.impl.AGMetadataService;
import sun.security.util.Password;
public class AGServiceSampleCode {

private static String USERNAME = "jcooper";
private static String PASSWORD = "welcome1";
private static IWorkflowServiceClient wfSvcClient;
private static IWorkflowContext sJCooperCtx;

public static void main(String[] args)
{
try {

testSetUp();

// GetAGDefinition API requires an AG instance as input, which is not easily accessible in customer's env.
// As a result, the sample code for invoking this API is not provided.
//testGetAGDefinition();

testGetAGDefinitionById();
testGetAGResourceBundleInfo();

testQueryAGDisplayInfos();
testQueryAGDisplayInfoDetailsById();
testQueryAGMilestoneDisplayInfo();

} catch (Exception e) {

e.printStackTrace();
}
}

private static void testSetUp()
throws Exception
{
wfSvcClient =
WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.REMOTE_CLIENT);

sJCooperCtx =
wfSvcClient.getTaskQueryService().authenticate(USERNAME, PASSWORD, null);
}

private static void testGetAGDefinitionById()
throws Exception
{
String agDefinitionId = "HelpDeskRequestSCAApp/HelpDeskRequestComposite!1.0*2007-10-22_13-32-50_536//HelpDeskRequestProcess//HelpDeskRequestProcess.ag"; // Need to supply a valid AG definition id here

AGDefinition agDefinition =
wfSvcClient.getAGMetadataService().getAGDefinitionById (sJCooperCtx, agDefinitionId);

if (agDefinition != null)
{
System.out.println("ag def obtained");
System.out.println("ag def name: " + agDefinition.getName());
System.out.println("ag def milestone display mode: " + agDefinition.getMilestoneDisplayMode());
}
}

private static void testGetAGResourceBundleInfo()
throws Exception
{
String agDefinitionId = "HelpDeskRequestSCAApp/HelpDeskRequestComposite!1.0*2007-10-22_13-32-50_536//HelpDeskRequestProcess//HelpDeskRequestProcess.ag"; // Need to supply a valid AG definition id here

ResourceBundleInfo resourceBundleInfo = wfSvcClient.getAGMetadataService().getResourceBundleInfo(sJCooperCtx, agDefinitionId, sJCooperCtx.getLocale());

System.out.println("bundle name: " + resourceBundleInfo.getName());
}

private static void testQueryAGDisplayInfos()
throws Exception
{
List agQueryColumns = new ArrayList();
agQueryColumns.add("MILESTONE_STATE");
agQueryColumns.add("DEFINITION_ID");

// Query for all AG instances belonging to user jcooper
List agDisplayInfoList =
wfSvcClient.getAGQueryService().queryAGDisplayInfos(sJCooperCtx,
agQueryColumns,
IAGQueryService.AGAssignmentFilter.MY,
null, //agPredicate,
null, //ordering,
0,
0);

System.out.println("ag display info list size:" +  agDisplayInfoList.size());
if ( agDisplayInfoList.size() > 0 )
{
AGDisplayInfo agDisplayInfo =  (AGDisplayInfo) agDisplayInfoList.get(0);
System.out.println("AG title:" +  agDisplayInfo.getTitle());
System.out.println("milestone display info list size:" +  agDisplayInfo.getMilestoneDisplayInfo().size());
for (int i=0; i< agDisplayInfo.getMilestoneDisplayInfo().size(); i++)
{
System.out.println("i = " + i + " milestone display info:" + ((MilestoneDisplayInfo) agDisplayInfo.getMilestoneDisplayInfo().get(i)).getMilestoneInstance().getName());
}
}
}

private static void testQueryAGDisplayInfoDetailsById()
throws Exception
{
long cikey = 1; // Need to supply a valid AG cikey here

List taskQueryColumns = new ArrayList();
taskQueryColumns.add("TASKID");
taskQueryColumns.add("TITLE");
taskQueryColumns.add("OUTCOME");

AGDisplayInfo agDisplayInfo =
wfSvcClient.getAGQueryService().getAGDisplayInfoDetailsById (sJCooperCtx, cikey, taskQueryColumns);
System.out.println("AG display info status:" +  agDisplayInfo.getAGInstanceInfo().getStatus());
System.out.println("AG display info bpel status:" +  agDisplayInfo.getAGInstanceInfo().getBpelStatus());
}

private static void testQueryAGMilestoneDisplayInfo()
throws Exception
{
long cikey = 1; // Need to supply a valid AG cikey here
String milestoneName = "ApprovePricing"; //  Need to supply a valid AG milestone name here

List taskQueryColumns = new ArrayList();
taskQueryColumns.add("TASKID");
taskQueryColumns.add("TITLE");
taskQueryColumns.add("OUTCOME");

MilestoneDisplayInfo milestoneDisplayInfo = null;

milestoneDisplayInfo =
wfSvcClient.getAGQueryService().getMilestoneDisplayInfo (sJCooperCtx, cikey, milestoneName, taskQueryColumns);

System.out.println("milestone display info name:" +  milestoneDisplayInfo.getMilestoneInstance().getName());
System.out.println("milestone display info title:" +  milestoneDisplayInfo.getTitle());
System.out.println("milestone display info task list size:" +  milestoneDisplayInfo.getTask().size());
}

}

EJBおよびWebサービスAPIの詳細は、Javadocを参照してください。

31.7 ガイド付きビジネス・プロセスのロギングの使用

ガイド付きビジネス・プロセスは、ログ・ファイルを使用して、実行する様々な操作に関する情報を格納します。このファイルには、アプリケーションの動作を追跡するログ・メッセージ、およびアプリケーションの実行中に発生する可能性のあるエラーが含まれます。

このログ・ファイルの情報を使用して、アプリケーションの予期しない動作の原因を見つけることができます。

ログ・メッセージの重要度は、メッセージのレベルに応じて異なります。デバッグ目的で使用されるメッセージのレベルは、警告またはエラーを含むメッセージのレベルと異なります。

ガイド付きビジネス・プロセスのロギングを構成して、必要に応じて、あるレベルのメッセージのみを記録できます。

31.7.1 クライアント側でロギングを行う方法

ガイド付きビジネス・プロセスを構成して、クライアント側にログ・ファイルを生成できます。

クライアント側でロギングを有効化するには:

1. ディレクトリ<DOMAIN_HOME>/config/fmwconfig/servers/Server Nameで、logging.xmlファイルを検索します。

2. logging.xmlファイルを編集のために開きます。

3. <loggers>要素に次のエントリを追加します。

<logger name="oracle.bpel.activityguide.ui" level="NOTIFICATION:1" useParentHandlers='false'>
<handler name="odl-handler"/>
</logger>

4. 変更内容を保存します。

5. WebLogic Serverを再起動します。

31.7.2 サーバー側でロギングを行う方法

ガイド付きビジネス・プロセスを構成して、サーバー側にログを生成できます。

サーバー側でロギングを有効化するには:

1. ディレクトリ<DOMAIN_HOME>/config/fmwconfig/servers/Server Nameで、logging.xmlファイルを検索します。

2. logging.xmlファイルを編集のために開きます。

3. <loggers>要素に次のエントリを追加します。
<logger name="oracle.bpm.services.activityguide.query" level="NOTIFICATION:1" useParentHandlers='true'>

4. 変更内容を保存します。

5. WebLogic Serverを再起動します。

31.7.3 ログ・レベルの構成

ログ・メッセージには、問題の重大度を識別するレベルが含まれています。

表28-3は、使用可能なログ・レベルを示しています。重大度の列では、ある重大度を識別するのに使用される共通の用語を説明しています。ログ・レベル値の列では、logging.xmlファイルで使用する必要がある値を指定しています。

表31-2 ログ・レベル値

重大度

ログ・レベル値

説明

致命的

INCIDENT_ERROR:1

原因が不明の重大な問題を示しています。ユーザーは自分で問題を解決できないため、Oracleサポートに連絡する必要があります。

重大

ERROR:1

システム管理者がすぐに対処する必要がある重大な問題を示しています。

警告

WARNING:1

潜在的な問題を示しています。システム管理者は、これらのログ・メッセージを確認する必要があります。

情報

NOTIFICATION:1

主要サブコンポーネントや機能のアクティブ化または非アクティブ化などの、主要なライフサイクル・イベントを示しています。

構成

NOTIFICATION:16

下位レベルで発生した標準イベントを指定します。

普通

TRACE:1

パブリックAPIのエントリ・ポイント/終了ポイントなどの、製品のエンド・ユーザーにとって意味のあるイベントのトレースまたはデバッグ情報を示しています。

詳細

TRACE:16

Oracleサポートが特定のサブシステムでの問題を診断するのに役立つ可能性のある、詳細なトレースまたはデバッグ情報を指定します。

ガイド付きビジネス・プロセスのロギングを構成して、ガイド付きビジネス・プロセスのログに格納された情報の詳細のレベルを指定できます。

ログ・レベルを設定するには、logging.xmlファイルのログ出力要素で、属性レベルの値を変更する必要があります。

ログ・レベルをある重大度に設定すると、それより高い重大度に対応するすべてのメッセージも格納されます。たとえば、ログ・レベルを「重大」に設定した場合、重大度が「致命的」のログ・メッセージも記録されます。

31.7.4 ガイド付きビジネス・プロセスのログ・メッセージを表示する方法

ログ・メッセージは、ファイル<DOMAIN HOME>/servers/<Server Name>/logs/Server Name-diagnostic.logに格納されています。

テキスト・エディタを使用して、ログ・メッセージを含むファイルを表示できます。

31.7.5 ガイド付きビジネス・プロセスのログ・メッセージについて

ログ・メッセージには、ガイド付きビジネス・プロセス・アプリケーションの問題を識別するのに役立つ情報が含まれています。

表28-3は、ログ・メッセージを構成する項目を説明しています。

表31-3 ログ・メッセージ項目

ログ・メッセージ項目

説明

日付と時間

このログ・メッセージが生成された日付および時間を指定します。

メッセージ・タイプ

メッセージの重大度を指定します。

実行コンテキストID (ECID)

元のコンポーネントが実行中のスレッドに対応するグローバル一意識別子および順序番号。これを使用して、同一のスレッドに含まれる可能性がある複数のコンポーネントからのメッセージを関連付けることができます。

アプリケーション名

ログ・メッセージを生成したアプリケーションの名前を指定します。

クラス・パッケージ名

ログ・メッセージを生成したクラスのパッケージを指定します。

メッセージID

メッセージを一意に識別する短い識別子を指定します。

メッセージ・テキスト

イベントを説明します。このメッセージはローカライズされているため、システムのロケールに対応した言語で表示されます。

ログ・ファイルを読む際には、メッセージ・テキストを見つける必要があります。このテキストは、何が発生したかを説明しています。メッセージ・タイプは、問題がどの程度重大かを識別するのに役立ちます。様々なメッセージ・タイプの詳細は、表31-2を参照してください。

ログ・メッセージの日付と時間を使用して、問題の原因となるアクションを特定できます。

注意:

Oracleサポートに連絡する前に、メッセージIDおよび実行コンテキストIDをOracleサポートに提供できることを確認してください。

例31-6 ログ・メッセージの例

DefaultServer-diagnostic.log:[2009-07-10T17:39:35.220-07:00] [DefaultServer] [NOTIFICATION] [AGU-12605] [oracle.bpel.activityguide.ui.beans] [tid: [ACTIVE].ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: jstein] [ecid: 0000I9bG2R3DScQ6ube9UH1ALxd1000007,0] [APP: AGNonUIshellApp#V2.0] [arg: jstein] Setting user, jstein as the loginUserId in server interfacing bean.[[

例28-12は、loginUserIdの変更に関する情報を含む通知ログ・メッセージを示しています。この例での各ログ・メッセージ項目は、次のとおりです。

- 日付と時間: 2009-07-10T17:39:35.220-07:00

- メッセージ・タイプ: NOTIFICATION

- 実行コンテキストID: ecid: 0000I9bG2R3DScQ6ube9UH1ALxd1000007,0

- アプリケーション名: APP: AGNonUIshellApp#V2.0

- クラス・パッケージ名: oracle.bpel.activityguide.ui.beans

- メッセージID: AGU-12605

- メッセージ・テキスト: Setting user, jstein as the loginUserId in server interfacing bean.

32 承認管理の使用

この章では、Oracle SOA Suiteのヒューマン・ワークフロー・サービスで使用可能な承認管理の拡張機能について説明します。ヒューマン・ワークフロー・サービスの役割は、ビジネス・プロセスに参加しているユーザーまたはグループのすべての相互作用を処理することです。これを行うために、組織内で該当するユーザーのタスクを作成および追跡します。ユーザーは通常、Oracle BPM Worklist、電子メール、ポータル、カスタム・アプリケーションなどの各種クライアントを通じてタスクにアクセスします。承認管理の拡張機能では、ビジネス・ドキュメントおよび関連するルールを考慮して作業アイテムの承認階層を決定することで、ヒューマン・ワークフローのための複雑なタスク・ルーティング・スリップを定義できます。さらに、承認管理の拡張機能では、スーパーバイザまたはポジション階層に基づいて関連付けられたリスト・ビルダーを使用して、複数ステージの承認を定義できます。Oracle JDeveloperのヒューマン・タスク・エディタで承認タスクを定義し、そのタスクをBPELプロセスに関連付けます。

ヒューマン・タスクの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の次の章および付録を参照してください。

- 「ヒューマン・タスクの設計」

- 「ヒューマン・タスク・サービスの理解」

この章の内容は次のとおりです。

- 32.1項「承認管理の概要」

- 32.2項「承認管理の概念について」

- 32.3項「Oracle JDeveloperでの承認管理タスクの設計」

- 32.4項「エンドツーエンドの承認管理サンプルの使用」

- 32.5項「Oracle BPM Worklistおよびプロセス・ワークスペースの承認管理機能の使用」

- 32.6項「ユーザー・メタデータ移行ユーティリティの使用」

32.1 承認管理の概要

承認管理の拡張機能では、複雑な承認パターンでヒューマン・ワークフロー・サービスを拡張します。これは、ヒューマン・ワークフローの高度な割当てマネージャとして機能します。提供されている主なワークフロー機能は、次のとおりです。

- 承認管理プロセスの宣言モデリング

- 静的および動的な承認リストを使用して、複雑な複数ステージの承認を定義する機能

- タスク・パラメータ、割当てとルーティングのポリシー、エスカレーションと有効期限の設定、および通知設定を定義するワークフロー・エディタ

- ポリシー・ベースのタスク割当て。これにより、ユーザーはビジネス・ドキュメントに基づいて承認ルールを定義できます。

- 承認タスクおよび関連付けられたタスクの操作のコンテンツをレンダリングするためのタスク・フォームを設計する機能

- ワークフロー内の様々な参加者の電子メール、ボイスおよびインスタント・メッセージの通知を定義する機能

- タスク割当て先、プロセス所有者および管理者の、Webベースのワークリスト・アプリケーション

- Oracle Internet Directory、LDAPおよびサード・パーティのディレクトリなどの様々なユーザー・ディレクトリで、ユーザーおよびロールを検索する機能

AMXは、次の追加機能を提供します。

- トランザクション・アプリケーションのADFビュー・オブジェクトから導出された属性

- 階層プロバイダ・プラグインを使用して、HRシステムから様々なジョブ、ポジションおよびスーパーバイザ階層を取得する機能

- 承認リストおよび階層の構成を制御するルールを定義する機能

32.1.1 AMXコンポーネント

図32-1は、主要なAMXとヒューマン・タスクの統合コンポーネントを示しています。これらのコンポーネントは、この章の後述の項で説明します。

図32-1 アーキテクチャ全体

ヒューマン・ワークフロー・サービスによって、ユーザーは、ビジネス・プロセスの一部として、ユーザーの相互作用をモデリングできます。ヒューマン・ワークフロー・サービスは、タスクおよびルールのメタデータに基づいてリクエストを処理します。これは、次の一連のコア・サービスで構成されています。

- タスク・サービス

- タスク問合せサービス

- ユーザー・メタデータ・サービス

- タスク・メタデータ・サービス

- アイデンティティ・サービス

- 通知サービス

- 割当てマネージャ

これらのサービスは、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスク用のタスク表示フォームの設計」で詳しく説明しています。AMXは、ビジネス・ルールに基づく複雑な承認パターンのモデリングを可能にし、ヒューマン・ワークフロー内の高度な割当てマネージャとして機能します。

承認管理に必要なコア・コンポーネントは、次のとおりです。

- JDeveloperのヒューマン・タスク・エディタ
このタスク・エディタは、ヒューマン・タスクおよびルーティング・スリップのメタデータの定義に使用されます。タスク・エディタを使用すると、このようなメタデータを、タスク・パラメータ、結果、有効期限とエスカレーション、および通知の設定として定義できます。AMXによって追加された一部のコンポーネントには、次を実行するための機能が含まれています。

- JDeveloperで、複数ステージの承認および関連付けられた承認リスト・ビルダーを定義します。

- ビジネス・ドキュメント(ADFオブジェクト)およびビジネス・ルールに基づいて、承認階層を決定します。これは、JDeveloperのルール・デザイナを介して行います。

- ヒューマン・ワークフロー・サービス
複雑な承認を処理するのに必要な主なサービスは、次のとおりです。

- タスク・サービス - デハイドレーション・ストア内でタスクを作成および管理する役割

- アイデンティティ・サービス - ユーザーおよびグループの認証および認可の役割。このサービスでは、ユーザーの認可および連絡先情報用の様々なユーザー・ディレクトリを検索できます。

- タスク問合せサービス - Webベースのワークリスト・アプリケーションのタスクを取得する役割

- デシジョン・サービス - 承認に関連するビジネス・ルールを実行する役割

- Oracle BPM Worklist
Oracle BPM Worklistは、ユーザーに割り当てられたタスクにアクセスして、承認プロセス内のロールに基づくアクションを実行できるWebベースのアプリケーションです。Oracle BPM Worklistは、次のプロファイルをサポートしています。

- 作業割当て先 - タスクを割り当てられるエンド・ユーザー。これらのユーザーは、割り当てられたタスクを表示し、アクションを実行できます。また、カスタム・ビューを定義し、タスクのルーティング・ルールを定義することもできます。

- プロセス所有者 - 通常、承認の特定のタイプを管理する責任があるビジネス・アナリスト。これらのユーザーは、所有するプロセスのタスクを管理し、承認グループを定義し、承認ポリシーを変更できます。

- ワークフロー管理者 - 通常、エラー発生タスクを管理し、作業キューを管理および監視する責任があるシステム管理者。このユーザーは、Oracle Enterprise Managerを使用して、ワークフロー・サービスの状態を監視することもできます。

32.2 承認管理の概念について

前述のとおり、AMXは、複雑な承認パターンを処理する追加機能を使用して、ヒューマン・ワークフロー・サービスを拡張します。

理解している必要があるヒューマン・ワークフローの概念は、次のとおりです。

- JDeveloperのヒューマン・タスク・エディタ

- タスク・メタデータ(タスク・パラメータ、使用可能な操作およびパターン)およびルーティング・スリップ

- タスク・フォームに基づくADFタスク・フロー

- Oracle BPM Worklist

これらの概念は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の次の章で説明しています。

- 「ヒューマン・タスクの設計」

- 「ヒューマン・タスク用のタスク表示フォームの設計」

- 「Oracle BPM Worklistアプリケーションの使用」

後述の項では、複雑な承認を処理するために導入された新しい概念について説明します。

32.2.1 タスク

タスクは承認を処理します。要件によって提供されるビジネスに基づいて、各承認要件に対して異なるタスクが作成されます。たとえば、新規経費精算書の承認タスクや、新規注文書の承認タスクなどです。

タスクの標準的なメタデータは次のとおりです。

- タイトル、結果(承認、却下など)の優先度、有効期限などのタスク属性

- シンプルなプリミティブ・タイプ、XML要素またはADFビュー・オブジェクトなどの外部エンティティに基づくタスク・パラメータ

- 承認シーケンス内の主なマイルストンを識別する1つ以上のステージを含む複雑な承認タスク。詳細は、32.2.3項「ステージ」を参照してください。

- 有効期限とエスカレーションのポリシー

- 様々な参加者に通知するための通知設定

- ステージ内のリスト・ビルダー。これは、名前と式、管理チェーン、スーパーバイザ、ポジション、ジョブ・レベルの階層、または承認グループに基づいています。詳細は、32.2.4項「リスト・ビルダー」を参照してください。

- 承認者の置換および変更のポリシー、自動承認の構成、および繰り返された承認者などの承認タスク構成。詳細は、32.2.1項「タスク」を参照してください。
図32-2は、サンプルの承認パターンでの様々なステージを示しています。

図32-2 承認リスト構造

これらは、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』で詳細を説明しています。

承認パターンは、次の4つのステージで構成されています。

- ヘッダー承認

- ライン承認

- レシート検証

- 支払

ヘッダー承認は、ライン承認およびレシート検証と並行して実行されます。これらのステージの実行後に、支払ステージが実行されます。

4つの各ステージに、リスト・ビルダーがあります。ステージ内の複数のリスト・ビルダーを、相互にシリアルまたはパラレルで実行できます。各リスト・ビルダー内に1つ以上の承認者を設定できます。図32-3は、これらの概念を示しています。

図32-3 ステージおよびそのリスト・ビルダー

これらの概念は、後述の項で説明しています。

32.2.2 サービス・データ・オブジェクト

ADFビジネス・コンポーネント・オブジェクトは、サービス・インタフェースを介してサービス・データ・オブジェクト(SDO)として簡単に公開できます。これにより、ビジネス・エンティティを受け入れる柔軟な方法が提供されます。その後、SDOをネイティブでサポートすると、複数のビジネス・エンティティを受け入れることができます。これは、将来のFlexfield SDOサポートへの基礎を築くことにもなります。SDOは構造化XMLであるため、タスク・ペイロードを介して静的XMLとしてSDOを渡すことができます。

コレクションは、タスクのエンティティ・パラメータに定義されます。これにより、XPATH式によって取得されたXMLフラグメントとして、ビジネス・エンティティの一部にアクセスできます。キーを使用すると、このフラグメントの主キーを識別できます。

エンティティ・パラメータは、SDOまたは静的XMLへのアクセス方法を示す定義です。エンティティ・パラメータは、SDOの次の情報を取得します。

- SDO WebサービスのWebサービス定義言語(WSDL)などのSCAプロセス全体での参照のアイデンティティ

- 起動するメソッド

- Webサービスへのメッセージの入力

- Webサービスへのメッセージの出力

- コレクション

エンティティ・パラメータは、静的XMLの次の情報を取得します。

- 静的XMLのXSD

- コレクション

たとえば、経費伝票は、ヘッダー、ラインおよびコスト・センターの階層グループを持つことができます。ヘッダーおよびラインが、セット承認者を決定するのに必要な唯一のコンポーネントである場合、承認ポリシーの目的で、ヘッダーおよびラインでのコレクションのみ定義できます。ルールの定義に必要ないビジネス・ドキュメントの一部は、コレクションとしてマップする必要がありません。

詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「アプリケーション・モジュールを使用したビジネス・サービスの実装」および「サービス対応のアプリケーション・モジュールの統合」を参照してください。

32.2.3 ステージ

ステージは、コレクションに関連する一連の承認です。複数の承認ステージに同じコレクションを関連付けることができます。

図32-4は、ステージおよびコレクションのマッピングを示しています。

図32-4 ステージおよびコレクションのマッピング

各承認ステージは、コレクションに関連付けられます。図32-4では、承認に4つのステージがあります。

- ヘッダー承認は、経費ヘッダーのコレクションに関連付けられます。

- レシート検証は、経費ヘッダーのコレクションに関連付けられます。

- 支払は、経費ヘッダーのコレクションに関連付けられます。

- ライン承認は、経費ラインのコレクションに関連付けられます。

複合承認は、複数のステージで構成され、相互にシリアルまたはパラレルでモデリングできます。各ステージは、承認者のリストを決定するリスト・ビルダーで構成されます。

オプションで、各リスト・ビルダーを承認ポリシー、つまりルールのセットに関連付けることができます。ランタイムに、ステージ内で使用されたリスト・ビルダーおよび関連付けられたポリシーに基づいて、適切な承認のセットが戻されます。

32.2.4 リスト・ビルダー

32.2.3項で説明しているように、各承認ステージは、承認者の実際のリストを決定するリスト・ビルダーで構成されます。次のリスト・ビルダーがサポートされています。

- 名前と式
静的な名前またはXPath式から取得された名前を使用して、リストを作成できます。

- 承認グループ
事前定義された承認者グループを、承認者リストに含めます。承認グループは、静的にも動的にもなります。

- ジョブ・レベル
スーパーバイザ階層内を上行します。指定された承認者から開始し、十分なジョブ・レベルを持つ承認者が見つかるまで続行します。

- ポジション
ポジション階層内を上行します。指定された承認者のポジションから開始し、十分なジョブ・レベルを持つポジションが見つかるまで続行します。

- スーパーバイザ
プライマリ・スーパーバイザ階層内を上行します。リクエスタまたは指定された承認者から開始し、固定承認者数を持つチェーンを生成します。

- 管理チェーン
対応するユーザー・ディレクトリ内の管理関係に基づいて、リストを作成できます。

管理チェーン最初の割当て先が単一ユーザーの場合、管理チェーン参加者タイプでサポートされるのはパラレル・ルーティングのみです。管理チェーンの最初の割当て先として、一連のユーザーまたはグループなどのパラレル参加者を指定することはできません。

- ルールベース
様々な条件に基づいて様々なリスト・ビルダー・タイプを戻すルールをモデリングできます。たとえば、ルールを持つスーパーバイザ・リスト・ビルダーをモデリングする場合、ルールは、スーパーバイザ・リスト・ビルダーのみを戻すことができます。ルール・ベースのリスト・ビルダーをモデリングする場合、ルールは、様々なリスト・ビルダー・タイプを戻すことができます。

注意:

承認グループ、ジョブ・レベル、ポジションおよびスーパーバイザ・リスト・ビルダーはAMXに固有で、32.3.6.3項「リスト・ビルダーをモデリングおよび構成する方法」に詳細が説明されています。

名前と式、管理チェーンおよびルールベースのリスト・ビルダーの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の、ヒューマン・タスク・エディタを使用したヒューマン・タスク定義の作成に関する項の、タスク参加者の割当て方法に関する項の、単一のタスク参加者リストの作成に関する項を参照してください。

32.2.5 タスク操作

標準的なヒューマン・タスク操作の大部分も、AMXベースのタスクで使用できます。共通の操作は、次のとおりです。

- ユーザー定義の結果 - 承認および却下などの、タスクに関連付けられたビジネスの結果。ユーザーがこれらのタイプのアクションを実行すると、タスクはユーザーの受信ボックスから削除され、完了済とマークされるか、次の承認者に移動します。

- 委任 - ユーザーは、別のユーザーまたはロールに、自分の代理として処理するようにタスクを割り当てることができます。

- エスカレート - ユーザーまたは管理者は、ユーザーのスーパーバイザに、タスクをエスカレートできます。

- 再割当て - ユーザーは、別のユーザーにタスクを転送できます。その時点から、新しいユーザーの階層が、スーパーバイザまたは他の組織ベースの承認に使用されます。

- 取消 - タスク・イニシエータまたは管理者は、承認の開始後にタスクをキャンセルまたは取消できます。

- 情報のリクエスト - タスク承認者は、前の参加者またはタスク・イニシエータから情報をリクエストできます。

- プッシュバック - タスク承認者は、前の承認者に、再確認するようにタスクをプッシュ・バックできます。

- 非定型挿入 - タスク割当て先は、生成された承認リストに承認者を挿入できます。

注意:

ポジション・リスト・ビルダーでは、承認者が委任、エスカレートまたは非定型挿入の実行を行うことはできません。

アクションの完全なリストについては、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「Oracle BPM Worklistアプリケーションの使用」の、タスクの処理: タスクの詳細ページに関する説明を参照してください。

32.2.6 承認のビジネス・ルール

タスク定義のインラインで、またはタスクの実際の承認者を識別するリスト・ビルダーを指定するビジネス・ルールを使用して、タスクの承認者を定義できます。さらに、ビジネス・ルールを使用して、承認者の置換およびリストの変更を指定できます。これらのルールは、Oracle Business Rulesのヘルプを使用して定義され、組織間で変えることができます。ただし、通常、これらは顧客によって定義されます。

ビジネス・ルールは、条件とアクションの組合せです。オプションで、ビジネス・ルールに優先度および有効期間を定義できます。ヒューマン・ワークフロー・ルールでは、タスク、タスク・メッセージおよび(SDOオブジェクトのXML表現である)エンティティ属性に対応するファクト・タイプを使用して、ルール条件が定義されます。ルール・アクションは、承認者リスト・ビルダーおよびそのパラメータで構成されます。承認者リスト・ビルダーは、特定の階層に移動し、定義されたパラメータに応じて承認者リストを作成または変更します。承認者リスト・ビルダーは、XML (JAXB)ファクト・タイプとして実装されます。

これらの概念の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「Oracle Business Rulesの概要」を参照してください。

32.2.6.1 リスト作成

リスト作成ポリシーには、リスト・ビルダーを作成するルール条件およびアクションが含まれます。

次のルールの例は、SDOベースのファクト・タイプに基づく承認者リストを作成する、スーパーバイザ・リスト・ビルダー・パラメータの構成を示しています。

例32-1 ルール1

IF
ExpenseItems.ReceiptAmount < 200
THEN
call CreateSupervisoryList( levels:1,
startingPoint:HierarchyBuilder.getPrinicipal("jstein",-1,"",""),
uptoApprover:HierarchyBuilder.getPrinicipal("wfaulk",-1,"",""),
autoActionEnabled:false,autoAction:null,
responseType:ResponseType.REQUIRED,ruleName:"Rule_1",lists:Lists)

例32-2 ルール2

IF
xpenseItems.ReceiptAmount >= 200
THEN
call CreateSupervisoryList( levels:1,
startingPoint:HierarchyBuilder.getPrinicipal("wfaulk",-1,"",""),
uptoApprover:HierarchyBuilder.getPrinicipal("cdickens",-1,"",""),
autoActionEnabled:false,autoAction:null,
responseType:ResponseType.REQUIRED,ruleName:"Rule_2",lists:Lists)

詳細は、32.3.6.4.1項「リストを作成する方法」を参照してください。

32.2.6.2 承認者の置換

リスト置換を使用して、リストに表示されるユーザー、グループおよびアプリケーション・ロールを置換できます。リスト置換は、ルール・デザイナから使用可能で、JDeveloperでの構成は必要ありません。

次のルールの例は、承認者の置換の使用方法を示しています。

例32-3 承認者の置換の使用方法

IF
ExpenseItems.ReceiptAmount < new BigDecimal(4000)
THEN
call Substitute(fromId:"jcooper", toId:"jstein", ruleName:"Substituted",
substitutionRules: SubstitutionRules)

このルールは、経費項目の金額が4000より小さい場合、承認者jcooperを承認者jstein(承認者リストに存在する場合)に置換することを示しています。

詳細は、32.3.6.4.2項「承認者の置換を行う方法」を参照してください。

32.2.6.3 リストの変更

ジョブ・レベルおよびポジションのリストを、ルールから拡張または切り捨てることができます。リストの変更は、リストの作成後に適用されます。

次のルールの例は、リストの変更の使用方法を示しています。

例32-4 リストの変更の使用方法

IF
ExpenseItems.ReceiptAmount > new BigDecimal(3000)
THEN
Call Extend(ifFinalApproverLevel:3, extendBy:2,ruleName:"Modified",lists:Lists)

このルールは、経費項目の金額が3000より大きい場合、および承認者リストの最終承認者がジョブ・レベル3の場合、承認者リストを少なくとも相対的に2レベルまで拡張することを示しています。

詳細は、32.3.6.4.3項「リストを変更する方法」を参照してください。

32.3 Oracle JDeveloperでの承認管理タスクの設計

複数ステージの承認をモデリングする機能を提供するヒューマン・タスクを定義することで、承認管理タスクを設計し、ビジネス・オブジェクトおよび関連付けられたHR階層プロバイダの承認ポリシーに基づいて、適切な承認者を決定します。

この項では、JDeveloperで承認管理タスクをモデリングするのに使用する、モデリング・プロセス全体およびプロセスの詳細について説明します。

32.3.1 モデリング・プロセスの概要

承認管理タスクを設計するためのモデリング・プロセスは、次のとおりです。

- ヒューマン・タスク定義の作成

- ヒューマン・タスク・エディタを使用したタスク表示フォームの作成

ヒューマン・タスク定義の作成には、次のタスクがあります。

- タスク・タイトルとタスク・タイトル・グローバリゼーション、結果、優先度、所有者およびカテゴリなどの、一般的な情報の指定

- サービス・データ・オブジェクト(SDO)参照を持つパラメータなどの、タスク・パラメータの定義

- マップ済属性の指定

- ステージおよびリスト・ビルダーの指定によるタスク・ルーティングのモデリング、およびリスト・ビルダーを定義するビジネス・ルールのモデリング

- エスカレーションおよび更新ポリシーの定義

- 通知設定の指定

- コールバック、セキュリティ・アクセス・ルールおよび制限付き割当てなどの詳細設定のモデリング

これらの手順の一部は、後述の項で説明しています。そこで説明されていない手順の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の、ヒューマン・タスク・エディタを使用したヒューマン・タスク定義の作成に関する項を参照してください。

承認の詳細を表示するADFタスク・フローを使用して、タスク表示を作成する必要もあります。ADFタスク・フローは、「タスクの詳細」ページのユーザー・インタフェースをモデリングするために使用されます。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスク用のタスク表示フォームの設計」を参照してください。

32.3.2 作業の前に

承認管理タスクを設計する前に、次の前提条件を満たしている必要があります。

- SDOサービスをデプロイしている必要があります。

- 承認タスクを設計するヒューマン・タスク・サービス・コンポーネントを作成している必要があります。

32.3.3 一般的な情報の指定

タスク・タイトル、結果、優先度、所有者およびカテゴリなどの一般的な情報は、AMXに固有ではありません。

これらの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の、ヒューマン・タスク・エディタを使用したヒューマン・タスク定義の作成に関する項の、タスク・タイトル、優先度、結果および所有者の指定方法に関する項を参照してください。

32.3.3.1 タスク・タイトル・グローバリゼーション

タスク・オブジェクトのタイトル属性には、大部分は本質的にわかりやすい、ユーザーフレンドリな値が含まれています。AMXでは、ユーザーの優先言語でレンダリングするように、タスク・タイトルをグローバル化できます。

タイトルは、デザインタイム用に*.taskファイルで、ランタイム用にWorkflowTask.xsdファイルで定義されます。現在、これらのファイルの両方の要素の定義は、シンプルなxsd(文字列タイプ)です。翻訳可能でフォーマットされた文字列を提供するメカニズムに対応するために、グローバリゼーション用にこれらの要素の構造および使用方法を変更します。

これらの要素のデザインタイムのメタデータは、値要素および一連のオプション・パラメータを含めるように拡張されます。XPath式または静的として定義されたメッセージは、値要素に格納された情報を持ち、パラメータは必要ありません。リソース・バンドル内の情報に依存している定義済のメッセージには、定義されたパラメータを持つ値要素に格納されたキーがあります。

ヒューマン・タスク・エディタは、式ビルダーでのメカニズムを提供し、ユーザーはリソース・キーおよびパラメータを指定できます。同時に、taskDefinitionで、適切なデザインタイムのXMLを生成します。

図32-5は、ヒューマン・タスク・エディタのグローバリゼーション・アイコンを示しています。

図32-5 タイトル・グローバリゼーション・アイコン

次の手順は、翻訳可能な文字列の追加方法を説明しています。これは、リソース・バンドルが指定されていることを前提としています。

1. アイコンをクリックして、「翻訳可能文字列の編集」ダイアログを表示します。

2. ドロップダウン・リストからキーを選択するか、プラス記号(+)をクリックしてキーを作成します。
図32-6は、「新規キーの作成」ダイアログを示しています。これは、「翻訳可能文字列の編集」ダイアログのプラス記号(+)をクリックすると表示されます。

図32-6 「新規キーの作成」ダイアログ

3. 名前、翻訳可能なテキストを入力し、「OK」をクリックします。
図32-7は、新規キーが追加された後の「翻訳可能文字列の編集」ダイアログを示しています。

図32-7 追加された新規キー

4. 式ビルダーを使用して、値を追加します。
図32-8は、完了した「翻訳可能文字列の編集」ダイアログを示しています。

図32-8 翻訳可能なテキストおよび値

注意:

タイトル値、またはタイトル値の定義は、TaskDefinition XML(.task)ファイル、またはbpelファイルの2つの場所で設定できます。bpelファイルで設定すると、この値は、TaskDefinitionでの定義より優先されます。ただし、bpelファイル内の値は翻訳可能になりません。

5. 「OK」をクリックして、ダイアログを閉じます。

32.3.4 タスク・パラメータの指定

タスク・パラメータの指定には、次のタスクがあります。

- SDO参照の作成

- エンティティ・パラメータの定義

- コレクションの定義

32.3.4.1 サービス・データ・オブジェクト(SDO)参照を作成する方法

SDOサービスは、ワークフロー・サービスから起動して、XMLとしてSDOを取得できます。この起動は、SOA Webサービス・コールのフォームにあります。SDOサービスのWSDL URLが使用可能な場合、「Webサービスの作成」ダイアログを使用して、Webサービス参照を追加する必要があります。

参照を作成するには、図32-9に示すように、WSDL URLを入力し、使用可能なポート・タイプからポート・タイプを選択します。

図32-9 Webサービス参照

SDOの作成の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の、SOAコンポジット・エディタの概要に関する項の、参照の概要に関する項を参照してください。

32.3.4.2 エンティティ・パラメータを定義する方法

次の手順によって、サービス・データ・オブジェクト(SDO)を受け入れることができます。

1. コンポジット内のサービス参照を作成します。
これにより、ファブリックは、WSDLを指す特定のURLへの必要なすべてのワイヤリングを作成できます。

2. タスク・ペイロードを外部として定義し、どのワークフローがSDOオブジェクトを取得するかを指定します。
これにより、SDO Webサービスへの入出力を表すタスク・パラメータが作成されます。

3. 「エンティティ」を選択します。

4. 図32-10に示すように、コレクション、そのXPATH式およびそのキーを定義します。

図32-10 タスク・パラメータの追加: コレクションの定義

5. ステージのコレクションを設定します。

6. 「OK」をクリックします。

次の手順によって、静的XMLを受け入れることができます。

1. スキーマを定義するXSDを指定します。

2. タスク・ペイロード・パラメータを静的XMLとして定義します。

3. コレクション、そのXPATH式およびそのキーを定義します。

4. ステージのコレクションを設定します。

5. 「OK」をクリックします。

32.3.4.3 コレクションを定義する方法

コレクションは、タスク・メッセージ属性の特定の部分である静的XMLベースおよびエンティティの両方の属性への参照です。コレクションを定義すると、コレクションをステージに関連付けて、コレクションの処理時にステージを識別できます。

コレクションの定義には、コレクション名の定義およびコレクション要素へのXPathの定義があります。コレクションをエンティティ属性に定義する場合、コレクション要素のキーも指定する必要があります。各キーはコレクション要素の直接の子である必要があります。図32-11は、コレクションの定義方法を示しています。

図32-11 コレクションの定義

コレクションを定義すると、JDeveloperによって、コレクションが繰返し要素であるかどうかが自動的に決定されます。この情報は、コレクションをステージに関連付けるときに使用されます。非繰返しコレクションは、単一のステージに関連付けることができます。繰返しコレクションは、ステージに関連付ける場合、ランタイムにコレクション内の各要素のステージをパラレルで繰り返します。コレクション情報のステージでの使用方法の詳細は、32.3.6.1項「ステージをモデリングおよび構成する方法」を参照してください。

32.3.5 マップ済属性の指定

ヒューマン・ワークフローは、タスクのペイロードから抽出されたデータなど、ユースケース固有のデータを格納するのに使用できるタスク・メッセージ属性を提供します。これらの属性は、フレックスフィールド属性またはマップ済フレックスフィールド属性とも呼ばれます。

マップ済フレックスフィールド属性を使用すると、ペイロード値を、タスク詳細で非表示にするのではなく、タスク・リスト内の列として表示できます。これらの値は、ヒューマン・ワークフロー・データベース・スキーマに格納され、問合せ、ビュー定義および割当てルール定義で使用できます。

メッセージ属性には次の2つのタイプがあります。

- パブリック - ランタイムに特定のタスク・コンポーネントにマップされる属性。これらのマッピングはいつでも変更でき、タスク・コンポーネントの再デプロイ時に再作成する必要があります。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の次の項を参照してください。

- 「Oracle BPM Worklistの使用」の、フレックス・フィールドのマップ方法に関する項

- 「ヒューマン・ワークフローの概要」の、フレックス・フィールドの概要に関する項

- 保護 - デザインタイムに定義されたタスク・コンポーネントと保護済のフレックスフィールド属性間のAMX固有のマッピング。これらはランタイムに変更できず、タスク・コンポーネントとともにデプロイされます。
表32-1には、60個の使用可能な保護済のフレックスフィールド属性がまとめられています。

表32-1 保護済のフレックスフィールド属性

名前

説明

ProtectedTextAttribute1からProtectedTextAttribute20

テキスト・データを2000文字まで格納します。タスク問合せサービスを介したOracle BPM Worklistでのキーワード検索中に、これらのフィールドの内容がチェックされます。

ProtectedFormAttribute1からProtectedFormAttribute10

テキスト・データを2000文字まで格納します。Oracle BPM Worklistでのキーワード検索中に、これらのフィールドの内容はチェックされません。

ProtectedURLAttribute1からProtectedURLAttribute10

テキスト・データを200文字まで格納します。Oracle BPM Worklistでのキーワード検索中に、これらのフィールドの内容はチェックされません。

ProtectedDateAttribute1からProtectedDateAttribute10

日付情報を格納します。

ProtectedNumberAttribute1からProtectedNumberAttribute10

数値情報を格納します。

32.3.5.1 属性ラベルおよび属性ラベル・マッピングについて

属性ラベルは、意味のある文字列を、特定のフレックスフィールド属性に適用できるユーザー定義のプロパティです。ラベルは、属性に格納するデータを反映する必要があります。たとえば、CustomerNameをProtectedTextAttribute1に、OrderNumberをProtectedNumberAttribute2に、OrderDateをProtectedDateAttribute1にします。

フレックスフィールド属性は、属性に定義された複数の属性ラベルを持つことができます。たとえば、属性ProtectedTextAttribute1は、ラベルCusomerName、PartIdおよびEmployeeDepartmentを持つことがあります。

保護済の属性の属性ラベル・マッピングは、デザインタイムにヒューマン・タスク・エディタで定義されます。これらは、特定のタスク・コンポーネントと属性ラベル間のマッピングを定義し、属性の値を移入する方法を指定します。同じ属性ラベルを複数のマッピングで再利用できます。これにより、タスク・コンポーネントは、同じセマンティックな意味を持つデータを、共通のラベルで識別される共通の属性にマップできます。

たとえば、PurchaseOrder、LoanRequestおよびServiceRequestのタスクすべてがCustomerNameラベルへのマッピングを定義するとします。複数のタスク・コンポーネントで同じ属性ラベルを共有することによって、複数のタスク・タイプを問い合せ、共通の属性ラベルから値を表示またはフィルタ処理するワークリスト問合せを作成できます。たとえば、PurchaseOrder、LoanRequestおよびServiceRequestのタスクを選択し、ワークリストのタスク・リスト内の列としてCustomerNameを表示する問合せを作成できます。

詳細は、32.5.2項「マップ済属性ラベルを作成する方法」を参照してください。

32.3.5.2 属性ラベル・マッピングを定義する方法

図32-12に示すように、ヒューマン・タスク・エディタの「マップ済属性」セクションで、属性ラベル・マッピングを定義します。

図32-12 「マップ済属性」セクション

次の手順を使用して、属性ラベル・マッピングを定義します。

1. 「追加」アイコンをクリックして、図32-13に示す「マップ済属性の追加」ダイアログを表示します。

図32-13 「マップ済属性の追加」ダイアログ

2. 次のいずれかのオプションを実行します。

- ドロップダウン・リストから、保護済の属性ラベルを含むアプリケーション・サーバーを選択します。

- 「追加」アイコンをクリックして、接続を作成します。

- 「編集」アイコンをクリックして、既存の接続を編集します。

「属性」ドロップダウン・リストを使用して、指定したサーバーから使用可能な属性ラベルを移入します。

3. ドロップダウン・リストから、属性を選択します。

注意:

このリストには、このタスク・コンポーネントがマップされているフレックスフィールド属性のラベルは含まれていません。

4. 「値」フィールドで、次の方法のいずれかを使用して値を指定します。

- 属性に格納する値を決定するXPath式を入力します。

- アイコンをクリックして、式ビルダーで値を作成します。

- フィールドを空白にして、ランタイムに値を決定できます。

通常、このXPath式は、タスクのペイロードから値を選択しますが、単純型(文字列、日付、数値など)と評価される有効な式を指定できます。

XPath式の指定は必須ではないことに注意してください。基礎となるフレックスフィールド属性の値を自分で設定するように選択できます。たとえば、タスクを開始するBPELプロセスにカスタム割当てアクティビティを追加したり、ワークフロー・サービスAPIを介してタスク・オブジェクトを操作できます。

5. 説明を入力します。これはオプションです。

6. 「OK」をクリックします。

32.3.6 ルーティングおよび承認ポリシーの指定

ルーティングおよび承認ポリシーの指定には、次のタスクがあります。

- ステージのモデリングおよび構成

- タスク参加者のモデリング

- リスト・ビルダーのモデリングおよび構成

- ビジネス・ルールの定義

- ビジネス・ルールを使用したリスト・ビルダーの指定

- 割当てコンテキスト情報の使用

- タスク承認の集計

32.3.6.1 ステージをモデリングおよび構成する方法

機能のニーズに基づいて、順次ステージおよびパラレル・ステージの組合せとなる構造に、複数のステージを追加および配置できます。この項では、順次ステージおよびパラレル・ステージの作成方法について説明します。

次の手順を使用して、ステージを作成します。

1. ヒューマン・タスク・エディタの割当ておよびルーティングセクションで、ステージを選択します。

2. 図32-14に示すように、「追加」アイコンをクリックし、ドロップダウン・リストから「順次ステージ」または「パラレル・ステージ」のいずれかを選択します。

図32-14 ステージの作成

順次ステージを作成するように選択した場合、割当ておよびルーティングセクションは、図32-15のようになります。

図32-15 順次ステージの追加

パラレル・ステージを作成するように選択した場合、割当ておよびルーティングセクションは、図32-16のようになります。

図32-16 パラレル・ステージの追加

3. 作成したステージをダブルクリックするか、ステージを選択して「編集」アイコンをクリックします。

図32-17に示すように、「編集」ダイアログが表示されます。

図32-17 「ステージの編集」ダイアログ

4. ステージの名前を入力します。

5. 次のいずれかのオプションを選択します。

- 繰返しなし - コレクション内の各要素に、1ステージのみが並行して存在することを指定します。

- コレクション内の各アイテムのステージを並行して繰り返します。 - ステージを、コレクション内の各要素に対して並行して繰り返すように指定します。たとえば、10行の注文書の場合、ステージは並行して10回繰り返されます。

6. ドロップダウン・リストからコレクションを選択します。

7. 選択内容に従って、次のいずれかを実行します。

- 「繰返しなし」を選択した場合、「OK」をクリックして、「編集」ダイアログを閉じます。

- 「コレクション内の各アイテムのステージを並行して繰り返します。」を選択した場合、図32-18に示すように、追加オプションが表示されます。

図32-18 「ステージの編集」ダイアログ: ステージの繰返し

次のように実行します。

- デフォルトの結果を選択します。

- 同意パーセントを選択します。

- ただちに結果をトリガーするか、または結果をトリガーせずにすべての投票の完了まで待機するかを選択します。

- 「OK」をクリックして、「編集」ダイアログを閉じます。

32.3.6.2 タスク参加者をモデリングする方法

各ステージ内で、デフォルトのタスク参加者を編集するか、新規タスク参加者を追加できます。ルーティング・パターンに基づいて、タスク参加者を次のいずれかに割り当てます。

- 単一

- パラレル

- シリアル

- FYI

参加者タイプおよびタスク参加者のステージへの割当ての詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスクの設計」の、ヒューマン・タスク・エディタを使用したヒューマン・タスク定義の作成に関する項の、タスク参加者の割当て方法に関する項を参照してください。

ルーティング・パターンの選択後に、リスト・ビルダーを選択およびモデリングする必要もあります。このプロセスは、32.3.6.3項「リスト・ビルダーをモデリングおよび構成する方法」で詳細を説明しています。

32.3.6.3 リスト・ビルダーをモデリングおよび構成する方法

ステージは、リスト・ビルダーの組合せを使用して、承認リストを生成します。詳細は、32.2.3項「ステージ」および32.2.4項「リスト・ビルダー」を参照してください。それぞれのタイプのリスト・ビルダーは、ステージごとに1回のみ使用できます。順次またはパラレルの順序で、これらの承認者リスト・ビルダーを配置できます。選択した順序は、リスト・ビルダーによって生成された承認者リストに含まれる承認者を承認タスクに割り当てる順序を制御します。

次のリスト・ビルダーはAMXに固有です。

- 承認グループ

- ジョブ・レベル

- ポジション

- スーパーバイザ

注意:

その他のリスト・ビルダーのモデリングの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の、ヒューマン・タスク・エディタを使用したヒューマン・タスク定義の作成に関する項の、タスク参加者の割当て方法に関する項の、単一のタスク参加者リストの作成に関する項を参照してください。

表32-2は、AMX固有のリスト・ビルダーおよびそれに使用できるオプションを説明しています。

表32-2 リスト・ビルダー・オプション

オプション名

説明

リスト・ビルダー

値ベース

指定した値に基づいて、参加者のリストを作成するための制限を指定します。

ポジション以外のすべて

ルールベース

ルール・エディタで定義されたルールに基づいて、参加者のリストを作成するための制限を指定します。

すべて

名前

使用する承認グループの名前

承認グループ

空のグループを許可

メンバーのない承認グループの使用を許可します。

承認グループ

ルールセットのリスト

参加者のリストを作成するための制限を指定しているルールセットの名前。

すべて

開始参加者

リスト内の最初の参加者。通常はマネージャです。

ジョブ・レベル

ポジション

スーパーバイザ

最上位の参加者

承認での最後の参加者。承認は、階層内でこの参加者より先には進みません。

ジョブ・レベル

ポジション

スーパーバイザ

レベル数

スーパーバイザが移動するレベル数、またはジョブ・レベルおよびポジションのジョブ・レベル数を指定する正数。この数には、絶対値、開始点からの相対値、作成者を使用できます。

ジョブ・レベル

ポジション

スーパーバイザ

相対

スーパーバイザが移動するレベル数、またはジョブ・レベルおよびポジションのジョブ・レベル数を指定する正数。使用可能な値は、開始点、作成者および絶対値です。

ジョブ・レベル

ポジション

最後のレベルの全マネージャを含む

ジョブ・レベルがリスト内で以前に計算された最後の参加者のレベルと等しい場合は、リスト内の次のマネージャが含まれます。

ジョブ・レベル

使用される参加者

参加者の計算済リストからこのオプションで指定された参加者のみ使用します。使用可能なオプションは、全員、最初および最後のマネージャ、最後のマネージャです。

ジョブ・レベル

ポジション

自動アクションの有効化

リスト・ビルダーが次のオプションに基づいてタスクを自動的に実行するかどうかを指定します。

スーパーバイザ

ジョブ・レベル

ポジション

自動アクション

設定される結果を指定します。自動アクションが有効でない場合は、nullにできます。

スーパーバイザ

ジョブ・レベル

ポジション

階層プロバイダ・プラグインを構成しない場合、ポジション・リスト・ビルダーは機能しません。

階層の拡張を定義する際に、プロパティmustUseSpecifiedProviderを定義しない場合、デフォルト値はtrueです。

階層プラグインに問題がある場合に例外をスローしないようにスーパーバイザおよびジョブ・レベル・リスト・ビルダーを構成できます。リスト・ビルダーを構成するには、workflow-identity-config.xml構成ファイルにmustUseSpecifiedProviderプロパティを追加し、値属性をfalseに設定する必要があります。

デフォルトでは、workflow-identity-config.xmlファイルには、mustUseSpecifiedProviderプロパティが含まれていません。このプロパティが存在し、その値がfalseの場合、階層プラグインに関する問題があると、スーパーバイザおよびジョブ・レベル・リスト・ビルダーはLDAP管理チェーンを使用します。

例32-5に、mustUseSpecifiedProviderプロパティを指定するworkflow-identity-config.xmlファイルを示します。このプロパティの値はtrueに設定されており、階層プラグインが使用可能でない場合に、スーパーバイザおよびジョブ・レベル・ビルダーが失敗するようになっています。

例32-5 workflow-identity-config.xml構成ファイル

<ISConfiguration xmlns="http://www.oracle.com/pcbpel/identityservice/isconfig">
<configurations>
<configuration realmName="jazn.com">
<provider providerType="JPS" name="JpsProvider" service="Identity">
<property name="jpsContextName" value="default"/>
<property name="IdentityServiceExtension"
value="HCMIdentityServiceExtension"/>
</provider>
</configuration>
</configurations>
<property name="caseSensitive" value="false"/>
<property name="mustUseSpecifiedProvider" value="true"/> <!-- Fail when the hierarchy plug ins are not available-->
<serviceExtensions>
...
</ISConfiguration>

32.3.6.3.1 承認グループ・リスト・ビルダーをモデリングする方法

承認グループは、静的に定義された、または動的に生成された承認者のリストです。承認グループは、通常、ワークリスト・アプリケーションを使用して、プロセス所有者によって構成されます。一般に、これらは、管理承認の前後にタスクを処理する必要がある、人事や弁護士などのトランザクションの権限の管理チェーンの外側の主題専門家をモデリングするのに使用されます。

静的な承認グループは事前定義済の承認者リストで、動的な承認グループはランタイムに承認者リストを生成します。動的な承認グループでは、次を実行する必要があります。

- 開発者による動的承認者リストのインタフェースに応じた実装の提供

- IT部門によるOracle BPM WorklistのUIを使用した動的な承認グループとしての前述の実装の登録

- SOAクラス・パスの一部であり世界的に有名なディレクトリでの、クラス・ファイルの公開

注意:

ドロップ8では、承認グループはフラット・リストです。シリアルおよびパラレルのパターンは定義されなくなります。

詳細は、32.5項「Oracle BPM Worklistおよびプロセス・ワークスペースの承認管理機能の使用」を参照してください。

図32-19および図32-20は、承認グループ・リスト・ビルダーの2種類の表示を示しています。

図32-19 値ベースの承認グループ・リスト・ビルダー・ダイアログ

図32-20 ルールベースの承認グループ・リスト・ビルダー・ダイアログ

承認グループ・リスト・ビルダーをモデリングするには、まず、リスト・ビルダーの属性が値ベースまたはルールベースであるかを指定し、対応するダイアログでオプションを選択します。オプションの詳細は、表32-2を参照してください。

32.3.6.3.2 ジョブ・レベル・リスト・ビルダーをモデリングする方法

ジョブ・レベル・リスト・ビルダーは、スーパーバイザ階層内を上行します。指定された承認者から開始し、十分なジョブ・レベルを持つ承認者が見つかるまで続行します。

図32-21および図32-22は、ジョブ・レベル・リスト・ビルダーの2種類の表示を示しています。

図32-21 値ベースのジョブ・レベル・リスト・ビルダー・ダイアログ

図32-22 ルールベースのジョブ・レベル・リスト・ビルダー・ダイアログ

ジョブ・レベル・リスト・ビルダーをモデリングするには、まず、リスト・ビルダーの属性が値ベースまたはルールベースであるかを指定し、対応するダイアログでオプションを選択します。オプションの詳細は、表32-2を参照してください。

32.3.6.3.3 ポジション・リスト・ビルダーをモデリングする方法

ポジション・リスト・ビルダーは、ポジション階層内を上行します。リクエスタまたは指定された承認者のポジションから開始し、指定したレベル数または特定のポジションまで進みます。

図32-23は、ポジション・リスト・ビルダーの表示を示しています。

図32-23 ルールベースのポジション・リスト・ビルダー・ダイアログ

ポジション・リスト・ビルダーをモデリングするには、まず、リスト・ビルダーの属性が値ベースまたはルールベースであるかを指定し、対応するダイアログでオプションを選択します。オプションの詳細は、表32-2を参照してください。

32.3.6.3.4 スーパーバイザ・リスト・ビルダーをモデリングする方法

スーパーバイザ・リスト・ビルダーは、プライマリ・スーパーバイザ階層内を上行します。リクエスタまたは指定された承認者から開始し、固定承認者数を持つチェーンを生成します。

図32-24および図32-25は、ポジション・リスト・ビルダーの2種類の表示を示しています。

図32-24 値ベースのスーパーバイザ・リスト・ビルダー・ダイアログ

図32-25 ルールベースのスーパーバイザ・リスト・ビルダー・ダイアログ

スーパーバイザ・リスト・ビルダーをモデリングするには、まず、リスト・ビルダーの属性が値ベースまたはルールベースであるかを指定し、対応するダイアログでオプションを選択します。オプションの詳細は、表32-2を参照してください。

32.3.6.4 ビジネス・ルールを使用してリスト・ビルダーを指定する方法

タスク定義のインラインで、またはタスクの実際の承認者を識別するリスト・ビルダーを指定するビジネス・ルールを使用して、タスクの承認者を定義できます。さらに、ビジネス・ルールを使用して、承認者の置換およびリストの変更を指定できます。これらのルールは、Oracle Business Rulesのヘルプを使用して定義され、組織間で変えることができます。ただし、通常、これらは顧客によって定義されます。

ビジネス・ルールは、条件とアクションの組合せです。オプションで、ビジネス・ルールに優先度および有効期間を定義できます。ヒューマン・ワークフロー・ルールでは、タスク、タスク・メッセージおよび(SDOオブジェクトのXML表現である)エンティティ属性に対応するファクト・タイプを使用して、ルール条件が定義されます。ルール・アクションは、承認者リスト・ビルダーおよびそのパラメータで構成されます。承認者リスト・ビルダーは、特定の階層に移動し、定義されたパラメータに応じて承認者リストを作成または変更します。承認者リスト・ビルダーは、XML (JAXB)ファクト・タイプとして実装されます。

これらの概念の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「Oracle Business Rulesの概要」を参照してください。

後述の項では、Oracle Business Rulesを使用した、リストの作成、承認者の置換、リストの変更および繰返しノード属性について説明します。

32.3.6.4.1 リストを作成する方法

ビジネス・ルールを使用して、使用するリスト・ビルダーを定義できます。ビジネス・ルールには2つのタイプがあります。

- 特定のリスト・ビルダーのパラメータを定義するルール。この場合、特定のリスト・ビルダーを使用するために、タスク・ルーティング・パターン・ダイアログがモデリングされます。リスト・ビルダーのパラメータはルールに基づきます。このオプションを使用して、ルールは、JDeveloperでモデリングされたタイプと同じタイプのリスト・ビルダーを戻す必要があります。図32-26は、サンプルの構成を示しています。

図32-26 特定のリスト・ビルダーの構成

- リスト・ビルダーおよびリスト・ビルダー・パラメータを定義するルール。この場合は、リスト自体がルールを使用して作成されます。図32-27は、サンプルの構成を示しています。

図32-27 リスト・ビルダーおよびパラメータの構成

ルール・ディクショナリで、リスト・ビルダーの作成を容易にするために、ルール関数がシードされます。これらの関数は次のとおりです。

- CreateResourceList

- CreateSupervisoryList

- CreateManagementChainList

- CreateApprovalGroupList

- CreateJobLevelList

- CreatePositionList

図32-28に示すように、ルール・デザイナで、条件をモデリングし、アクション部分で、上述の関数の1つを呼び出して、リストの作成を完了します。

図32-28 ルール・デザイナでの条件のモデリング

ルール関数のパラメータは、JDeveloperモデリングでのパラメータに類似しています。JDeveloperでの構成に加えて、ルール・デザイナでは、次の属性の追加のオプションが使用可能です。

- startingPointおよびtopApprover - JDeveloperでは、開始点および上位承認者がユーザーとして指定されます。ルール・デザイナでは、HierarchyPrincipalを開始点および上位承認者として作成できます。階層プリンシパルを構築するには、図32-29に示すように、HierarchyBuilder関数を使用します。

図32-29 HierarchyBuilder関数

- autoActionEnabledおよびautoAction - ルール・デザイナから、特定のリスト・ビルダーによって生じるユーザーがタスクを自動的に処理できるように構成できます。

- responseType - レスポンス・タイプがREQUIREDの場合、割当て先はタスクを処理する必要があります。それ以外の場合、割当てはFYI割当てに変換されます。

- ruleName - ルール名は、割当て理由の作成に使用されます。ルール・セット名 + "_" + ルール名は、翻訳可能な割当ての理由のリソース・バンドルを検索するためのキーとして使用されます。このリソースは、まずプロジェクト・リソース・バンドル内で検索され、次にカスタム・リソース・バンドル内、最後にシステム・リソース・バンドル内で検索されます。

- lists - これは、作成されるすべてのリストのホルダーとなるオブジェクトです。このオプションをクリックすると、パラメータとして使用するために、事前にアサートされたファクト、Listsオブジェクトが表示されます。

図32-30および図32-31は、ルールの例を示しています。

図32-30 ルールの例(1)

図32-31 ルールの例(2)

注意:

複数のルールが起動する場合、最も優先度が高いルールによって作成されたリスト・ビルダーが選択されます。

ルールが同じ優先度の場合、ランダムな順序で起動し、最初に起動したルールが選択されます。

警告:

リスト作成ルール・セット内のルール定義が不適切または不完全な場合は、実行時エラーの原因になることがあります。次の場合にエラーが発生します。

- ルール・セットにルールが定義されていない場合。

- ルールに定義された条件が1つも満たされていない場合。

すべての条件を処理するよう、ルールを正しく定義してください。

32.3.6.4.2 承認者の置換を行う方法

リスト置換によって、リストに表示されるユーザー、グループおよびアプリケーション・ロールを置換できます。リスト置換は、ルール・デザイナから使用可能で、JDeveloperでの構成は必要ありません。各ルール・ディクショナリに、SubstitutionRulesという名前の事前にシードされたルール・セットがあります。ルール・ディクショナリには、リスト置換を構成するためのSubstituteルール関数もシードされています。表32-3には、Substitute関数およびそのパラメータがリストされています。

表32-3 Substitute関数のパラメータ

パラメータ

説明

fromId

置換元のユーザー/グループ/アプリケーション・ロールのID。

toId

置換先のユーザー/グループ/アプリケーション・ロールのID。

ruleName

割当て理由の作成に使用されます。ルール・セット名 + "_" + ルール名は、翻訳可能な割当ての理由のリソース・バンドルを検索するためのキーとして使用されます。このリソースは、まずプロジェクト・リソース・バンドル内で検索され、次にカスタム・リソース・バンドル内、最後にシステム・リソース・バンドル内で検索されます。

substitutionRules

すべての置換のホルダーとなるオブジェクトです。このオプションをクリックすると、パラメータとして使用するために、事前にアサートされたファクト、SubstitutionRulesオブジェクトが表示されます。

図32-32は、承認者の置換アクションのサンプルを示しています。

図32-32 承認者の置換アクションのサンプル

32.3.6.4.3 リストの変更を行う方法

リストの変更によって、ジョブ・レベルおよびポジションのリスト・ビルダーを、ルールから拡張または切り捨てることができます。リストの変更は、リストの作成後に適用されます。この機能は、JDeveloperからの構成は必要ありません。各ルール・ディクショナリに、ModificationRulesという名前の事前にシードされたルール・セットがあります。ルール・セットを作成したリストに、ジョブ・レベルおよびポジションのリスト・ビルダーがアサートされる場合のみ、このルール・セットが呼び出されます。最も優先度が高い適用可能なルールのみ適用されます。

ルール・デザイナで、リストの変更を容易にするために、ルール関数がシードされます。これらの関数は次のとおりです。

- Extend

- Truncate

図32-33は、これらのルール関数を示しています。

図32-33 ルール関数

表32-4および表32-5には、ExtendおよびTruncateのパラメータがリストされています。

表32-4 Extend関数のパラメータ

パラメータ

説明

ifFinalApproverLevel

最終承認者が存在するレベル以下のレベル。

extendBy

最終ジョブ・レベルに追加するレベル数。

ruleName

割当て理由の作成に使用されます。ルール・セット名 + "_" + ルール名は、翻訳可能な割当ての理由のリソース・バンドルを検索するためのキーとして使用されます。このリソースは、まずプロジェクト・リソース・バンドル内で検索され、次にカスタム・リソース・バンドル内、最後にシステム・リソース・バンドル内で検索されます。

lists

作成されるすべてのリストのホルダーとなるオブジェクトです。このオプションをクリックすると、パラメータとして使用するために、事前にアサートされたファクト、Listsオブジェクトが表示されます。

表32-5 Truncate関数のパラメータ

パラメータ

説明

afterLevel

切り捨てた後のレベル。

ruleName

割当て理由の作成に使用されます。ルール・セット名 + "_" + ルール名は、翻訳可能な割当ての理由のリソース・バンドルを検索するためのキーとして使用されます。このリソースは、まずプロジェクト・リソース・バンドル内で検索され、次にカスタム・リソース・バンドル内、最後にシステム・リソース・バンドル内で検索されます。

lists

作成されるすべてのリストのホルダーとなるオブジェクトです。このオプションをクリックすると、パラメータとして使用するために、事前にアサートされたファクト、Listsオブジェクトが表示されます。

図32-34は、リストの変更アクションのサンプルを示しています。

図32-34 リストの変更アクションのサンプル

32.3.6.4.4 ビジネス・ルール条件の繰返しノード属性を定義する方法

ビジネス・ルールの定義時に、繰返しノードからの属性に基づいてルール条件を指定できます。たとえば、注文書のシナリオで、各注文書ヘッダーに複数の行アイテムが存在するとします。この場合、PurchaseOrderHeaderが非繰返しノードで、PurchaseOrderLinesが繰返しノードです。

ルールを次のように定義します。

行アイテムの金額が50000より小さい場合、jcooperを2レベルまで含むスーパーバイザ・リストを作成します。

この場合、金額は行の属性、つまり繰返しノードの属性です。

次の手順を使用して、繰返しノード属性を定義します。

1. ルール・デザイナで、「ファクト」を選択します。
図32-35に示すように、ファクトのリストが表示されます。

図32-35 ファクトのリスト

2. 図32-36に示すように、それぞれの適切なファクトを編集して、表示されることを確認します。

図32-36 「XMLファクトの編集 -」ダイアログ

3. ルール・デザイナで、ルールを選択し、「追加」アイコン(+)をクリックします。
図32-37に示すように、ルール定義セクションが表示されます。

図32-37 ルール定義セクション

4. 図32-38に示すように、ルール名の左側にある二重下向き矢印をクリックして、詳細設定を表示します。

図32-38 詳細設定

5. 図32-39に示すように、「ツリー・モード」を選択し、<ファクト・タイプ>をクリックして、ROOTを選択するオプションのリストを表示します。

図32-39 ROOTオプション

6. ルール条件を定義します。

32.3.6.5 割当てコンテキストを使用する方法

割当てコンテキストはタスクに存在する情報です。タスクのライフ・サイクルの間に、割当てコンテキストは様々な割当て先を介して進みます。タスク割当て先のコンテキストが変更されると、割当てコンテキストの値も変更されます。

タスクの履歴を参照すると、ライフ・サイクルの間にタスクに含まれた様々な割当てコンテキストを表示できます。Oracle BPM Worklistは、タスク履歴を表示する際に割当てコンテキストを使用します。

32.3.6.5.1 割当てコンテキストの構成

次のいずれかの方法で、JDeveloperの「参加者タイプの追加」ダイアログまたは「参加者タイプの編集」ダイアログで、割当てコンテキストを構成します。

- 参加者タイプセクションで、「ルールベース」オプションを選択します。
この場合、割当てコンテキストは見えないところで暗黙的に構成されます。ルール・レイヤーは、ルールに基づいて割当て先のリストを解決します。タスクが様々な割当て先を介して進んでいくと、割当てコンテキストの値はルールに基づいて計算されます。

- 「詳細」セクションを展開して、任意の数の割当てコンテキストを構成します。
この場合、「割当てコンテキスト」フィールドに情報を入力して、割当てコンテキストをカスタマイズできます。図32-40は、このフィールドを示しています。

図32-40 「割当てコンテキスト」セクション

表32-6はフィールドの説明です。

表32-6 割当てコンテキストのフィールドの説明

フィールド

説明

名前

割当てコンテキストの名前。どの名前でも指定できます。これは文字列フィールドです。

値

割当てコンテキストの値。どの値でも指定できます。これは文字列フィールドです。

タイプ

「値」値フィールドに関連付けられています。

可能な値は次のとおりです。

- 名前別 - ユーザー指定の値パラメータ。

- 式別 - 式ビルダーによって作成された値パラメータ。

32.3.6.6 タスク承認を集計する方法

タスクのライフ・サイクルの間に、1つのユーザーにタスクを複数回割り当てることができます。ヒューマン・タスク・エディタを使用すると、ユーザーがタスクを確認する頻度を構成できます。

次の手順では、タスク承認の集計を構成する方法を説明します。

1. ヒューマン・タスク・エディタの「割当ておよびルーティング・ポリシー」セクションで、ステージを選択し、「タスクは開始参加者から最終参加者へ移行します」の右側にある鉛筆アイコンをクリックします。

2. 「制限付き割当ての設定」ダイアログで、「割当て」タブを選択します。
図32-41は、ダイアログで選択したタブを示しています。

図32-41 「制限付き割当ての設定」ダイアログ

3. ドロップダウン・リストから、次のタスクの集計オプションを選択します。

- なし - 承認の集計がないことを示します。つまり、タスクが割り当てられるたびに、ユーザーはタスクを確認します。

- ステージ - ユーザーは、ステージで一度のみ、タスクを確認します。

- タスク - ユーザーは、タスクのライフ・サイクルで一度のみ、タスクを確認します。

4. 「OK」をクリックします。

タスクが集計され、ユーザーに割り当てられると、タスクは、Oracle BPM Worklist内に、ユーザーが承認しているタスクのすべてのコレクションを表示するコレクション表を持っています。ユーザーがアクションを実行すると、ステージまたはタスク内で、アクションは記録され、すべてのユーザーの割当てに再実行されます。

集計されたタスクは、すべての標準割当てのプロキシ・タスクです。集計されたタスクでは、次のアクションのみ許可されています。

- 承認/却下などのカスタム・アクション

- 再割当て

- 獲得

ユーザーは、個別のタスクでエスカレートなどの追加のアクションを実行できますが、これらのアクションは、記録されず、他のタスクに再生されません。これらのアクションは、集計されたタスクではなく個別のタスク上のアクションとして扱われます。

32.3.7 エスカレーションおよび更新ポリシーの定義

この機能はAMXに固有ではありません。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスクの設計」を参照してください。

注意:

エスカレーションは、管理チェーンにのみ適用可能です。

32.3.8 通知設定の指定

この機能はAMXに固有ではありません。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスクの設計」を参照してください。

32.3.9 詳細設定の使用

詳細設定の使用には、次のタスクがあります。

- ノート、添付および検証のコールバックの指定

- セキュリティ・アクセス・ルールの定義

32.3.9.1 ノート、添付および検証のコールバックを追加する方法

コールバックは、次を実行できるメカニズムです。

- 外部のコンテンツ管理システムまたはカスタム・スキーマからの、ビジネス・オブジェクトに関連付けられたノートおよび添付へのアクセス

- 各タスク・アクションの検証ロジックの定義による、タスクのライフ・サイクルの様々な時点での、ワークフロー・タスクのカスタム検証の実行。

次の手順を使用して、コールバックを追加します。

1. タスク・エディタで、「詳細設定」セクションを展開します。

2. 「コールバックの構成」をクリックします。
図32-42に示すように、「コールバック詳細」ダイアログが開きます。

図32-42 「コールバック詳細」ダイアログ

3. 「その他のコールバック」タブをクリックします。
図32-43に示すように、追加の入力フィールドが表示されます。

図32-43 「その他のコールバック」タブ

4. 次のいずれかのオプションを使用します。

- 「コメント・コールバック」フィールドには、ノート・コールバックの適切なJavaクラスを入力します。

- 「添付コールバック」フィールドには、添付コールバックの適切なJavaクラスを入力します。

- 「検証コールバック」フィールドには、検証コールバックの適切なJavaクラスを、カンマで区切って入力します。

5. 「OK」をクリックします。

32.3.9.2 セキュリティ・アクセス・ルールを定義する方法

アクセス・ルールは、デフォルトのアクションおよび権限をオーバーライドすることによって、ユーザーが実行できるアクションを制限します。ランタイムに、システムでは、承認、追加、削除などの変更を加える権限がユーザーにあるかどうかを確認する定義済のアクセス・ルールに対して、タスク内のすべての操作をチェックします。ユーザーに変更を加える権限がない場合、適切なエラー・メッセージとともに、操作エラーが出力されます。

AMXでは、グループおよびアプリケーション・ロールにアクセス・ルールを定義できます。たとえば、Operatorsというグループに対して取消アクションを制限するように、アクセス・ルールを定義する場合、このグループに属するすべてのユーザーは、タスクの取消が許可されません。同様に、SOAAuditViewerというアプリケーション・ロールに対して取消アクションを制限するように、アクセス・ルールを定義する場合、SOAAuditViewerアプリケーション・ロールが付与されているすべてのユーザーは、タスクの取消が許可されません。

セキュリティ・アクセス・ルールを定義するには:

1. 図32-44に示すように、ヒューマン・タスク・エディタの「詳細設定」セクションを展開し、「タスク・コンテンツおよびアクションのデフォルト・アクセスをオーバーライドします」オプションに移動します。

図32-44 アクセス・ルールのオプション

2. 「表示の構成」をクリックします。
図32-45に示すように、「タスク・コンテンツ・アクセスの設定」ダイアログが表示されます。

図32-45 「タスク・コンテンツ・アクセスの設定」ダイアログ(1)

3. 「タスク・コンテンツ」タブまたは「タスク・アクション」タブをクリックして選択します。(この手順では、「タスク・コンテンツ」タブを選択していることを前提としています。)

4. 編集するタスクを選択し、「編集」アイコンをクリックします。
2つ目の「タスク・コンテンツ・アクセスの設定」ダイアログが表示されます。

5. 図32-46に示すように、ドロップダウン・リストから、「グループ」を選択します。

図32-46 「タスク・コンテンツ・アクセスの設定」ダイアログ(2)

「アイデンティティ・ルックアップ」ダイアログが表示されます。

6. 図32-47に示すように、アプリケーション・サーバー、レルムおよび適切なグループを選択します。

図32-47 「アイデンティティ・ルックアップ」ダイアログ

7. 「OK」をクリックします。
図32-48に示すように、選択したグループがアクセス・ルールに追加されます。

図32-48 アクセス・ルールに追加されたグループ

8. 「OK」をクリックして、ダイアログを閉じます。

アプリケーション・グループのアクセス・ルールを定義するには、次の例外を適用して、同じ手順を使用します。

- 「タスク・アクション」タブをクリックして選択します。

- ドロップダウン・リストから、「アプリケーション」を選択します。

- 図32-49に示すように、「アプリケーション・ロールの選択」ダイアログで、アクセス・ルールに含めるアプリケーション・ロールを選択します。

図32-49 「アプリケーション・ロールの選択」ダイアログ

詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスクの設計」の、タスク・コンテンツのアクセス・ロールの指定に関する項を参照してください。

32.4 エンドツーエンドの承認管理サンプルの使用

表32-7は、ORACLE_HOME\samples\soa-infra\workflowディレクトリにある、エンドツーエンドのワークフローの例を示しています。

表にリストされたデモンストレーション機能以外に、すべてのサンプルは、ワークリスト・アプリケーションおよびワークフロー通知の使用を示しています。

表32-7 エンドツーエンドのサンプル

サンプル

説明

場所

経費ライン承認

承認ポリシーが定義されたライン・レベルの承認を示します。

ORACLE_HOME\samples\soa-infra\workflow\amx \amx-101-expense-line

従業員雇用

Order投票制度の承認グループ・リスト・ビルダーおよびスーパーバイザ・リスト・ビルダーの2つのステージを持つ承認の、非定型の挿入機能を示します。

ORACLE_HOME\samples\soa-infra\workflow\amx \amx-102-hiring-approval-group

注文書承認

ヘッダーおよびライン・レベルの承認を持つ注文書承認シナリオを示します。

ORACLE_HOME\samples\soa-infra\workflow\amx \amx-103-purchaseOrder-2dimensions

従業員異動

パラレルなジョブ・レベルの参加者の間の、あるチームから別のチームへの従業員異動シナリオを示します。

ORACLE_HOME\samples\soa-infra\workflow\amx\amx-104-employee-transfer

自動承認

自動アクション・ルールを介した自動承認の実装方法を示します。

ORACLE_HOME\samples\soa-infra\workflow\amx\amx-105-self-approval

ポジション・リスト・ビルダー

ポジション・リスト・ビルダーの使用を示します。

ORACLE_HOME\samples\soa-infra\workflow\amx\ amx-108-position-list

32.5 Oracle BPM Worklistおよびプロセス・ワークスペースの承認管理機能の使用

Oracle BPM Worklistを使用すると、ユーザーは、次のような様々な承認管理タスクを実行できます。

- タスク・フォームを使用したタスクの管理

- マップ済属性ラベルの定義

- 承認グループの管理

- タスク構成を使用した承認ルールの構成

- タスク・リスト・リージョンおよびポートレットの使用

- タスク履歴リージョンを使用した承認者のプレビュー

32.5.1 タスク・フォームを使用する方法

ヒューマン・ワークフロー・サービスでは、ユーザーにタスクを作成して、ビジネス・プロセスと相互作用します。それぞれのタスクには、タスク・メタデータとタスク・フォームという2つの部分があります。タスク・フォームは、タスクのコンテンツをユーザーのワークリストに表示するために使用されます。

タスク・フォームは、Oracle Application Development Framework (Oracle ADF)を使用して、JDeveloperで設計されます。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスク用のタスク表示フォームの設計」を参照してください。

Oracle BPM Worklistには、ユーザーまたはグループに割り当てられているすべてのワークリスト・タスクが表示されます。ワークリスト・ユーザーが特定のタスクにドリル・ダウンすると、タスク表示フォームは、そのタスクの詳細をレンダリングします。たとえば、経費承認タスクでは様々な経費の明細項目が記載されたフォームが表示され、ヘルプ・デスク・タスク・フォームでは重大度や問題の場所などの詳細が表示されます。

後述の項では、管理者権限を持つユーザーがタスクを管理するために使用する、Oracle BPM Worklistのタスク・フォームについて説明します。図32-50は、タスク・フォームの表示内容を示しています。

図32-50 Oracle BPM Worklistアプリケーションのタスク・フォーム

32.5.1.1 ヘッダー・ビュー

図32-51に示すヘッダー・ビューは、ヘッダー・ドロップ・ハンドラを使用して、JDeveloperで作成されます。

図32-51 ヘッダー

デフォルトでは、ドロップ・ハンドラには、表32-8にリストされたヘッダー・フィールドが含まれています。ただし、ユース・ケースに基づいて、任意のフィールドを追加または削除できます。

表32-8 ヘッダー・フィールド

フィールド

説明

タスク番号

タスクに自動的に割り当てられる番号。

状態

タスクの現在のステータス。

結果

ユーザーの結果。たとえば、ユーザーが「承認」をクリックした場合、「結果」フィールドには「承認」と表示されます。

優先度

タスクに割り当てられる優先度レベル。

作成者

タスクを作成したユーザー。

作成日

タスクの作成日付。

更新済

タスクが最後に更新された日付。

有効期限

タスクが期限切れになる日付。

割当て先

タスクを割り当てる管理者の名前。

取得者

アクションの実行前にタスクを申告するユーザーの名前。

期日

タスクの期限となる日付。

ヘッダーにも、カスタム・アクションおよびシステム・アクションがあります。カスタム・アクションは、タスク・メタデータの結果に依存するアクションです。たとえば、メタデータに承認と却下の結果が含まれる場合、「承認」および「却下」が、カスタム・アクションとしてヘッダーに表示されます。メタデータに3つ以上の結果が含まれる場合、カスタム・アクションは、独立したボタンではなくドロップダウン・リストとしてヘッダーに表示されます。図32-51では、「承認」および「却下」は、独立したボタンとして表示されています。これは、タスク・メタデータには承認と却下の2つの結果が含まれていることを示しています。

エスカレート、一時停止、再開などのシステム・アクションは、常にドロップダウン・リストで表示されます。表示されるアクションは、ユーザーが実行する内容に依存しています。たとえば、タスクが開始されると、そのタスクを取り消すことができます。その後、ユーザーがOracle BPM Worklistにログインして、開始されたタスクの詳細を表示すると、「取消」が、実行可能なアクションのリストに表示されます。

表32-9には、管理者がヘッダーから実行できるすべてのアクションおよびその説明がリストされています。

表32-9 ヘッダー・アクション

アクション

説明

却下

管理者はタスクを却下できます。

承認

ユーザーはタスクを承認できます。

委任

管理者は、別のユーザーに、自分の代理として処理するようにタスクを割り当てることができます。

再割当て

管理者は、別の管理者にタスクを転送できます。

一時停止

管理者は、タスクを一時停止して、後で操作できます。

再開

管理者は、一時停止していたタスクを再開できます。

取消

管理者は、開始したタスクを取り消すことができます。

エスカレート

管理者は、スーパーバイザにタスクをエスカレートできます。

削除

管理者はタスクを削除できます。すべてのTo Doタスクに対して表示されます。

パージ

管理者はタスクをパージできます。すべてのTo Doタスクに対して表示されます。

実行

管理者は、ドロップダウン・リストで選択したアクションに移動できます。

保存

管理者はタスクを保存できます。

32.5.1.2 タスク・ペイロード・ビュー

図32-52に示すタスク・ペイロード・ビューは、タスク・パラメータの詳細を表示し、それを更新できます。SDOに基づいて設計されたパラメータも、ここで表示できます。汎用パラメータの値が、タスクに渡されたり任意のユーザーによって更新されたものに基づいている場合、SDOベースのパラメータの値は、基礎となるアプリケーションで更新されたとおりに、現在のビジネス・オブジェクトの値を反映します。

図32-52 タスク・ペイロード

詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスク用のタスク表示フォームの設計」を参照してください。

32.5.1.3 タスク履歴ビュー

図32-53に示すタスク履歴ビューは、タスクのライフ・サイクルでのイベントを、グラフまたは表形式で表示します。さらに、デザイナで承認者構成の編集オプションを選択した場合、予定承認者を編集できる表形式表示の特別なコントロールが使用できます。追加されたすべての承認者を手動で削除でき、新規承認者を追加できます。表形式表示に加えられた承認者の変更は、グラフ形式表示に即時に反映されます。タスクが保存されるか、承認または却下などのカスタム・アクションがタスクで実行されると、すべての承認者関連の変更も保存されます。

図32-53 タスク履歴

承認タスクの構成時に、「参加者による将来の参加者の編集を許可」オプションを選択した場合、履歴リージョンには、参加者が将来の参加者のリストを編集できる追加アクションが表示されます。詳細は、32.3.3項「一般的な情報の指定」を参照してください。

図32-54は、「適用」ボタンおよび「リセット」ボタンの追加を示しています。

図32-54 タスク履歴 - 追加アクション

表32-10は、承認タスクのすべての追加アクションを説明しています。

表32-10 将来の参加者リストの編集アクション

アクション

説明

追加

ユーザーが将来の参加者を選択した場合に有効になります。このオプションを選択すると、「参加者の追加」ダイアログが開き、ユーザーは非定型の参加者を挿入できます。

編集

ユーザーが、挿入された非定型の参加者を選択した場合に有効になります。このオプションを選択すると、「参加者の編集」ダイアログが開き、ユーザーは、挿入された参加者の位置を移動できます。

削除

ユーザーが、挿入された非定型の参加者を選択した場合に有効になります。このオプションを選択すると、該当する参加者が削除されます。

適用

将来の参加者リストへの編集を持続します。

リセット

将来の参加者からの編集を、システム生成のリストにリセットします。

表32-11には、管理者がタスク履歴ビューから実行できるアクションおよびその説明がリストされています。

表32-11 タスク履歴アクション

アクション

説明

タスク・スナップショット

選択したバージョンのタスク詳細を表示します。

フル・タスク・アクション

選択すると、フル・タスク・アクション履歴が表示されます。選択解除すると、アクション履歴のみが表示されます。デフォルトでは、チェック・ボックスは選択解除されています。

すべての親タスク

選択すると、サブタスク・ビューの親タスクが表示されます。選択解除すると、サブタスク履歴のみが表示されます。デフォルトでは、チェック・ボックスは選択されています。

予定承認者の表示

選択すると、予定承認者が履歴とともに表示されます。デフォルトでは、チェック・ボックスは選択解除されています。

32.5.1.4 コメントと添付ファイル・ビュー

図32-55に示すコメントと添付ファイル・ビューは、タスク・データ・コントロール・ドロップ・ハンドラを使用して、JDeveloperで作成されます。これには、タスクに関するコメントを入力するテキスト入力フィールド、およびサポート・ドキュメントを添付する機能が含まれています。

図32-55 コメントと添付ファイル

32.5.2 マップ済属性ラベルを作成する方法

マップ済属性は、タスクのペイロードから抽出されたデータなど、ユースケース固有のデータを格納するのに使用できる属性です。Oracle BPM Worklistを使用して、サーバー上にマップ済属性ラベルを表示および作成できます。

注意:

保護済のフレックスフィールド属性を作成するには、workflow.mapping.protectedFlexfield権限を持っている必要があります。デフォルトの管理ユーザー、weblogicは、この権限を持っています。

詳細は、32.3.5項「マップ済属性の指定」を参照してください。

属性ラベルを表示するには:

1. Oracle BPM Worklistのメイン・ページで、ページの右上隅にある「管理」リンクをクリックします。

2. 「管理」ペインで、「保護フレックス・フィールド」リンクをクリックします。図32-56に示すようなページが表示されます。

図32-56 フレックスフィールド・マッピング: 保護済

ページでは、既存の属性ラベルのリストが表示されます。ドロップダウン・リストから属性タイプを選択して、リストをフィルタ処理できます。特定のラベルをクリックすると、「詳細」パネルで属性が使用するマッピングのリストが表示されます。

属性ラベルを作成するには:

1. 「追加」(+)ボタンをクリックします。図32-57に示すように、「ラベルの作成」ダイアログが表示されます。

図32-57 「ラベルの作成」ダイアログ

2. ドロップダウン・リストから、属性タイプおよびタスク属性を選択します。

3. 一意のラベル名および説明を入力します。

4. 「作成」をクリックします。ラベルが作成され、タスク・コンポーネントでのマッピングに使用できるようになります。

属性ラベルを削除するには:

属性ラベルを削除するには、まず属性ラベルのリストから属性ラベルを選択します。次に「削除」(-)ボタンをクリックします。

注意:

属性ラベルを削除できるのは、いずれのマッピングにも使用されていない場合のみです。

32.5.2.1 属性ラベル定義のインポートおよびエクスポート

あるサーバーに属性ラベルが定義され、それらを別のサーバーに再作成する必要がある場合、ユーザー・メタデータ移行ユーティリティを使用して、ラベルをXMLファイルに定義したサーバーから、保護済の属性ラベルのリストをエクスポートできます。このユーティリティによって、このファイルから新しいサーバーに属性ラベルをデプロイできます。これにより、Oracle BPM Worklistで属性ラベルを手動で再作成する必要がなくなります。詳細は、32.6項「ユーザー・メタデータ移行ユーティリティの使用」を参照してください。

32.5.2.2 属性ラベルの国際化

属性ラベルが、Oracle BPM Worklistのタスク・リスト・ページなど、エンド・ユーザーに表示される場合、ラベルの作成時に指定されたラベル名が使用されます。異なる国籍のユーザーがラベルを参照する可能性がある場合、Oracle BPM Worklistユーザーのロケールに適した言語に翻訳されたラベル名を表示できます。WorkflowLabels.propertiesリソース・バンドルを使用して、属性ラベルの翻訳をカスタマイズできます。

詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・ワークフロー・サービスの概要」の、属性ラベルの国際化に関する項を参照してください。

32.5.3 承認グループの管理

承認グループは、名前と、特定パターンでタスクを実行するように構成された事前定義のユーザーの集合で構成されます。このパターンは、ヒューマン・ワークフローのルーティング・スリップ・パターンに類似しており、ユーザーがシリアルまたはパラレルでタスクを実行できます。承認グループには、パターンでネストされている承認グループを含めることもできます。

承認グループの名前は、32.3.6.3.1項「承認グループ・リスト・ビルダーをモデリングする方法」で説明されているように、承認グループのリスト・ビルダーを指定する際に必要です。承認グループで構成されたパターンは、タスクを操作する必要があるユーザーを順序付けするためにデフォルトで使用されます。ただし、リスト・ビルダーを作成する際は、投票制度を指定してデフォルトのパターンをオーバーライドできます。

後述の項では、管理者権限を持つユーザーが承認グループを管理できるOracle BPM Worklistユーザー・インタフェースについて説明します。

32.5.3.1 承認グループの表示方法

Oracle BPM Worklistのホーム・ページで、「承認グループ」タブをクリックします。図32-58に示すようなページが表示されます。

図32-58 Oracle BPM Worklist: 「承認グループ」タブ

この図では、「DisbursementTeam」という承認グループに2人のユーザー「bpalmer」と「rjames」がいることが示されています。これらのユーザーは特定のシーケンス構成でタスクを実行します。

32.5.3.2 承認グループの検索方法

承認グループは、ユーザー名またはグループ名で検索できます。

ユーザー名で検索するには:

1. 左側にあるナビゲーション・ペインで、ドロップダウン・リストから「ユーザー」を選択します。

2. テキスト入力フィールドに完全なユーザー名を入力します(ユーザー名の一部とアスタリスク(*)を入力してワイルドカード検索を実行することもできます)。

3. アクション(>)ボタンをクリックします。
図32-59に示すように、左側にあるナビゲーション・ペインに、ユーザーが所属する承認グループのリストが表示されます。

図32-59 ユーザー名の検索結果

承認グループ名をクリックすると、右側の詳細ペインがそのグループの構造でリフレッシュされます。

グループ名で検索するには:

1. 左側にあるナビゲーション・ペインで、ドロップダウン・リストから「グループ」を選択します。

2. テキスト入力フィールドに完全なグループ名を入力します(グループ名の一部とアスタリスク(*)を入力してワイルドカード検索を実行することもできます)。

3. アクション(>)ボタンをクリックします。
図32-59に示すように、左側にあるナビゲーション・ペインに、一致する承認グループがすべてリスト表示されます。

図32-60 グループ名の検索結果

承認グループ名をクリックすると、右側の「詳細」ペインがそのグループの構造でリフレッシュされます。

32.5.3.3 静的承認グループの追加方法

次の手順では、静的承認グループを追加する方法を説明します。

1. 図32-61に示すように、左側にあるナビゲーション・ペインで、「追加」(+)ボタンをクリックし、ドロップダウン・リストから、「静的作成」を選択します。

図32-61 承認グループの作成: 静的グループの選択

図32-62に示すようなページが表示されます。

図32-62 静的承認グループの作成: 詳細

2. グループの新しい名前を入力します。

3. 「適用」をクリックします。
これで、新しい承認グループにメンバーを追加できるようになります。

32.5.3.4 静的承認グループに新しいメンバーを追加する方法

静的承認グループには、ユーザーまたは他の承認グループをメンバーとして追加できます。次の手順では、承認グループに新しいユーザー・メンバーを追加する方法を説明します。

1. 図32-62に示したページで、「追加」(+)アイコンをクリックします。
その他のアイコンは、承認シーケンスでのメンバーの編集、削除、並替えに使用します。

図32-63に示すように、「グループに追加」ポップアップ・ダイアログが表示されます。

図32-63 「グループに追加」ダイアログ

2. 「ユーザー」を選択します。

3. 次のいずれかのオプションを使用してユーザーを選択します。

- 完全なユーザー名を入力して「OK」をクリックします。
ダイアログが閉じ、「詳細」ペインの「メンバー」セクションに新しいメンバーが表示されます。

- 虫眼鏡アイコンをクリックしてユーザーを検索します。
図32-64に示すように、虫眼鏡アイコンをクリックすると、「認証ブラウザ」ポップアップ・ダイアログが表示されます。

図32-64 認証ブラウザ: ユーザーの追加

4. ドロップダウン・リストから「ユーザー」を選択します。

5. テキスト入力フィールドに完全名を入力して「検索」をクリックします(ユーザー名の一部とアスタリスク(*)を入力してワイルドカード検索を実行することもできます)。
図32-65に示すように、「認証ブラウザ」ダイアログがリフレッシュされ、検索結果が表示されます。

図32-65 認証ブラウザ: 検索結果

6. リストからユーザーを選択します。
選択したユーザーの詳細が、ダイアログの「詳細」セクションに表示されます。

7. 「OK」をクリックします。

8. 「OK」を再度クリックして、「グループに追加」ダイアログを閉じます。
図32-66に示すように、「詳細」ペインの「メンバー」セクションで、選択したユーザーを表すノードが承認グループ構造に表示されます。

図32-66 承認グループ構造

この手順を繰り返せば、承認グループにさらにメンバーを追加できます。メンバー追加後の承認グループ構造は、図32-67のようになります。

図32-67 承認グループ構造: 複数のメンバー

32.5.3.5 承認グループからメンバーを削除する方法

次の手順では、承認グループからメンバーを削除する方法を説明します。

1. 承認グループ構造から、目的のメンバー・ノードを選択します。

2. 「削除」アイコンをクリックします。
承認グループ構造がリフレッシュされ、メンバー・ノードが削除されます。

32.5.3.6 承認グループのメンバーを移動する方法

次の手順では、承認グループの並び順を変更する方法を説明します。

1. 移動するメンバー・ノードを選択します。

2. 「メンバーのプッシュ・アップ」(^)アイコンと「メンバーのプッシュ・ダウン」(v)アイコンを使用して、メンバーを目的の位置に移動します。

図32-68および図32-69は、移動の前後のrjamesおよびjsteinの位置を示しています。

図32-68 移動前

図32-69 移動後

32.5.3.7 承認グループをネストする方法

次の手順では、承認グループをネストする、つまり承認グループを他の承認グループに追加する方法を説明します。

1. 「追加」アイコンをクリックします。

2. 「承認グループ」を選択します。

3. 虫眼鏡アイコンをクリックします。
別のダイアログとして「グループに追加」ダイアログが表示されます。

4. 左のペインから、追加する承認グループを選択します。
図32-70に示すように、選択した承認グループの構造が右のペインに表示されます。

図32-70 ネストする承認グループの選択

5. 「OK」をクリックします。

6. 「OK」を再度クリックして、「グループに追加」ダイアログを閉じます。
図32-71に示すように、承認グループの構造に、新しい承認グループが表示されます。

図32-71 ネストされた承認グループ

32.5.3.8 承認グループの名前を変更する方法

次の手順では、承認グループの名前を変更する方法を説明します。

1. 承認グループの新しい名前を「名前」フィールドに入力します。

2. 「適用」をクリックします。

名前の変更は、この承認グループがネストされている他の承認グループにも反映されます。

32.5.3.9 動的承認グループの使用

動的承認グループを使用すると、ランタイムにカスタムJavaクラスを通じて承認グループを作成できます。これには、次の手順が必要です。

- 開発者が、カスタム実装に必要なカスタムの動的承認グループ・クラスを記述します

- IT部門が、ワークリスト・アプリケーションのUIを使用して、カスタムの動的承認グループを登録します

- SOAクラス・パスの一部であり世界的に有名なディレクトリに、クラス・ファイルを公開します

32.5.3.9.1 カスタムの動的承認グループ・クラスを記述する方法

動的承認グループを定義するには、カスタマは、インタフェース・ファイルIDynamicApprovalGroup.java(AMXによって、パッケージoracle.bpel.services.workflow.task内に動的承認グループとして定義されています)を使用して実装クラスを定義する必要があります。これには、承認グループのメンバーを取得するパブリック・メソッドが1つだけ含まれています。入力パラメータはTaskオブジェクトのみです。主キー・リストは、task/systemAttributes/collectionTargetタスクによって取得できます。

例32-6 実装クラス

************** IDynamicApprovalGroup.java ******************

public interface IDynamicApprovalGroup {

/**
*  Get members of this dynamic approval group
*  @param task Property bag containing information required to generate
the approver list
*  @return list of IApprovalListMember including sequence, member, member_
type; null for empty group
*  The primary key list can be obtained from task:
task/systemAttributes/collectionTarget
*/

public List getMembers(Task task )
throws WorkflowException;
}
**********************************************************

図32-72は、動的承認グループ・クラスのサンプルを示したコード・スニペットです。

図32-72 動的承認グループ・クラスのコード

32.5.3.9.2 カスタムの動的承認グループ・クラスを登録する方法

詳細は、32.5.3.9.4項「動的承認グループの追加方法」を参照してください。

32.5.3.9.3 カスタムの動的承認グループ・クラスを公開する方法

SOAクラス・パスの一部であり世界的に有名なディレクトリにクラス・ファイルを公開するには、クラス・ファイルを次のWebLogic Serverディレクトリに配置する必要があります。

$BEAHOME/AS11gR1SOA/soa/modules/oracle.soa.ext_11.1.1/classes

たとえば、oracle.apps.DynamicAGというJavaクラスの場合、パスは$BEAHOME/AS11gR1SOA/soa/modules/oracle.soa.ext_11.1.1/classes/oracle/apps/DynamicAG.classとなります。クラス・ファイルをこのパスに配置してからWebLogic Serverを再起動してください。

32.5.3.9.4 動的承認グループの追加方法

次の手順では、動的承認グループを追加する方法を説明します。

1. 図32-73に示すように、左側にあるナビゲーション・ペインで、「追加」(+)ボタンをクリックし、ドロップダウン・リストから、「動的作成」を選択します。

図32-73 承認グループの作成: 動的グループの選択

図32-74に示すようなページが表示されます。

図32-74 動的承認グループの作成: 詳細

2. グループの名前とクラスを入力します。

3. 「適用」をクリックしてグループを保存します。

32.5.3.10 承認グループの削除方法

次の手順では、承認グループを削除する方法を説明します。

1. 左側にあるナビゲーション・ペインで、削除する承認グループを選択します。

2. 図32-75に示すように、「削除」(-)ボタンをクリックします。

図32-75 承認グループの削除

確認ダイアログが表示されます。

3. 「OK」をクリックします。
承認グループが削除されます。

注意:

削除した承認グループが他の承認グループにネストされている場合、親グループからも削除されます。

32.5.4 タスク構成の使用

Oracle BPM Worklistのタスク構成を使用すると、ビジネス・ユーザーと管理者は、ワークフロー設計者がデフォルトとして構成したルールを参照できます。この事前定義済ルールを変更することで、承認フローをいつでも特定の顧客向けに、適用可能な顧客企業ポリシーに基づいてカスタマイズできます。

たとえば、金額が1000ドルを超える支出については2レベルの承認を必要とする企業ポリシーがあり、このポリシーの承認を3レベルに変更する場合、顧客はこのWebベース・アプリケーションを使用してルールを変更できます。基礎となるプロセスのルールを変更してから再デプロイするという手順をIT部門に依頼する必要はありません。ルールの変更は次のインスタンスから適用され、進行中のインスタンスでは現在のルール定義が使用されます。

タスク構成を使用すると、承認フローに関連付けられているイベント駆動ルールとデータ駆動ルールを、ワークフローのデプロイ時であるランタイムに編集できます。アプリケーションの「管理」セクションのメインの「タスク構成」タブをクリックすると、「イベント駆動」タブおよび「データ駆動」タブにアクセスできます。図32-76に示すような画面が表示されます。

図32-76 タスク構成: 「メイン」タブ

左側の「設定するタスク」パネルには、承認フロー・ルールを使用するように構成されているすべてのワークフロー・タスクがリストされます。検索機能もあります。表示モードのときは、承認フローのリスト・ビルダー構成をオーバーライドするデフォルトの構成とルールが右側のパネルに表示されます。ルール構成は、承認フローで定義されているステージに則して表示されます。

32.5.4.1 イベント駆動の設定を編集する方法

この項では、イベント駆動の設定、つまりタスク・メタデータについて説明します。

図32-77は、イベント駆動のタスク構成ページを示しています。

図32-77 タスク構成: イベント駆動

次の手順を使用して、イベント駆動設定を編集します。

1. 「タスク構成」タブで、「イベント駆動」タブをクリックします。

2. 「設定するタスク」ペインでタスクを選択します。「編集」(鉛筆)アイコンをクリックします。
図32-78に示すように、メイン・ページが編集モードに変わります。

図32-78 タスク構成: イベント駆動、編集モード

3. 必要な変更を行い、「適用」をクリックして変更を保存します。

4. 「デプロイ」をクリックして変更をデプロイします。

警告:

リスト作成ルール・セット内のルール定義が不適切または不完全な場合は、実行時エラーの原因になることがあります。次の場合にエラーが発生します。

- ルール・セットにルールが定義されていない場合。

- ルールに定義された条件が1つも満たされていない場合。

すべての条件を処理するよう、ルールを正しく定義してください。

32.5.4.1.1 ルーティングの設定を指定する方法

「イベント駆動」タブには、ヒューマン・タスク・エディタで使用できるいくつかのルーティング・オプションがあります。
図32-79に示すように、承認集計の要件として、次のいずれかを指定できます。

- なし

- タスクごとに1回

- ステージごとに1回

図32-79 ルーティング設定

32.5.4.1.2 有効期限とエスカレーションのポリシーを定義する方法

Oracle BPM Worklistにおける有効期限とエスカレーションのポリシーの定義は、ヒューマン・タスク・エディタでの定義方法とほぼ同じです。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスクの設計」の章で、タスクをエスカレート、期限更新または終了する方法に関する項を参照してください。

注意:

有効期限を0日0時間0分に設定すると、タスクはデプロイした直後に期限切れになります。

図32-80 有効期限とエスカレーションのポリシー

32.5.4.1.3 通知設定の指定方法

Oracle BPM Worklistにおけるタスクの通知設定の作成または更新は、ヒューマン・タスク・エディタでの作成または更新方法とほぼ同じです。詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・タスクの設計」の章で、参加者の通知プリファレンスの指定方法に関する項を参照してください。

図32-81 通知設定

32.5.4.1.4 タスク・アクセスの許可方法

アクセス・ルール設定を設定すると、ユーザーが実行できるアクションを制御できます。設定方法は、ヒューマン・タスク・エディタでの設定方法とほぼ同じです。コンテンツおよびアクションの権限は、作成者(イニシエータ)、所有者、割当て先、レビューアなどユーザーの論理上のロールに基づいて指定できます。

詳細は、32.3.9.2項「セキュリティ・アクセス・ルールを定義する方法」を参照してください。

図32-82 タスク・アクセス

32.5.4.2 データ駆動の設定を編集する方法

データ駆動の設定、つまりルールまたは条件を編集するには、次の手順を使用します。

1. 「タスク構成」タブで、「データ駆動」タブをクリックします。

2. 「設定するタスク」ペインでタスクを選択します。「編集」(鉛筆)アイコンをクリックします。
図32-83および図32-84に示すように、右側のパネルが編集モードに変わります。

図32-83 タスク構成: データ駆動、編集モード(1)

図32-84 タスク構成: データ駆動、編集モード(2)

3. ルール名を更新します。
このルール名は、履歴グラフにルールの根拠として表示されます。リソース・バンドルを定義した場合、ルール名はリソース・バンドルの取得に使用され、翻訳済テキストが表示されます。

4. 次のいずれかの操作を実行します。

- 追加

- 更新

- 削除

- アサーションの変更(アサーションはルールの構成対象となったリスト・ビルダーのタイプによって異なります)

- 変数の追加

5. 必要な変更を行った後で、「適用」をクリックします。
変更は、ルール・ディクショナリのルール定義に保存されます。

6. 「デプロイ」をクリックして変更をデプロイします。

32.5.4.2.1項「変数の追加方法」および32.5.4.2.2項「条件の定義方法」では、追加の編集タスクについて説明しています。

32.5.4.2.1 変数の追加方法

変数を追加するには、次の手順を使用します。

1. 「変数の追加」をクリックします。
図32-85に示すように、「変数の追加」ウィンドウが表示されます。

図32-85 「変数の追加」ウィンドウと「タイプ」ドロップダウン・リスト

2. 変数の名前を入力します。

3. 下矢印をクリックして、ドロップダウン・リストから変数タイプを選択します。
リストに表示されるタイプは、ルール・ディクショナリで使用可能なタイプに対応しています(ビルトイン・タイプまたは登録されたタイプ)。

4. 値を入力します。

5. 「OK」をクリックします。
これで、変数を使用して条件を定義できるようになりました。

32.5.4.2.2 条件の定義方法

条件の左辺と右辺は、条件ブラウザからオペランドを選択して設定できます。虫眼鏡アイコンをクリックすると条件ブラウザが表示されます。図32-86は、左辺の条件ブラウザを示しています。

図32-86 左辺の条件ブラウザ

条件のオペランドを比較する演算子は、条件の左辺で選択したオペランドのタイプに応じて変わります。図32-87は、右辺の条件ブラウザを示しています。

図32-87 右辺の条件ブラウザ

式ビルダーを使用すると、さらに複雑な条件を定義することもできます。

詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』で、ADFデータ・バインディングのEL式の作成に関する項を参照してください。また、Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイドの、EL式の作成に関する項も参照してください。

32.5.4.2.3 アサーションの定義方法

ドロップダウン・リストから適切なルール関数を選択して、アサーションを指定できます。

32.5.5 タスク・リスト・リージョンの使用

Oracle BPM Worklistのタスク・リスト・リージョンは、埋込みのアプリケーションでのタスク・リストの表示に使用する、スタンドアロンで再利用可能なコンポーネントとして使用できます。これは、埋込みのアプリケーションに含めることができるADFライブラリとして提供されます。

図32-88は、タスク・リスト・リージョンを示しています。

図32-88 タスク・リスト・リージョン

32.5.5.1 タスク・リスト・リージョンをアプリケーションに埋め込む方法

タスク・リスト・リージョンはポートレットとして公開され、他のアプリケーションに埋め込むことができます。

コンシューマ・アプリケーションは、JDeveloperを使用して開発されます。タスク・リスト・ポートレットは、コンシューマ・アプリケーションのページに埋め込まれます。ランタイムに、コンシューマ・アプリケーションに渡されたログイン資格証明は、WSRPプロデューサに伝播され、ポートレット・コンテンツはこのページに表示されます。スタンドアロンのタスク・リスト・ポートレットは、WLS PORTLETサーバーにデプロイされます。このサーバーはワークフロー・サービスのリモートのWLS SOAサーバーに接続します。ポートレット・サーバー上のデプロイメント用に、独立したポートレットearが指定されます。

すべてのコンシューマは、ポートレット・プロデューサ(WLSポートレット・サーバー)への登録後にタスク・リスト・ポートレットを使用できます。

タスク・リスト・リージョンをアプリケーションに埋め込むには:

タスク・リストADFライブラリのadflibTaskListTaskFlow.jarファイルがクラス・パスに存在している必要があります。このjarは、JDeveloperのOracle BPM Worklistコンポーネント・ライブラリ内にあります。

1. JDeveoloperで、新しいアプリケーションを作成し、名前を指定します(TaskListTaskFlowSampleなど)。

2. adflibTaskListTaskFlow.jarタスク・フローをプロジェクトのクラス・パスに追加します。

3. 「ライブラリとクラスパス」の次のライブラリを、クラス・パスに追加します。

- Oracle BPM Worklistコンポーネント

- BPMワークフロー

- WSRPコンテナ

4. 非SOAサーバー上でアプリケーションを実行する場合、32.5.5.1.1項「リモートの非SOAサーバー上のヒューマン・タスク詳細ページをデプロイする方法」に示す手順を実行します。それ以外の場合、ステップ5に進みます。

5. .jspxページを作成します。「testSample.jspx」などの名前を付けることができます。

6. コンポーネント・パレットからadflibTaskListFlow.jarを選択し、Tasklist-flow-definitionを.jspxページにリージョンとしてドラッグします。
「タスク・フロー・バインディングの編集」ダイアログが表示されます。

図32-89 「タスク・フロー・バインディングの編集」ダイアログ

例32-7は、testSamplePagedef.xmlに作成されたコードを示しています。

例32-7 testSamplePagedef.xmlのコード

<taskFlow id="taskListtaskflowdefinition1"
taskFlowId="/WEB-INF/taskList-task-flow-definition.xml
#taskList-task-flow-definition"
xmlns="http://xmlns.oracle.com/adf/controller/binding">
<parameters>
<parameter id="federatedMode" value="true"
xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
<parameter id="showServerColumn" value="true"
xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
</parameters>
</taskFlow>

7. 次の共有ライブラリをweblogic-application.xmlに追加します。

<library-ref>
<library-name>oracle.soa.workflow</library-name>
</library-ref>

注意:

oracle.soa.workflow.wcがサーバーにインストールされている場合、このライブラリを適切に追加します。

8. 「WARデプロイメント・プロファイルのプロパティの編集」ダイアログで、次を選択します。

- adflibTaskListTaskFlow.jar

- adflibWorklistComponents.jar

- wsrp-container.jar.

9. 図32-90に示すように、「レベル」メニューで、「保護」→「ADFセキュリティの構成」を選択して、アプリケーションを保護します。

図32-90 アプリケーションの保護

10. 「ADFセキュリティの構成」ダイアログで、次のことを行います:

1. 「ADF認証」を選択します。

2. 「HTTP Basic認証」を選択します。

3. 「終了」をクリックします。

11. タスク・フローをフェデレーテッド・モードで使用している場合、追加で実行する必要がある手順の詳細は、32.5.5.1.2項「タスク・フローをフェデレーテッド・モードで使用する方法」を参照してください。それ以外の場合、ステップ12に進みます。

12. EARデプロイメント・プロファイルを作成し、earを作成してデプロイします。

13. 次のURLに移動します。 http://server:port/TaskListTaskFlowSample-ViewController-context-root/faces/testSample.jspx。

14. 表示されるポップアップ・ダイアログから、任意のユーザーでログインします。そのユーザーのタスク・リストが表示されます。
ドロップダウン・リストには、使用可能なすべてのサーバーが含まれています。サーバーの組合せを選択すると、それらのサーバーに属するすべてのタスクを表示するタスク・リストがリフレッシュされます。

showServerColumnをtrueとして渡した場合、タスクが属するサーバーを示すサーバー列がタスクに表示されます。

図32-91 サーバー列

15. 任意のタスク・タイトルをクリックして、タスクの詳細を含むダイアログを表示します。

図32-92 タスク詳細

32.5.5.1.1 リモートの非SOAサーバー上のヒューマン・タスク詳細ページをデプロイする方法

非SOAサーバー上でアプリケーションを実行する場合、次の手順を実行する必要があります。

非SOAサーバーでデプロイするには:

1. oracle.soa.workflow共有ライブラリを非SOA WLSサーバーにデプロイします。次のように実行します。

1. http://remote_hostname:remote_port/コンソールにナビゲートします。remote_hostnameおよびremote_portは、リモートの非SOA WLSサーバーのホスト名およびポートです。

2. 「デプロイメント」リンクをクリックし、「インストール」をクリックします。

3. 「パス」フィールドに次の値が指定されていることを確認します。$ADE_VIEW_ROOTが実際のディレクトリに置き換えられていることを確認します。次に例を示します。
$ADE_VIEW_ROOT/fmwtools/fmwtools_home/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1。

4. oracle.soa.workflow.jarを選択します。

5. 「終了」をクリックします。

6. oracle.soa.workflow(11.1.1,11.1.1)ライブラリがアクティブな状態であることを確認します。

2. 非SOA WLSサーバーに外部JNDIを定義します。次のように実行します。

1. http://remote_hostname:remote_port/コンソールにナビゲートします。remote_hostnameおよびremote_portは、リモートの非SOA WLSサーバーのホスト名およびポートです。

2. 「ドメイン構造」→「サービス」→「外部JNDIプロバイダ」にナビゲートします。

3. 「新規」をクリックします。

4. 名前をForeignJNDIProvider-SOAと入力します。

5. 「OK」をクリックします。

6. 「ForeignJNDIProvider-SOA」リンクをクリックします。

7. soa_hostnameおよびsoa_portをSOA WLSサーバーのホスト名およびポートに置き換えます。

8. 次の値を入力します。
- 初期コンテキスト・ファクトリ: weblogic.jndi.WLInitialContextFactory
- プロバイダURL: t3://soa_hostname:soa_port/soa-infra
- ユーザー: weblogic
- パスワード: weblogic

注意:

プロバイダURLは、ドメインではなくsoa-infraアプリケーションを参照しています。「soa-infra」を「soa」に変更しないでください。

9. 「保存」をクリックします。

3. 非SOA WLSサーバーにJNDIリンクを定義します。次のように実行します。

1. http://remote_hostname:remote_port/コンソールにナビゲートします。remote_hostnameおよびremote_portは、リモートの非SOA WLSサーバーのホスト名およびポートです。

2. 「ドメイン構造」→「サービス」→「外部JNDIプロバイダ」にナビゲートします。

3. ForeignJNDIProvider-SOAをクリックします。

4. 「リンク」タブを選択し、「新規」をクリックします。

5. 次の値を入力します。
- 名前: RuntimeConfigService
- ローカルJNDI名: RuntimeConfigService
- リモートJNDI名: RuntimeConfigService

6. 「OK」をクリックします。

7. 名前、ローカルJNDI名、およびリモートJNDI名に次の値を入力して、手順aからfを繰り返します。
- ejb/bpel/services/workflow/TaskServiceBean
- ejb/bpel/services/workflow/TaskMetadataServiceBean
- TaskReportServiceBean
- TaskEvidenceServiceBean
- TaskQueryService
- UserMetadataService

注意:

ejb/bpel/services/workflow/TaskServiceBeanおよびejb/bpel/services/workflow/TaskMetadataServiceBeanのみに対して、「ejb/bpel/services/workflow/」を指定します。

4. 例32-8に示すように、bpm-services.jarへの権限付与を含めるように、リモートの非SOA WLSサーバー上のsystem-jazn-data.xmlを変更します。ヒューマン・タスクのADFタスク・フローを、統合されたWLSサーバーにデプロイしている場合、$ADE_VIEW_ROOT/system11.1.1.1.32.53.26/DefaultDomain/config/fmwconfigでsystem-jazn-data.xmlファイルを検索できます。
重要: $ADE_VIEW_ROOTが実際のパスに置き換えられていることを確認してください。たとえば、/scratch/skaneshi/view_storage/skaneshi_d7b4/fmwtools/fmwtools_home/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jarなどです。

例32-8 bpm-services.jarの権限付与コード

<grant>
<grantee>
<codesource>
<url>file:$ADE_VIEW_ROOT/fmwtools/fmwtools_
home/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar</url>
</codesource>
</grantee>
<permissions>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>VerificationService.createInternalWorkflowContext</name>
</permission>
<permission>
<class>oracle.security.jps.service.credstore.CredentialAccessPermission</class>
<name>credstoressp.credstore.BPM-CRYPTO.BPM-CRYPTO</name>
<actions>read,write</actions>
</permission>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>IdentityAssertion</name>
<actions>*</actions>
</permission>
</permissions>
</grant>

5. リモートの非SOA WLSサーバーを再起動します。

6. ヒューマン・タスクの詳細なUIを含んでいるアプリケーションを、リモートの非SOA WLSサーバーにデプロイします。

7. 32.5.5.1項「タスク・リスト・リージョンをアプリケーションに埋め込む方法」のステップ5に戻ります。

32.5.5.1.2 タスク・フローをフェデレーテッド・モードで使用する方法

タスク・フローをフェデレーテッド・モードで使用している場合、アプリケーションのクラス・パスにwf_client_config.xmlを配置する必要があります。詳細は、32.5.5.2項「タスク・リスト・リージョン・パラメータを使用する方法」を参照してください。

2つのサーバー間のグローバル信頼関係を有効にする必要もあります。これにより、認証済のユーザーが、クライアント構成ファイルに定義されたすべてのフェデレーテッド・サーバーに渡されるようになります。

重要:

すべてのサーバーを再起動する必要があります。

タスク・フローをフェデレーテッド・モードで使用するには:

wf_client_config.xmlに定義されたすべてのサーバーに対して、次の手順を実行します。

1. WebLogicコンソールにログインします。

2. 「ドメイン構造」で、soainfraドメイン名をクリックします。

3. 「セキュリティ」タブを選択します。

4. 「保存」ボタンの近くにある「詳細」リンクをクリックします。

5. 選択した資格証明パスワードを入力します。

注意:

このパスワードは、すべてのSOAサーバーに対して使用する必要があります。

6. 「保存」をクリックします。

7. サーバーを再起動します。

8. 32.5.5.1項「タスク・リスト・リージョンをアプリケーションに埋め込む方法」のステップ12に戻ります。

例32-9は、wf_client_config.xmlのコードのサンプルを示しています。

注意:

サーバーをフェデレーテッド・サーバー・リストに含めない場合、<server>要素にexcludeFromFederatedList="true"を配置します。

例32-9 wf_client_config.xmlのコードのサンプル

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workflowServicesClientConfiguration xmlns="http://xmlns.oracle.com/bpel/services/client">
<server name="default" default="true" excludeFromFederatedList="true">
<localClient>
<participateInClientTransaction>false</participateInClientTransaction>
</localClient>
<remoteClient>
<serverURL>t3://sta00048.us.oracle.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory
</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
<soapClient>
<rootEndPointURL>http://sta00048.us.oracle.com:7001</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
</server>
<server name="ERP">
<soapClient>
<rootEndPointURL>http://sta00147.us.oracle.com:7001</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
<remoteClient>
<serverURL>t3://sta00147.us.oracle.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory
</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
</server>

<server name="CRM">
<soapClient>
<rootEndPointURL>http://sta00048.us.oracle.com:7001</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
<remoteClient>
<serverURL>t3://sta00048.us.oracle.com:7001</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory
</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
</server>
</workflowServicesClientConfiguration>

32.5.5.2 タスク・リスト・リージョン・パラメータを使用する方法

タスク・リスト・リージョン・パラメータは、組み込まれたリージョンの表示動作を制御します。この項では、これらのパラメータについて説明します。

表示パラメータ

- federatedMode
このパラメータをtrueと設定して渡す場合は、タスク・リストがフェデレーテッド・モードで表示されます。タスク・フローをフェデレーテッド・モードで実行するには、次のいずれかの方法で、フェデレーテッド・サーバーのリストをタスク・フローに渡す必要があります。

- クライアント構成ファイルであるwf_client_config.xml(EARレベルのAPP-INF\classes\wf_client_config.xmlまたはWebアプリケーションのWEB-INF\classes)をクラス・パスに配置します。クライアント構成ファイルには、すべてのフェデレーテッド・サーバーの詳細が含まれています。詳細は、32.5.5.1.2項「タスク・フローをフェデレーテッド・モードで使用する方法」を参照してください。

- フェデレーテッド・サーバー・リストを格納したJAXBオブジェクトを作成します。このJAXBオブジェクトは、federatedServersパラメータを使用してタスク・フローに渡すことができます。JAXBオブジェクトの作成方法の詳細は、このパラメータの詳細を参照してください。

- federatedServers
このパラメータは、タスク・フローをフェデレーテッド・モードで実行した場合にサーバーのリストを表示します。次に示すコードを使用してJAXBオブジェクト(WorkflowServicesClientConfigurationType)を作成し、パラメータとしてタスク・フローに渡します。コードに太字で示したように、サーバーの1つがデフォルトとして設定されていることを確認します。

デフォルトのサーバーを使用するのは、複数のサーバーがwf_client_config.xmlまたはJAXBオブジェクトに定義されている場合です。ただし、ワークフロー・クライアントに対しては、1つのサーバーを使用することをお薦めします。サーバー名をパラメータとして取得しないレガシーAPIがいくつかあります。これらのAPIをサポートするには、1つのサーバーをデフォルト・サーバーとして定義する必要があります(そうしないと、これらのAPIは動作しません)。

例32-10 単一サーバーの定義

import oracle.bpel.services.workflow.client.config.IdentityPropagationType;
import oracle.bpel.services.workflow.client.config.PolicyReferenceType;
import oracle.bpel.services.workflow.client.config.PolicyReferencesType;
import oracle.bpel.services.workflow.client.config.RemoteClientType;
import oracle.bpel.services.workflow.client.config.ServerType;
import oracle.bpel.services.workflow.client.config.SoapClientType;
import oracle.bpel.services.workflow.client.config.
WorkflowServicesClientConfigurationType;

WorkflowServicesClientConfigurationType wscct = new
WorkflowServicesClientConfigurationType();

List<ServerType> servers = wscct.getServer();

/**** Setting default server in the list ****/

ServerType defaultServer= new ServerType();
servers.add(defaultServer);

defaultServer.setDefault(true);
defaultServer.setExcludeFromFederatedList(true);

defaultServer.setName("default");

RemoteClientType rct = new RemoteClientType();
rct.setServerURL("t3://sta00048.us.oracle.com:7001");
rct.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct.setParticipateInClientTransaction(false);
server.setRemoteClient(rct);

SoapClientType sct = new SoapClientType();
PolicyReferencesType prts = new PolicyReferencesType();

PolicyReferenceType prt = new PolicyReferenceType();
prt.setEnabled(true);
prt.setCategory("security");
prt.setUri("oracle/wss10_saml_token_client_policy");
prts.getPolicyReference().add(prt);

IdentityPropagationType ipt = new IdentityPropagationType();
ipt.setMode("dynamic");
ipt.setType("saml");
ipt.setPolicyReferences(prts);

sct.setRootEndPointURL("http://sta00048.us.oracle.com:7001");
sct.setIdentityPropagation(ipt);

defaultServer.setSoapClient(sct);

/****** Setting Federated Server 1 to the list ****/

ServerType server1 = new ServerType();
servers.add(server1);
server1.setName("Human Resource");

RemoteClientType rct1 = new RemoteClientType();
rct1.setServerURL("t3://stadl28.us.oracle.com:7001");
rct1.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct1.setParticipateInClientTransaction(false);
server1.setRemoteClient(rct1);

SoapClientType sct1 = new SoapClientType();
PolicyReferencesType prts1 = new PolicyReferencesType();

PolicyReferenceType prt1 = new PolicyReferenceType();
prt1.setEnabled(true);
prt1.setCategory("security");
prt1.setUri("oracle/wss10_saml_token_client_policy");
prts1.getPolicyReference().add(prt1);

IdentityPropagationType ipt1 = new IdentityPropagationType();
ipt1.setMode("dynamic");
ipt1.setType("saml");
ipt1.setPolicyReferences(prts1);

sct1.setRootEndPointURL("http://stadl28.us.oracle.com:7001");
sct1.setIdentityPropagation(ipt1);

server1.setSoapClient(sct1);

/****** Setting Federated Server 2 to the list ****/

ServerType server2 = new ServerType();
servers.add(server2);
server2.setName("Financials");

RemoteClientType rct2 = new RemoteClientType();
rct2.setServerURL("t3://sta00048.us.oracle.com:7001");
rct2.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct2.setParticipateInClientTransaction(false);
server2.setRemoteClient(rct2);

SoapClientType sct2 = new SoapClientType();
PolicyReferencesType prts2 = new PolicyReferencesType();

PolicyReferenceType prt2 = new PolicyReferenceType();
prt2.setEnabled(true);
prt2.setCategory("security");
prt2.setUri("oracle/wss10_saml_token_client_policy");
prts2.getPolicyReference().add(prt2);

IdentityPropagationType ipt2 = new IdentityPropagationType();
ipt2.setMode("dynamic");
ipt2.setType("saml");
ipt2.setPolicyReferences(prts2);

sct2.setRootEndPointURL("http://sta00048.us.oracle.com:7001");
sct2.setIdentityPropagation(ipt2);

server2.setSoapClient(sct2);

- showServerColumn
タスク・フローをフェデレーテッド・モードで実行した場合、デフォルトでタスク・リストにサーバー列が表示されません。サーバー列を表示するには、このパラメータをtrueで渡す必要があります。

- wfCtxID
ワークフロー・コンテキスト・トークン文字列で、タスク・フロー内にワークフロー・コンテキストを作成するときに使用します。アプリケーションのシングル・サインオンが有効である場合やADFセキュリティで保護されている場合にはこのパラメータは不要です。ワークフロー・コンテキストを次に示します。

例32-11 ワークフロー・コンテキスト

IWorkflowContext wfCtx =  wfSvcClient.getTaskQueryService().authenticate(username,
password,
realm,
null;
wfCtxID = wfCtx.getToken();

- showViewsPanel
ビュー・パネルは、trueで渡された場合のみ表示されます。デフォルトでは、これは表示されません。

- showTaskDetailsPanel
タスク詳細パネルは、trueで渡された場合のみ表示されます。デフォルトでは、これは表示されません。

- refreshURL
この文字列を使用すると、タスク・リスト・リージョンのタスク詳細をインライン・フレームに表示できます。タスク詳細ページでアクションが実行されると、そのアクションによって、タスクのフロー/ポートレットが含まれるページURLを持つタスク・リスト領域がリフレッシュされます。

タスク・フローはコンテナ・ページのURLを認識しないため、URLをパラメータで渡す必要があります。リクエスト・オブジェクトのgetRequestURL()メソッドを呼び出して、パラメータを取得します。リクエスト・オブジェクトのgetRequestURL()メソッドを呼び出すか、次のフォーマットでURLを渡すことによって、完全なURLを渡すことができます。

/context-root/faces/page-name
For example: /FederatedWorklist/faces/test.jspx

- localeSource
ロケール・ソースを渡す文字列パラメータ。ブラウザ(BROWSER)またはアイデンティティ・コンテキスト(IDENTITY)から指定できます

- showActionDropdown
アクション・ドロップダウンは、falseで渡された場合のみ表示されません。デフォルトでは、これは表示されます。

- showViewFilter
ビュー・フィルタ・ドロップダウンは、falseで渡された場合のみ表示されません。デフォルトでは、これは表示されます。

- showCreateTODOTaskAction
アクション・メニューにTODOアクションを表示するかどうかを指定します。TODOアクションを非表示にするには、このパラメータをfalseに設定します。デフォルトでは、アクション・メニューにTODOアクションが含まれます。

- showAssignmentFilter
割当てフィルタ・ドロップダウンは、falseで渡された場合のみ表示されません。デフォルトでは、これは表示されます。

- showStatusFilter
ステータス・フィルタ・ドロップダウンは、falseで渡された場合のみ表示されません。デフォルトでは、これは表示されます。

- showSearchControl
検索ボックスは、falseで渡された場合のみ表示されません。デフォルトでは、これは表示されます。

- displayColumnsList
この文字列のカンマ区切りのリストを使用すると、指定した順序で、列のリストをリージョンに表示できます。

- sortColumn
この文字列は、デフォルトでリージョンのタスクをソートするのに使用する列の名前を指定します。

- sortOrder
この文字列は、ソート・タスクのソート順を昇順(ASC)または降順(DESC)で指定します。

フィルタ・パラメータ

- assignmentFilter
この文字列は、タスクの割当てフィルタの選択内容として使用する値を指定します。設定しない場合、値はデフォルトのMyおよびGroupになります。詳細は、32.5.5.2.1項「割当てフィルタの制約の使用」を参照してください。

- viewFilter
この文字列は、タスクをフィルタ処理するビュー名の選択内容として使用する値を指定します。設定しない場合、値はデフォルトのInboxになります。

- taskTypesFilterList
表示するタスクをフィルタ処理するのに使用される、タスク・タイプのカンマ区切りのリストを指定する文字列パラメータ。

- attributesFilterOperator
属性フィルタ・リストに指定されたフィールドの述語結合基準として使用する演算子(and/or)を指定する文字列

- attributesFilterList
属性値に基づいてタスクをフィルタ処理するのに使用される、名前と値のペアのカンマ区切りのリストを指定する文字列パラメータ。(名前はタスクの列名、値は列の値です。)

例

属性フィルタ値がpriority = 1、status = ASSIGNED、推進されたフレックスフィールドがtextAttribute1 = NorthAmericaのタスクを参照する場合、値を次のように設定します。

attributeFilterList: priority=1, status=ASSIGNED, textAttribute1=NorthAmerica

属性フィルタ演算子は、次のようになります。

attributeFilterOperator: and

32.5.5.2.1 割当てフィルタの制約の使用

次に、割当てフィルタの制約を示します。

- マイ

- グループ

- マイ+グループ

- 報告先

- 作成者

- 所有者

- レビューア

- 前

- 管理者

32.5.5.2.2 列制約の受渡し

次に、displayColumnListパラメータで渡すことができる列定数を示します。定数値は、渡す必要がある値です。たとえば、TITLE_COLUMN = "title"では、"TITLE_COLUMN"ではなく"title"を渡す必要があります。

プライマリ列制約

STARTDATE_COLUMN = "startDate";
TASKDEFINITIONNAME_COLUMN = "taskDefinitionName";
OWNERROLE_COLUMN = "ownerRole";
UPDATEDDATE_COLUMN = "updatedDate";
COMPOSITEVERSION_COLUMN = "compositeVersion";
CREATOR_COLUMN = "creator";
FROMUSER_COLUMN = "fromUser";
PERCENTAGECOMPLETE_COLUMN = "percentageComplete";
OWNERGROUP_COLUMN = "ownerGroup";
ENDDATE_COLUMN = "endDate";
COMPOSITENAME_COLUMN = "compositeName";
DUEDATE_COLUMN = "dueDate";
COMPOSITEDN_COLUMN = "compositeDN";
TASKDISPLAYURL_COLUMN = "taskDisplayUrl";
UPDATEDBY_COLUMN = "updatedBy";
OUTCOME_COLUMN = "outcome";
TASKNAMESPACE_COLUMN = "taskNamespace";
APPROVERS_COLUMN = "approvers";
APPLICATIONCONTEXT_COLUMN = "applicationContext";
OWNERUSER_COLUMN = "ownerUser";
CATEGORY_COLUMN = "category";
ACQUIREDBY_COLUMN = "acquiredBy";
ORIGINALASSIGNEEUSER_COLUMN = "originalAssigneeUser";

その他の列制約

ACQUIREDBY_COLUMN = "acquiredBy";
ASSIGNEDDATE_COLUMN = "assignedDate";
APPROVERS_COLUMN = "approvers";
ASSIGNEES_COLUMN = "assignees";
ASSIGNEESDISPLAYNAME_COLUMN = "assigneesDisplayName";
ASSIGNEEGROUPS_COLUMN = "assigneeGroups";
ASSIGNEEGROUPSDISPLAYNAME_COLUMN = "assigneeGroupsDisplayName";
ASSIGNEEUSERS_COLUMN = "assigneeUsers";
ASSIGNEEUSERSDISPLAYNAME_COLUMN = "assigneeUsersDisplayName";
OUTCOME_COLUMN = "outcome";
CREATEDDATE_COLUMN = "createdDate";
ELAPSEDTIME_COLUMN = "elapsedTime";
DIGITALSIGNATUREREQUIRED_COLUMN = "digitalSignatureRequired";
PASSWORDREQUIREDONUPDATE_COLUMN = "passwordRequiredOnUpdate";
ENDDATE_COLUMN = "endDate";
EXPIRATIONDATE_COLUMN = "expirationDate";
EXPIRATIONDURATION_COLUMN = "expirationDuration";
FROMUSER_COLUMN = "fromUser";
FROMUSERDSIPLAYNAME_COLUMN = "fromUserDisplayName";
HASSUBTASK_COLUMN = "hasSubtask";
STATE_COLUMN = "State";
TASKID_COLUMN = "taskId";
VERSION_COLUMN = "version";
TASKNUMBER_COLUMN = "taskNumber";
UPDATEDBY_COLUMN = "updatedBy";
UPDATEDBYDISPLAYNAME_COLUMN = "updatedByDisplayName";
UPDATEDDATE_COLUMN = "updatedDate";
VERSIONREASON_COLUMN = "versionReason";
CREATOR_COLUMN = "creator";
OWNERUSER_COLUMN = "ownerUser";
OWNERGROUP_COLUMN = "ownerGroup";
OWNERROLE_COLUMN = "ownerRole";
PRIORITY_COLUMN = "priority";
DOMAINID_COLUMN = "domainId";
INSTANCEID_COLUMN = "instanceId";
PROCESSID_COLUMN = "processId";
PROCESSNAME_COLUMN = "processName";
PROCESSTYPE_COLUMN = "processType";
PROCESSVERSION_COLUMN = "processVersion";
TITLE_COLUMN = "title";
TITLERESOURCEKEY_COLUMN = "titleResourceKey";
IDENTIFICATIONKEY_COLUMN = "identificationKey";
TASKDEFINITIONID_COLUMN = "taskDefinitionId";
TASKDEFINITIONNAME_COLUMN = "taskDefinitionName";
APPLICATIONNAME_COLUMN = "applicationName";
ASSIGNEETYPE_COLUMN = "assigneeType";
CATEGORY_COLUMN = "category";
COMPONENTNAME_COLUMN = "componentName";
COMPOSITEDN_COLUMN = "compositeDN";
COMPOSITEINSTANCEID_COLUMN = "compositeInstanceId";
COMPOSITENAME_COLUMN = "compositeName";
COMPOSITEVERSION_COLUMN = "compositeVersion";
CONVERSATIONID_COLUMN = "conversationId";
DUEDATE_COLUMN = "dueDate";
PARTICIPANTNAME_COLUMN = "participantName";
PERCENTAGECOMPLETE_COLUMN = "percentageComplete";
READBYUSERS_COLUMN = "readByUsers";
STARTDATE_COLUMN = "startDate";
PARENTTASKVERSION_COLUMN = "parentTaskVersion";
TASKGROUPINSTANCEID_COLUMN = "taskGroupInstanceId";
SUBTASKGROUPINSTANCEID_COLUMN = "subTaskGroupInstanceId";
ROOTTASKID_COLUMN = "rootTaskId";
PARENTTASKID_COLUMN = "parentTaskId";
CORRELATIONID_COLUMN = "correlationId";
TASKDISPLAYURL_COLUMN = "taskDisplayUrl";
STAGE_COLUMN = "stage";
LOCALE_COLUMN = "locale";

32.5.6 タスク履歴リージョンを使用して承認者をプレビューする方法

履歴コンポーネントは、開始されたタスクおよび開始前のタスクの過去および将来の参加者をレンダリングするのに使用するADFの宣言UIコンポーネントです。このコンポーネントは将来の参加者を編集でき、ADFページに組み込むことができます。パラメータは次のとおりです。

- タスク・オブジェクト

- ワークフロー・サービス・クライアント

- ワークフロー・コンテキスト

- showTabularView

- showGraphicalView

最初の3つのパラメータのいずれかがnullで渡される場合、またはタスク・オブジェクトの相関IDがnullの場合、コンポーネントには承認リストが表示されません。かわりに、承認リストの表示の失敗に関する考えられる原因を説明するメッセージが表示されます。最後の2つのパラメータは、表またはグラフ形式のビューを表示するかどうかを示すのに使用されます。デフォルトでは、表およびグラフ形式のビューは両方とも表示されます。値trueまたはfalseは、最後の2つのパラメータに渡すことができます。

32.6 ユーザー・メタデータ移行ユーティリティの使用

ユーザー・メタデータ移行ユーティリティhwfMigratorは、シェル・スクリプトを実行してSOAサーバー間でワークフローのユーザー構成可能データを移行するプロセスを自動化するツールです。

ユーザー・メタデータ移行ユーティリティの詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のテスト環境から本番環境へヒューマン・ワークフロー・データの移動に関する説明を参照してください。

第VIII部

付録

この部は、Oracle BPMの管理機能について説明する付録で構成されています。

この部には、次の付録が含まれます。

- 付録B「プロセス・スター・スキーマ・ビューを使用したビジネス・インテリジェンスとの統合」

- 付録A「Oracle Business Process Management Workspaceでの実行中のプロセス・インスタンスの変更」

A Oracle Business Process Management Workspaceでの実行中のプロセス・インスタンスの変更

この付録では、プロセス・ワークスペースで、プロセス所有者およびプロセス・ワークスペース管理者が実行中のプロセス・インスタンスのフローを変更する方法について説明します。また、プロセス・ワークスペースでインスタンスを移行する方法についても説明します。

この項の内容は次のとおりです。

- A.1項「プロセス・ワークスペースでの実行中のプロセス・インスタンスのフローの変更」

- A.2項「プロセス・ワークスペースでのプロセス・インスタンスの移行」

- A.3項「プロセスの再デプロイに関する注意事項」

A.1 プロセス・ワークスペースでの実行中のプロセス・インスタンスのフローの変更

実行中のプロセス・インスタンスのトークンを現在のアクティビティから別のものに移動できますが、次の構造的制約があります。

- インスタンスは、同じプロセス・レベルで定義されているアクティビティにのみ移動できます。

- インスタンスは境界イベントに移動できません。

- 境界イベントが連続しておらず、同じレベルで定義されている場合を除き、インスタンスを境界イベント・フローに移動することはできません。インスタンスをイベント・サブプロセスの内部または外部に移動することはできません。

- インスタンスはゲートウェイのブランチの外部に移動できません。ただし、それをマージ・ゲートウェイに移動して、そのパスをマージできます。

A.1.1 プロセス・ワークスペースで実行中のプロセス・インスタンスのフローを変更する方法

実行中のプロセス・インスタンスのフローを変更するには:

1. 「プロセス・トラッキング」タブ・ページから、プロセス・インスタンスを選択します。そのインスタンスの詳細が表示されます。

2. 「アクション」リストから、「フローを変更して一時停止」を選択します。
1つのプロセス・インスタンスを選択した場合、図A-1の例に示すように、「フローの変更」ダイアログ・ボックスが表示されます。

図A-1 プロセス・インスタンスのフローの変更

「図A-1 プロセス・インスタンスのフローの変更」の説明

デフォルトでは、「フローの変更」ダイアログ・ボックスにはプロセスおよびプロジェクト・データ属性のみが表示されます。いずれかのオープン・アクティビティを選択すると、そのオープン・アクティビティのコンテキストにおけるデータ・オブジェクトが表示されます。たとえば、オープン・アクティビティがサブプロセスである場合、「フローの変更」ダイアログ・ボックスにはサブプロセス・レベルのデータ・オブジェクトが表示されます。

3. 「フローの変更」ダイアログ・ボックスで、次のいずれかまたはすべてを実行できます。

- 「オープン・アクティビティ」表に、実行中のプロセス・インスタンスの現在のアクティビティのリストを表示します。トークンを移動する新しいアクティビティを選択できます。「新規アクティビティ」リストには、トークンを有効に移動できる場所のみが表示されます。

- 図A-1に示すように、データ・オブジェクトのリストに相関キーを含めます。相関キーは、プロセスで相関が使用されている場合のみ表示されます。これを行うには、「相関キーの表示」を選択します。相関キーを選択した場合、そのキーを構成する相関プロパティが詳細セクションに表示されます。相関キーをリセットするには、「相関キーのリセット」を選択します。
相関キーの詳細は、第24章「相関を使用したビジネス・プロセスの通信」を参照してください。

- 図A-1に示すように、データ・オブジェクトのリストにプロセス・インスタンス属性を含めます。これを行うには、「インスタンス属性の表示」を選択します。特定のインスタンス属性の詳細を表示するには、その属性を選択します。変更できるインスタンス属性のみが編集可能として表示されます。その他は読取り専用です。

- 「コメント」フィールドにコメントを追加します。

4. 次のいずれかをクリックします。

- 再開: トークンを別のアクティビティに移動し、プロセスを実行中の状態に戻します。

- 保存: プロセス・インスタンスを一時停止します。後で戻って、フローを変更したり再開できます。

- 取消: プロセス・インスタンスを最後に保存された状態に戻します。プロセスは引き続き実行中の状態になります。

注意:

- 「フローの変更」ダイアログ・ボックスを開いていて、アクションを実行する前にセッションがタイムアウトになると、プロセス・インスタンスは一時停止されます。

- アクティビティに関連付けられている実行中のトークンが複数ある場合、フローを変更し、トークンを1つのみ選択して別の有効なターゲット・アクティビティに移動することはできません。オープン・アクティビティのフローを変更すると、すべてのトークンが移動します。

A.2 プロセス・ワークスペースでのプロセス・インスタンスの移行

同じコンポジット・リビジョンの新しい実装がデプロイされ、以前にデプロイされたコンポジットに、より新しいBPMプロセスの定義を持つコンポーネントがある場合、影響を受けるコンポーネントは一時停止状態になります。一時停止中のコンポーネントを再開するには、移行を保留している状態のプロセス・インスタンスを移行または一時停止します。

Oracle BPMでは、再デプロイ時にプロセスの既存の実行中のインスタンスを保持できます。これを行うには、Fusion Middleware Controlコンソールでのプロセスの再デプロイ中に、「実行中のインスタンスの保持」を選択します。再デプロイが成功した場合、インスタンスは移行を保留している状態になり、プロセス・コンポーネントは一時停止します。

この項では、移行を保留しているインスタンスを移行する方法と、一時停止していたコンポーネントを再開する方法について説明します。内容は次のとおりです。

- A.2.1項「プロセス・ワークスペースでプロセス・インスタンスを移行する方法」

- A.2.2項「一時停止していたコンポーネントを再開する方法」

A.2.1 プロセス・ワークスペースでプロセス・インスタンスを移行する方法

次の2つの方法のいずれかで、プロセス・インスタンスを移行できます。

- そのままの状態で移行: トークンを移動したりペイロードを更新せずにインスタンスを移行します。

- 変更して移行: 指定した新しいアクティビティにトークンを移動し、指定したとおりにペイロードを更新してからインスタンスを移行します。

プロセス・インスタンスを移行するには:

1. 1つまたは複数のプロセス・インスタンスを選択します。「アクション」リストから、「移行」を選択します。「移行」ダイアログ・ボックスが表示されます。
このダイアログ・ボックスの要素は、選択によって変わります。「そのままの状態で移行」を選択した場合は、「コメント」フィールドのみが利用可能になります。1つのインスタンスを選択してから「変更して移行」を選択した場合は、図A-2に示すように「移行」ダイアログ・ボックスが表示されます。

図A-2 プロセス・インスタンスの移行

「図A-2 プロセス・インスタンスの移行」の説明

「変更して移行」を選択すると、次のいずれかまたはすべてを実行できます。

- 「オープン・アクティビティ」表に、トークンが現在実行中のアクティビティを表示できます。トークンを移動する新しいアクティビティを選択できます。「新規アクティビティ」リストには、トークンを有効に移動できる場所のみが表示されます

注意:

- 移行を保留しているインスタンスを再開するには、削除したすべてのアクティビティ・トークンを新しいアクティビティに移動する必要があります。

- 「オープン・アクティビティ」表で複数のアクティビティを選択した場合、「データ・オブジェクト」タブは表示されず、ペイロードを変更できません。

- データ・オブジェクトのリストに相関キーを含めます。これを行うには、「相関キーの表示」を選択してから、「データ・オブジェクト」タブで「ツリーで表示」を選択し、データ・オブジェクトを展開します。相関キーを選択した場合、そのキーを構成する相関プロパティが詳細セクションに表示されます。相関キーをリセットするには、「リセット」を選択します。
相関キーの詳細は、第24章「相関を使用したビジネス・プロセスの通信」を参照してください。

- データ・オブジェクトのリストにプロセス・インスタンス属性を含めます。これを行うには、「インスタンス属性の表示」を選択してから、「データ・オブジェクト」タブで「ツリーで表示」を選択し、データ・オブジェクトを展開してから「インスタンス属性」を展開します。特定のインスタンス属性の詳細を表示するには、その属性を選択します。変更できるインスタンス属性のみが編集可能として表示されます。その他は読取り専用です。

- 「コメント」フィールドにコメントを追加します。

2. 次のいずれかをクリックします。

- 保存: プロセスを、移行を保留している状態のままにします。

- 移行: プロセスを移行し、実行中の状態にします。

- 取消: プロセス・インスタンスを最後に保存された状態に戻します。

なんらかの原因で移行に失敗した場合、図A-3に示すように、「移行確認」ダイアログ・ボックスに原因が表示されます。

図A-3 移行確認: 失敗メッセージ

「図A-3 移行確認: 失敗メッセージ」の説明

A.2.2 一時停止していたコンポーネントを再開する方法

同じコンポジット・リビジョンの新しい実装がデプロイされ、以前にデプロイされたコンポジットに、より新しいBPMプロセスの定義を持つコンポーネントがある場合、影響を受けるコンポーネントは一時停止状態になります。一時停止中のコンポーネントを再開するには、移行を保留している状態のプロセス・インスタンスを移行または一時停止します。

移行を保留しているすべてのインスタンスを再開するときに明示的または自動的にコンポーネントを再開する場合を除いて、トークンを移動しても新しいタスク・インスタンスは作成されません。

図A-4の例に示すように、すべての一時停止中のコンポーネントは、「保留中コンポーネント」パネルに一覧表示されます。

図A-4 「プロセス・トラッキング」タブ・ページの「保留中コンポーネント」パネル

「図A-4 「プロセス・トラッキング」タブ・ページの「保留中コンポーネント」パネル」の説明

一時停止中のコンポーネントを再開するには:

1. 「保留中コンポーネント」パネルから、再開するコンポーネントを選択します。図A-5の例に示すように、「コンポーネントの再開」ダイアログ・ボックスが表示されます。そのコンポーネントで移行を保留しているインスタンスの数が表示されます。

図A-5 「コンポーネントの再開」ダイアログ・ボックス

「図A-5 「コンポーネントの再開」ダイアログ・ボックス」の説明

2. 「コンポーネントの再開」ダイアログ・ボックスで、移行を保留しているプロセス・インスタンスの状態を選択します。

- そのままの状態で移行

- 一時停止中

そのままの状態で移行できないインスタンスがあるときに、コンポーネントを再開する必要がある場合は、「移行されないインスタンスを一時停止にする」を選択します。このオプションを選択せず、そのままの状態で移行できないインスタンスがある場合は、コンポーネントを再開できません。

3. 「再開」をクリックします。コンポーネントが再開され、「保留中コンポーネント」パネルが表示されなくなります。「コンポーネント再開の確認」ダイアログ・ボックスに、結果と一時停止しているインスタンスの数が表示されます。新しいプロセス・インスタンスを開始できるようになり、リクエストが処理されます。

注意:

コンポーネントが一時停止している場合でも、プロセス・インスタンスを開始できます。ただし、この場合、リクエストはキューに格納され、コンポーネントが再開されるまで処理されません。

A.3 プロセスの再デプロイに関する注意事項

プロセスを再デプロイする場合、設計時に「実行中のインスタンスの保持」オプションを選択すると、次のシナリオでは再デプロイに失敗します。

- 排他または包含ゲートウェイ・ペアが削除される

- 包含-複合ゲートウェイ・ペアが包含-包含ゲートウェイ・ペアに変更される

- サブプロセスが削除されるか、そのループ特性が変更される

- ユーザー・タスクがゲートウェイ・ペアの別のブランチまたはゲートウェイ・ペアの外部に移動される

- アクティビティ・レベルが変更される。たとえば、アクティビティがサブプロセス内またはゲートウェイ構造内で移動される

- サブプロセスまたはイベント・サブプロセスまたはコール・アクティビティが追加される

- イベント・サブプロセスが連続しないタイプから連続するタイプに変更される

- 境界イベントが連続しないタイプから連続するタイプに変更される

- 境界イベントが追加される

- ユーザー・タスクの実装が別のヒューマン・タスクを使用するように変更される

これらのシナリオで再デプロイが失敗することを望まない場合は、Oracle JDeveloperでcomposite.xmlファイルを編集し、force.deployフラグを手動で設定する必要があります。force.deployをコンポーネント・レベルで設定するには、次のように入力します。

<component name="T4">
<property name="oracle.bpm.bpmn.force.deploy">true</property>
<implementation.bpmn src="processes/T4.bpmn"/>
</component>

force.deployをコンポジット・レベルで設定するには、図A-6の例に示すように、同じ.xml要素をコンポジット要素の子として使用できます。

図A-6 Oracle JDeveloperでのforce.deployプロパティの設定

「図A-6 Oracle JDeveloperでのforce.deployプロパティの設定」の説明

B プロセス・スター・スキーマ・ビューを使用したビジネス・インテリジェンスとの統合

この付録では、プロセス・スター・スキーマ・ビューを使用してOracle BPMをビジネス・インテリジェンスと統合する方法について説明します。また、標準ビューおよびプロセス固有のビューの参照資料も含まれています。

項目は次のとおりです。

- Oracle BPMプロセス・スター・スキーマとビジネス・インテリジェンス(BI)の統合について

- B.2項「標準ビュー」

- B.3項「プロセス固有のビュー」

B.1 Oracle BPMプロセス・スター・スキーマとビジネス・インテリジェンス(BI)の統合について

Oracle BPMには、プロセス・スター・スキーマ・ビューが用意されています。これらは、BPMプロセス・キューブ・データへのアクセスを可能にし、外部BIツールによって分析やレポート作成に使用されます。

キューブが有効になっている場合は、BPMNサービス・エンジンがプロジェクト内のプロセスを実行すると、BPMプロセス・キューブにデータが移入されます。これらのプロセス・スター・スキーマに格納されたデータを表示するには、Oracle Business Process Managementワークスペースによって提供されるダッシュボードを使用します。

プロセス・メトリックの生成の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』を参照してください。

プロセス・メトリックがプロセス・ワークスペースにどのように表示されるかについては、『Oracle Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド』を参照してください。

注意:

プロセス・スター・スキーマのデータは、永続的ではありません。プロセスのアンデプロイメントによって削除されることがあります。これは、Enterprise Managerのデータの有効期限構成によって生じることがあります。また、システム・レベルで大量のインスタンスを削除するパージ・スクリプトの実行によって生じることもあります。

履歴分析またはレポート作成のニーズに応じて、プロセス・スター・スキーマ・データを個別のデータ・ウェアハウスから定期的な間隔で取得することをお薦めします。

また、パフォーマンス向上のため、プロセス・スター・スキーマ・ビューでデータを直接分析しないことをお薦めします。

B.2 標準ビュー

Oracle BPMのインストール中、標準ファクト・ビューとディメンション・ビューがプロセス・スター・スキーマの上に作成されます。

この項の内容は次のとおりです。

- B.2.1項「ディメンション・ビュー」

- B.2.2項「標準ファクト・ビュー」

B.2.1 ディメンション・ビュー

インストール中に、次のディメンション・ビューが作成されます。

- プロセス定義ビュー

- アクティビティ定義ビュー

- ロール定義ビュー

B.2.2 標準ファクト・ビュー

標準ビューには、標準メトリックに関する情報(プロセス、アクティビティ、参加者といった標準ディメンションのインスタンスのサイクル時間および数など)が含まれています。これらのビューには、すべての使用可能なプロセスに関するプロセス・データとアクティビティ・データが含まれています。標準ファクト・ビューは、インストール時に作成されます。

標準ビューの構成は次のとおりです。

- ファクト表を表すビュー

- 標準ディメンション表を表すビュー

B.2.2.1 ファクト表を表すビュー

表B-1は、標準ファクト・ビューとそれらに対応する表を一覧表示し、説明しています。

表B-1 標準ファクト・ビュー表

ビュー

説明

表

タスク・パフォーマンス

実行中および完了したプロセスの両方の、完了したアクティビティ、完了した間隔、測定マークおよび測定カウンタの標準メトリックに関する情報を示します。

BPM_ACTIVITY_PERFORMANCE_V

プロセス・パフォーマンス

完了したプロセスの標準メトリックに関する情報を示します。

BPM_PROCESS_PERFORMANCE_V

アクティブなアクティビティ・インスタンス

実行中のアクティビティおよび間隔インスタンスの標準メトリックに関する情報を示します。この情報は、ビューを問い合せるスナップショット時間のみに関連しています。プロセスが進行すると、このビューの情報は変わり、新しい状態が反映されます。

BPM_ACTIVITY_INSTANCE_V

アクティブなプロセス・インスタンス

実行中のプロセス・インスタンスの標準メトリックに関する情報を示します。この情報は、ビューを問い合せるスナップショット時間のみに関連しています。プロセスが進行すると、このビューの情報は変わり、新しい状態が反映されます。

BPM_PROCESS_INSTANCE_V

B.2.2.2 標準ディメンション表を表すビュー

表B-2に、標準ディメンション・ビューとそれに対応する表を一覧表示します。

表B-2 標準ディメンション・ビューおよび表

ビュー

表

プロセス

BPM_PROCESS_DEFINITION_V

アクティビティ

BPM_ACTIVITY_DEFINITION_V

ロール

BPM_ROLE_DEFINITION_V

図B-1 標準ビューのプロセス・スター・スキーマ

B.2.2.3 BPM_ACTIVITY_PERFORMANCE_V

BPM_ACTIVITY_PERFORMANCE_Vは、標準のタスク・パフォーマンス・ビューです。

B.2.2.3.1 データの粒度

このビューには、実行中および完了したプロセスの次のそれぞれに対応するレコードが含まれます。

- 完了したプロセス・アクティビティ

- 失敗したプロセス・アクティビティ

- 完了した間隔

- 測定マーク

- 測定カウンタ

B.2.2.3.2 一意キー

次の列は、このビューの一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- ACTIVITY_ID

- PROCESS_INSTANCE_ID

B.2.2.3.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- ACTIVITY_START_TIME

- ACTIVITY_END_TIME

- ACTIVITY_RUNNING_TIME_IN_MSEC

表B-3 BPM_ACTIVITY_PERFORMANCE_V

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

ACTIVITY_ID

NUMBER

アクティビティID。BPM_ACTIVITY_DEFINTION_V.ACTIVITYIDを参照します。

ACTIVITY_LABEL

VARCHAR2

アクティビティ・ラベル。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

ACTIVITY_DISCRIMINATOR

VARCHAR2

このレコードが失敗したアクティビティに対応するかどうかを判断するために使用されます。失敗したタスク・パフォーマンスのレコードでは、この列の値はINSTANCE_FAULTに設定されます。

ACTIVITY_ROLE_ID

NUMBER

ロールID。BPM_ROLE_DEFINTION_V.ROLEIDを参照します。

ACTIVITY_ROLE_NAME

VARCHAR2

アクティビティ・インスタンスに関連するロール名。

ACTIVITY_START_TIME

TIMESTAMP

アクティビティ・インスタンスが実行を開始した時間。

ACTIVITY_END_TIME

TIMESTAMP

アクティビティ・インスタンスが実行を終了した時間。

ACTIVITY_RUNNING_TIME_IN_MSEC

NUMBER

アクティビティ・インスタンスが実行した期間(ミリ秒)。

ACTIVITY_PARTICIPANT

VARCHAR2

アクティビティ・インスタンスに関連する参加者ユーザー。

ACTIVITY_PRIORITY

NUMBER

アクティビティ・インスタンスの優先度(PS2では利用できません)。

ECID

VARCHAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

B.2.2.4 BPM_PROCESS_PERFORMANCE_V

BPM_PROCESS_PERFORMANCE_Vは、標準のプロセス・パフォーマンス・ビューです。

B.2.2.4.1 データの粒度

このビューには、次のレコードが含まれます。

- 完了したプロセス

- 中断したプロセス

- 失敗したプロセス

B.2.2.4.2 一意キー

次の列が一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- PROCESS_INSTANCE_ID

B.2.2.4.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- PROCESS_START_TIME

- PROCESS_END_TIME

- PROCESS_RUNNING_TIME_IN_MSEC

表B-4 BPM_PROCESS_PERFORMANCE_V

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

PROCESS_DISCRIMINATOR

VARCHAR2

このレコードが失敗したプロセスに対応するかどうかを判断するために使用されます。失敗したプロセス・パフォーマンスのレコードでは、この列の値はINSTANCE_SYSTEM_FAULTに設定されます。

PROCESS_START_TIME

TIMESTAMP

プロセス・インスタンスが実行を開始した時間。

PROCESS_END_TIME

TIMESTAMP

プロセス・インスタンスが実行を終了した時間。

PROCESS_RUNNING_TIME_IN_MSEC

NUMBER

プロセス・インスタンスが実行した期間(ミリ秒)。

ECID

VARCHAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

B.2.2.5 BPM_ACTIVITY_INSTANCE_V

BPM_ACTIVITY_INSTANCE_Vビューには、すべてのプロセスで実行中の各アクティビティ・インスタンスに関する情報が表示されます。

B.2.2.5.1 データの粒度

このビューには、実行中の各アクティビティ・インスタンスに対応するレコードが含まれます。

B.2.2.5.2 一意キー

次の列は、このビューの一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- ACTIVITY_ID

- PROCESS_INSTANCE_ID

B.2.2.5.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- ACTIVITY_START_TIME

- PROCESS_START_TIME

表B-5 BPM_ACTIVITY_INSTANCE_V

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

ACTIVITY_ID

NUMBER

アクティビティID。BPM_ACTIVITY_DEFINTION_V.ACTIVITYIDを参照します。

ACTIVITY_LABEL

VARCHAR2

アクティビティ・ラベル。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

PROCESS_THREAD_ID

NUMBER

アクティビティを実行中のプロセス・スレッドのスレッドID。

ACTIVITY_ROLE_NAME

VARCHAR2

アクティビティ・インスタンスに関連するロール名。

ACTIVITY_PARTICIPANT

VARCHAR2

アクティビティ・インスタンスに関連する参加者ユーザー。

ACTIVITY_PRIORITY

NUMBER

アクティビティ・インスタンスの優先度。

ACTIVITY_START_TIME

TIMESTAMP

アクティビティ・インスタンスが実行を開始した時間。

PROCESS_START_TIME

TIMESTAMP

プロセス・インスタンスが実行を開始した時間。

ECID

VARCHAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

B.2.2.6 BPM_PROCESS_INSTANCE_V

BPM_PROCESS_INSTANCE_Vビューには、すべてのプロセスで実行中の各プロセス・インスタンスに関する情報が表示されます。

B.2.2.6.1 データの粒度

このビューには、実行中の各プロセス・インスタンスに対応するレコードが含まれます。

B.2.2.6.2 一意キー

次の列は、このビューの一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- PROCESS_INSTANCE_ID

B.2.2.6.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- PROCESS_START_TIME

表B-6 BPM_PROCESS_INSTANCE_V

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

PROCESS_START_TIME

TIMESTAMP

プロセス・インスタンスが実行を開始した時間。

ECID

VARCHAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

B.2.2.7 BPM_PROCESS_DEFINITION_V

BPM_PROCESS_DEFINITION_Vビューには、BPMNプロセスに関する情報が表示されます。

表B-7 BPM_PROCESS_DEFINITION_V

列名

データ型

説明

PROCESSID

NUMBER

プロセスID。

PROCESSNAME

VARCHAR2

プロセス名。

DOMAINNAME

VARCHAR2

ドメイン名。

COMPOSITENAME

VARCHAR2

コンポジット名。

REVISION

VARCHAR2

コンポジット・リビジョン。

SCALABEL

VARCHAR2

コンポジットSCAラベル。

COMPOSITEDN

VARCHAR2

コンポジットDN。

LABEL

VARCHAR2

プロセス・ラベル(BPMN名)。

PROCESSTYPE

VARCHAR2

プロセスのタイプ(BPMNなど)。

STATUS

SMALLINT

プロセスのデプロイメント・ステータス。1はデプロイ済、-1はアンデプロイ済。

UNDEPLOYDATE

TIMESTAMP

プロセスのアンデプロイメント日。

B.2.2.8 BPM_ACTIVITY_DEFINITION_V

BPM_ACTIVITY_DEFINITION_Vビューには、使用可能なすべてのBPMNプロセスに対応するアクティビティに関する情報が表示されます。

表B-8 BPM_ACTIVITY_DEFINITION_V

列名

データ型

説明

ACTIVITYID

NUMBER

アクティビティID。

PROCESSID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

ACTIVITYNAME

VARCHAR2

アクティビティの名前(BPMN ID)。

ACTIVITYTYPE

VARCHAR2

アクティビティのタイプ(ユーザー・タスク、ゲートウェイ、イベント、測定間隔など)。

LABEL

VARCHAR2

アクティビティ・ラベル(BPMN名)。

B.2.2.9 BPM_ROLE_DEFINITION_V

BPM_ROLE_DEFINITION_Vビューには、使用可能なすべてのBPMNプロセスに対応するロールに関する情報が表示されます。

表B-9 BPM_ROLE_V

列名

データ型

説明

ROLEID

NUMBER

ロールID。

PROCESSID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

ROLENAME

VARCHAR2

ロール名。

APPROLENAME

VARCHAR2

アプリケーション・ロール名。

LABEL

VARCHAR2

ロール・ラベル。

ISPROCESSOWNER

VARCHAR2

プロセス所有者(Y/N)。

B.3 プロセス固有のビュー

特定のOracle BPMプロジェクトに指定されたビジネス・ディメンションおよびメジャーを取得するには、各プロセスに固有のビューを作成する必要があります。

プロセス固有のビューを使用すると、対応するすべてのプロセス・バージョンのデータにアクセスできます。このビューには、すべてのプロセス・バージョンのビジネス・インジケータの列が表示されます。

特定のプロセスでは、Oracle Business Process Managementが、すべてのプロセス・バージョンの対応するフレックス列に対して、すべてのビジネス・インジケータを解決します。その後、すべてのプロセス固有のビューが作成されます。

BPMNプロセスがデプロイされると、対応するプロセス固有のビューが作成されます。

BPMNプロセスがアンデプロイされると、対応するプロセス固有のビューは次のいずれかになります。

- 他のバージョンのプロセスが現在デプロイされていない場合は、削除されます。

- 他のバージョンのプロセスがデプロイされている場合は、再作成されます。

これらのビューには、次のネーミング規則が使用されます。

表B-10

ビュー

表

タスク・パフォーマンス

BPM_ACTV_PERF_<IDENTIFIER>_V

プロセス・パフォーマンス

BPM_PRCS_PERF_< IDENTIFIER >_V

アクティブなアクティビティ・インスタンス

BPM_ACTV_INST_<IDENTIFIER>_V

アクティブなプロセス・インスタンス

BPM_PRCS_INST_<IDENTIFIER>_V

注意:

- IDENTIFIERは、設計時にBPMNプロセス用に定義される分析ビュー識別子です。最大長は10です。プロセスに分析ビュー識別子が定義されていない場合、そのプロセスにプロセス固有のビューは作成されません。
Oracle BPM StudioでBPMNプロセスの分析ビュー識別子を定義できます。

- Oracle BPM Studioでは、長さが28文字を超えるビジネス・インジケータ名は使用できません。

図B-2 プロセス固有のビューのプロセス・スター・スキーマ

B.3.1 BPM_ACTV_PERF_<IDENTIFIER>_V

BPM_ACTV_PERF_<IDENTIFIER>_Vは、プロセス固有のタスク・パフォーマンス・ビューです。

B.3.1.1 データの粒度

このビューには、実行中および完了したプロセスの次のそれぞれに対応するレコードが含まれます。

- 完了したアクティビティ

- 失敗したアクティビティ

- 完了した間隔

- 測定マーク

- 測定カウンタ

B.3.1.2 一意キー

次の列は、このビューの一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- ACTIVITY_ID

- PROCESS_INSTANCE_ID

B.3.1.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- ACTIVITY_START_TIME

- ACTIVITY_END_TIME

- ACTIVITY_RUNNING_TIME_IN_MSEC

- アクティビティ終了時点のすべてのビジネス・インジケータ値

表B-11 BPM_ACTV_PERF_<IDENTIFIER>_V

_V" title="BPM_ACTV_PERF_<IDENTIFIER>_V" width="100%">

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

ACTIVITY_ID

NUMBER

アクティビティID。BPM_ACTIVITY_DEFINTION_V.ACTIVITYIDを参照します。

ACTIVITY_LABEL

VARCHAR2

アクティビティ・ラベル。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

PROCESS_THREAD_ID

VARCHAR2

アクティビティを実行しているスレッドのID。プロセス内のパラレルなアクティビティは、異なるスレッドで実行されるため、異なるスレッドIDを持ちます。

ACTIVITY_DISCRIMINATOR

VARCHAR2

このレコードが失敗したアクティビティに対応するかどうかを判断するために使用されます。失敗したタスク・パフォーマンスのレコードでは、この列の値はINSTANCE_FAULTに設定されます。カウンタ・レコードでは、この列の値はMEASUREMENT_COUNTERに設定されます。

ACTIVITY_ROLE_ID

NUMBER

ロールID。BPM_ROLE_DEFINTION_V.ROLEIDを参照します。

ACTIVITY_ROLE_NAME

VARCHAR2

アクティビティ・インスタンスに関連するロール名。

ACTIVITY_START_TIME

TIMESTAMP

アクティビティ・インスタンスが実行を開始した時間。

ACTIVITY_END_TIME

TIMESTAMP

アクティビティ・インスタンスが実行を終了した時間。

ACTIVITY_RUNNING_TIME_IN_MSEC

NUMBER

アクティビティ・インスタンスが実行した期間(ミリ秒)。

ACTIVITY_PARTICIPANT

VARCHAR2

アクティビティ・インスタンスに関連する参加者ユーザー。

ACTIVITY_PRIORITY

NUMBER

アクティビティ・インスタンスの優先度。

ECID

VARHCAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

D_<dimension1…n>

VARCHAR2 / NUMBER / TIMESTAMP

アクティビティ・インスタンスに関連するディメンション・ビジネス・インジケータ。これらは、いくつかの関数表を間接的に参照することがあります。

R_<dimension1…n>

VARCHAR2

アクティビティ・インスタンスに関連する数値/日付タイプ・ディメンションのビジネス・インジケータに対応する範囲情報。

M_<measure1…n>

NUMBER

アクティビティ・インスタンスに関連するメジャー・ビジネス・インジケータ。

C_<counter1…n>

NUMBER

アクティビティ・インスタンスに関連するカウンタ・ビジネス・インジケータ。

B.3.2 BPM_PRCS_PERF_< IDENTIFIER >_V

BPM_PRCS_PERF_< IDENTIFIER >_Vは、プロセス固有のプロセス・パフォーマンス・ビューです。

B.3.2.1 データの粒度

このビューには、次のレコードが含まれます。

- 完了したプロセス

- 中断したプロセス

- 失敗したプロセス

B.3.2.2 一意キー

次の列が一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- PROCESS_INSTANCE_ID

B.3.2.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- PROCESS_START_TIME

- PROCESS_END_TIME

- PROCESS_RUNNING_TIME_IN_MSEC

- プロセス終了時点のすべてのビジネス・インジケータ値

表B-12 BPM_PRCS_PERF_< IDENTIFIER >_V

_V" title="BPM_PRCS_PERF_< IDENTIFIER >_V" width="100%">

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

PROCESS_DISCRIMINATOR

VARCHAR2

このレコードが失敗したプロセスに対応するかどうかを判断するために使用されます。失敗したプロセス・パフォーマンスのレコードでは、この列の値はINSTANCE_SYSTEM_FAULTに設定されます。

PROCESS_START_TIME

TIMESTAMP

プロセス・インスタンスが実行を開始した時間。

PROCESS_END_TIME

TIMESTAMP

プロセス・インスタンスが実行を終了した時間。

PROCESS_RUNNING_TIME_IN_MSEC

NUMBER

プロセス・インスタンスが実行した期間(ミリ秒)。

ECID

VARCHAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

D_<dimension1…n>

VARCHAR2 / NUMBER / TIMESTAMP

プロセス・インスタンスに関連するディメンション・ビジネス・インジケータ。これらは、いくつかの関数表を間接的に参照することがあります。

R_<dimension1…n>

VARCHAR2

プロセス・インスタンスに関連する数値/日付タイプ・ディメンションのビジネス・インジケータに対応する範囲情報。

M_<measure1…n>

NUMBER

インスタンスに関連するメジャー・ビジネス・インジケータ。

B.3.3 BPM_ACTV_INST_<IDENTIFIER>_V

BPM_ACTV_INST_<IDENTIFIER>_Vビューには、特定プロセスに対応する実行中の各アクティビティ・インスタンスに関する情報が表示されます。

B.3.3.1 データの粒度

このビューには、実行中の各アクティビティおよび間隔インスタンスに対応するレコードが含まれます。

B.3.3.2 一意キー

次の列は、このビューの一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- ACTIVITY_ID

- PROCESS_INSTANCE_ID

B.3.3.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- ACTIVITY_START_TIME

- PROCESS_START_TIME

- アクティビティ開始時点のビジネス・インジケータ値

表B-13 BPM_ACTV_INST_<IDENTIFIER>_V

_V" title="BPM_ACTV_INST_<IDENTIFIER>_V" width="100%">

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

ACTIVITY_ID

NUMBER

アクティビティID。BPM_ACTIVITY_DEFINTION_V.ACTIVITYIDを参照します。

ACTIVITY_LABEL

VARCHAR2

アクティビティ・ラベル。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

PROCESS_THREAD_ID

NUMBER

アクティビティを実行中のプロセス・スレッドのスレッドID。

ACTIVITY_ROLE_NAME

VARCHAR2

アクティビティ・インスタンスに関連するロール名。

ACTIVITY_PARTICIPANT

VARCHAR2

アクティビティ・インスタンスに関連する参加者ユーザー。

ACTIVITY_PRIORITY

NUMBER

アクティビティ・インスタンスの優先度。

ACTIVITY_START_TIME

TIMESTAMP

アクティビティ・インスタンスが実行を開始した時間。

PROCESS_START_TIME

TIMESTAMP

プロセス・インスタンスが実行を開始した時間。

ECID

VARCHAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

D_<dimension1…n>

VARCHAR2 / NUMBER / TIMESTAMP

アクティビティ・インスタンスに関連するディメンション・ビジネス・インジケータ。これらは、いくつかの関数表を間接的に参照することがあります。

R_<dimension1…n>

VARCHAR2

数値/日付タイプ・ディメンションの範囲情報。

M_<measure1…n>

NUMBER

アクティビティ・インスタンスに関連するメジャー・ビジネス。

B.3.4 BPM_PRCS_INST_<IDENTIFIER>_V

BPM_PRCS_INST_<IDENTIFIER>_Vビューには、特定プロセスに対応する実行中の各プロセス・インスタンスに関する情報が表示されます。

B.3.4.1 データの粒度

このビューには、実行中の各プロセス・インスタンスに対応するレコードが含まれます。

B.3.4.2 一意キー

次の列は、このビューの一意キーを形成します。

- SEQUENCE_ID

- PROCESS_ID

- PROCESS_INSTANCE_ID

B.3.4.3 メトリック情報

次のメトリック情報を、このビューの一部として使用できます。

- PROCESS_START_TIME

- プロセス開始時点のビジネス・インジケータ値

表B-14 BPM_PRCS_INST_<IDENTIFIER>_V

_V" width="100%">

列名

データ型

説明

SEQUENCE_ID

NUMBER

数値の順序。

PROCESS_ID

NUMBER

プロセスID。BPM_PROCESS_DEFINTION_V.PROCESSIDを参照します。

PROCESS_NAME

VARCHAR2

プロセス名。

REVISION

VARCHAR2

プロセスのリビジョン。

PROCESS_INSTANCE_ID

VARCHAR2

BPMNプロセス・インスタンスのインスタンスID。CUBE_INSTANCE.CIKEYを参照します。

COMPOSITE_INSTANCE_ID

VARCHAR2

SCAコンポジット・インスタンスのインスタンスID。COMPOSITE_INSTANCE.IDを参照します。

PROCESS_START_TIME

TIMESTAMP

プロセス・インスタンスが実行を開始した時間。

ECID

VARCHAR2

ECIDを使用すると、単一のビジネス・フローに含まれる様々なコンポジットのすべてのプロセスを関連付けて、エンドツーエンドのトラッキングを実現できます。

D_<dimension1…n>

VARCHAR2 / NUMBER / TIMESTAMP

アクティビティ・インスタンスに関連するディメンション・ビジネス・インジケータ。これらは、いくつかの関数表を間接的に参照することがあります。

R_<dimension1…n>

VARCHAR2

数値/日付タイプ・ディメンションの範囲情報。

M_<measure1…n>

NUMBER

アクティビティ・インスタンスに関連するメジャー・ビジネス・インジケータ。

Copyright © 2001, 2012, Oracle and/or its affiliates. All rights reserved.