Oracle® Fusion Middleware Oracle Business Process Management Business Process Composerユーザーズ・ガイド

11g リリース1 (11.1.1.7)

B61410-07(原本部品番号:E15177-09)

目次

例一覧

図一覧

表一覧

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

はじめに

- 対象読者

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

- 関連ドキュメント

- 表記規則

リリース11.1.1.7用のこのガイドでの新しい情報

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 Workspace(プロセス・ワークスペース)

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

- 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 ユースケース: Business Process Composerを使用したプロジェクトの作成

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

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

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

- 1.7 アクセシビリティ・オプション

- 1.7.1 SOAコンポーザでのアクセシビリティ機能の有効化

- 1.7.2 BPMワークリストでのアクセシビリティ機能の有効化

第I部 Oracle Business Process Composerの開始

2 Oracle Business Process Composerの概要

- 2.1 Oracle Business Process Composerの概要

- 2.1.1 プロセスの設計と実装

- 2.1.2 コラボレーション

- 2.1.3 シミュレーションとテスト

- 2.1.4 デプロイメント

- 2.2 Business Process Composerユース・ケースの概要

- 2.2.1 ユース・ケース: Oracle BPMアプリケーションの新規作成

- 2.2.2 ユース・ケース: プロジェクト・テンプレートに基づいたOracle BPMアプリケーションの作成

- 2.3 Oracle Business Process Composerへのサインオン

- 2.4 Business Process Composerユーザー・インタフェースの概要

- 2.4.1 Business Process Composerツールバーの概要

- 2.4.2 Business Process Composerのようこそページの概要

- 2.4.2.1 プロジェクト・ビュー

- 2.4.2.2 プロジェクト・ブラウザ

- 2.4.2.3 コントロール・パネル

- 2.4.2.4 検索

- 2.4.3 Business Process Composerのメイン・メニューの概要

- 2.4.4 プロジェクトのようこそページの概要

3 ウォークスルー: 基本BPMアプリケーションの作成

- 3.1 BPMプロジェクトの設定

- 3.1.1 Business Process Composerへのログイン

- 3.1.2 BPMプロジェクトを作成して開く

- 3.1.3 BPMNプロセスの作成

- 3.1.4 BPMプロジェクトの保存

- 3.2 BPMNプロセスのモデリング

- 3.2.1 ビジネス・プロセスを開く

- 3.2.2 ユーザー・タスクの追加

- 3.2.3 プロジェクトの保存

- 3.2.4 新規ロールの作成

- 3.2.5 ビジネス・ルール・タスクの追加

- 3.2.6 新規スイムレーンの追加とマネージャ・ロールの作成

- 3.2.7 排他ゲートウェイの追加

- 3.2.8 Approve Requestユーザー・タスクの追加

- 3.2.9 排他ゲートウェイの追加

- 3.2.10 出張リクエストをデータベースに保存するサービス・タスクの追加

- 3.2.11 却下された出張リクエストを処理するシーケンスの追加

- 3.2.12 デフォルト承認用シーケンス・フローの編集と追加

- 3.2.13 プロジェクト・スナップショットの作成

- 3.3 BPMNプロセスの実装 - ユーザー相互作用の定義

- 3.3.1 ヒューマン・タスクを作成して開く

- 3.3.2 Webフォームの作成

- 3.3.3 ebフォームへの基本的なコントロールの追加

- 3.3.4 Webフォームへのタブ・コントロールの追加

- 3.3.5 各タブへのコントロールの追加

- 3.3.6 Webフォームのテスト

- 3.3.7 合計金額を計算するフォーム・ルールの追加

- 3.3.8 フォームに動的な機能を追加するフォーム・ルールの追加

- 3.3.9 オプションのリストに動的に移入するフォーム・ルールの追加

- 3.4 BPMNプロセスの実装 - ビジネス・ルールの作成

- 3.4.1 ビジネス・オブジェクトの作成

- 3.4.2 新規ビジネス・ルールの作成と入出力データ・オブジェクトの定義

- 3.4.3 バケットセットの作成と構成

- 3.4.4 デシジョン表の作成と構成

- 3.4.5 ビジネス・ルール・タスクへのビジネス・ルールの割当て

- 3.5 BPMNプロセスの実装 - サービスの定義

- 3.6 プロセスで使用されるデータの定義

- 3.6.1 データ・オブジェクトの作成

- 3.6.2 式と条件の定義

- 3.6.3 データ・アソシエーションの定義

第II部 ビジネス・プロセスのモデリングおよびテスト

4 BPMプロジェクトの使用

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

- 4.1.1 プロジェクト・コンポーネントおよびリソースの概要

- 4.1.1.1 編集可能なプロジェクト・リソース

- 4.1.1.2 ビジネス・カタログ

- 4.1.1.3 編集または作成できるビジネス・カタログのコンポーネント

- 4.1.2 Oracle BPMリポジトリの概要

- 4.2 プロジェクトのようこそページの概要

- 4.2.1 「プロジェクト情報」パネル

- 4.2.2 「最近のアクティビティ」パネル

- 4.2.3 プロジェクト・コンポーネント・ペインの概要

- 4.2.4 「クイックスタート」メニューの概要

- 4.2.5 Oracle Business Process Composerのエディタの概要

- 4.2.5.1 プロセス・エディタ

- 4.2.5.2 アクティビティ・ガイド・エディタ

- 4.2.5.3 ヒューマン・タスク・エディタ

- 4.2.5.4 ビジネス・ルール・エディタ

- 4.2.5.5 データ・アソシエーション・エディタ

- 4.2.5.6 式エディタ

- 4.2.6 サポートされているブラウザおよびエディタの概要

- 4.2.6.1 プロジェクトおよびプロセスの検証ブラウザ

- 4.2.6.2 ドキュメント・エディタ

- 4.2.6.3 承認ワークフロー・ブラウザ

- 4.3 プロジェクトの共有およびコラボレーションの概要

- 4.3.1 プライベート・プロジェクトとパブリック・プロジェクト

- 4.3.2 編集モード

- 4.3.3 プロジェクト・ロール

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

- 4.4.1 プロジェクトのようこそページにアクセスする方法

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

- 4.4.3 アプリケーションのようこそページを使用してプロジェクトを開く方法

- 4.4.4 メイン・メニューを使用してプロジェクトを開く方法

- 4.4.5 他のユーザーとプロジェクトを共有する方法

- 4.4.6 共有プロジェクトを編集する方法

- 4.4.7 プロジェクトへの変更を保存する方法

- 4.4.8 プロジェクトへの変更を破棄する方法

- 4.4.9 プロジェクトを検証する方法

- 4.4.10 プロジェクトを閉じる方法

- 4.4.11 プロジェクトに対する変更履歴を表示する方法

- 4.4.12 プロジェクト・プロパティの表示方法と編集方法

- 4.4.13 プロジェクトをお気に入りとしてマークする方法

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

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

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

- 4.5.2 アクティビティ・ガイドの構成方法およびプロジェクトのマイルストンの作成方法

- 4.5.3 プロジェクトのプロセス・レポートを作成する方法

- 4.6 プロジェクトで使用するロールの定義

- 4.6.1 プロジェクト・ロールの概要

- 4.6.2 プロジェクト・ロールの作成方法

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

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

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

- 5.2.1 プロセス・エディタ・ツールバーの概要

- 5.2.2 プロセス・エディタ・キャンバスの概要

- 5.2.3 BPMNコンポーネント・パレットの概要

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

- 5.3 ビジネス・プロセスの使用

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

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

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

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

- 5.4 フロー要素の使用

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

- 5.4.2 フロー・オブジェクトの切取り、コピーまたは削除を行う方法

- 5.4.3 プロセスにフロー・オブジェクトを貼り付ける方法

- 5.4.4 プロセスにシーケンス・フローを追加する方法

- 5.4.5 シーケンス・フローを削除する方法

- 5.4.5.1 シーケンス・フローの削除に関する注意事項

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

- 5.4.7 カスタム・アイコンをフロー・オブジェクトに割り当てる方法

- 5.5 ビジネス・カタログのコンポーネントの使用

- 5.5.1 ビジネス・カタログ・コンポーネントをフロー・オブジェクトに割り当てる方法

- 5.5.2 ビジネス・カタログで新しいヒューマン・タスクを作成する方法

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

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

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

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

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

- 5.7.1.1 ドキュメントへのリンクの挿入

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

- 5.7.3 プロセスにノートを追加する方法

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

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

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

6 プロセス動作のシミュレート

- 6.1 シミュレーションの概要

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

- 6.1.2 シミュレーション・パラメータ

- 6.1.2.1 一般的なシミュレーション定義パラメータ

- 6.1.2.2 シミュレーション・モデルのパラメータ

- 6.1.2.3 リソースのパラメータ

- 6.1.2.4 開始イベントのパラメータ

- 6.1.2.5 アクティビティのパラメータ

- 6.2 シミュレーションの作成と実行

- 6.3 シミュレーション定義の使用

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

- 6.3.2 シミュレーション定義作成時の処理

- 6.3.3 シミュレーション定義を編集する方法

- 6.3.4 シミュレーション定義にシミュレーション・モデルを追加する方法

- 6.4 シミュレーション・モデルの使用

- 6.4.1 新しいシミュレーション・モデルを作成する方法

- 6.4.2 シミュレーション・モデルを編集する方法

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

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

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

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

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

7 プロセス・プレーヤの使用

- 7.1 プロセス・プレーヤの概要

- 7.1.1 プロセス・プレーヤでのプロセスのフロー・オブジェクトの処理方法

- 7.1.2 Business Process Composerのプロセス・プレーヤの有効化

- 7.2 プロセス・プレーヤを使用したビジネス・プロセスの動作のテスト

- 7.2.1 プロセス・プレーヤにアクセスする方法

- 7.2.2 プロセス内で定義されたロールを組織のユーザーにマップする方法

- 7.2.3 プロセス・プレーヤを使用してビジネス・プロセスを実行する方法

8 プロジェクト・ライフサイクルの使用

- 8.1 プロジェクトのインポートおよびエクスポート

- 8.1.1 ローカル・ファイル・システムからプロジェクトをインポートする方法

- 8.1.2 ローカル・ファイル・システムにプロジェクトをエクスポートする方法

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

- 8.2.1 編集ポリシーの概要

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

- 8.2.1.2 コンポーネント・レベルの編集ポリシー

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

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

- 8.4 プロジェクト・スナップショットの使用

- 8.4.1 新規プロジェクト・スナップショットの作成方法

- 8.4.2 プロジェクト・スナップショットの内容の表示方法

- 8.4.3 プロジェクトのアクティブ・バージョンに戻る方法

- 8.4.4 プロジェクト・スナップショットの削除方法

- 8.4.5 プロジェクト・スナップショットのエクスポート方法

- 8.4.6 プロジェクト・スナップショットのデプロイ方法

第III部 ユーザーとビジネス・プロセスとの相互作用の方法の定義

9 Webフォームの使用

- 9.1 Oracle BPMでのフォームの概要

- 9.1.1 Webフォームの概要

- 9.1.2 フォームからの設計とデータからの設計

- 9.2 Webフォーム・デザイナの概要

- 9.2.1 Webフォーム・コンポーネント・パレットの概要

- 9.2.2 Webフォーム・エディタ・ツールバーの概要

- 9.2.3 プロパティ・エディタの概要

- 9.2.4 「データ・ソース」パネルの概要

- 9.2.5 フォーム・キャンパスの概要

- 9.3 Webフォーム・コントロールの概要

- 9.3.1 入力コントロール

- 9.3.1.1 テキスト

- 9.3.1.2 テキスト領域

- 9.3.1.3 日付、時間、日付/時間

- 9.3.1.4 電子メール

- 9.3.1.5 金額

- 9.3.1.6 電話

- 9.3.1.7 数量

- 9.3.1.8 数値

- 9.3.2 選択コントロール

- 9.3.2.1 ドロップダウン

- 9.3.2.2 ラジオ

- 9.3.2.3 チェック・ボックス

- 9.3.2.4 BooleanCheckbox

- 9.3.3 グループ・コントロール

- 9.3.3.1 セクション

- 9.3.3.2 タブ

- 9.3.3.3 パネル

- 9.3.3.4 表

- 9.3.3.5 繰返し

- 9.3.4 その他のコントロール

- 9.3.4.1 メッセージ・コントロール

- 9.3.4.2 リンク・コントロール

- 9.3.4.3 ボタン・コントロール

- 9.3.4.4 イメージ・コントロール

- 9.4 データ・ソースの概要

- 9.4.1 ペイロード・データ型により生成されるWebフォーム・コントロール

- 9.4.2 データ要素から生成されたWebフォーム・コントロールの変更

- 9.4.2.1 Webフォーム・エディタで編集できるもの

- 9.4.2.2 Webフォーム・デザイナを使用して編集できないもの

- 9.4.3 表示形式プロパティの概要

- 9.5 ウォークスルー: フォームを先に作成する方法によるWebフォームの作成

- 9.6 ウォークスルー: データを先に作成する方法によるWebフォームの作成

- 9.7 Webフォームの使用

- 9.7.1 Webフォームにコントロールを追加する方法

- 9.7.2 データ・ソースに基づいてコントロールを追加する方法

- 9.7.3 データ・ソースから作成されたWebコントロールを表示する方法

- 9.7.4 WebフォームとWebフォーム・コントロールのプロパティを編集する方法

- 9.7.5 Webフォームを削除する方法

- 9.7.6 Webフォームからコントロールを削除する方法

- 9.7.7 Webフォームをテストする方法

10 Webフォーム・ルールの使用

- 10.1 フォーム・ルールの概要

- 10.1.1 フォーム・ルールのJavascript構文

- 10.1.1.1 コントロール名

- 10.1.1.2 フォーム・ルール識別子

- 10.1.1.3 文字列と数値

- 10.1.1.4 条件の作成

- 10.1.1.5 選択コントロール

- 10.1.1.6 コントロールの初期状態

- 10.1.1.7 フォーム・ルールと繰返しコントロール

- 10.1.2 フォーム・ルールでの動的コンテンツの使用

- 10.1.2.1 動的コンテンツ

- 10.1.2.2 動的コンテンツの再利用

- 10.1.3 フォーム・ルールでのデータ・メソッドとビルトイン・メソッドの使用

- 10.1.3.1 ビルトイン・データ

- 10.1.3.2 ビルトイン・メソッド

- 10.1.4 実行時のフォーム・ルールの動作の理解

- 10.1.4.1 フォーム・ルールが実行されるタイミング

- 10.1.4.2 無限ループ

- 10.1.5 フォーム・ルールのデバッグ

- 10.1.5.1 重複するコントロール名のデバッグ

- 10.1.5.2 フォーム・ルールのプロファイリング

- 10.2 フォーム・ルールの使用

- 10.2.1 フォーム・ルールの作成方法

- 10.2.2 フォーム・ルールのテスト方法

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

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

- 11.1.1 参加者とルーティング・タイプの概要

- 11.1.1.1 参加者タイプ

- 11.1.1.2 ルーティングのタイプ

- 11.1.1.3 結果

- 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.3.7 ヒューマン・タスクへの参加者とルーティングの追加方法

- 11.3.8 参加者へのユーザー、グループおよびロールの割当て方法

- 11.3.9 パラレル・ルーティングの結果の構成方法

- 11.3.10 ヒューマン・タスクに対するデータ・ペイロードの作成および構成方法

- 11.3.11 ヒューマン・タスクのプレゼンテーションの指定方法

- 11.4 ユーザー・タスクへのヒューマン・タスクの割当て

第IV部 BPMプロジェクトの実装およびデプロイ

12 ビジネス・プロセスでのデータの処理

- 12.1 ビジネス・プロセスで使用されるデータの処理について

- 12.1.1 Oracle BPMアプリケーションで使用されるデータを定義する方法

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

- 12.2.1 基本データ・オブジェクトと複合データ・オブジェクトの概要

- 12.2.2 プロセスおよびプロジェクト・データ・オブジェクトの概要

- 12.2.2.1 プロセス・データ・オブジェクト

- 12.2.2.2 プロジェクト・データ・オブジェクト

- 12.3 データ・オブジェクトの使用

- 12.3.1 データ・オブジェクトの作成方法

- 12.3.2 データ・オブジェクトを編集または削除する方法

- 12.3.3 データ・オブジェクト削除または編集時の処理

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

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

- 12.5.1 ビジネス・オブジェクトを手動で作成する方法

- 12.5.2 XMLスキーマ定義(XSD)に基づいてビジネス・オブジェクトを作成する方法

- 12.5.3 ビジネス・オブジェクト作成時の処理

- 12.5.4 ビジネス・オブジェクトを編集または削除する方法

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

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

- 12.6.2 フロー・オブジェクトのデータ・アソシエーションの構成方法

- 12.7 式の概要

- 12.7.1 式エディタの概要

- 12.7.2 式のタイプ

- 12.7.3 単純式

- 12.7.3.1 演算子タイプ

- 12.7.3.2 演算子の優先順位

- 12.8 式の使用

- 12.8.1 条件シーケンス・フローの単純式の定義方法

- 12.8.2 データ・アソシエーションの単純式の定義方法

- 12.9 ビジネス・インジケータおよびカウンタ・マークの使用

- 12.9.1 ビジネス・インジケータおよびカウンタの概要

- 12.9.2 カウンタ・マークの概要

- 12.9.3 新しいカウンタ・マークをプロセスに追加する方法

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

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

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

13 Oracle Business Rulesの使用

- 13.1 Oracle Business Rulesの概要

- 13.1.1 ルール条件の概要

- 13.1.2 ルール・アクションの概要

- 13.1.3 デシジョン表の概要

- 13.1.4 ファクトおよびバケットセットの概要

- 13.1.5 ルールセットの概要

- 13.1.6 デシジョン関数の概要

- 13.1.7 デシジョン・ポイントの概要

- 13.1.8 ディクショナリの概要

- 13.2 Business Process Composerルール・エディタの概要

- 13.3 ビジネス・ルールの作成および編集

- 13.3.1 新しいビジネス・ルールの作成方法

- 13.3.2 ビジネス・ルールを開く方法

- 13.3.3 バケットセットを追加する方法

- 13.3.4 既存のバケットセットを編集する方法

- 13.3.5 ルール・ディクショナリでグローバルを表示する方法

- 13.3.6 ルールセットにルールを追加する方法

- 13.4 ビジネス・ルール・タスクへのルールの割当て

- 13.5 実行時のOracle Business Rulesの編集

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

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

- 14.1.1 プロセスへの入力引数の定義方法

- 14.1.2 メッセージ開始イベントへのデータの関連付けの定義方法

- 14.1.3 プロセスへの出力引数の定義方法

- 14.1.4 メッセージ終了イベントへのデータの関連付けの定義方法

- 14.2 会話の定義

- 14.2.1 会話の概要

- 14.2.2 会話の使用

- 14.2.2.1 会話の定義方法

- 14.2.2.2 デフォルトの会話の設定方法

- 14.2.2.3 BPMNフロー・オブジェクトに対する会話の定義方法

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

- 14.3 サービスの使用

- 14.3.1 ビジネス・カタログで新しいサービスを作成する方法

15 BPMプロジェクトのデプロイ

- 15.1 プロジェクトの承認ワークフローの構成

- 15.1.1 承認ワークフローの概要

- 15.1.2 承認ワークフローの構成

- 15.1.2.1 プロジェクトの承認ワークフローの構成方法

- 15.2 プロジェクトのデプロイ

- 15.2.1 プロジェクトをデプロイできるユーザー

- 15.2.2 プロジェクトをランタイムにデプロイする方法

- 15.2.3 承認ワークフローを使用してプロジェクトをデプロイする方法

- 15.2.4 デプロイ済のプロジェクトを編集する方法

- 15.2.5 プロジェクトSARファイルの生成方法

- 15.2.6 デプロイメント計画の生成方法

第V部 Business Process Composerを使用した管理タスクの実行

16 管理タスクの実行

- 16.1 Business Process Composer管理の概要

- 16.2 グローバル・ロールの割当て方法

- 16.3 プロジェクトとプロジェクト・テンプレートの管理

- 16.3.1 プロジェクトまたはプロジェクト・テンプレートの削除方法

- 16.3.2 プロジェクトでの共有の構成方法

- 16.3.3 共有プロジェクトでのロックの解放方法

- 16.3.4 プロジェクト・テンプレートのインポート方法

- 16.4 プロセス・プレーヤの管理者資格証明の定義方法

- 16.4.1 プロセス・プレーヤを有効にする方法

- 16.4.2 プロセス・プレーヤを有効時の処理

A BPMNフロー・オブジェクト・リファレンス

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

- A.1.1 ロールの概要

- A.1.1.1 コンテキスト内のロール

- A.1.2 スイムレーンの概要

- A.1.2.1 コンテキスト内のスイムレーン

- A.1.3 プロセスにロールおよびスイムレーンを追加する方法

- A.1.4 スイムレーンのプロパティを編集する方法

- A.1.5 Business Process ComposerとBPM Studioとの間でのロールの共有

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

- A.2.1 開始イベントと終了イベントの概要

- A.2.1.1 様々なタイプのプロセスに対する開始イベントの指定

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

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

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

- A.2.3 None開始イベントの概要

- A.2.3.1 コンテキスト内のNone開始イベント

- A.2.3.2 データ・アソシエーション

- A.2.4 メッセージ開始イベントの概要

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

- A.2.4.2 プロセスの入力引数と出力引数の使用

- A.2.5 シグナル開始イベントの概要

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

- A.2.6 タイマー開始イベントの概要

- A.2.7 エラー開始イベントの概要

- A.2.8 None終了イベントの概要

- A.2.8.1 コンテキスト内のNone終了イベント

- A.2.9 エラー終了イベントの概要

- A.2.10 メッセージ終了イベントの概要

- A.2.11 強制終了イベントの概要

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

- A.3.1 ヒューマン・ワークフローの概要

- A.3.1.1 ヒューマン・タスクの概要

- A.3.2 ユーザー・タスクの概要

- A.3.2.1 コンテキスト内のユーザー・タスク

- A.3.2.2 対話型アクティビティの使用

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

- A.3.3 手動タスクの概要

- A.3.3.1 コンテキスト内の手動タスク

- A.3.4 更新タスクの概要

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

- A.4.1 サービス・タスクの概要

- A.4.1.1 コンテキスト内のサービス・タスク

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

- A.4.2 通知タスクの概要

- A.4.3 コール・アクティビティの概要

- A.4.4 送信タスクの概要

- A.4.4.1 コンテキスト内の送信タスク

- A.4.5 受信タスクの概要

- A.4.5.1 コンテキスト内の受信タスク

- A.4.5.2 受信タスクによるプロセスの開始

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

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

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

- A.4.9 メッセージのスロー・イベントおよびキャッチ・イベントを使用した、プロセス間の通信

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

- A.5.1 Oracle Business Rulesの概要

- A.5.2 ビジネス・ルール・タスクの概要

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

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

- A.6.1 シーケンス・フローの概要

- A.6.2 無条件シーケンス・フローの概要

- A.6.3 条件シーケンス・フローの概要

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

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

- A.7.1 ゲートウェイの概要

- A.7.1.1 スプリットとマージのペア

- A.7.2 排他ゲートウェイの概要

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

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

- A.7.3 包含ゲートウェイの概要

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

- A.7.4 パラレル・ゲートウェイの概要

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

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

- A.7.5 複合ゲートウェイの概要

- A.7.6 イベント・ベース・ゲートウェイの概要

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

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

- A.8.1 中間イベントの概要

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

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

- A.9 Oracle BPMでのサブプロセスの使用

- A.9.1 再使用可能なプロセス(再使用可能なサブプロセス)の概要

- A.9.2 埋込みサブプロセス(インライン・サブプロセス)の概要

- A.9.2.1 埋込みサブプロセスとシーケンス・フロー

- A.9.2.2 コンテキスト内の埋込みサブプロセス

- A.9.2.3 ループ埋込みサブプロセス

- A.9.3 イベント・サブプロセス(イベント・ハンドラ)の概要

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

- A.10.1 スクリプト・タスクの概要

- A.10.1.1 コンテキスト内のスクリプト・タスク

B BPMNフロー・オブジェクト・プロパティのリファレンス

- B.1 共通プロパティ

- B.1.1 基本プロパティ

- B.1.2 実装プロパティ

- B.2 対話型プロパティ

- B.2.1 対話型アクティビティ

- B.2.2 手動タスク

- B.3 アクティビティのプロパティ

- B.3.1 サービス・タスク

- B.3.1.1 実装プロパティ

- B.3.2 送信タスク

- B.3.2.1 実装プロパティ

- B.3.3 受信タスク

- B.3.3.1 実装プロパティ

- B.3.4 ビジネス・ルール・タスク

- B.3.4.1 実装プロパティ

- B.3.5 スクリプト・タスク

- B.3.6 コール・アクティビティ

- B.3.6.1 実装プロパティ

- B.3.7 サブプロセス

- B.3.7.1 実装プロパティ

- B.3.8 インライン・ハンドラ

- B.4 ゲートウェイのプロパティ

- B.4.1 排他ゲートウェイ

- B.4.2 包含ゲートウェイ

- B.4.3 パラレル・ゲートウェイ

- B.4.4 複合ゲートウェイ

- B.4.5 イベント・ベース・ゲートウェイ

- B.5 イベントのプロパティ

- B.5.1 None開始イベント

- B.5.2 メッセージ開始イベント

- B.5.2.1 実装プロパティ

- B.5.3 タイマー開始イベント

- B.5.3.1 実装プロパティ

- B.5.4 シグナル開始イベント

- B.5.4.1 実装プロパティ

- B.5.5 エラー開始イベント

- B.5.5.1 実装プロパティ

- B.5.6 Noneキャッチ・イベント

- B.5.7 メッセージ・キャッチ・イベント

- B.5.7.1 実装プロパティ

- B.5.8 タイマー・キャッチ・イベント

- B.5.8.1 実装プロパティ

- B.5.9 エラー・キャッチ・イベント

- B.5.9.1 実装プロパティ

- B.5.10 メッセージ・スロー・イベント

- B.5.10.1 実装プロパティ

- B.5.11 シグナル・スロー・イベント

- B.5.11.1 実装プロパティ

- B.5.12 None終了イベント

- B.5.13 メッセージ終了イベント

- B.5.13.1 実装プロパティ

- B.5.14 シグナル終了イベント

- B.5.14.1 実装プロパティ

- B.5.15 エラー終了イベント

- B.5.15.1 実装プロパティ

- B.5.16 強制終了イベント

- B.6 測定マーク・プロパティ

- B.7 シーケンス・フローのプロパティ

- B.7.1 デフォルト・シーケンス・フロー

- B.7.2 標準シーケンス・フロー

- B.7.3 条件シーケンス・フロー

C WebフォームとWebフォーム・コントロール・プロパティのリファレンス

- C.1 Webフォームのプロパティ

- C.1.1 「設定」タブ

- C.1.2 「スタイル」タブ

- C.2 Webフォーム・コントロールのプロパティ

- C.2.1 Webフォーム・コントロールのプロパティ - 「設定」タブ

- C.2.2 Webフォーム・コントロールのプロパティ - 「スタイル」タブ

D Webフォーム・ルールの例

- D.1 合計の計算

- D.2 請求先住所の表示/非表示

- D.3 請求先住所の表示/非表示

- D.4 質問の有効化/無効化

- D.5 繰返しアイテムの小計の計算

- D.6 請求合計の計算

- D.7 テキスト領域の最大長

- D.8 テキスト領域の改行とブレーク

- D.9 ドロップダウン・オプション

- D.10 選択したオプションの索引の検索

- D.11 選択の同期化

- D.12 ドロップダウン・オプションのクリア

- D.13 デフォルト・オプション

- D.14 チェック・ボックス・オプション - チェック・ボックスの選択肢への色の割当て

- D.15 チェック・ボックス・オプション - チェック・ボックスの選択肢に基づいてコントロールの表示/非表示を切替え

- D.16 チェック・ボックスの初期化

- D.17 選択したチェック・ボックスのラベルの表示

- D.18 チェック・ボックスの繰返し

- D.19 繰返しコントロール内部のメッセージ・コントロールの表示

- D.20 文字列の連結

- D.21 動的なラベル、ヘルプ、ヒント

- D.22 表示/非表示

- D.23 セクションの表示/非表示

- D.24 「Select」タブ

- D.25 「Next」タブ

- D.26 セクションの拡張/縮小

- D.27 セキュリティ・サブジェクト情報

- D.28 複数選択

- D.29 動的オプション

- D.30 トリガーと動的オプション

- D.31 値の変更と動的なオプション

- D.32 動的コントロールの初期化

- D.33 ユーザーの検証

- D.34 純資産の計算

- D.35 日付と時間

- D.35.1 期間

- D.35.2 今日の日付と時間

- D.35.3 日付/時間スタンプ

- D.35.4 今日の日付より前の場合は無効

- D.35.5 今日から14日以内の日付

- D.35.6 30日前以内の日付

- D.35.7 夏時間に調整した中部タイムゾーンs

- D.35.8 時間の差が4時間以上6時間以下

- D.35.9 時間

- D.36 テナント、ロール、ユーザー

- D.37 繰返しアイテムの追加

- D.38 繰返しアイテムの追加 - 他のアイテムの縮小

- D.39 表

- D.40 form.load

- D.41 form.unload

- D.42 一意のID

- D.43 繰返しアイテムの初期化

- D.44 初期ドキュメントでItemAddedを繰り返す

- D.45 検索ポップアップ

E BPMNにインポートするためのプロセスの準備

- E.1 BPMNプロセスとしてインポートするためのVisioファイルの準備

- E.1.1 VisioUserMap.xmlの更新方法

- E.1.2 BPMN要素の有効な値

- E.1.3 BPMN要素の属性

- E.2 XSL文書を使用したXPDLのインポートのカスタマイズ方法

- E.3 XPDLファイルをBPMNプロセスとしてインポートするための準備

- E.3.1 ネームスペースの処理

- E.3.2 相対座標の処理

- E.3.3 拡張属性の処理

- E.3.4 redrawConnectionsの処理

- E.3.5 isRelativeObjectCoordinatesの処理

- E.3.6 非表示要素の削除

- E.3.7 方向属性の処理

- E.3.8 サブプロセスのビュー・タイプの指定

- E.3.9 オブジェクト・ピンの処理

- E.3.10 アクティビティの高さと幅の変更

- E.3.11 レーンの高さと幅の変更

- E.3.12 プールの高さと幅の変更

- E.3.13 アクティビティの場所

- E.3.14 欠落要素を含める

- E.3.15 アクティビティの正確性の確認

F 営業見積サンプル・プロセス

- F.1 Business Process Management Notation(BPMN)の概要

- F.1.1 Business Process Management Notation (BPMN)とは

- F.1.2 ビジネス・プロセス

- F.1.2.1 プロセス・インスタンス

- F.1.2.2 プロセス・トークン

- F.1.3 フロー・オブジェクト

- F.1.4 データ・オブジェクト

- F.2 営業見積サンプルの概要

- F.2.1 営業見積サンプルの詳細

- F.2.1.1 営業見積の開始

- F.2.1.2 ビジネス実行確認の決定

- F.2.1.3 見積の承認

- F.2.1.4 承認結果

例一覧

- E-1 VisioUserMap.xmlへのサンプル・エントリ

- E-2 Extends属性を使用したBPMNオブジェクトへのVisioオブジェクトのマッピング

- E-3 ローカル・ネームスペースの要素のデフォルト・ネームスペースへのコピー

- E-4 redrawConnectionsを処理する場合のExtendedAttributeの設定

- E-5 ExtendedAttributes要素にExtendedAttributeを含める

- E-6 非表示要素の削除

- E-7 非表示アクティビティの削除

- E-8 プールの方向の設定

- E-9 サブフロー要素へのビュー属性の追加

- E-10 BlockActivity要素へのビュー属性の追加

- E-11 オブジェクト・ピンの位置の再計算

- E-12 高さと幅が定義されていないイベント要素

- E-13 アクティビティの高さと幅の設定

- E-14 TaskService要素をタスク要素の子として含める

- E-15 アクティビティの正確性の確認

図一覧

- 1-1 Oracle BPM Suite

- 1-2 Oracle BPMアプリケーション開発ライフサイクルのステージ

- 1-3 スクリーン・リーダーの有効化確認メッセージ

- 1-4 BPMワークリストのアクセシビリティ・オプション

- 2-1 ユース・ケース: BPMアプリケーションの新規作成

- 2-2 プロジェクト・テンプレートに基づくOracle BPMアプリケーションの作成

- 2-3 Oracle Business Process Composerサインオン画面

- 2-4 Oracle Business Process Composerアプリケーションのユーザー・インタフェース

- 2-5 Business Process Composerツールバー

- 2-6 プロジェクト・ブラウザ

- 2-7 プロジェクト・ブラウザのコントロール・パネル

- 2-8 プロジェクトのようこそページから表示されたアプリケーションのメイン・メニュー

- 2-9 プロジェクトのようこそページ

- 3-1 Oracle Business Process Composerサインオン画面

- 3-2 アプリケーションのようこそページ

- 3-3 アプリケーションのようこそページからの新規プロジェクトの作成

- 3-4 アプリケーションのようこそページでのTravel Requestプロジェクト

- 3-5 新規BPMプロジェクト作成後のプロジェクトのようこそページ

- 3-6 出張リクエスト・プロセスの作成

- 3-7 プロジェクト・ツールバー

- 3-8 新規プロセス作成後のプロセス・エディタ

- 3-9 BPMNコンポーネント・パレットの選択

- 3-10 ユーザー・タスク追加後の出張リクエスト・プロセス

- 3-11 出張リクエスト・プロセスでの新規ロールの作成

- 3-12 ビジネス・ルール・タスク追加後の出張リクエスト・プロセス

- 3-13 マネージャ・ロール追加後の出張リクエスト・プロセス

- 3-14 排他ゲートウェイ追加後の出張リクエスト・プロセス

- 3-15 承認ユーザー・タスク追加後の出張リクエスト・プロセス

- 3-16 排他ゲートウェイ追加後の出張リクエスト・プロセス

- 3-17 サービス・タスク追加後の出張リクエスト・プロセス

- 3-18 新規シーケンス・フローの追加

- 3-19 Rejectedシーケンス・フロー追加後の出張リクエスト・プロセス

- 3-20 Approval Outcomeゲートウェイのシーケンス・フローの編集

- 3-21 完成した出張リクエスト・プロセス

- 3-22 ユーザー・タスクからの実装オプションの選択

- 3-23 実装エディタ

- 3-24 テキストWebフォーム・コントロール追加後の出張承認フォーム

- 3-25 基本Webフォーム・コントロール追加後の出張承認Webフォーム

- 3-26 タブWebフォーム・コントロール追加後の出張承認Webフォーム

- 3-27 「Trip Details」タブを表示する出張承認Webフォーム

- 3-28 「Expense Details」タブを表示する出張承認Webフォーム

- 3-29 Webフォーム・ツールバー

- 3-30 入出力データ・オブジェクトが表示された「ビジネス・ルールの作成」ダイアログ

- 3-31 承認ルール用に定義されたバケット

- 3-32 アクションの作成および構成後のデシジョン表

- 3-33 「データ・オブジェクト」ボタンが強調表示されているプロセス・エディタ・ツールバー

- 3-34 データ・オブジェクト・エディタでの新規データ・オブジェクトの作成

- 3-35 プロセス・データ・オブジェクトが表示されているデータ・オブジェクト・エディタ

- 4-1 プロジェクトのようこそページ

- 4-2 「プロジェクト情報」パネル

- 4-3 「最近のアクティビティ」パネル

- 4-4 プロジェクト・コンポーネント・ペイン

- 4-5 「プロジェクト・ホーム」タブ

- 4-6 「新規プロジェクト」ダイアログ

- 4-7 プロジェクト・エラー・ブラウザ

- 5-1 プロセス・エディタ・ウィンドウ

- 5-2 コンポーネント・パレット

- 5-3 単一オブジェクト入力モード

- 5-4 ビジネス・カタログ

- 5-5 ドキュメント・エディタ

- 6-1 シミュレーション - 開始イベントの正規分布

- 6-2 対話型アクティビティのシミュレーション・パラメータ

- 6-3 プロジェクトのようこそページの「シミュレート」ボタン

- 6-4 シミュレーション・エディタ・ウィンドウ

- 6-5 シミュレーション・モデル・パネル

- 6-6 新規シミュレーション・モデル・エディタ

- 6-7 シミュレーション定義作成後の「シミュレーション」パネル

- 6-8 シミュレーション定義エディタ

- 6-9 シミュレーション定義へのシミュレーション・モデルの追加

- 6-10 シミュレーション・エディタ・ツールバー

- 6-11 シミュレーション・モデル・エディタのリソース定義パネルの表示

- 7-1 プロセス・プレーヤ

- 7-2 プロジェクト・エディタ・ツールバーの「プロセス・プレーヤ」アイコンの表示

- 7-3 プロジェクト・メニューの「プロセス・プレーヤ」メニュー・アイテムの表示

- 7-4 プロセス・プレーヤ - 「組織」ペイン

- 7-5 プロセス・プレーヤの開始イベントの「再生」アイコン

- 7-6 プロセス・プレーヤのユーザー・タスクの「再生」アイコン

- 7-7 ヒューマン・タスクのユーザーおよび結果の選択

- 7-8 メッセージ終了イベントの「ドリル・アップ」アイコン

- 8-1 アプリケーション・コンポーザのメイン・メニュー

- 9-1 Business Process Composer Webフォーム・デザイナ

- 9-2 Webフォーム・エディタ・ツールバー

- 9-3 Webフォーム・デザイナのプロパティ・エディタ

- 9-4 「データ・ソース」パネル

- 9-5 フォーム・キャンパス

- 9-6 複数のタブを含むWebフォーム

- 9-7 フォーム・コントロールを表示アイコン

- 9-8 個別のコントロールの選択

- 9-9 組織コントロールの選択

- 11-1 単一の参加者の基本的なルーティング

- 11-2 タスクの順次ルーティングの例

- 11-3 タスクのパラレル・ルーティングの例

- 11-4 ヒューマン・タスク・エディタ

- 11-5 参加者の追加/削除アイコン

- 11-6 投票結果エディタ

- 12-1 基本データ・オブジェクトと複合データ・オブジェクトの関係

- 12-2 新規データ・オブジェクトの追加

- 12-3 プロセス・エディタ・ツールバーの「データ・オブジェクト」アイコンの表示

- 12-4 データ・オブジェクト・エディタ

- 12-5 営業見積サンプル・プロジェクトに定義されたビジネス・オブジェクト

- 12-6 「ビジネス・オブジェクト」タブ

- 12-7 XSDからの新規ビジネス・オブジェクトの作成

- 12-8 ビジネス・オブジェクト・エディタの属性エディタ・ペイン

- 12-9 フロー・オブジェクトと実装と外部のサービスまたはプロセスの関係

- 12-10 プロセス間のデータ・アソシエーション

- 12-11 データ・アソシエーション・エディタ

- 12-12 Oracle Business Process Composerの式エディタ

- 13-1 Oracle Business Rulesエディタの「グローバル」タブ

- 13-2 Oracle Business Rulesエディタの「バケットセット」タブ

- 13-3 Oracle Business Rulesエディタの「ルールセット」タブ

- 15-1 「プロジェクトのデプロイ」ダイアログ

- 16-1 Business Process Composerツールバーの「管理」メニュー・アイテムの表示

- 16-2 「管理」コンソール - 「ロール・マッピング」タブ

- A-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス

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

- A-3 None開始イベント

- A-4 営業見積サンプル・プロセス内のNone開始イベント

- A-5 メッセージ開始イベント

- A-6 営業見積サンプル・プロセス内のメッセージ開始イベント

- A-7 シグナル開始イベント

- A-8 タイマー開始イベント

- A-9 エラー開始イベント

- A-10 None終了イベント

- A-11 営業見積サンプル内のNone終了イベント

- A-12 エラー終了イベント

- A-13 メッセージ終了イベント

- A-14 ユーザー・タスク

- A-15 見積入力ユーザー・タスク

- A-16 手動タスク

- A-17 手動タスクの例

- A-18 更新タスク

- A-19 サービス・タスク

- A-20 営業見積サンプル・プロセス内のサービス・タスク

- A-21 インスタント・メッセージ通知タスク

- A-22 電子メール通知タスク

- A-23 SMS通知タスク

- A-24 ボイスメール通知タスク

- A-25 ユーザー通知タスク

- A-26 コール・アクティビティ

- A-27 送信タスク

- A-28 受信タスク

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

- A-30 メッセージ・スロー・イベント

- A-31 メッセージ・キャッチ・イベント

- A-32 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用

- A-33 ビジネス・ルール・タスク

- A-34 営業見積サンプル・プロセス内のビジネス・ルール・タスク

- A-35 無条件シーケンス・フロー

- A-36 条件シーケンス・フローとデフォルト・シーケンス・フロー

- A-37 排他ゲートウェイ

- A-38 営業見積サンプル・プロセス内の排他ゲートウェイ

- A-39 包含ゲートウェイ(スプリット)

- A-40 包含ゲートウェイ(マージ)

- A-41 パラレル・ゲートウェイ(スプリット)

- A-42 パラレル・ゲートウェイ(マージ)

- A-43 パラレル・ゲートウェイの例

- A-44 複合ゲートウェイ(スプリット)

- A-45 複合ゲートウェイ(マージ)

- A-46 イベント・ベース・ゲートウェイ

- A-47 タイマー・キャッチ・イベント

- A-48 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント

- A-49 縮小された埋込みサブプロセスの例

- A-50 拡張された埋込みサブプロセスの例

- A-51 埋込みサブプロセスの例

- A-52 スクリプト・タスク

- A-53 営業見積サンプル内のスクリプト・タスク

- A-54 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション

- A-55 割引プロジェクト変数の値の変更に使用される式

- F-1 営業見積サンプル

- F-2 営業見積の開始

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

- F-4 見積の承認

- F-5 承認結果

表一覧

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

- 2-1 Business Process Composerアプリケーション・ツールバー

- 2-2 プロジェクト・ビュー

- 2-3 アプリケーションのメイン・メニュー・アイテム

- 3-1 「Trip Details」タブのWebフォーム・コントロールの設定

- 3-2 「Expense Details」タブのWebフォーム・コントロールの設定

- 4-1 Business Process Composerのビジネス・カタログのコンポーネント

- 5-1 ビジネス・プロセスのタイプ

- 5-2 プロセス・エディタのメニュー

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

- 8-2 コンポーネント・レベルの編集ポリシー

- 9-1 ヒューマン・タスクのデータ型と対応するWebフォーム・コントロール

- 12-1 単純データ・オブジェクト

- 12-2 データ・アソシエーションを受け入れるフロー・オブジェクト

- 12-3 データ・アソシエーション・エディタのユーザー・インタフェース

- 12-4 式エディタのユーザー・インタフェース

- 12-5 算術演算子

- 12-6 単項演算子

- 12-7 等号演算子と関係演算子

- 12-8 条件演算子

- 15-1 承認ルーティング

- 15-2 「プロジェクトのデプロイ」ダイアログのプロパティ

- A-1 各プロセス・タイプの開始イベントおよび終了イベント

- A-2 対話型アクティビティ

- B-1 アクティビティおよびゲートウェイの基本プロパティ

- B-2 実装プロパティ

- B-3 対話型アクティビティ - 共通プロパティ

- B-4 サービス・タスクのプロパティ(「プロセス・コール」を選択した場合)

- B-5 サービス・タスクのプロパティ(「サービス・コール」を選択した場合)

- B-6 送信タスクのプロパティ(「インタフェースの定義」を選択した場合)

- B-7 送信タスクのプロパティ(「インタフェースの使用」を選択した場合)

- B-8 送信タスクのプロパティ(「プロセス・コール」を選択した場合)

- B-9 送信タスクのプロパティ(「サービス・コール」を選択した場合)

- B-10 受信タスク(「インタフェースの定義」を選択した場合)

- B-11 受信タスクのプロパティ(「インタフェースの使用」を選択した場合)

- B-12 受信タスクのプロパティ(「サービス・コール」を選択した場合)

- B-13 ビジネス・ルール・タスクのプロパティ

- B-14 コール・アクティビティのプロパティ

- B-15 サブプロセスのプロパティ

- B-16 排他ゲートウェイのプロパティ

- B-17 複合ゲートウェイのプロパティ

- B-18 イベント・ベース・ゲートウェイのプロパティ

- B-19 メッセージ開始のプロパティ

- B-20 タイマー開始イベントのプロパティ

- B-21 シグナル開始イベントのプロパティ

- B-22 エラー開始イベントのプロパティ

- B-23 メッセージ・キャッチのプロパティ

- B-24 メッセージ・キャッチのプロパティ(「開始」を選択した場合)

- B-25 メッセージ・キャッチのプロパティ(「続行」を選択した場合)

- B-26 タイマー・キャッチ・イベントのプロパティ

- B-27 エラー・キャッチ・イベントのプロパティ

- B-28 メッセージ・スロー・イベントのプロパティ

- B-29 メッセージ・スロー・イベントのプロパティ(「開始」を選択した場合)

- B-30 メッセージ・スロー・イベントのプロパティ(「続行」を選択した場合)

- B-31 シグナル・スロー・イベントのプロパティ

- B-32 メッセージ終了のプロパティ

- B-33 シグナル終了イベントのプロパティ

- B-34 エラー終了イベントのプロパティ

- B-35 測定マーク・プロパティ

- B-36 デフォルト・シーケンス・フローのプロパティ

- B-37 標準シーケンス・フローのプロパティ

- B-38 条件シーケンス・フローのプロパティ

- E-1 タスクの属性と値

- E-2 サブプロセスの属性と値

- E-3 イベントの属性と値

- E-4 ゲートウェイの属性と値

- E-5 シーケンス・フローの属性と値

- E-6 アソシエーションの属性と値

- E-7 プールの属性と値

Oracle® Fusion Middleware

Oracle Business Process Management Business Process Composerユーザーズ・ガイド

11g リリース1 (11.1.1.7)

B61410-07(原本部品番号:E15177-09)

2013年2月

Oracle Business Process Composerの使用に関心のあるプロセス・アナリストおよびプロセス開発者向けの情報を提供します。

Oracle Fusion Middleware Oracle Business Process Management Business Process Composerユーザーズ・ガイド, 11g リリース1 (11.1.1.7)

B61410-07

Copyright © 2001, 2013, Oracle and/or its affiliates.All rights reserved.

原本著者:  Oracle Corporation

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

このガイドでは、Oracle Business Process Composerアプリケーションについて説明します。

対象読者

このガイドは、Oracle Business Process Management Suiteでプロセスベースのアプリケーションを作成する場合に使用されるビジネス・プロセスおよびOracle BPMプロジェクトを、Business Process Composerアプリケーションを使用して作成および編集するプロセス・アナリストを対象にしています。

また、このガイドは、Business Process Composerを使用する必要があるプロセス開発者も対象にしています。これらのユーザー・ペルソナの詳細は、1.2項「Oracle BPMのユーザー・ペルソナ」を参照してください。

このマニュアルは、ビジネス・プロセス設計の基本知識があり、Business Process Management Notation (BPMN) 2.0についてよく理解していることを前提としています。

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

オラクル社のアクセシビリティへの取組みの詳細は、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 Business Process Management

Oracle BPM Suiteの詳細は、次の資料を参照してください。

- Oracle BPMモデリングおよび実装ガイド

- Oracle Fusion Middleware Business Process Managementのユーザーズ・ガイド

Oracle SOAおよびBPM Suiteのインストレーションおよび管理

- Oracle Fusion Middleware Oracle SOA Suiteインストレーション・ガイド

- Oracle Fusion Middleware Oracle SOA SuiteおよびOracle BPM Suiteのための管理者ガイド

- Oracle Fusion Middleware高可用性ガイド

表記規則

このマニュアルでは次の表記規則を使用します。

表記規則

意味

.
.
.

例に含まれる垂直の省略記号は、直接関係のない情報が省略されていることを意味します。

. . .

文またはコマンド内の水平の省略記号は、例に直接関係のない文またはコマンドの一部が省略されていることを意味します。

太字テキスト

テキスト内の太字は、テキスト、用語集またはその両方で定義されている用語を表します。

< >

ユーザーが指定する名前は山カッコで囲みます。

[ ]

大カッコは、オプションの句を囲みます。そこから1つ選択しても、まったく選択しなくてもかまいません。

このガイドのリリース11.1.1.7に関する新しい内容

このガイドはリリース11.1.1.7でいくつかの点が更新されました。次の表に、追加または変更された内容を示します。

既知の問題のリスト(リリース・ノート)については、http://www.oracle.com/technetwork/middleware/docs/soa-aiafp-knownissuesindex-364630.htmlの「Known Issues for Oracle SOA Products and Oracle AIA Foundation Pack」を参照してください。

内容

変更

第2章「Oracle Business Process Composerの概要」

Oracle Business Process Composerユース・ケースの変更を反映するために改訂された章。

第3章「ウォークスルー: 基本BPMアプリケーションの作成」

Business Process Composerを使用して新しいプロセスベースのビジネス・アプリケーションを作成するためのユース・ケースのウォークスルーを提供するために追加された章。

4.1.1項「プロジェクト・コンポーネントおよびリソースの概要」

BPMプロジェクト・リソースとビジネス・カタログの変更を反映するために改訂された項。たとえば、Business Process Composerを使用して新しいビジネス・ルールを作成したり、ビジネス・オブジェクトを作成および編集したりできます。

4.2項「プロジェクトのようこそページの概要」

プロジェクトのようこそページの変更を反映するために改訂された項。

第6章「プロセス動作のシミュレート」

Business Process Composerを使用してプロセス・パフォーマンスを向上するためのシミュレーションを実行する方法を説明するために追加された章。

第7章「プロセス・プレーヤの使用」

プロセス・プレーヤを使用したビジネス・プロセスの動作のテスト方法を説明するために追加された章。

第9章「Webフォームの使用」

Business Process Composerを使用してWebフォームを作成および使用する方法を説明するために追加された章。

第10章「Webフォーム・ルールの使用」

Webフォームのルールを使用して、Webフォームに動的な動作を追加する方法を説明するために追加された章。

11.3項「ヒューマン・タスクの使用」

ヒューマン・タスク・ペイロードに基づいたWebフォームの作成についての情報を加えるために改訂された項。

11.4項「ユーザー・タスクへのヒューマン・タスクの割当て」

ヒューマン・タスクをユーザー・タスクに割り当てる方法を説明するために追加された項。

12.4項「ビジネス・オブジェクトの概要」

ビジネス・オブジェクトについての一般的な情報を提供するために追加された項。

12.5項「ビジネス・オブジェクトの使用」

Business Process Composerを使用したビジネス・オブジェクトの作成および編集の方法を説明するために追加された項。

12.9項「ビジネス・インジケータおよびカウンタ・マークの使用」

Business Process Composerを使用したビジネス・インジケータの作成方法を説明するために追加された項。

13.3項「ビジネス・ルールの作成および編集」

Business Process Composerを使用して新しいビジネス・ルールを作成する方法を説明するために改訂された項。

16.4項「プロセス・プレーヤの管理者資格証明の定義方法」

プロセス・プレーヤ機能を有効にする方法を説明するために追加された項。

付録A「BPMNフロー・オブジェクト・リファレンス」

Oracle BPMによってサポートされている各BPMNフロー・オブジェクトを説明するために追加された付録。

付録C「WebフォームとWebフォーム・コントロール・プロパティのリファレンス」

WebフォームとWebフォーム・コントロールの各プロパティを説明するために追加されたリファレンス付録。

付録D「Webフォーム・ルールの例」

Webフォーム・ルールの様々な例とユース・ケースを提供するために追加された付録。

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.4項「Oracle Business Process Analysis(BPA) Suite」

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

- 1.6項「Oracle BPMのユース・ケース」

- 1.7項「アクセシビリティ・オプション」

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ベースのアプリケーションが提供されます。

- 柔軟な、非構造化プロセスを組み込めるよう、ビジネス・プロセス管理を拡張します。動的タスクが追加され、宣言パターンおよびルール駆動型フロー決定を使用する承認ルーティングがサポートされます。

- 生産性を向上し、革新を推進するProcess Spacesとの統合により、コラボレーションを実現します。

- プロセス・ベースのアプリケーション開発のためのエンドツーエンド要件に対応することで、アプリケーション開発ライフサイクルの様々なステージを統合します。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-1に示されているそれぞれのコンポーネントの詳細は、1.3項「Oracle BPM Suiteのコンポーネント」を参照してください。

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 BPMモデリングおよび実装ガイドを参照してください。

1.3.1.2 Oracle Business Process Composer

Oracle Business Process Composerは、ビジネス・ユーザーがプロセスの開発者や設計者と共同作業できるようにするWebベースのアプリケーションです。Oracle BPM Studioで作成されたプロセスやプロセス・テンプレートを編集するための使いやすい環境を提供しています。

プロセス開発者はOracle BPM Studio内のサービス、タスクおよびルールなど、事前に構成されたコンポーネントのカタログを作成できます。このカタログは、プロセス・アナリストがOracle Business Process Composerを使用して新規プロジェクトを作成する際に使用できるプロジェクト・テンプレートに組み込むことができます。

プロセス・アナリストは、プロジェクト・テンプレートに基づいてプロジェクトを作成した後で、ビジネス・カタログ要素を取り込み、プロジェクト・テンプレートで定義されている他の必要な編集を行います。その後、プロセス・アナリストはプロジェクトをOracle BPMランタイムにデプロイできます。

また、Business Process Composerでは、プロセス・アナリストが新規プロジェクトを作成することもできます。これはプロジェクトの最初のバージョンであり、Oracle BPM Studioを使用するプロセス開発者が実装の詳細と改良を加えるために使用します。

さらに、Business Process Composerでは、ランタイム時にOracle Business Rulesを編集することもできます。これは、ポリシーがビジネス・プロセスより頻繁に更新される傾向があるため重要です。

詳細は、第2章「Oracle 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 BPM モデリングおよび実装ガイドのプロジェクトおよびプロジェクト・テンプレートの使用

- 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は、ランタイムの動的決定を可能にするOracle SOA Suiteのコンポーネントで、特に規制や競争圧力に対してアプリケーションを迅速に適合させることができます。この高いアジリティを実現できる理由は、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 Workspace(プロセス・ワークスペース)

プロセス・ワークスペースを使用すると、プロセス参加者はOracle BPMを使用して作成したアプリケーションと相互作用できます。プロセス・ワークスペースのユーザー・インタフェースには、次のタブがあります。

- タスク: このページを使用して、プロセス参加者は自身に割り当てられたタスクを参照し、使用できます。

- プロセス・トラッキング: このページを使用して、プロセス参加者は実行中のプロセス・インスタンスを参照できます。

- 標準ダッシュボード: このページでは、プロセス・パフォーマンス、タスク・パフォーマンスおよび負荷を監視するための、すぐに使用できるダッシュボードが提供されます。

- カスタム・ダッシュボード: このページを使用して、プロセス参加者は、プロセス・インスタンスによって生成された測定データに基づき、カスタム・ダッシュボードを定義し、使用できます。

また、プロセス・ワークプレースでは、ビジネス管理者が組織およびロールを構成し、管理することもできます。詳細は、Oracle Fusion Middleware Business Process Managementのユーザーズ・ガイドを参照してください。

1.3.3.2 Oracle Business Process Management Process Spaces(プロセス・スペース)

プロセス・スペースは、Oracle WebCenter Spaces上に構築されたコラボレーティブな作業領域であり、コラボレーションを増やすことによってBPMの生産性を向上できます。

詳細は、Oracle Fusion Middleware Business Process Managementのユーザーズ・ガイドを参照してください。

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

以降の各項では、Oracle BPM Suiteのその他のコンポーネントについて説明します。

1.3.4.1 プロセス分析

ビジネス・プロセス分析では、プロセス参加者は実行中のプロセスベース・アプリケーションのパフォーマンスを監視できます。BPMプロジェクトで定義された主要パフォーマンス・インジケータが測定され、データベースに保存されます。プロセス参加者とアナリストは、プロセス・ワークスペースの各ダッシュボードまたはOracle BAMを使用して、プロセス分析データベースに保存されているメトリックを参照できます。

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

ガイド付きビジネス・プロセスでは、プロセス・アナリストと開発者は、ビジネス・プロセスの相互作用アクティビティを、プロセス参加者にとって意味のある一連のマイルストンにまとめることができます。これによって、ビジネス・プロセスの複雑さを意識させず、プロセス参加者が実行する必要のあるステップの概略を示します。

Oracle BPMモデリングおよび実装ガイドのガイド付きビジネス・プロセスの概要を参照してください

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 BPMモデリングおよび実装ガイドを参照してください。

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を連携させる方法の詳細は、2.2項「Business Process Composerユース・ケースの概要」を参照してください。

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開発者ガイドを参照してください。

- 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 Business Process Management Process Spacesを使用して新しいプロセスを作成できます。

- システム管理
ビジネス管理者は、Oracle Enterprise ManagerおよびOracle WebLogic Server管理コンソールを使用して、実行中のビジネス・アプリケーションおよびランタイム・インフラストラクチャ全体を管理します。

1.6 Oracle BPMのユース・ケース

この項では、プロセス・モデリングからランタイムまでのOracle BPM Suiteのユースケースについて説明します。

1.6.1 ユースケース: 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.2 ユース・ケース: 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.3 ユース・ケース: 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.4 ユース・ケース: Oracle Business Process Analysis Suiteを使用したビジネス・プロセスのモデリング

このユース・ケースでは、Oracle BPA Suiteを使用してビジネス・プロセスをモデリングします。これらのプロセスは、Oracle BPM Studioにインポートできます。

Oracle Business Process Analysis SuiteとOracle BPM Suiteを使用したプロセス・モデリングの一般的なワークフロー

1. ビジネス要件を決定します(プロセス・アナリスト)。

2. Oracle BPAを使用して戦略的な目標、プロセス・マップ、およびバリュー・チェーン図を取得し、ビジネス・アーキテクチャを設計します(プロセス・アナリスト)。

3. 戦略的な分析を実行し、Oracle BPMプロジェクトのプロセス候補を決定します(プロセス・アナリスト)。

4. 前記で識別されたプロセス候補の詳細なプロセス・フローを設計します(プロセス・アナリスト)。

5. プロセス・モデルをOracle BPM Studioにインポートします(プロセス・アナリスト、プロセス開発者)。

6. 各プロセス・コンポーネントをバックエンド・システムと再使用可能サービスに統合することでプロセスを実装します(プロセス開発者)。

7. ビジネス・プロセスをBPMプロジェクトとしてランタイム環境にデプロイします(プロセス開発者、ビジネス管理者)。

8. ビジネス・アプリケーションの一部としてデプロイされたプロセスと相互作用します(プロセス参加者、プロセス所有者)。

9. プロセスを管理します(ビジネス管理者、プロセス所有者)。

1.7 アクセシビリティ・オプション

この項では、Oracle BPM Suiteで使用可能なアクセシビリティ・オプションについて説明します。

1.7.1 SOAコンポーザでのアクセシビリティ機能の有効化

SOAコンポーザには、スクリーン・リーダーがアプリケーションのすべてのコンポーネントにアクセスし、これらを読み取れるようにするスクリーン・リーダー・オプションがあります。

スクリーン・リーダーを有効にする手順は次のとおりです。

1. 右上隅の「スクリーン・リーダー・モードの有効化」リンクをクリックします。

2. 「これにより、現行セッションのスクリーン・リーダー・モードが有効化されます。続行しますか。」という確認メッセージが表示されます。図1-3を参照してください。

図1-3 スクリーン・リーダーの有効化確認メッセージ

「図1-3 スクリーン・リーダーの有効化確認メッセージ」の説明

3. 「はい」をクリックして確認します。

1.7.2 BPMワークリストでのアクセシビリティ機能の有効化

BPMワークリストには、アプリケーションのすべてのコンポーネントの読取りに役立つアクセシビリティ・オプションがあります。

アクセシビリティ・オプションを有効にする手順は次のとおりです。

1. 右上隅の「プリファレンス」をクリックします。

2. 「アクセシビリティ」タブ(図1-4参照)で、目的のオプションを選択します。

図1-4 BPMワークリストのアクセシビリティ・オプション

「図1-4 BPMワークリストのアクセシビリティ・オプション」の説明

3. 「OK」をクリックします。

第I部

Oracle Business Process Composerの開始

この部では、Oracle Business Process Composerアプリケーションの通常の操作方法、プロセス開発ライフサイクル全体におけるBusiness Process Composerの使用方法について説明します。

この部には、次の章が含まれます。

- 第2章「Oracle Business Process Composerの概要」

- 第3章「ウォークスルー: 基本BPMアプリケーションの作成」

2 Oracle Business Process Composerの概要

この章では、Oracle Business Process Composerの概要を説明します。Business Process Composerを使用してBPMプロジェクトを設計、実装およびデプロイし、プロセスベースのビジネス・アプリケーションを開発する、最も一般的なシナリオについて説明します。また、アプリケーション・ユーザー・インタフェースの概要についても説明します。Oracle BPMに関する一般的な情報については、第1章「Oracle Business Process Management Suiteの概要」を参照してください。

この章の内容は次のとおりです。

- 2.1項「Oracle Business Process Composerの概要」

- 2.2項「Business Process Composerユース・ケースの概要」

- 2.3項「Oracle Business Process Composerへのサインオン」

- 2.4項「Business Process Composerユーザー・インタフェースの概要」

2.1 Oracle Business Process Composerの概要

Oracle Business Process Composerは、ビジネス・プロセスの検出、設計および文書化を行うためのWebベースのロール駆動型コラボレイティブ・ツールです。Business Process Composerは、ビジネス・ユーザーが対象です。ビジネス・ユーザーも、このツールを使用すれば、ビジネス・プロセスおよびプロセスベース・アプリケーションの定義、フィードバックおよび設計に参加できます。

Business Process Composerの特徴は次のとおりです。

- 使いやすい直観的なユーザー・インタフェースにより、生産性をすばやく上げることができます。

- 標準ベースの包括的なモデリング環境を提供します。ビジネス・プロセスをモデリングし、ビジネス・ルール、ビジネス・データおよびユーザー・インタフェースを作成し、ビジネス・プロセスを検証できます。

- コラボレーション機能が組み込まれています。プロジェクトを編集しているユーザーを確認したり、参加するユーザーを招待したりできます。

- ロールに基づいたセキュリティと権限を提供します。ユーザーの権限は、グローバル・レベルまたはプロジェクト・レベルで定義できます。

- モデル駆動型の実装を提供します。Business Process Modeling (BPMN) 2.0プロセス・モデルも実行可能モデルです。Oracle BPM Studioを使用して同じモデルを拡張します。Oracle BPM Studioを使用して実装の詳細を指定した後、プロジェクトはビジネス・ユーザーと再び共有可能になります。同じモデル上でビジネス関連作業とIT関連作業で往復しなければならない問題や変換問題が発生しません。

- ビジネス・ユーザーによる実装が可能になります。ビジネス・プロセスのモデリングに加えて、ビジネス・ユーザーは、ビジネス・ルール、Webフォーム、ビジネス・データ、ビジネス・インジケータ(ビジネス・メトリック)も作成できます。

Oracle Business Process Management Studioは、Oracle BPM Suite内の1つのツールです。Oracle BPM StudioはOracle JDeveloper上で実行し、主としてプロセス開発者によって使用されます。Oracle BPM Studioは、包括的な開発者ツールで、より複雑なBPMソリューションで必要となるWebサービス、XMLおよび統合開発を含むコンポーネントを開発できます。

Oracle BPM Studioの使用については、Oracle BPMモデリングおよび実装ガイドを参照してください。

2.1.1 プロセスの設計と実装

Oracle BPMアプリケーションの開発ライフサイクルは、設計と実装の2つのステージで構成されます。次のように定義されます。

- 設計: プロセス・フローとプロセス・ロジックを作成およびテストします。Business Process ComposerはBPMN 2.0をサポートし、フロー・オブジェクトとシーケンス・フローを1つのビジネス・プロセスにドラッグ・アンド・ドロップできるエディタを提供します。
Business Process Composerを使用したビジネス・プロセスの設計については、第II部「ビジネス・プロセスのモデリングおよびテスト」を参照してください。OracleのBPMN 2.0の実装については、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。

- 実装: 設計フェーズで作成したビジネス・プロセスに詳細な技術情報を追加します。Business Process Composerでは、プロセス・データ、組織ロール、ヒューマン・タスクおよびビジネス・ルールを定義できます。これらの各コンポーネントを作成および編集するためのエディタが用意されています。
ビジネス・プロセスの実装については、第IV部「BPMプロジェクトの実装およびデプロイ」を参照してください。プロセスベースのアプリケーションとユーザーとの相互作用については、第III部「ユーザーとビジネス・プロセスの相互作用の方法の定義」を参照してください。

Business Process Composerでは、ビジネス・ユーザーが設計と実装の両方に関連するタスクを実行できます。Business Process Composerを使用して、プロセスベースのアプリケーションを設計、実装、テストおよびデプロイできます。新しいプロセスベースのアプリケーションを作成するユース・ケースについては、2.2.1項「ユース・ケース: 新しいOracle BPMアプリケーションの作成」を参照してください。

一からBPMアプリケーションを作成するだけでなく、Oracle BPMでは、事前定義されたプロセスと実装の詳細が含まれるテンプレートを作成することもできます。ビジネス・ユーザーは、これらのテンプレートに基づいて新しいアプリケーションを作成できます。

詳細は、2.1.2項「コラボレーション」を参照してください。プロジェクト・テンプレートで作業するためのユース・ケースについては、2.2.2項「ユース・ケース: プロジェクト・テンプレートに基づいたOracle BPMアプリケーションの作成」を参照してください。

Business Process Composerでは、Microsoft Visioなど他のアプリケーションで作成したビジネス・プロセスをインポートすることもできます。詳細は、5.8項「プロセス・モデルのインポートとエクスポート」を参照してください。

2.1.2 コラボレーション

ビジネス・アプリケーションの開発では、ビジネス・ユーザーとプロセス開発者とのコラボレーションが必要になる場面が多く発生します。Business Process Composerを使用して、同様にBusiness Process Composerを使用する他のビジネス・ユーザーとコラボレートすることができます。Oracle BPM Studioを使用するプロセス開発者とのコラボレートも可能です。

様々なユーザーやツール間でのコラボレーションを円滑に行うために、Oracle BPMには次のコンポーネントが用意されています。

- BPMプロジェクト: 完全に機能するビジネス・アプリケーションで必要になるプロセスのすべてと、他のコンポーネントが含まれています。BPMNプロセスまたは他のアプリケーション・コンポーネントを編集するには、BPMプロジェクトを開いて編集する必要があります。BPMプロジェクトは、Business Process ComposerユーザーとOracle BPM Studioユーザー間で共有できます。
詳細は、4.1項「Oracle BPMプロジェクトの概要」を参照してください。

- BPMプロジェクト・テンプレート: BPMプロジェクトに基づいたテンプレートです。プロジェクト・テンプレートにより、ビジネス・アプリケーションの基本ビジネス・プロセスと実装の詳細を定義できます。ビジネス・ユーザーは、これらのテンプレートに基づいて新しいBPMプロジェクトを作成できます。
プロジェクト・テンプレートの使用の詳細は、第8章「プロジェクト・ライフサイクルの使用」を参照してください。

- BPMリポジトリ: BPMプロジェクトとプロジェクト・テンプレートを共有する一元化された共有場所を提供します。Business Process Composerを使用してBPMプロジェクトを保存すると、BPMリポジトリに保存されます。
BPMリポジトリの詳細は、4.1.2項「Oracle BPMリポジトリの概要」を参照してください。

Oracle BPM Studioを使用するプロセス開発者もBPMリポジトリにアクセスできます。

Oracle BPM Suiteのこれらのコンポーネントにより、ビジネス・ユーザーとプロセス開発者は、同じBPMプロジェクトを共有し、共同で作業できます。BPMリポジトリを使用してBPMプロジェクトを共有することにより、すべてのユーザーが、BPMプロジェクトをインポートしたりエクスポートしたりする必要なく、同じBPMNプロセスとアプリケーション・コンポーネントを編集できます。

2.1.3 シミュレーションとテスト

Business Process Composerには、プロセス・モデルのシミュレーションとテスト用の機能が備わっています。BPMプロジェクトをランタイムにデプロイする必要なく、プロセス設計中にこれら両方のタスクを実行できます。これにより、アプリケーションの設計とテストを1つのツールで実行することができます。

- シミュレーション: ビジネス・プロセスのパフォーマンス・シミュレーションを実行できます。パラメータ構成が異なる複数のシミュレーション・モデルを作成できます。これにより、様々なシナリオをテストしたり比較して、プロセスのパフォーマンスを向上させることができます。
詳細は、第6章「プロセス動作のシミュレート」を参照してください。

- プロセス・プレーヤ: アプリケーション内のプロセスを実行して、プロセスの動作とロジックをテストできます。プロセス・プレーヤは、プロセス・ワークスペースを使用してプロジェクトをデプロイし、プロセスを表示する必要なく、Business Process Composer内でプロセスをテストするための環境を提供します。
詳細は、第7章「プロセス・プレーヤの使用」を参照してください。

2.1.4 デプロイメント

Business Process Composerでは、ランタイム環境に直接BPMプロジェクトをデプロイできます。ビジネス・ユーザーは、プロセス開発者や管理者に依存することなく、直接アプリケーションをデプロイできます。

Business Process Composerを使用したBPMプロジェクトのデプロイの詳細は、第15章「BPMプロジェクトのデプロイ」を参照してください。

2.2 Business Process Composerユース・ケースの概要

Oracle Business Process Composerの主なユース・ケースは次の2つです。

- 新規BPMプロジェクトを作成します。
プロセス・アナリストおよびプロセス開発者は、Business Process Composerを使用して、デプロイ可能なプロセス・ベースのアプリケーションを一から作成することができます。これらのアプリケーションはBPMプロジェクトに含まれます。BPMプロジェクトには、アプリケーションが必要とするすべてのビジネス・プロセスおよび他のテクニカル・コンポーネントが含まれます。

Business Process Composerは、プロセス・アナリストとプロセス開発者がアプリケーション開発ライフサイクルのすべてのフェーズにおいてBPMプロジェクトを共有できる、コラボレーション環境も提供します。

たとえば、プロセス・アナリストはアプリケーションに必要なプロセス・フローを作成できます。次に、プロセス開発者がBusiness Process Composerでプロジェクトを開き、必要なコンポーネントを追加してビジネス・プロセスを他のシステムおよびサービスと接続することができます。または、プロセス開発者は必要に応じてOracle BPM Studioでプロジェクトを開き、Oracle BPMおよびSOAスイートで使用可能な機能をすべて利用することができます。

必要なビジネス・プロセスとサポート・コンポーネントを作成および実装した後、Business Process Composerを使用してBPMプロジェクトをランタイムに直接デプロイすることができます。

- プロジェクト・テンプレートに基づいてプロジェクトを作成、編集およびデプロイします。
プロジェクト・テンプレートは、他のプロセスベースのアプリケーションを作成するためのテンプレートとして使用されるBPMプロジェクトです。プロジェクト・テンプレートは、Oracle BPM Studioで作成されて、Oracle BPMメタデータ・サービス・パーティション内部に格納されます。Business Process Composerを使用すると、これらのテンプレートを使用して新規BPMプロジェクトを作成したり、既存のBPMプロジェクトを変更できます。

プロジェクト・テンプレートに基づくBPMプロジェクトを作成して、変更した後、これをBPMリポジトリに保存し、ランタイムにデプロイすることができます。

Business Process Composerでのプロジェクト・テンプレートの使用方法は、8.2項「BPMプロジェクト・テンプレートの概要」を参照してください。プロジェクト・テンプレートの作成方法は、Oracle BPMモデリングおよび実装ガイドを参照してください

次の各項では、異なるOracle BPMコンポーネント間の相互作用、および開発サイクルの各ステージを担うペルソナを示しながら、典型的なBusiness Process Composer使用シナリオを説明します。ただし、実際に使用されるワークフローは、それぞれのビジネス・ニーズに応じて異なります。プロセス・アナリストとプロセス開発者が共同でビジネス・プロセスを作成および改良していく過程では、何度も繰り返しが発生する場合があります。

2.2.1 ユース・ケース: Oracle BPMアプリケーションの新規作成

図2-1は、Business Process Composerを使用して新しいOracle BPMアプリケーションを作成するワークフローを示しています。このワークフローは、デプロイ可能なアプリケーションを作成する最も一般的な流れについて説明しています。現実のシナリオでは、設計、実装、テストのステージを数回繰り返して含むこともあります。また、複数のアナリストと開発者の間のコラボレーションも含まれます。

このユース・ケースの詳細なウォークスルーは、第3章「ウォークスルー: 基本BPMアプリケーションの作成」を参照してください。

図2-1 ユース・ケース: BPMアプリケーションの新規作成

「図2-1 ユース・ケース: BPMアプリケーションの新規作成」の説明

次の手順は、ワークフローの各ステージを説明しています。このワークフローで使用されているユーザー・ペルソナについては、1.2項「Oracle BPMのユーザー・ペルソナ」を参照してください。

1. ビジネス・プロセスをモデリングします(プロセス・アナリスト/プロセス開発者)。
プロセスベースのアプリケーションを作成する最初のステップは、必要なビジネス・プロセスのモデリングです。通常、これはアプリケーションのビジネス・ニーズに関して深い知識を持つプロセス・アナリストが実行しますが、プロセス・モデルの技術的要件についてのインプットを提供するプロセス開発者とのコラボレーションを含む場合もあります。

一般的なビジネス・プロセスの設計ワークフローは次のとおりです。

1. BPMプロジェクトを作成します。
BPMプロジェクトには、プロセスベースのアプリケーションのすべてのプロセスとリソースが含まれています。詳細は、4.4項「プロジェクトの作成および使用」を参照してください。

2. BPMNプロセスを作成します。
Oracle BPMアプリケーションの設計で、プロジェクトを作成した後の次のステップは、必要なビジネス・プロセスを作成することです。ビジネス・プロセスには、アプリケーションの動作を定義するモデルが含まれます。

ビジネス・プロセスの作成方法は、5.3.1項「新規ビジネス・プロセスを作成する方法」を参照してください。ビジネス・プロセスの一般的な情報は、5.1項「ビジネス・プロセスの概要」を参照してください。

3. 必要なBPMNフロー・オブジェクトとシーケンス・フローをプロセスに追加します。

4. ビジネス・プロセスのユーザー相互作用を設計します。

Business Process Composerを使用したビジネス・プロセスの設計については、第II部「ビジネス・プロセスのモデリングおよびテスト」を参照してください。

2. ビジネス・プロセスを実装します(プロセス・アナリスト/プロセス開発者)。
プロセス・アナリストがOracle BPMアプリケーションが必要とするプロセスのモデリングおよびテストを行った後、プロセス開発者はそれらプロセスをアプリケーションの他のコンポーネントの他、外部のシステムおよびサービスとも統合できます。

1. アプリケーションで使用されるデータを定義します(プロセス開発者)。
Oracle BPMを使用して、アプリケーションに必要なデータ構造を定義できます。

アプリケーション内でデータ構造を作成するための一般的な手順については、12.1.1項「Oracle BPMアプリケーションで使用されるデータの定義方法」を参照してください。データ・オブジェクトの詳細は、12.2項「データ・オブジェクトの概要」を参照してください。ビジネス・オブジェクトの詳細は、12.4項「ビジネス・オブジェクトの概要」を参照してください。

2. アプリケーションで必要なヒューマン・タスクを定義します(プロセス開発者)。
ヒューマン・タスクを使用して、アプリケーションのユーザーがタスクを完了するために従うワークフローを定義します。ヒューマン・タスクでは、フォームを使用してアプリケーションのユーザー・インタフェースを定義します。

3. プロセスを他のプロセス、システムおよびサービスに接続します(プロセス開発者)。
プロセス開発者は、他のプロセス、システムおよびサービスにアクセスするようにBPMNプロセスを構成できます。詳細は、14項「他のプロセスおよびサービスとの通信」を参照してください。

3. 実装の詳細を作成します(プロセス開発者)。
Oracle Business Process Management Studioを使用して、アプリケーションによって必要な実装の詳細を作成します。

1. プロセスのエラー処理方法を定義します。

2. 詳細なヒューマン・タスク・パラメータを構成します。

4. プロセスのパフォーマンスと動作をテストします(プロセス・アナリスト)。
Business Process Composerを使用してシミュレーションを実行することにより、プロセスのパフォーマンスをテストできます。詳細は、第6章「プロセス動作のシミュレート」を参照してください。

また、Business Process Composerで、プロセス・プレーヤを使用してプロセスの動作をテストできます。詳細は、第7章「プロセス・プレーヤの使用」を参照してください。

5. BPMプロジェクトをデプロイします(プロセス・アナリスト)。
BPMプロジェクトのデプロイは、Oracle BPMランタイム環境にプロジェクトをインストールするプロセスです。BPMプロジェクトをランタイムにデプロイするには、いくつか方法があります。どの方法を使用するかは、ロールおよびアプリケーションのデプロイに使用するツールによって異なります。

- Business Process Composerを使用してランタイムに直接プロセスをデプロイします(プロセス・アナリスト、プロセス開発者)。詳細は、15.2項「プロジェクトのデプロイ」を参照してください。

- BPMプロジェクトをBPMリポジトリに保存し、その後Oracle BPM Studioからプロジェクトを開いてデプロイします(プロセス開発者)。詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

- プロジェクトをSARファイルとしてエクスポートし(プロセス・アナリスト、プロセス開発者)、その後Oracle BPMランタイムにデプロイします(ビジネス管理者)。

2.2.2 ユース・ケース: プロジェクト・テンプレートに基づいたOracle BPMアプリケーションの作成

図2-2は、BPCを使用してプロジェクト・テンプレートに基づいてOracle BPMアプリケーションを作成する典型的なワークフローを示しています。プロジェクト・テンプレートを使用すると既製のBPMプロジェクトのライブラリが利用でき、新規のデプロイ可能なアプリケーションを迅速に作成できます。プロジェクト・テンプレートには、ビジネス・カタログの一部として事前に構成された必要な実装がすべて含まれています。これによって、プロセス・アナリストは必要に応じてプロセスを変更し、必要な実装を接続し、プロジェクトをランタイムにデプロイすることができます。

図2-2 プロジェクト・テンプレートに基づいたOracle BPMアプリケーションの作成

「図2-2 プロジェクト・テンプレートに基づいたOracle BPMアプリケーション」の説明

このワークフローの各ステージは次のとおりです。このワークフローで使用されているユーザー・ペルソナについては、1.2項「Oracle BPMのユーザー・ペルソナ」を参照してください。

1. 2.2.1項「ユース・ケース: Oracle BPMアプリケーションの新規作成」で説明されている作業用BPMアプリケーションを作成します。

2. プロジェクト・テンプレートを作成します(プロセス開発者)。
プロセス開発者がOracle BPM Studioを使用してプロジェクト・テンプレートを作成します。プロジェクト・テンプレートは標準のBPMプロジェクトに基づいていますが、通常は、事前に構成されたビジネス・カタログの必要な要素をすべて含んでいます。

3. プロジェクト・テンプレートをOracle BPMリポジトリに公開します(プロセス開発者)。
作成したプロジェクト・テンプレートをOracle BPM StudioのOracle BPMリポジトリに公開します。Oracle BPMに公開されたプロジェクト・テンプレートは、プロセス・アナリストがBusiness Process Composerを使用して利用できます。

4. Business Process Composerを使用して、プロジェクト・テンプレートを基にプロジェクトを作成します。(プロセス・アナリスト)
Business Process Composerを使用して、プロジェクト・テンプレートに基づく新規のBPMプロジェクトを作成できます。

プロジェクト・テンプレートに基づいて新しいプロジェクトを作成する方法は、8.3項「プロジェクト・テンプレートの使用」を参照してください。プロジェクト・テンプレートに関する一般的な情報については、8.2項「BPMプロジェクト・テンプレートの概要」を参照してください。

5. テンプレート内に定義されている編集ポリシーに従って、BPMプロジェクトおよびプロセスを編集します(プロセス・アナリスト)。
編集ポリシーは、プロジェクト・テンプレートから作成されたプロジェクトに対して行える変更と行えない変更を定義します。これらはプロジェクト・テンプレートを作成するプロセス開発者によって定義されます。

編集ポリシーが定義されていない場合は、他のBPMプロジェクトと同様にプロジェクトおよびプロセスを編集できます。Oracle BPMでサポートされている各BPMNフロー・オブジェクトのリファレンス情報については、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。

6. プロジェクトを検証します(プロセス・アナリスト)。
プロジェクトはモデリングおよび実装サイクルを通して検証する必要がありますが、ランタイムにプロジェクトをデプロイする前に検証エラーをすべて解決する必要があります。

7. ランタイムにプロジェクトをデプロイします。
プロジェクトのデプロイは、Oracle BPMランタイム環境にプロジェクトをインストールするプロセスです。BPMプロジェクトをランタイムにデプロイするには、いくつか方法があります。どの方法を使用するかは、ロールおよびアプリケーションのデプロイに使用するツールによって異なります。

- Business Process Composerを使用してランタイムに直接プロセスをデプロイします(プロセス・アナリスト、プロセス開発者)。詳細は、15.2項「プロジェクトのデプロイ」を参照してください。

- BPMプロジェクトをBPMリポジトリに保存し、その後Oracle BPM Studioからプロジェクトを開いてデプロイします(プロセス開発者)。

- プロジェクトをSARファイルとしてエクスポートし(プロセス・アナリスト、プロセス開発者)、その後Oracle BPMランタイムにデプロイします(ビジネス管理者)。

2.3 Oracle Business Process Composerへのサインオン

Business Process Composerにサイオンするには、ビジネス管理者から次の情報が提供されている必要があります。

- URL: Business Process Composerがインストールされている場所。

- ユーザー名: Business Process Composerへのアクセスに使用するユーザー名。

- パスワード: Business Process Composerへのアクセスに使用するセキュリティ資格証明。

注意:

Oracle BPM Suiteでは、Oracle Application Server Single Sign-onがデフォルトで有効になっています。OracleAS Single Sign-Onを使用すると、1つのシングル・サインオン・セッションで複数のWebベース・アプリケーションにアクセスできます。OracleAS Single Sign-Onが有効化されており、他のアプリケーションにサインオン済の場合、Business Process Composerのサインオン画面が表示されない場合があります。

Oracle Business Process Composerにサインオンするには

1. Business Process ComposerのURLに移動します。
図2-3は、Oracle BPMアプリケーションのロード後に表示されるサインオン画面を示しています。

図2-3 Oracle Business Process Composerサインオン画面

「図2-3 Oracle Business Process Composerサインオン画面」の説明

2. ユーザー名とパスワードを入力し、「ログイン」をクリックします。

Business Process Composerにサインオンすると、図2-4のようなアプリケーションのホーム・ページが表示されます。

注意:

1つのブラウザ・セッションからのみBusiness Process Composerにサインオンできます。同じユーザーの同時セッションはサポートされていません。

2.4 Business Process Composerユーザー・インタフェースの概要

Business Process Composerアプリケーションは、BPMプロジェクトを簡単に作成、編集、管理できるように設計されています。BPMプロジェクトはOracle BPMアプリケーションの主要なコンポーネントであり、ビジネス・プロセスを含め、アプリケーションに必要なリソースをすべて含んでいます。詳細は、第4章「BPMプロジェクトの使用」を参照してください。

Business Process Composerのユーザー・インタフェースを図2-4に示します。

図2-4 Oracle Business Process Composerアプリケーションのユーザー・インタフェース

「図2-4 Oracle Business Process Composerアプリケーションのユーザー・インタフェース」の説明

Business Process Composerアプリケーションの主要コンポーネントは次の4つです。

- Business Process Composerツールバー

- Business Process Composerのメインメニュー

- Business Process Composerのようこそページ

- プロジェクト・エディタ

それぞれの詳細は次の各項で説明します。

2.4.1 Business Process Composerツールバーの概要

Business Process Composerツールバーからは、一般的なアプリケーション機能にアクセスできます。図2-5に、アプリケーションのツールバーを示します。

図2-5 Business Process Composerツールバー

「図2-5 Business Process Composerツールバー」の説明

注意:

「管理」メニュー・アイテムを使用できるのは、Business Process Composer管理者のみです。このメニュー・アイテムは他のユーザーには表示されません。

このツールバーは、アプリケーションの右上隅にあります。このツールバーは、アプリケーションの各ページから使用できます。アプリケーション・ツールバーからは、次の要素にアクセスできます:

表2-1 Business Process Composerアプリケーション・ツールバー

ツールバーの要素

説明

ユーザー名

現行ユーザーの名前が表示されます。このテキスト・フィールドは読取り専用です。

管理

Business Process Composerの管理ページにアクセスします。このアイテムは、管理者セキュリティ・ロールが付与されているユーザーにのみ表示されます。詳細は、第16章「管理タスクの実行」を参照してください。

プリファレンス

一般的なアプリケーション・プリファレンスを構成できます。

ヘルプ

このガイドのHTMLバージョンが表示されます。

サインアウト

現行ユーザーをサインアウトします。

ネットワークの接続性

現在のネットワークステータスが表示されます。

- 静止した青いアイコンは、ネットワークが動作していないことを示します。

- 回転している青いアイコンは、Business Process Composerがアプリケーション・サーバーに接続していることを示します。

- 回転している赤いアイコンは、Business Process Composerがアプリケーション・サーバーに接続を試みていますが接続できないことを示します。

- 静止した赤いアイコンは、アプリケーション・サーバーとの接続が失わたことを示します。

2.4.2 Business Process Composerのようこそページの概要

Business Process Composerアプリケーションのようこそページを使用すると、BPMリポジトリ内に保存されているプロジェクトを表示および使用できます。図2-6は、プロジェクトのようこそページを示しています。ようこそページの他の領域と機能については、次の項で説明します。

図2-6 プロジェクト・ブラウザ

「図2-6 プロジェクト・ブラウザ」の説明

詳細は、第4章「BPMプロジェクトの使用」を参照してください。

2.4.2.1 プロジェクト・ビュー

プロジェクト・ビューを使用すると、特定の基準に基づいてプロジェクト・ブラウザを表示できます。プロジェクト・ビューを選択するには、図2-6に示すように、プロジェクトのようこそページの左側からアイコンを選択します。表2-2では、様々なタイプのプロジェクト・ビューについて説明します。

表2-2 プロジェクト・ビュー

プロジェクト・ビュー

説明

すべてのプロジェクト

現行ユーザーに表示または編集の権限がある、BPMリポジトリ内のすべてのプロジェクトが表示されます。

Business Process Composer管理者に対しては、プライベートではないプロジェクトがすべて表示されます。プライベート・プロジェクトは、プロジェクト所有者にのみ表示されます。

お気に入り

現行ユーザーがお気に入りとマークしたプロジェクトのみが表示されます。

自分の所有

現行ユーザーが所有するプロジェクトのみが表示されます。

自分と共有

現行ユーザーと共有するプロジェクトのみが表示されます。

ランタイム・プロジェクト

ランタイムにデプロイ済のプロジェクトのみが表示されます。

2.4.2.2 プロジェクト・ブラウザ

プロジェクト・ブラウザはBPMリポジトリの階層ビューで、図2-6の中央部に示すように、プロジェクトやプロジェクト・フォルダなどが表示されます。

プロジェクト・ブラウザを使用すると、新規のプロジェクトやプロジェクト・フォルダを作成したり、プロジェクトを削除することもできます。

2.4.2.3 コントロール・パネル

コントロール・パネルを使用すると、プロジェクトやプロジェクト・フォルダをプロジェクト・ブラウザに表示する方法を制御できます。図2-7は、プロジェクト・ブラウザのコントロール・パネルを示しています。

図2-7 プロジェクト・ブラウザのコントロール・パネル

「図2-7 プロジェクト・ブラウザのコントロール・パネル」の説明

2.4.2.4 検索

「検索」フィールドを使用すると、名前、作成者または説明に基づいて、リポジトリ内のプロジェクトを検索できます。「検索」フィールドは、図2-6に示すように、プロジェクトのようこそページの右上隅にあります。

2.4.3 Business Process Composerのメイン・メニューの概要

アプリケーションのメイン・メニューからは、頻繁に使用するコマンドや機能にアクセスできます。このメニューには、アプリケーションおよびプロジェクトのようこそページからアクセスできます。メニューにアクセスするには、図2-8に示すように、上部に表示されたアイコンをクリックします。

図2-8 プロジェクトのようこそページから表示されたアプリケーションのメイン・メニュー

「図2-8 プロジェクトのようこそページから表示されたアプリケーションのメイン・メニュー」の説明

アプリケーションのメイン・メニューからは、表2-3に説明するメニュー・アイテムにアクセスできます。

表2-3 アプリケーションのメイン・メニュー・アイテム

メニュー・アイテム

説明

新規

次を作成することができます:

- BPMプロジェクト。
詳細は、4.4.2項「新規プロジェクトを作成する方法」を参照してください。

- シミュレーション

- サービス

開く

次のオプションを提供します。

- プロジェクトを開く
BPMリポジトリ内に格納されているプロジェクトを開くことができます。詳細は、4.4.4項「メイン・メニューを使用してプロジェクトを開く方法」を参照してください。

- デプロイ済プロジェクトを開く
BPMランタイム環境にデプロイされたプロジェクトを開くことができます。ランタイムにビジネス・ルールを編集できます。詳細は、第13章「Oracle Business Rulesの使用」を参照してください。

インポート

Business Process Composerにプロジェクトおよびおよびプロセス・モデルをインポートする機能を提供します。インポートしたプロジェクトはBPMリポジトリに格納されます。詳細は、8.1項「プロジェクトのインポートとエクスポート」を参照してください。

エクスポート

プロジェクトをローカル・ファイル・システムにエクスポートできます。詳細は、8.1項「プロジェクトのインポートとエクスポート」を参照してください。

デプロイメント

次のオプションを提供します。

- プロジェクトのデプロイ

- プロジェクトSARファイルの生成

- デプロイメント計画の生成

詳細は、第15章「BPMプロジェクトのデプロイ」を参照してください。

プロセス・レポート

プロジェクト内のプロセスに関する詳細を表示するレポートを生成できます。

プロセス・プレーヤ

「プロセス・プレーヤ」ウィンドウを起動します。詳細は、第7章「プロセス・プレーヤの使用」を参照してください。

編集

現在のプロジェクトを編集モードに切り替えます。

保存

現在のプロジェクトへの変更を保存します。

共有

プロジェクトを他のユーザーと共有するように構成できます。

取消

変更を保存せずに、プロジェクトのロックを解放します。

プロジェクトの検証

プロジェクトを検証します。

プロジェクトを閉じる

現在のプロジェクトを閉じます。

2.4.4 プロジェクトのようこそページの概要

BPMプロジェクトを開くと、プロジェクトのようこそページがデフォルトで表示されます。プロジェクトのようこそページからは、BPMプロジェクト内のすべてのリソースにアクセスできます。また、プロジェクトのプロパティおよびステータスを表示できます。ビジネス・プロセスおよび他のプロジェクト・コンポーネントを作成し、使用することもできます。

図2-9は、営業見積サンプル・プロジェクトのようこそページを示しています。

図2-9 プロジェクトのようこそページ

「図2-9 プロジェクトのようこそページ」の説明

プロジェクトのようこそページの使用方法は、4.2項「プロジェクトのようこそページの概要」を参照してください。

3 ウォークスルー: 基本BPMアプリケーションの作成

この章では、BPMプロジェクトの作成、BPMNプロセスの作成、設計、テスト、BPMプロジェクトのランタイムへのデプロイに必要な一般的なステップの概要を示します。必要なタスクを実行するための追加の情報や手順を説明する他の章へのリンクも含まれています。

この章は次の項で構成されています:

- 3.1項「BPMプロジェクトの設定」

- 3.2項「BPMNプロセスのモデリング」

- 3.3項「BPMNプロセスの実装 - ユーザー相互作用の定義」

- 3.4項「BPMNプロセスの実装 - ビジネス・ルールの作成」

- 3.5項「BPMNプロセスの実装 - サービスの定義」

- 3.6項「プロセスで使用されるデータの定義」

3.1 BPMプロジェクトの設定

ビジネス・プロセスのモデリングを開始する前に、BPMプロジェクトを設定する必要があります。次の項では、Oracle Business Process ComposerにログインしてBPMプロジェクトを作成し、保存する方法について説明します。

BPMプロジェクトには、ビジネス・アプリケーションで必要なすべてのコンポーネントが含まれます。これには、Oracle BPMアプリケーションのコアを形成するBPMNプロセスと、アプリケーションを他のプロセスやデータベースに接続するために使用されるテクニカル・コンポーネントが含まれます。詳細は、4.1項「Oracle BPMプロジェクトの概要」を参照してください。

次の項では、Business Process Composerにログインして新しいBPMプロジェクトを作成し、出張リクエスト・アプリケーションの動作を定義するBPMNプロセスを作成する方法について説明します。

3.1.1 Business Process Composerへのログイン

BPMプロジェクトを作成する前に、システム管理者により指定される次の情報を使用してBusiness Process Composerにログインする必要があります。

- URL: Business Process Composerがインストールされている場所。

- ユーザー名: Business Process Composerへのアクセスに使用するユーザー名。

- パスワード: Business Process Composerへのアクセスに使用するセキュリティ資格証明。

Oracle Business Process Composerにログインするには:

1. Business Process ComposerのURLに移動します。
図3-1は、Oracle BPMアプリケーションのロード後に表示されるサインオン画面を示しています。

図3-1 Oracle Business Process Composerサインオン画面

「図3-1 Oracle Business Process Composerサインオン画面」の説明

注意:

Oracle BPM Suiteでは、Oracle Application Server Single Sign-onがデフォルトで有効になっています。OracleAS Single Sign-Onを使用すると、1つのシングル・サインオン・セッションで複数のWebベース・アプリケーションにアクセスできます。OracleAS Single Sign-Onが有効化されており、他のアプリケーションにサインオン済の場合、Business Process Composerのサインオン画面が表示されない場合があります。

2. ユーザー名とパスワードを入力し、「ログイン」をクリックします。

ログインすると、Business Process Composerには図3-2のようなアプリケーションのようこそページが表示されます。

図3-2 アプリケーションのようこそページ

「図3-2 アプリケーションのようこそページ」の説明

アプリケーションのようこそページとBusiness Process Composerユーザー・インタフェースの詳細は、2.4項「Business Process Composerユーザー・インタフェースの概要」を参照してください。

3.1.2 BPMプロジェクトを作成して開く

Business Process Composerへのログイン後、BPMアプリケーションを作成するための最初のステップは、新規BPMプロジェクトを作成することです。アプリケーションのようこそページから新しいプロジェクトを直接作成します。

BPMプロジェクトを作成して開くには:

1. 「新規プロジェクト」(+)アイコンをクリックします。

2. 図3-3のように、「Travel_Request」と入力してから、「プロジェクトの作成」をクリックします。

図3-3 アプリケーションのようこそページからの新規プロジェクトの作成

「図3-3 アプリケーションのようこそページからの新規プロジェクトの作成」の説明

図3-4のように、階層形式のプロジェクト・ツリーに新規のプロジェクトが表示されます。

図3-4 アプリケーションのようこそページでのTravel Requestプロジェクト

「図3-4 アプリケーションのようこそページでのTravel Requestプロジェクト」の説明

プロジェクト・ツリーには、今まで作成した、または表示のためにアクセスしたことのあるすべてのプロジェクトが表示されます。BPMプロジェクトの使用の詳細は、第4章「BPMプロジェクトの使用」を参照してください。

3. Travel Requestプロジェクトを開くには、プロジェクト・ツリー上のそのプロジェクト名をクリックします。

BPMプロジェクトを開くと、プロジェクトのようこそページが表示されます。プロジェクトのようこそページでは、完全に機能するBPMアプリケーションに必要なプロセスとコンポーネントを作成、表示および編集できます。

図3-5は、新しいBPMプロジェクトのようこそページです。

図3-5 新規BPMプロジェクト作成後のプロジェクトのようこそページ

「図3-5 新規BPMプロジェクト作成後のプロジェクトのようこそページ」の説明

BPMプロジェクトの一般的な情報は、第4章「BPMプロジェクトの使用」を参照してください。

3.1.3 BPMNプロセスの作成

BPMプロジェクトを開いたら、BPMNプロセスなど出張リクエスト・アプリケーションに必要なリソースを作成できます。出張リクエスト・アプリケーションでは、TravelRequestProcessという名前のBPMNプロセスを作成する必要があります。

ビジネス・プロセスの定義のひとつは、明確に定義された結果が発生するタスクのシーケンスです。BPMNプロセスは、フロー・オブジェクトを使用してアプリケーションによって実行されるタスクを定義します。Oracle BPMにおけるビジネス・プロセスの一般的な情報は、5.1項「ビジネス・プロセスの概要」を参照してください。

新しいBPMNプロセスを作成するには:

1. プロジェクトのようこそページで、「プロセス」タブを選択します。

2. 「新規プロセス」をクリックしてから、図3-6のように「TravelRequestProcess」と入力します。

図3-6 出張リクエスト・プロセスの作成

「図3-6 出張リクエスト・プロセスの作成」の説明

3. 「作成」をクリックします。

作成したプロセスが、「プロセス」タブに表示されます。追加のBPMNプロセスを作成した場合には、それもこのタブに表示されます。

3.1.4 BPMプロジェクトの保存

BPMプロジェクトの編集中は、いつでも変更を保存できます。Business Process Composerは、BPMプロジェクトをBPMリポジトリに保存します。BPMリポジトリは、Business Process ComposerやOracle BPM Studioの他のユーザーとコラボレーションできる共有リポジトリです。

詳細は、4.1.2項「Oracle BPMリポジトリの概要」を参照してください。

BPMプロジェクトをBPMリポジトリに保存するには:

1. 図3-7に示すように、プロジェクト・ツールバーの「保存」をクリックします。

図3-7 プロジェクト・ツールバー

「図3-7 プロジェクト・ツールバー」の説明

プロジェクトの保存は、基本的なBPMプロジェクトを設定する際の最後の手順です。プロジェクトを保存したら、フロー・オブジェクトとシーケンス・フローを追加することにより、ビジネス・プロセスのモデリングを開始できます。これらの要素を使用して出張リクエスト・アプリケーションの具体的な動作を定義する方法については、3.2項「BPMNプロセスのモデリング」で説明します。

3.2 BPMNプロセスのモデリング

BPMNは、プロセス・フローを定義する標準形式です。

これらのタスクを実行する順序を定義するのが、シーケンス・フローです。Business Process Composerを使用してビジネス・プロセスを作成する一般的な手順は、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。Oracle Business Process ManagementでサポートされるBPMNフロー・オブジェクトの詳細は、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。

出張リクエスト・アプリケーションの場合は、出張リクエストの作成および承認に伴う各ステップがこれらのタスクに当たります。これには、エンド・ユーザーのアプリケーションとの対話およびデータベースの更新など自動化されたタスクが必要であればそれも含まれます。

3.2.1 ビジネス・プロセスを開く

ビジネス・プロセスは、プロジェクトのようこそページから直接開くことができます。

ビジネス・プロセスを開くには:

1. プロジェクトのようこそページで、「プロセス」タブを選択します。

2. TravelRequestProcessをクリックします。

図3-8のように、プロセスがプロセス・エディタ上に開きます。

図3-8 新規プロセス作成後のプロセス・エディタ

「図3-8 新規プロセス作成後のプロセス・エディタ」の説明

プロセス・エディタでは、フロー・オブジェクトとシーケンス・フローをプロセスに追加できます。プロセス・エディタの詳細は、5.2.2項「プロセス・エディタ・キャンバスの概要」を参照してください。Oracle BPMでサポートされるBPMNフロー・オブジェクトの詳細は、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。

新しいBPMNプロセスを作成すると、デフォルトで、None開始イベントおよび終了イベントが作成されます。詳細は、付録A「None開始イベントの概要」を参照してください。

3.2.2 ユーザー・タスクの追加

ビジネス・プロセスを作成し、開いたら、プロセス・フローを定義するBPMNフロー・オブジェクトを追加できるようになります。出張リクエスト・アプリケーションで必要とされる最初のアクティビティは、ユーザーが出張リクエストを送信できるようにすることです。

ユーザー・タスクは、ユーザー相互作用の定義に使用されるBPMNフロー・オブジェクトです。BPMNコンポーネント・パレットからプロセスにユーザー・タスクをドラッグ・アンド・ドロップすることによって、ユーザー・タスクをプロセスに追加できます。

ユーザー・タスクの詳細は、付録A「ユーザー・タスクの概要」を参照してください。コンポーネント・パレットについては、5.2.3項「BPMNコンポーネント・パレットの概要」を参照してください。

プロセスにユーザー・タスクを追加するには:

1. 図3-9に示されているように、BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。

図3-9 BPMNコンポーネント・パレットの選択

「図3-9 BPMNコンポーネント・パレットの選択」の説明

2. コンポーネント・パレットで「対話型」をクリックします。
出張リクエスト・プロセスの初期タスクとして、イニシエータ・タスクを追加する必要があります。イニシエータ・ユーザー・タスクは、ビジネス・プロセスを開始するユーザー・タスクです。イニシエータ・タスクは、プロセス・インスタンスを作成し、プロセス・フローの最初のユーザー・タスクになります。

3. 「イニシエータ」アイコンをクリックして、プロセス・エディタ・キャンバス上のプロセスの開始イベントと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。

4. シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。ユーザー・タスクの追加後、プロセスは図3-10のようになります。

図3-10 ユーザー・タスク追加後の出張リクエスト・プロセス

「図3-10 ユーザー・タスク追加後の出張リクエスト・プロセス」の説明

この方法でシーケンス・フローにフロー・オブジェクトを追加すると、シーケンス・フローは自動的に受信シーケンス・フローおよび送信シーケンス・フローとして接続されます。

5. 新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。

6. 「名前」フィールドで、名前を「Submit Request」に変更します。

7. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。

8. プロジェクトを保存します。

Submit Requestユーザー・タスクを追加すると、出張リクエスト・プロセスの最初の段階が定義されます。このユーザー・タスクにより実装されるユーザー・インタフェースの定義方法については、3.3項「BPMNプロセスの実装 - ユーザー相互作用の定義」で説明します。

3.2.3 プロジェクトの保存

引き続きBPMNフロー・オブジェクトをプロセスに追加する場合は、変更内容を保存する必要があります。BPMプロジェクトを保存することにより、変更内容をプロセスに保存します。詳細は、3.1.4項「BPMプロジェクトの保存」を参照してください。

3.2.4 新規ロールの作成

ロールは、プロセスで定義されているタスクを実行するユーザーまたはユーザーのグループを定義する単位です。これらのタスクへのアクセス権があるかどうかも定義します。BPMNプロセスでは、ロールはプロセス・エディタ・キャンバスの水平方向に表示されるスイムレーンに対応します。

出張リクエスト・プロセスの場合は、出張リクエストの作成を担当しそのアクセス権を持つ従業員のロールが必要です。このロールを追加するには、Submit Requestユーザー・タスクを含むEmployeeという名前のロールを作成する必要があります。

プロセスで従業員ロールを作成するには:

1. プロセス・エディタ・キャンバスの左上にある「未割当てロール」テキストの上にマウス・カーソルを置き、「編集」アイコンをクリックします。

2. 「作成」を選択してから、図3-11のように「Employee」と入力します。

図3-11 出張リクエスト・プロセスでの新規ロールの作成

「図3-11 出張リクエスト・プロセスでの新規ロールの作成」の説明

3. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。

4. プロジェクトを保存します。

従業員ロールが作成され、スイムレーンのタイトルとして表示されます。作成したロールは、同じプロセス内の他のスイムレーンで再利用できます。同じBPMプロジェクト内の他のプロセスによってロールを共有することもできます。

プロジェクトをデプロイする際に、プロセス管理者はプロセス・ワークスペースを使用して、BPMプロジェクトで定義されているロールを組織の実際のユーザーにマップします。

3.2.5 ビジネス・ルール・タスクの追加

出張リクエスト・アプリケーションで、従業員が発行する出張リクエストが一定の金額未満の場合、手動による承認は必要ありません。これをBPMNプロセスでモデリングするには、指定されたリクエストが一定金額より上か下かを計算するビジネス・ルール・タスクを使用します。

ビジネス・ルール・タスクは、プロセス内にビジネス・ルールを実装できるBPMNフロー・オブジェクトです。出張リクエスト・アプリケーションでは、出張リクエストに関する情報を格納するデータ・オブジェクトの値のチェックを実行するためにビジネス・ルールが使用されます。

このコンテキストでは、ビジネス・ルールとデータ・オブジェクトの作成は、ビジネス・プロセスの実装の一部として実行されます。出張リクエスト・アプリケーションでのビジネス・ルールの定義方法については、3.4.2項「新規ビジネス・ルールの作成と入出力データ・オブジェクトの定義」を参照してください。

ビジネス・ルール・タスクをプロセスに追加するには:

1. BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。

2. 「アクティビティ」をダブルクリックします。

3. 「ビジネス・ルール」アイコンをクリックして、Submit Requestユーザー・タスクと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。

4. シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。

5. 新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。

6. 「名前」フィールドで、名前を「Approval Rules」に変更します。

7. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。

8. プロジェクトを保存します。

ビジネス・ルール・タスクを追加し、編集した後、プロセスは図3-12のようになります。

図3-12 ビジネス・ルール・タスク追加後の出張リクエスト・プロセス

「図3-12 ビジネス・ルール・タスク追加後の出張リクエスト・プロセス」の説明

3.2.6 新規スイムレーンの追加とマネージャ・ロールの作成

従業員ロールの他、出張リクエスト・プロセスでは出張リクエストの承認を担当するマネージャのロールも必要です。新規ロールの作成に加えて、BPMNプロセスで新しいスイムレーンも作成する必要があります。Business Process Composerでは、プロセス・エディタ・キャンバスの空白領域にアクティビティをドラッグして新規スイムレーンを簡単に作成できます。

新規スイムレーンを追加し、マネージャ・ロールを作成するには:

1. ビジネス・ルール・タスクをダブルクリックし、従業員スイムレーンの下の領域にドラッグします。

2. マウス・ボタンを放します。
Business Process Composerによって新規スイムレーンが作成されます。デフォルトでは、新規スイムレーンにロールは割り当てられていません。

3. プロセス・エディタ・キャンバスの左にある「未割当てロール」テキストの上にマウス・カーソルを置き、「編集」アイコンをクリックします。

4. 「作成」を選択し、「Manager」と入力します。

5. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
従業員ロールが作成され、スイムレーンのタイトルとして表示されます。作成したロールは、同じプロセス内の他のスイムレーンで再利用できます。同じBPMプロジェクト内の他のプロセスによってロールを共有することもできます。

6. 終了イベントをダブルクリックし、マネージャ・スイムレーンまでドラッグします。

7. プロジェクトを保存します。

新しいスイムレーンを作成および追加し、マネージャ・ロールを作成した後、プロセスは図3-13のようになります。

図3-13 マネージャ・ロール追加後の出張リクエスト・プロセス

「図3-13 マネージャ・ロール追加後の出張リクエスト・プロセス」の説明

3.2.7 排他ゲートウェイの追加

出張リクエスト・プロセスでは、出張リクエストの金額に関するチェックを実行するためにビジネス・ルール・タスクを使用します。しかし、トークンがビジネス・プロセスを通過する実際のパスはゲートウェイによって決定されます。ゲートウェイは、特定の条件、通常はデータ・オブジェクトの値に基づいてビジネス・プロセス中のパスを決定するBPMNフロー・オブジェクトです。BPMNでサポートされているゲートウェイの詳細は、A.7項「ゲートウェイを使用したプロセス・フローの制御」を参照してください。

出張リクエスト・プロセスには、出張リクエストの金額に応じて2つのパスがあります。いずれか一方のオプションしか使用できない場合に2つのパスのいずれかを選択する処理には、排他ゲートウェイを使用します。

プロセスに排他ゲートウェイを追加するには:

1. BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。

2. コンポーネント・パレットで、「ゲートウェイ」をダブルクリックします。

3. 「排他ゲートウェイ」アイコンをダブルクリックして、ビジネス・ルール・タスクと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。

4. シーケンス・フローが点滅し始めたら、再度クリックするとプロセスに排他ゲートウェイが追加されます。

5. 排他ゲートウェイのテキストをダブルクリックし、「Manual Approval Required?」と入力します。

6. [Enter]を押して、変更内容を登録します。

7. プロジェクトを保存します。

排他ゲートウェイの追加後、プロセスは図3-14のようになります。

図3-14 排他ゲートウェイ追加後の出張リクエスト・プロセス

「図3-14 排他ゲートウェイ追加後の出張リクエスト・プロセス」の説明

出張リクエスト・アプリケーションの設計フェーズ後半では、シーケンス・フローを追加します。出張リクエストが手動の承認を必要としない場合に従う条件シーケンス・フローを追加する方法は、3.2.11項「却下された出張リクエストを処理するシーケンス・フローの追加」で説明しています。

BPMNプロセスで使用されるデータ・オブジェクトを定義するときに、プロセスがどちらの送信シーケンス・フローをとるかを評価するための式も定義する必要があります。詳細は、3.6項「プロセスで使用されるデータの定義」を参照してください。

3.2.8 Approve Requestユーザー・タスクの追加

出張リクエスト・プロセスで手動の承認が必要な場合には、ユーザーが出張リクエストを承認または却下できる新しいユーザー・タスクを追加する必要があります。

承認ユーザー・タスクを追加するには:

1. BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。

2. コンポーネント・パレットで「対話型」をクリックします。

3. 「ユーザー・タスク」アイコンをダブルクリックし、プロセス・エディタ・キャンバス上の排他ゲートウェイと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。

4. シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。

5. 新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。

6. 「名前」フィールドで、名前を「Approve Request」に変更します。

7. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。

8. プロジェクトを保存します。

出張リクエストの承認を処理するユーザー・タスクを追加した後、プロセスは図3-15のようになります。

図3-15 承認ユーザー・タスク追加後の出張リクエスト・プロセス

「図3-15 承認ユーザー・タスク追加後の出張リクエスト・プロセス」の説明

3.2.9 排他ゲートウェイの追加

出張リクエスト・アプリケーションでは、出張リクエストが拒否された場合、ユーザーが別の出張リクエストを入力できるように、プロセス・フローが初期ステップに戻る必要があります。BPMNでこれをモデリングするために、承認結果を処理する排他ゲートウェイを追加できます。

排他ゲートウェイを追加するには:

1. BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。

2. コンポーネント・パレットで、「ゲートウェイ」をダブルクリックします。

3. 「排他ゲートウェイ」アイコンをダブルクリックして、Approve Requestユーザー・タスクと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。

4. シーケンス・フローが点滅し始めたら、再度クリックするとプロセスに排他ゲートウェイが追加されます。

5. 新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。

6. 「名前」フィールドで、名前を「Approval Outcome」に変更します。

7. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。

8. プロジェクトを保存します。

承認結果を処理する排他ゲートウェイの追加後、プロセスは図3-16のようになります。

図3-16 排他ゲートウェイ追加後の出張リクエスト・プロセス

「図3-16 排他ゲートウェイ追加後の出張リクエスト・プロセス」の説明

3.2.10 出張リクエストをデータベースに保存するサービス・タスクの追加

出張リクエスト・アプリケーションの最後の要件は、出張リクエストをデータベースに保存することです。データベースのような他のシステムとの接続をモデリングするには、BPMNはサービス・タスクを使用します。設計フェーズ中に、サービス・タスクをプロセス・モデルに追加してから、サービスの技術的な実装情報を定義できます。

サービス・タスクを追加するには:

1. BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。

2. 「アクティビティ」をダブルクリックします。

3. 「サービス・タスク」アイコンをダブルクリックして、Approval Outcome排他ゲートウェイと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。

4. シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。

5. 新しく追加したサービス・タスクの上にマウスを移動し、「編集」アイコンをクリックします。

6. 「名前」フィールドで、名前を「Save Request」に変更します。

7. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。

8. プロジェクトを保存します。

サービス・タスクの追加後、プロセスは図3-17のようになります。

図3-17 サービス・タスク追加後の出張リクエスト・プロセス

「図3-17 サービス・タスク追加後の出張リクエスト・プロセス」の説明

サービス・タスクは、出張リクエスト・アプリケーションが必要とする最後のBPMNフロー・オブジェクトです。図3-17に示されているプロセス・フローは、出張リクエスト・アプリケーションの基本フローを定義します。次の項で、プロセスの代替パスを処理するシーケンス・フローを追加および構成する方法について説明します。

3.2.11 却下された出張リクエストを処理するシーケンスの追加

考慮すべきプロセスの最初の代替パスは、出張リクエストが拒否された場合のパスになります。3.2.9項「排他ゲートウェイの追加」では、出張リクエストが却下されたのか承認されたのかを決定する排他ゲートウェイを追加しています。ここでは、却下された出張リクエストを処理するシーケンスを追加する必要があります。このシーケンス・フローは、プロセス・インスタンスをSubmit Requestユーザー・タスクに戻します。

新規シーケンス・フローを追加するには:

1. Approval Outcome排他ゲートウェイ上にマウス・カーソルを置きます。
「編集」アイコンと「シーケンス・フローの追加」アイコンが図3-18のように表示されます。

図3-18 新規シーケンス・フローの追加

「図3-18 新規シーケンス・フローの追加」の説明

2. 「シーケンス・フローの追加」アイコンをクリックし、Submit Requestユーザー・タスクまでドラッグします。

3. Submit Requestユーザー・タスクが点滅し始めたら、クリックして、シーケンス・フローを追加します。

4. シーケンス・フローをクリックして、ドラッグし、プロセス・エディタ・キャンバス内で位置を変更します。

5. シーケンス・フローの上にマウスを移動し、「編集」アイコンをクリックします。

6. 「名前」フィールドに「Rejected」と入力し、ドロップダウン・リストから「条件付き」を選択します。

却下された出張リクエストを処理するシーケンス・フローの追加後、プロセスは図3-19のようになっています。

図3-19 Rejectedシーケンス・フロー追加後の出張リクエスト・プロセス

「図3-19 Rejectedシーケンス・フロー追加後の出張リクエスト・プロセス」の説明

3.2.12 デフォルト承認用シーケンス・フローの編集と追加

出張リクエスト・アプリケーションによって必要とされる2つ目の代替パスは、手動承認が必要ないケースを処理するパスです。この場合、リクエストはデータベースに保存されます。このケースを処理するには、次の操作を実行する必要があります。

- Manual Approval Required?排他ゲートウェイのデフォルト送信シーケンス・フローを編集します。

- 排他ゲートウェイからSave Requestサービス・タスクにシーケンス・フローを追加します。

デフォルト承認を処理するには:

1. Manual Approval RequiredゲートウェイとApprove Requestユーザー・タスク間のシーケンス・フローの上にマウスを移動し、編集アイコンをクリックします。

2. 図3-20に示されているように、名前を「Yes」に変更したら、ドロップダウン・リストから「無条件」を選択します。

図3-20 Approval Outcomeゲートウェイのシーケンス・フローの編集

「図3-20 Approval Outcomeゲートウェイのシーケンス・フローの編集」の説明

3. プロパティ・ポップアップの外側をクリックすると、変更が記録されます。

4. Manual Approval Required?排他ゲートウェイの上にマウスを移動し、「シーケンス・フローの追加」アイコンをクリックします。

5. Save Requestサービス・タスクの上にマウスを移動します。

6. サービス・タスクが点滅し始めたら、クリックして、シーケンス・フローを追加します。

7. シーケンス・フローをクリックして、ドラッグし、その位置を変更します。

出張リクエストの承認を処理するシーケンス・フローの編集および追加後、プロセスは図3-21のようになっています。

図3-21 完成した出張リクエスト・プロセス

「図3-21 完成した出張リクエスト・プロセス」の説明

3.2.13 プロジェクト・スナップショットの作成

プロジェクト・スナップショットを作成しすることにより、プロジェクトのバックアップを作成できます。プロジェクト・スナップショットは、BPMリポジトリに格納され、スナップショットを使用して以前のバージョンやリビジョンを復元できます。

プロジェクト・スナップショットを作成するには:

1. プロジェクトのようこそページに移動し、「スナップショット」をクリックします。
スナップショット・ブラウザが表示されます。

2. 「追加」(+)アイコンをクリックし、「名前」フィールドに「TravelRequestVersion1」と入力します。

3. 「作成」をクリックします。
リストにスナップショットが表示され、そのスナップショットを作成した日付とユーザー名も表示されます。

4. 「OK」をクリックして、スナップショット・ブラウザを閉じます。

スナップショット・ブラウザから、以前のバージョンのプロジェクトを開くことができます。

3.3 BPMNプロセスの実装 - ユーザー相互作用の定義

ビジネス・プロセスの一般的なフローを設計した後、フロー・オブジェクトの具体的な実装詳細を追加できるようになります。この項では、ユーザーとプロセスの相互作用を定義するための手順について説明します。ヒューマン・タスクを作成する方法とWebフォームを作成および構成する方法について説明します。

3.3.1 ヒューマン・タスクを作成して開く

ヒューマン・タスクとは、ユーザーとBPMアプリケーションとの相互作用を定義できるOracle BPM内のサービス・タイプです。ヒューマン・タスクでは、技術的な機能とランタイム機能に加えて、アプリケーションのユーザー・インタフェース・コンポーネントも定義できます。Oracle BPMでのヒューマン・タスクの使用方法の詳細は、第11章「ヒューマン・タスクの使用」を参照してください。

ヒューマン・タスクを作成して開くには:

1. 3.2項「BPMNプロセスのモデリング」で作成したTravelRequestプロセスを開きます。

2. 図3-22のように、Submit Requestユーザー・タスクを右クリックして、「実装」を選択します。

図3-22 ユーザー・タスクからの実装オプションの選択

「図3-22 ユーザー・タスクからの実装オプションの選択」の説明

実装エディタが図3-23のようになります。

図3-23 実装エディタ

「図3-23 実装エディタ」の説明

3. 「ヒューマン・タスク」テキスト・ボックスの隣の「追加」(+)アイコンをクリックします。

4. 「名前」フィールドに「SubmitRequest」と入力し、「作成」をクリックします。

5. 「変更の適用」をクリックします。

6. ウィンドウの右側にある「ペインの縮小」矢印をクリックして、実装エディタを閉じます。

7. Submit Requestユーザー・タスクを右クリックして、「ヒューマン・タスクを開く」を選択します。

ヒューマン・タスクがヒューマン・タスク・エディタに開きます。詳細は、11.2項「ヒューマン・タスク・エディタの概要」を参照してください。ヒューマン・タスクを作成した後、プロジェクトのようこそページの「ヒューマン・タスク」タブにも表示されます。ヒューマン・タスクは、プロジェクトのようこそページから直接作成して開くこともできます。

3.3.2 Webフォームの作成

Webフォームは、プロセスベースのアプリケーションのユーザー・インタフェース・コンポーネントを定義します。Webフォームはヒューマン・タスクに関連付けられます。Oracle BPMでのWebフォームの使用の詳細は、9.1項「Oracle BPMでのフォームの概要」を参照してください。

Webフォーム・エディタを使用して、Webフォーム・コンポーネントをフォーム・キャンバス上までドラッグしてドロップすることにより、フォームのレイアウトを作成できます。

Webフォームを作成するには:

1. ヒューマン・タスク・エディタから、「基本」タブを選択します。

2. 「プレゼンテーション」で、「Webフォーム」を選択し、「追加」(+)アイコンをクリックします。

3. 「名前」フィールドに「TravelApprovalForm」と入力し、「作成」をクリックします。

4. 「編集」(鉛筆)アイコンをクリックします。

WebフォームがWebフォーム・エディタに開きます。

3.3.3 Webフォームへの基本的なコントロールの追加

Webフォームを作成するための最初のステップは、Webフォーム・キャンバスへのWebフォーム・コントロールの追加です。フォーム・コントロールは、フォーム・コントロール・パレット上でクリックして、キャンバスにドラッグすることによって追加できます。

Webフォームにコントロールを追加するには:

1. Webフォーム・コントロール・パレットでテキストWebフォーム・コントロールをクリックして、フォーム・キャンバスの長方形上までドラッグします。緑の位置アイコンが表示されたら、もう一度クリックして、Webフォーム・コントロールを追加します。
Webフォーム・コントロールの追加の詳細は、9.7.1項「Webフォームにコントロールを追加する方法」を参照してください。コントロールの追加後、Webフォームは図3-24のようになっています。

図3-24 テキストWebフォーム・コントロール追加後の出張承認フォーム

「図3-24 テキストWebフォーム・コントロール追加後の出張承認フォーム」の説明

2. Webフォーム・キャンバスで、追加したばかりのテキスト・コントロールを選択します。

3. プロパティ・エディタの「ラベル」プロパティに「Name」と入力します。

4. Webフォーム・コントロール・パレットで日付Webフォーム・コントロールをクリックし、フォーム・キャンバス上の「Name」テキスト・コントロールの下までドラッグします。緑の下向き矢印が表示されたら、もう一度クリックして、Webフォーム・コントロールを追加します。

5. Webフォーム・キャンバスで、追加したばかりの日付コントロールを選択します。選択されたコントロールは青色にハイライト表示されます。

6. プロパティ・エディタの「ラベル」プロパティに「Date」と入力します。

7. Webフォーム・コントロール・パレットで金額Webフォーム・コントロールをクリックし、フォーム・キャンバス上の「Date」日付コントロールの下までドラッグします。緑の下向き矢印が表示されたら、もう一度クリックして、Webフォーム・コントロールを追加します。

8. Webフォーム・キャンバスで、追加したばかりの金額コントロールを選択します。

9. プロパティ・エディタの「ラベル」プロパティに「Total Amount」と入力します。

10. 有効プロパティを選択解除します。

11. プロジェクトを保存します。

「Name」コントロール、「Date」コントロールおよび「Total Amount」コントロールの追加後、Webフォームは図3-25のようになっています。

図3-25 基本Webフォーム・コントロール追加後の出張承認Webフォーム

「図3-25 基本Webフォーム・コントロール追加後の出張承認Webフォーム」の説明

3.3.4 Webフォームへのタブ・コントロールの追加

他のWebフォーム・コントロールを整理またはグループ化するためのWebフォーム・コントロールもあります。出張承認Webフォームを使用しやすくするために、Webフォーム内にタブ付きペインを作成するタブ・コントロールを追加できます。

Webフォームにタブ・コントロールを追加するには:

1. Webフォーム・コントロール・パレットでタブWebフォーム・コントロールをクリックし、フォーム・キャンバス上の「Total Amount」Webフォーム・コントロールの下までドラッグします。カーソルが緑の下向き矢印になったら、もう一度クリックして、タブ・コントロールを追加します。
タブ・コントロールをフォームに追加すると、自動的に3つのタブが作成されます。ただし、ここでは2つのタブのみ必要です。

2. タブ2を選択し、「削除」(-)アイコンをクリックします。

3. タブ0を選択します。

4. プロパティ・エディタの「名前」フィールドに「Trip Details」と入力します。

5. タブ1を選択します。

6. プロパティ・エディタの「名前」フィールドに「Expense Details」と入力します。

タブWebフォーム・コントロールの追加後、Webフォームは図3-26のようになっています。

図3-26 タブWebフォーム・コントロール追加後の出張承認Webフォーム

「図3-26 タブWebフォーム・コントロール追加後の出張承認Webフォーム」の説明

3.3.5 各タブへのコントロールの追加

出張承認Webフォームのレイアウトを完成させるために、各タブにコントロールを追加できます。

タブ・コントロールにコントロールを追加するには:

1. 「Trip Details」タブを選択します。

2. Webフォーム・コントロール・パレットで、表3-1に示されている各コントロールをクリックして、Webフォーム・キャンバスの「Trip Details」タブ上までドラッグします。各コントロールを追加するだけでなく、プロパティ・エディタの「設定」タブと「スタイル」タブを使用してプロパティを編集し、コントロールをカスタマイズする必要があります。

表3-1 「Trip Details」タブのWebフォーム・コントロールの設定

コントロール名

コントロール・タイプ

設定

スタイル

Country

ドロップダウン

ラベル = "Country"

なし

City

ドロップダウン

ラベル = "City"

なし

Purpose of Visit

ラジオ

オプション1=Internal Meeting
オプション2=Customer Visit
オプション3=Training
オプション4=Seminar

アイテムの幅=25%

Customer Name

テキスト

ラベル= "Customer Name"
「参照可能」を選択解除

なし

Justification

テキスト領域

ラベル = "Justification"

幅 = 80%

「Trip Details」タブへの各Webフォーム・コントロールの追加後、フォームは[Fig x.x]のようになっています。

図3-27 「Trip Details」タブを表示する出張承認Webフォーム

「図3-27 「Trip Details」タブを表示する出張承認Webフォーム」の説明

3. 「Expense Details」タブを選択します。

4. Webフォーム・コントロール・パレットで、表3-2に示されている各コントロールをクリックして、Webフォーム・キャンバスの「Expense Details」タブ上までドラッグします。各コントロールを追加するだけでなく、プロパティ・エディタの「設定」タブと「スタイル」タブを使用してプロパティを編集し、コントロールをカスタマイズする必要があります。

表3-2 「Expense Details」タブのWebフォーム・コントロールの設定

コントロール名

コントロール・タイプ

設定

スタイル

Expense Line

セクション

ラベル = "Expense Line"

なし

Expense Type

ドロップダウン

ラベル = "Expense Type"
オプション1=Air
オプション2=Cab
オプション3=Train
オプション4=Hotel
オプション5=Other

なし

Amount

金額

ラベル = "Money"

「Expense Details」タブへの各Webフォーム・コントロールの追加後、完成フォームは図3-28のようになっています。

図3-28 「Expense Details」タブを表示する出張承認Webフォーム

「図3-28 「Expense Details」タブを表示する出張承認Webフォーム」の説明

3.3.6 Webフォームのテスト

Webフォームのレイアウトを作成し、必要なWebフォーム・コントロールを追加した後、Webフォーム・エディタから直接、その動作をテストできます。

Webフォームをテストするには:

1. 図3-29のようなWebフォーム・エディタ・ツールバーのWebフォームのテストボタンをクリックします。

図3-29 Webフォーム・ツールバー

「図3-29 Webフォーム・ツールバー」の説明

Webフォームがポップアップ・ウィンドウに表示されます。各フィールドに値を入力することにより、データ入力コントロールをテストできます。フィールドに無効なデータが入力されると、エラーが表示されます。

2. フォームのテストが終了したら、「閉じる」ボタンをクリックします。

3.3.7 合計金額を計算するフォーム・ルールの追加

フォーム・ルールにより、Webフォームに動的な動作を追加することができます。TravelRequest Webフォームは、フォーム・ルールを使用して、出張リクエストの合計金額を計算します。

合計金額を計算するフォーム・ルールを追加するには:

1. Webフォーム・エディタ・ツールバーのフォーム・ルールボタンをクリックします。

2. 「追加」(+)ボタンをクリックします。

3. 「ルールの編集」ボタンをクリックします。

4. 「名前」フィールドに「Total Expense」と入力します。

5. ルールテキスト領域に次のテキストを入力します。

var total = 0;
for (var i = 0; i < Amount.value.length; i++) {
total = total + Amount[i].value;
}
TotalAmount.value = total;

6. 図3-29に示すように、「Webフォームのテスト」ボタンをクリックします。

3.3.8 フォームに動的な機能を追加するフォーム・ルールの追加

TravelRequestアプリケーションでは、出張の目的が顧客訪問に設定された場合に、顧客フィールドを動的に有効にするフォーム・ルールを作成できます。

フォームに動的な機能を追加するフォーム・ルールを追加するには:

1. Webフォーム・ルール・エディタの新規フォーム・ルールの作成(+)ボタンをクリックします。

2. フォーム・ルールの「編集」ボタンをクリックします。

3. 「名前」フィールドに「Enable Customer」と入力します。

4. ルールテキスト領域に次のテキストを入力します。

if (PurposeOfVisit.value == 'Customer Visit') {
CustomerName.visible = true;
}
else {
CustomerName.visible = false;
}

5. 図3-29に示すように、「Webフォームのテスト」ボタンをクリックします。

3.3.9 オプションのリストに動的に移入するフォーム・ルールの追加

出張リクエスト・アプリケーションで必要とされる2つ目のフォーム・ルールは、オプション・リストを動的に移入するフォーム・ルールです。

オプション・リストを動的に移入するフォーム・ルールを追加するには:

1. Webフォーム・ルール・エディタの新規フォーム・ルールの作成(+)ボタンをクリックします。

2. フォーム・ルールの「編集」ボタンをクリックします。

3. 「名前」フィールドに「Country Dropdown」と入力します。

4. ルールテキスト領域に次のテキストを入力します。

if (form.load) {
url = 'http://localhost:7001/LOVHelper/jersey/listvalues/countries';
eval ('x=' + http.get(url));
Country.options = x;
}1

5. 図3-29に示すように、「Webフォームのテスト」ボタンをクリックします。

3.4 BPMNプロセスの実装 - ビジネス・ルールの作成

3.3項「BPMNプロセス - ユーザー相互作用の定義」では、ユーザー・タスクと関連付けられているヒューマン・タスクおよびWebフォームを実装することにより、出張リクエスト・アプリケーションのユーザー・インタフェースを定義しました。この項では、出張リクエスト・アプリケーションが必要とするビジネス・ルールを作成するプロセスを確認し、ビジネス・ルールをビジネス・ルール・タスク・フロー・オブジェクトに割り当てる方法について説明します。

3.4.1 ビジネス・オブジェクトの作成

ビジネス・ルールを作成する前に、ビジネス・ルールの入出力引数を定義するデータ・オブジェクトを作成する必要があります。データ・オブジェクトを使用すると、アプリケーションにより使用されるデータ構造を定義できます。詳細は、12.2項「データ・オブジェクトの概要」を参照してください。

ビジネス・オブジェクトを作成するには:

1. プロジェクトのようこそページで、「ビジネス・オブジェクト」タブを選択して、「新規ビジネス・オブジェクト」をクリックします。

2. 「名前」フィールドに「RuleInput」と入力し、「親モジュール」の横の「追加」(+)アイコンをクリックします。

3. 「BusinessData」と入力し、「OK」をクリックします。

4. ドロップダウン・リストから「BusinessData」を選択し、「作成」をクリックします。

5. 「新規ビジネス・オブジェクト」をクリックします。

6. 「名前」フィールドに「RuleOutput」と入力し、「親モジュール」ドロップダウン・リストから「BusinessData」を選択します。

7. 「作成」をクリックします。

データ・オブジェクトの作成後、データ・オブジェクト内で使用されるデータ型を定義する属性を追加することにより、データ・オブジェクトを構成する必要があります。

ビジネス・オブジェクトを構成するには:

1. プロジェクトのようこそページで、「ビジネス・オブジェクト」タブを選択して、「RuleInput」をクリックします。

2. データ・オブジェクト・ツリーで、「RuleInput」を選択します。

3. 「追加」メニューをクリックし、「新規属性の追加」を選択します。

4. 「名前」フィールドに「amount」と入力し、ドロップダウン・リストから「実数」を選択します。

5. 「OK」をクリックします。
データ・オブジェクト・ツリーの「RuleInput」の下にamount属性が表示されます。

6. データ・オブジェクト・ツリーで、「RuleInput」を選択します。

7. 「追加」メニューをクリックし、「新規属性の追加」を選択します。

8. 「名前」フィールドに「manualApproval」と入力し、ドロップダウン・リストから「ブール」を選択します。

9. 「OK」をクリックします。
データ・オブジェクト・ツリーの「RuleInput」の下にmanualApproval属性が表示されます。

10. プロジェクトを保存します。

この項で定義したデータ・オブジェクトは比較的単純なものです。実際のアプリケーションでは、1つのデータ・オブジェクトに、複数のデータ型を持つ複数のモジュールが含まれる場合があります。

3.4.2 新規ビジネス・ルールの作成と入出力データ・オブジェクトの定義

入力データと出力データ用のビジネス・オブジェクトを定義したら、新規ビジネス・ルールを作成できます。

新規ビジネス・ルールを作成して、入出力データ・オブジェクトを定義するには:

1. プロジェクトのようこそページで、「ルール」タブを選択して、「新規ビジネス・ルール」をクリックします。

2. 「名前」フィールドに「ApprovalRule」と入力します。

3. 入力データ・オブジェクトを追加します。

1. 「追加」(+)アイコンをクリックします。

2. 「名前」フィールドの右側のドロップダウン・リストから「入力」を選択します。

3. 「名前」フィールドに「ruleInput」と入力します。

4. 「タイプ」ドロップダウン・リストから、「<component>」を選択します。
「ビジネス・オブジェクト」ドロップダウン・リストが表示されます。

5. 「ビジネス・オブジェクト」ドロップダウン・リストから、「/BusinessData/RuleInput」を選択します。

6. 「追加」をクリックします。

表に入力データ・オブジェクトが表示されます。

4. 出力データ・オブジェクトを追加します。

1. 「追加」(+)アイコンをクリックします。

2. 「名前」フィールドの右側のドロップダウン・リストから「出力」を選択します。

3. 「名前」フィールドに「ruleOutput」と入力します。

4. 「タイプ」ドロップダウン・リストから、「<component>」を選択します。
「ビジネス・オブジェクト」ドロップダウン・リストが表示されます。

5. 「ビジネス・オブジェクト」ドロップダウン・リストから、「/BusinessData/RuleOutput」を選択します。

6. 「追加」をクリックします。

図3-30のように、表に出力データ・オブジェクトが表示されます。

図 3-30 入出力データ・オブジェクトが表示された「ビジネス・ルールの作成」ダイアログ

「図 3-30 入出力データ・オブジェクトが表示された「ビジネス・ルールの作成」ダイアログ」の説明

5. 「OK」をクリックして、ビジネス・ルールを作成します。
ビジネス・ルールが、プロジェクトのようこそページの「ビジネス・ルール」タブに表示されます。

6. プロジェクトを保存します。

3.4.3 バケットセットの作成と構成

新規ビジネス・ルールを作成した後、これを構成する最初のステップは、バケットセットを作成して構成することです。バケットセットは、ビジネス・ルールの異なるプロパティの値リストまたは値範囲を定義します。TravelRequestアプリケーションでは、出張リクエストを手動で承認する必要があるかどうかを決定する値の範囲をバケットセットにより定義します。

バケットセットを作成および構成するには:

1. プロジェクトのようこそページで、「ルール」タブを選択して、「ApprovalRule」をクリックします。
ルール・エディタが表示されます。ビジネス・ルールとルール・エディタの使用についての一般的な情報は、第13章「Oracle Business Rulesの使用」を参照してください。

2. 「バケットセット」タブを選択します。

3. 「追加」メニューをクリックし、「範囲リスト」を選択します。新しいバケットセットが作成され、表に表示されます。

4. 表からバケットセットを選択し、「バケットセットの編集」アイコンをクリックします。

5. バケットセットに対して次の値を入力します。

- 名前: AmountRange

- データ型: float

6. 次の手順でバケットを作成します。

1. 「バケットの追加」(+)アイコンをクリックします。

2. 「エンドポイント」列に「5000」と入力します。

3. 「エイリアス」列に「Low」と入力します。

エンドポイント値が7000と10000のバケットを追加します。値が表す内容を反映するように、エイリアス列を更新することもできます。バケットセットの表は、図3-31のようになります。

図3-31 承認ルール用に定義されたバケット

「図3-31 承認ルール用に定義されたバケット」の説明

7. 「OK」をクリックして、バケットセットの構成を終了します。

詳細は、『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』のファクトおよびバケットセットの使用に関する項を参照してください。

3.4.4 デシジョン表の作成と構成

バケットセットを定義した後、ビジネス・ルールを構成するための次のステップは、デシジョン表の定義です。デシジョン表は、ビジネス・ルールのパフォーマンスを決定する一連のIF-THEN文を提供します。これらの文は、スプレッドシートに似た表形式で配置されます。

詳細は、『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』のデシジョン表の使用に関する項を参照してください。

デシジョン表を作成および構成するには:

1. プロジェクトのようこそページで、「ルール」タブを選択して、「ApprovalRule」をクリックします。

2. ルールセット1をクリックします。

3. 「追加」メニューをクリックし、「デシジョン表の追加」を選択します。

4. 「名前」フィールドに「Approval Decision Table」と入力します。

5. 次の手順で条件を作成して構成します。

1. デシジョン表で「条件」を選択します。

2. 「追加」メニューから「条件の追加」を選択します。

3. 条件ブラウザで、「RuleInputType」を開いて、「Amount」を選択します。

4. 「OK」をクリックします。
RuleInputType.amountが表内に表示されます。

5. 表からRuleInputType.amountを選択して、バケットセットのリストから「Amount_Ranges」を選択します。

6. RuleInputType.amountに対応する列R1内のセルをクリックして、「低」と「非常に低」の隣のチェック・ボックスを選択します。

6. 次の手順でアクションを作成して構成します。

1. デシジョン表で「アクション」を選択します。

2. 「追加」メニューから「アクションの追加」、「新規をアサート」の順に選択します。

3. 「ファクト」の下のRuleOutputTypeを選択します。

4. 「プロパティ」の下の「パラメータ化」と「定数」を選択します。

5. 「OK」をクリックします。

6. 新規をアサートRuleOutputTypeに対応する列R1(ルール1の略)のセル内のチェック・ボックスを選択します。

7. セルの下のテキスト・フィールドに「false」と入力します。

アクションを作成し、構成した後、デシジョン表は図3-32のようになります。

図3-32 アクションの作成および構成後のデシジョン表

「図3-32 アクションの作成および構成後のデシジョン表」の説明

3.4.5 ビジネス・ルール・タスクへのビジネス・ルールの割当て

ビジネス・ルールを作成および構成した後、これをビジネス・ルール・タスクに割り当てる必要があります。

ビジネス・ルール・タスクにビジネス・ルールを割り当てるには:

1. プロジェクトのようこそページで、「プロセス」タブを選択して、TravelRequestプロセスをクリックします。

2. 承認ルール・ビジネス・タスクを右クリックして、「実装」を選択します。

3. 「ルール」フィールドの横の「参照」アイコンをクリックし、「ApprovalRule」をクリックします。

4. 「変更の適用」をクリックします。

3.5 BPMNプロセスの実装 - サービスの定義

設計フェーズでは、出張リクエストをデータベースに保存するステップをモデリングするサービス・タスクを追加しました。BPMNプロセスを実装するための次のステップは、データベースの接続に使用されるサービスを定義することです。Business Process Composerを使用して、新しいサービスを作成できます。

サービスを定義して、サービス・タスクに割り当てるには:

1. プロジェクトのようこそページで、TravelRequestプロセスを開きます。

2. コンポーネント・パレットの上のドロップダウン・リストから「ビジネス・カタログ」を選択します。

3. 「サービスの追加」(+)アイコンをクリックします。

4. 「名前」フィールドに「SaveRequest」と入力します。

5. 「タイプ」ドロップダウン・リストから、「参照」を選択します。

6. WSDLサービスの下の「URL」を選択して、テキスト・フィールドに値を入力します。一般的な値は次のとおりです。

http://localhost:7001/soa-infra/services/default/SaveRequest/saverequestsync_client_ep?WSDL

使用する値は環境によって異なるので、システム管理者が指定する必要があります。URLを入力した後、WSDLに関する情報を判断するため、Business Process ComposerはそのURLに接続します。この接続に成功すると、Business Process Composerは、「ポート・タイプ」ドロップダウン・リストと「コールバック・タイプ」ドロップダウン・リストに移入します。

7. 「ポート・タイプ」ドロップダウン・リストと「コールバック・タイプ」ドロップダウン・リストから値を選択します。

8. 「OK」をクリックします。

9. 「保存」をクリックします。

10. TravelRequestプロセスを開きます。

11. SaveRequestサービス・タスクを右クリックして、「実装」を選択します。

12. 「タイプ」ドロップダウン・リストから、「サービス・コール」を選択します。

13. SaveRequestサービスをクリックします。

14. 「操作」ドロップダウン・リストから「プロセス」を選択します。

15. 「変更の適用」をクリックします。

16. プロジェクトを保存します。

3.6 プロセスで使用されるデータの定義

ビジネス・プロセスのモデリングと実装では、アプリケーションで使用されるデータを定義する必要があります。出張リクエスト・アプリケーションで必要となるデータを定義するには、出張リクエストについての情報を格納する際に必要となるデータ型を定義する必要があります。これらのデータ型はデータ・オブジェクトによって定義されます。ユーザーが、実装フェーズ中に作成されたWebフォームによって定義されたユーザー・インタフェースに情報を入力すると、この情報がデータ・オブジェクトに格納されます。

BPMNプロセス内で使用される式も定義できます。式は、データ・オブジェクトに格納される値を評価したり変更したりするのに使用されます。

3.6.1 データ・オブジェクトの作成

データ・オブジェクト・エディタを使用して、Business Process Composer上でデータ・オブジェクトを作成および編集します。

出張リクエスト・プロセスで必要となるデータ・オブジェクトを作成するには:

1. TravelRequestプロセスを開きます。

2. 図3-33で強調表示されている、プロセス・エディタ・ツールバーの「データ・オブジェクト」ボタンをクリックします。

図3-33 「データ・オブジェクト」ボタンが強調表示されているプロセス・エディタ・ツールバー

「図3-33 「データ・オブジェクト」ボタンが強調表示されているプロセス・エディタ・ツールバー」の説明

データ・オブジェクト・エディタが表示されます。

3. 図3-34に示されているように、「追加」メニューから「プロセス・データ・オブジェクト」を選択します。

図3-34 データ・オブジェクト・エディタでの新規データ・オブジェクトの作成

「図3-34 データ・オブジェクト・エディタでの新規データ・オブジェクトの作成」の説明

4. 「名前」フィールドに「requestDataObj」と入力します。

5. 「タイプ」ドロップダウン・リストから、「<component>」を選択します。このオプションを選択すると、「ビジネス・オブジェクト」ドロップダウン・リストが表示されます。

6. ドロップダウン・リストからTypes.TravelApprovalFormを選択し、「OK」をクリックします。
新しいデータ・オブジェクトが作成され、TravelRequestノードの下に表示されます。プロジェクト・データ・オブジェクトを作成している場合、Travel_Requestの下に表示されています。プロジェクト・データ・オブジェクトとプロセス・データ・オブジェクトについては、12.2.2項「プロセスおよびプロジェクト・データ・オブジェクトの概要」を参照してください。

7. 前記の手順により、次の表に示されているパラメータを使用する2つの追加プロセス・データ・オブジェクトを作成します。

名前

タイプ

approvalOutcome

文字列

manualApproval

ブール

これらのデータ・オブジェクトを作成したら、データ・オブジェクト・エディタは図3-35のようになっています。

図3-35 プロセス・データ・オブジェクトが表示されているデータ・オブジェクト・エディタ

「図3-35 プロセス・データ・オブジェクトが表示されているデータ・オブジェクト・エディタ」の説明

8. 「閉じる」をクリックします。

3.6.2 式と条件の定義

式を使用して、データ・オブジェクトに格納されるデータを評価したり、必要に応じて値を変更したりできます。出張リクエスト・プロセスでは、式を使用して、次のことを行います。

手動承認シーケンス・フローの式を定義するには:

1. いいえシーケンス・フローの上にマウスを移動し、「編集」ボタンをクリックします。

2. 「実装」をクリックします。

3. 「条件」テキスト・フィールドの横の「編集」をクリックします。
式エディタが表示されます。

4. 式エディタで、「manualApproval==false」と入力します。

5. 「検証」をクリックして、式が有効であることを確認し、OKをクリックします。

6. 実装エディタで「変更の適用」をクリックします。

却下されたシーケンス・フローの式を定義するには:

1. 却下シーケンス・フローの上にマウスを移動し、「編集」ボタンをクリックします。

2. 「実装」をクリックします。

3. 「条件」テキスト・フィールドの横の「編集」をクリックします。

4. 式エディタで、「approvalOutcome=="REJECT"」と入力します。

5. 「検証」をクリックして、式が有効であることを確認し、OKをクリックします。

6. 実装エディタで「変更の適用」をクリックします。

3.6.3 データ・アソシエーションの定義

ビジネス・プロセスでデータがどのように使用されるのか定義するための最後のステップは、データ・アソシエーションの定義します。データ・アソシエーションを使用してBPMNフロー・オブジェクト間で情報を渡す方法を定義します。

ヒューマン・タスクに対してデータ・アソシエーションを定義するには:

1. Submit Requestヒューマン・タスクを右クリックし、「データ・アソシエーション」を選択します。
データ・アソシエーション・エディタが表示されます。

2. 右側の「データ・オブジェクト」ペインで、「データ・オブジェクト」を開きます。

3. requestDOをクリックし、Submit Requestヒューマン・タスクの「出力」テキスト・フィールドまでドラッグします。

4. また、requestDOをクリックし、Submit Requestヒューマン・タスクの「入力」テキスト・フィールドまでドラッグします。

5. 「適用」をクリックします。

第II部

ビジネス・プロセスのモデリングおよびテスト

この部では、Business Process Composerを使用してビジネス・プロセスをモデリングする方法について説明します。ここではアプリケーションの全般的な概要を示します。

この部には、次の章が含まれます。

- 第4章「BPMプロジェクトの使用」

- 第5章「プロセスおよびプロセス・エディタの使用」

- 第6章「プロセス動作のシミュレート」

- 第7章「プロセス・プレーヤの使用」

- 第8章「プロジェクト・ライフサイクルの使用」

4 BPMプロジェクトの使用

この章では、Oracle Business Process Composerを利用してBPMプロジェクトを作成および使用する方法について説明します。

この章の内容は次のとおりです。

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

- 4.2項「プロジェクトのようこそページの概要」

- 4.3項「プロジェクトの共有およびコラボレーションの概要」

- 4.4項「プロジェクトの作成および使用」

- 4.5項「ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成」

- 4.6項「プロジェクトで使用するロールの定義」

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

BPMプロジェクトは、Oracle BPMアプリケーションの中核的な要素です。BPMプロジェクトには、ビジネス・アプリケーションの作成とサポートに使用されるリソースが含まれます。これらのリソースには、ビジネス・プロセスと、データ・オブジェクト、サービス、ビジネス・ルール、ヒューマン・タスク、ロールなどのビジネス・カタログのコンポーネントが含まれます。

Business Process Composerで新規プロジェクトを直接作成するか、Oracle BPM Studioを使用して作成したプロジェクト・テンプレートに基づいてプロジェクトを作成および編集できます。

BPMプロジェクトは、プロセス・アナリストとプロセス開発者間のコラボレーションを推進します。Business Process ComposerとOracle BPM Studioでは、BPMリポジトリを使用してプロジェクトを共有することができます。詳細は、4.1.2項「Oracle BPMリポジトリの概要」を参照してください。

Oracle Business Process Composerを使用して、BPMプロジェクトを検証し、ランタイムにデプロイすることができます。詳細は、第15章「BPMプロジェクトのデプロイ」を参照してください。

4.1.1 プロジェクト・コンポーネントおよびリソースの概要

各プロジェクトには1つ以上のビジネス・プロセスが含まれています。ビジネス・プロセスやアプリケーションで使用される他のリソースが含まれることもあります。アプリケーションが他のアプリケーションおよびシステムに接続したり、アプリケーションのユーザー・インタフェースを定義することを可能にする再利用可能なリソースも含まれます。

Business Process Composerでは、完全に機能するBPMアプリケーションを作成、テストおよびデプロイできます。ただし、Oracle BPM Studioを使用しないと実行できない高度な機能もあります。これらの機能には、次のものがあります。

- プロジェクト・テンプレートの作成

- 詳細なヒューマン・タスク・パラメータの構成

- ADFフォームの作成と表示

- 外部参照の作成

- 例外の作成

4.1.1.1 編集可能なプロジェクト・リソース

Business Process Composerを使用して、次のプロジェクト・リソースを作成および編集できます。

- プロセス
ビジネス・プロセスは、ビジネス・アプリケーションの中核的な要素です。プロセスは、関連したタスクまたはアクティビティの集まりとして定義されます。Oracle BPMアプリケーションには1つ以上のプロセスを含めることができます。Business Process Composerを使用すると、BPMNプロセスを作成および編集できます。

BPMプロジェクト・ナビゲータから、新しいプロセスを作成したり、既存のプロセスを編集できます。プロセスの作成および使用については、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。

- ヒューマン・タスク
Oracle Business Process Composerでは、ヒューマン・タスクを作成および編集できます。ヒューマン・タスクを使用して、ユーザーとプロセスベースのアプリケーションがどのように相互作用するかを定義します。

BPMプロジェクト・ナビゲータからは、新規ヒューマン・タスクを作成したり、既存のヒューマン・タスクを編集することができます。詳細は、第11章「ヒューマン・タスクの使用」を参照してください。ヒューマン・タスクを作成すると、そのヒューマン・タスクはビジネス・カタログ内でアクセス可能になります。

- アクティビティ・ガイド
アクティビティ・ガイドはガイド付きビジネス・プロセスの一部です。ガイド付きビジネス・プロセスを使用すると、プロジェクトのマイルストンを定義できます。各プロジェクトには、複数のプロジェクト・マイルストンを定義できる1つのアクティビティ・ガイドが含まれています。Business Process Composerから、マイルストンを作成および構成できます。

プロジェクト・マイルストンの作成および使用については、4.5項「ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成」を参照してください。

- Oracle Business Rules
Oracle Business Rulesは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。Business Process Composerを使用して、ビジネス・ルールを作成および編集できます。ビジネス・ルールはプロジェクトの編集可能なコンポーネントですが、ビジネス・カタログの一部としても表示されます。

詳細は、第13章「Oracle Business Rulesの使用」を参照してください。

- Webフォーム
Webフォームは、プロセス・ワークスペースでアプリケーション・ユーザーに対して表示されるインタフェースを定義します。Business Process Composerでは、このインタフェースを一から作成することも、ヒューマン・タスクの既存のデータ構造に基づいてWebフォームを作成することもできます。

詳細は、第9章「Webフォームの使用」を参照してください。

注意:

WebフォームはBPMプロジェクトのリソースですが、その作成と編集はBusiness Process Composerからしかできません。Oracle BPM Studioでは表示することも編集することもできません。

- シミュレーション定義とモデル
シミュレーションを使用して、ビジネス・プロセスのパフォーマンスをテストします。シミュレーション定義とモデルは、シミュレーションで使用され、BPMプロジェクトの一部として格納されるパラメータを定義します。

詳細は、第6章「プロセス動作のシミュレート」を参照してください。

4.1.1.2 ビジネス・カタログ

Business Process Composerを使用して、ビジネス・カタログ・コンポーネントを作成および編集できます。ビジネス・カタログは、BPMプロジェクト内のすべてのプロセスが共有し再利用することのできる、実装アセットのコンテナです。

これらの要素を作成した後、特定のBPMNアーティファクトに割り当てることができます。

ビジネス・カタログ・コンポーネントにはコンポーネント・パレットからアクセスできます。ビジネス・カタログで再利用可能なリソースは、次のとおりです。

- ヒューマン・タスク
ヒューマン・タスクでは、エンド・ユーザーとBPMNプロセスとの相互作用の方法を定義します。ヒューマン・タスクは、ユーザー・タスクを使用してビジネス・プロセスに追加できます。また、ビジネス・カタログのヒューマン・タスクを、ビジネス・プロセス内の各ユーザー・タスクに割り当てることができます。BPMNプロセス内でのヒューマン・タスクの使用については、A.3項「プロセスへのユーザー相互作用の追加」を参照してください。

- Oracle Business Rules
Oracle Business Rulesは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。ビジネス・ルールは、ビジネス・ルール・タスクを使用してプロセスに統合されます。

Business Process ComposerによるOracle Business Rulesの使用方法の詳細は、第13章「Oracle Business Rulesの使用」を参照してください。BPMNプロセス内のビジネス・ルール・タスクの使用の詳細は、A.5.2項「ビジネス・ルール・タスクの概要」を参照してください。

- ビジネス・オブジェクト
ビジネス・オブジェクトでは、アプリケーション内で使用されるデータ構造を定義します。Business Process Composerを使用すると、単純なデータ・オブジェクトを使用して複雑なデータ・オブジェクトを定義できます。詳細は、12.4項「ビジネス・オブジェクトの概要」を参照してください。

- サービス
サービスでは、BPMNプロセスが他のプロセス、システムおよびサービス(BPELプロセスやデータベースを含む)にどのように接続するかを定義します。

Business Process Composerを使用すると、Webサービスに基づく新規サービスを作成できます。詳細は、14.3項「サービスの使用」を参照してください。また、プロジェクト・テンプレートの一部として作成されたサービスも使用できます。

サービスは、サービス・タスクに割り当てることによって、BPMNプロセス内に実装されます。詳細は、A.4.1項「サービス・タスクの概要」を参照してください。

- 外部参照
参照では、BPMNプロセスのインタフェースを定義します。参照では、メッセージ・イベント、送信タスクおよび受信タスクを実装します。詳細は、A.4項「他のプロセスおよびサービスとの通信」を参照してください。

4.1.1.3 編集または作成できるビジネス・カタログのコンポーネント

表4-1に、ビジネス・カタログのコンポーネントをリストし、Oracle Business Process Composerを使用して作成または編集できるコンポーネントを示します。

表4-1 Business Process Composerのビジネス・カタログのコンポーネント

ビジネス・カタログ・コンポーネント

作成可能であるか

編集可能であるか

ビジネス・ルール

はい

はい

ヒューマン・タスク

はい

はい

ビジネス・オブジェクト

はい

はい

サービス

はい

はい

外部参照

いいえ

いいえ

エラー

いいえ

いいえ

4.1.2 Oracle BPMリポジトリの概要

Oracle BPMリポジトリは、Oracle Metadata Service(MDS)に基づきます。Oracle MDSは、デプロイされたアプリケーションに関する情報を格納するOracle Fusion Middlewareのコンポーネントです。Oracle BPMは、Oracle BPMランタイムにアプリケーションをデプロイするとき、このリポジトリを使用します。

さらに、Oracle BPMはOracle MDSリポジトリのパーティションを使用して、Oracle BPM StudioとOracle Business Process Composerの間でプロジェクトおよびプロジェクト・テンプレートを共有します。Oracle BPMリポジトリ内には、Business Process Composerユーザーに対してフォルダとして表示される2つのパーティションがあります。これらのフォルダには、プロジェクトとプロジェクト・テンプレートが格納されます。フォルダは次のとおりです。

- パブリック: Oracle BPMプロジェクトを格納します。

- テンプレート: Oracle BPMプロジェクト・テンプレートが含まれます。

システム管理者は、Business Process ComposerをインストールするときにOracle BPMリポジトリをインストールして構成します。

Oracle BPM StudioとBusiness Process Composer間でのプロジェクトとプロジェクト・テンプレートの共有の詳細は、2.2項「Business Process Composerユース・ケースの概要」を参照してください。

Oracle BPMリポジトリのプロジェクトを開く方法の詳細は、4.4項「プロジェクトの作成および使用」を参照してください。プロジェクト・テンプレートに基づくプロジェクトの作成と使用については、8.2項「BPMプロジェクト・テンプレートの概要」を参照してください。

4.2 プロジェクトのようこそページの概要

プロジェクトのようこそページからは、BPMプロジェクトに関する情報、およびプロジェクトに関連する共通機能にアクセスできます。図4-1は、営業見積サンプル・プロジェクトのようこそページを示しています。

図4-1 プロジェクトのようこそページ

「図4-1 プロジェクトのようこそページ」の説明

4.2.1 「プロジェクト情報」パネル

「プロジェクト情報」パネルには、プロジェクトに関する一般的な情報が表示されます。図4-2は、営業見積デモ・プロジェクトの「プロジェクト情報」ペインの例を示しています。

図4-2 「プロジェクト情報」パネル

「図4-2 「プロジェクト情報」パネル」の説明

このペインには次の情報が表示されます:

- タイトル: タイトル、作成日、プロジェクトを作成したユーザーの名前が表示されます。

- 説明: プロジェクトの説明(オプション)が表示されます。

- 承認ワークフロー: プロジェクトに承認ワークフローが定義されているかどうかを指定します。

- イベントの生成: このプロジェクトにイベントを生成する方法を定義します。

- 編集モード: プロジェクトが編集中かどうかを指定します。

- プロジェクト言語: プロジェクトの現在の言語を指定します。

4.2.2 「最近のアクティビティ」パネル

「最近のアクティビティ」ブラウザには、現在のBPMプロジェクトに対する主要な変更履歴が表示されます。図4-3は、最近のアクティビティのブラウザの例を示しています。

図4-3 「最近のアクティビティ」パネル

「図4-3 「最近のアクティビティ」パネル」の説明

最近のプロジェクト・アクティビティを表示する方法については、4.4.11項「プロジェクトに対する変更履歴を表示する方法」を参照してください。

4.2.3 プロジェクト・コンポーネント・ペインの概要

プロジェクト・コンポーネント・ペインを使用して、次のプロジェクト・コンポーネントを表示および作成します。

- プロセス

- ルール

- ヒューマン・タスク

- Webフォーム

- ビジネス・オブジェクト

図4-4は、プロジェクト・コンポーネント・ペインがプロジェクトに表示される方法を示しています。

図4-4 プロジェクト・コンポーネント・ペイン

「図4-4 プロジェクト・コンポーネント・ペイン」の説明

4.2.4 「クイックスタート」メニューの概要

「クイックスタート」を使用すると、Business Process Composer内の次の共通機能に簡単にアクセスできます。

- スナップショット: スナップショット・エディタが開きます。開発ライフサイクル内でプロジェクトに加えた変更の記録が提供されます。詳細は、8.4項「プロジェクト・スナップショットの使用」を参照してください。

- 組織: プロジェクトに対して定義されているロールを作成および参照できる組織エディタが開きます。詳細は、4.6項「プロジェクトで使用されるロールの定義」を参照してください。

- ギャラリ: プロセスやヒューマン・タスクを作成および参照できるギャラリ・ビューが開きます。ビジネス・ルールも参照できます。

- アクティビティ・ガイド: プロジェクト内のマイルストンを定義できるアクティビティ・ガイド・エディタが起動します。

- ビジネス・オブジェクト・エディタ: ビジネス・オブジェクト・エディタが起動します。詳細は、12.4項「ビジネス・オブジェクトの概要」を参照してください。

- 承認ワークフロー・ブラウザ: BPMプロジェクトのデプロイメントを管理できます。

- ビジネス・インジケータ: ビジネス・インジケータ・エディタが起動します。

- プロセス・プレーヤ: プロセス・プレーヤが起動します。このオプションは、プロセス・プレーヤが有効な場合のみ表示されます。詳細は、7.1.2項「Business Process Composerのプロセス・プレーヤの有効化」を参照してください。

4.2.5 Oracle Business Process Composerのエディタの概要

エディタを使用すると、プロセスおよびビジネス・カタログのコンポーネントなど、Oracle BPMプロジェクトの様々な要素を使用できます。エディタは、Business Process Composerアプリケーションの中央に表示されます。

各エディタはBusiness Process Composerアプリケーションのタブ・ペインとして表示されるため、複数のリソースを同時に開くことができます。

次の各項では、Business Process Composerで使用できる様々なタイプのエディタについて説明します。

4.2.5.1 プロセス・エディタ

「プロセス」エディタを使用して、ビジネス・プロセスを表示および編集できます。「プロセス」エディタには、プロジェクト・ナビゲータからプロセスを開くとアクセスできます。

エディタ・ウィンドウには、コンポーネント・パレットも含まれます。実際に使用可能なコンポーネントは、次のようにプロジェクトによって異なります。

- プロジェクト・テンプレートに基づくプロジェクトでは、コンポーネント・パレットには、ビジネス・カタログからの要素およびBPMNフロー・オブジェクトが含まれます。これにはプロジェクト・テンプレートで定義したOracle Business Rules、サービス、ヒューマン・タスクが含まれます。

- Business Process Composerで作成された新規プロジェクトのコンポーネント・パレットには、BPMNフロー・オブジェクトと作成したビジネス・カタログのコンポーネントが表示されます。サービスおよびヒューマン・タスクはBusiness Process Composerで直接作成できます。

詳細は、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。

4.2.5.2 アクティビティ・ガイド・エディタ

「アクティビティ・ガイド」エディタを使用して、アクティビティ・ガイドのマイルストンを表示、作成および編集します。「アクティビティ・ガイド」エディタにアクセスするには、「クイックスタート」メニューの「アクティビティ・ガイド」リンクをクリックします。4.5項「ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成」を参照してください。

4.2.5.3 ヒューマン・タスク・エディタ

「ヒューマン・タスク」エディタを使用して、ビジネス・カタログの一部として含まれるヒューマン・タスクを編集します。詳細は、第11章「ヒューマン・タスクの使用」を参照してください。

4.2.5.4 ビジネス・ルール・エディタ

「ビジネス・ルール」エディタを使用して、Oracle Business Rulesを作成、表示および編集します。「ビジネス・ルール」エディタにアクセスするには、プロジェクト・ナビゲータからビジネス・ルールを開きます。詳細は、13項「Oracle Business Rulesの使用」を参照してください。

4.2.5.5 データ・アソシエーション・エディタ

「データ・アソシエーション」エディタを使用して、実装を含むフロー・オブジェクトの入力および出力を定義します。「データ・アソシエーション」エディタにアクセスするには、ビジネス・プロセス内のフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。

データ・アソシエーションの使用については、12.3項「データ・オブジェクトの使用」を参照してください。

4.2.5.6 式エディタ

式エディタを使用すると、データ・アソシエーションと条件シーケンス・フローで使用する式を定義できます。式の使用と式エディタへのアクセスの詳細は、12.7項「式の概要」を参照してください。

4.2.6 サポートされているブラウザおよびエディタの概要

Business Process Composerには、その他のプロジェクト・コンポーネントを表示および編集できる追加のエディタが用意されています。これらのエディタは、アプリケーション・ウィンドウの下部に表示されます。

注意:

これらのエディタはデフォルトでは表示されません。各ウィンドウに関連するアクションが実行された後に表示されます。手動で表示するには、Business Process Composerアプリケーションの右下隅にあるペインのリストア・アイコンをクリックします。

4.2.6.1 プロジェクトおよびプロセスの検証ブラウザ

プロジェクトおよびプロセスのブラウザには、個別のプロセスまたはプロジェクト全体の検証エラーが表示されます。プロジェクトの検証の詳細は、4.4.9項「プロジェクトを検証する方法」を参照してください。

4.2.6.2 ドキュメント・エディタ

「ドキュメント」エディタを使用して、プロセスについてのドキュメントを作成および編集します。詳細は、5.7項「プロセスのドキュメント化」を参照してください。

4.2.6.3 承認ワークフロー・ブラウザ

承認ワークフロー・ブラウザには、承認ワークフロー内のプロジェクトのステータスが表示されます。承認者として定義されているすべてのユーザーが応答を返すと、適切な権限を持つユーザーがOracle BPMランタイムにデプロイできるようになります。詳細は、第15章「BPMプロジェクトのデプロイ」を参照してください。

4.3 プロジェクトの共有およびコラボレーションの概要

Oracle BPMでは、Business Process Composerユーザー間でBPMプロジェクトを共有する機能が提供されます。BPMプロジェクトはすべてBPMリポジトリに格納されます。どのユーザーがプロジェクトを表示または編集できるのか制御できます。

4.3.1 プライベート・プロジェクトとパブリック・プロジェクト

BPMプロジェクトは、プライベートまたはパブリックとして定義されます。プロジェクト所有者のみ、プライベート・プロジェクトを表示または編集することができます。プロジェクト所有者および適切な権限を持つ他のユーザーは、パブリック・プロジェクトを編集および表示できます。

プロジェクトの共有方法については、4.5.5項「他のユーザーとプロジェクトを共有する方法」を参照してください。

4.3.2 編集モード

共有プロジェクトの編集モードによって、プロジェクトを変更できるかどうかが決定します。編集モードの値は次のとおりです:

- 読取り専用: プロジェクトは読取り専用で開きます。このモードでは、一部のプロジェクト機能が使用できません。

- 編集: プロジェクトは編集用に開きます。編集モードでは、プロジェクトを変更できます。プロジェクトが編集モードの場合は、プロジェクトを編集しているユーザーのみが変更を行うことができます。適切な権限がある他のユーザーは、プロジェクトを表示できますが、変更することはできません。
編集モードの設定方法については、4.4.6項「共有プロジェクトを編集する方法」を参照してください。

プロジェクトの現在の編集モードは、図4-2に示すように、「プロジェクト情報」ペインで確認できます。

4.3.3 プロジェクト・ロール

プロジェクト・ロールを使用して、どのユーザーにプロジェクトを表示および変更するためのアクセス権があるかを定義します。次の3タイプのプロジェクト・ロールが定義されています:

- 所有者: ユーザーがプロジェクトを作成すると、そのユーザーがプロジェクトの所有者として定義されます。また、別のユーザーをプロジェクトの所有者として定義することもできます。プロジェクトの所有者は、次の操作を実行できます:

- プロジェクトのデプロイ

- プロジェクト・スナップショットの作成

- 他のユーザーとのプロジェクトの共有

- プロジェクトの削除

- エディタ: エディタはプロジェクトを変更できます。エディタ・ロールを持つユーザーがプロジェクトを開くと、デフォルトではプロジェクトは読取りモードになります。他にプロジェクト編集中のユーザーがいなければ、プロジェクトを編集できる状態になります。詳細は、4.4.6項「共有プロジェクトを編集する方法」を参照してください。

- 表示者: 表示者はプロジェクトを表示できますが、変更することはできません。

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

次の各項では、Oracle BPMプロジェクトの作成方法と使用方法について説明します。

4.4.1 プロジェクトのようこそページにアクセスする方法

アプリケーションのようこそページからプロジェクトを開くと、プロジェクトのようこそページがデフォルトで表示されます。プロジェクト内のコンポーネントを編集しているときは、図4-5のように「プロジェクト・ホーム」タブをクリックしてプロジェクトのようこそページに戻ることができます。

図4-5 「プロジェクト・ホーム」タブ

「図4-5 「プロジェクト・ホーム」タブ」の説明

4.4.2 新規プロジェクトを作成する方法

アプリケーションのようこそページから、新しいOracle BPMプロジェクトを作成できます。新規プロジェクトを作成するには、その前に、既存のプロジェクト・テンプレートに基づいてプロジェクトを作成するか、新規にプロジェクトを作成するかを決定する必要があります。

新規プロジェクトはプロジェクト・テンプレートに基づいていません。これらのプロジェクトには、プロセス・アナリストが作成した基本的なビジネス・プロセスのみが含まれます。

プロジェクト・ナビゲータを使用して新規プロジェクトを作成するには:

プロジェクト・ナビゲータを使用すると、新規プロジェクトを簡単に作成できます。プロジェクトを作成した後は、追加のプロジェクト・プロパティを編集できます。

1. Oracle Business Process Composerを起動します。

2. 図4-6で示されているように、プロジェクト・ナビゲータから「新規プロジェクト」をクリックします。

図4-6 「新規プロジェクト」ダイアログ

「図4-6 「新規プロジェクト」ダイアログ」の説明

3. 「次へ」をクリックします。

4. プロジェクトの名前を入力し、「プロジェクトの作成」をクリックします。

メイン・メニューを使用して新規プロジェクトを作成するには:

メイン・メニューからプロジェクトを作成する場合は、プロジェクト・プロパティを構成し、プロジェクト・テンプレートを選択することができます。

1. Oracle Business Process Composerを起動します。

2. メイン・メニューから、「新規」を選択し、次に「プロジェクト」を選択します。

3. プロジェクトの名前を入力します。

4. 次のオプション情報を入力します:

- 説明: プロジェクトの説明を入力します。

- フォルダ: プロジェクトを格納するBPMリポジトリ内のフォルダを指定します。

- テンプレートの使用: プロジェクト・テンプレートに基づいて新規プロジェクトを作成します。「選択」をクリックして、プロジェクト・テンプレートを選択します。

5. ドロップダウン・リストからオプションのデプロイメント・オプションを選択します。

6. 「終了」をクリックすると新規プロジェクトが作成されます。

新規プロジェクトをテンプレートに基づいて作成した場合、プロジェクトには必要なプロセスおよびビジネス・カタログ要素が含まれます。テンプレートを使用しないで新規プロジェクトを作成した場合、必要なプロセスを手動で追加する必要があります。

プロセスの作成および編集の詳細は、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。

4.4.3 アプリケーションのようこそページを使用してプロジェクトを開く方法

プロジェクトをアプリケーションのようこそページから直接開くには、プロジェクトの名前をクリックします。

4.4.4 メイン・メニューを使用してプロジェクトを開く方法

メイン・メニューを使用してプロジェクトを開く場合は、あるプロジェクトから別のプロジェクトに直接移動することができます(たとえば、アプリケーションのようこそページに戻る必要はありません)。

プロジェクトを開くには:

1. メイン・メニューから「開く」を選択し、次に「プロジェクトを開く」を選択します。

2. 開くプロジェクトを選択し、「OK」をクリックします。

4.4.5 他のユーザーとプロジェクトを共有する方法

BPMリポジトリを使用して、プロジェクトを他のBusiness Process Composerユーザーと共有できます。

プロジェクトをすべてのユーザーとパブリックに共有するには:

1. 共有するプロジェクトを開きます。

2. 「プロジェクト」メニューから「共有」ボタンを選択します。

3. ドロップダウン・リストから共有の表示方法を選択します。

- プライベート

- チーム・メンバーのみ

- パブリック

4. 「共有」をクリックします。

5. 「OK」をクリックします。

特定のユーザーまたはグループとプロジェクトを共有するには:

1. 共有するプロジェクトを開きます。

2. メイン・メニューから「共有」を選択します。

3. プロジェクトを共有するグループのユーザーを指定します。

1. 「選択」をクリックします。

2. ドロップダウン・リストからスコープを選択します:
すべて:

ユーザー:

グループ:

3. 「検索」をクリックします。

4. 「使用可能」列からアイテムを選択し、「移動」をクリックします。

5. 「OK」をクリックします。

4. ドロップダウン・リストからロールを選択します。

- 所有者

- エディタ

- 表示者

5. 「共有」をクリックします。

6. 「閉じる」をクリックします。

4.4.6 共有プロジェクトを編集する方法

デフォルトでは、共有プロジェクトは表示モードで開かれます。プロジェクトを編集する権限があり、そのプロジェクトが別のユーザーによってロックされていない場合は、プロジェクトを編集できます。

プロジェクトの編集を開始するには:

編集を開始するには、プロジェクトのようこそページの上部にある「編集」をクリックします。

プロジェクトを編集モードにすると、プロジェクトの変更を開始できます。詳細は、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。

4.4.7 プロジェクトへの変更を保存する方法

プロセスおよび他のプロジェクトのコンポーネントを編集するときは、プロジェクトへの変更を保存できます。変更内容はBPMリポジトリに直接保存され、プロジェクトのようこそページの「最近のアクティビティ」ペインに登録されます。詳細は、4.4.11項「プロジェクトに対する変更履歴を表示する方法」を参照してください。

プライベート・プロジェクトへの変更を保存するには:

プライベート・プロジェクトに変更を保存するには、プロジェクト・ツールバーの「保存」ボタンをクリックします。プロジェクトはBPMリポジトリに保存されます。必要に応じて、引き続きプロジェクトを変更できます。

共有プロジェクトに変更を保存するには:

- 変更を保存して、プロジェクトの編集を続行する場合は、プロセス・エディタ・ツールバーで「保存」をクリックします。
各プロジェクト・コンポーネントの未保存の変更がすべて保存されます。プロジェクトは引き続きロックされており、編集を続行できます。

- プロジェクトのロックを解放するには、プロセス・エディタ・ツールバーの「保存して解放」をクリックします。
各プロジェクト・コンポーネントの未保存の変更がすべて保存されます。プロジェクトの共有が有効な場合、権限がある他のBusiness Process ComposerユーザーおよびOracle BPM Studioユーザーはプロジェクトの編集を開始できます。変更を行うには、編集モードに切り替える必要があります。

4.4.8 プロジェクトへの変更を破棄する方法

プロジェクト要素の編集中に、変更を元に戻し、プロジェクトの最新の公開済バージョンに戻すことができます。

現在のプロジェクトに対して行った変更を破棄するには:

1. メイン・メニューから「取消」を選択します。

2. 「OK」をクリックして、現在のプロジェクトに対する変更の破棄を確認します。

注意:

破棄した変更は復元できません。

4.4.9 プロジェクトを検証する方法

プロジェクトを検証すると、プロジェクトとプロセスのエラーを確認できます。Business Process Composerでは、エラー・ブラウザにエラーが表示されます。Business Process Composerには、プロジェクト用のエラー・ブラウザがプロセスごとに1つあります。

図4-7は、プロジェクトのエラー・ブラウザに表示されるエラーのタイプの例を示しています。

図4-7 プロジェクト・エラー・ブラウザ

「図4-7 プロジェクト・エラー・ブラウザ」の説明

プロジェクトを検証するには:

1. プロジェクトを開きます。

2. プロジェクトの編集中であることを確認します。

3. メイン・メニューから「プロジェクトの検証」を選択します。

プロジェクトを検証した後は、検出されたエラーがプロジェクト用またはプロセス用のエラー・ブラウザに表示されます。

注意:

エラーがあるプロジェクトはデプロイできません。

4.4.10 プロジェクトを閉じる方法

プロジェクトを閉じるには、プロジェクトのホーム・ページの右上隅の「プロジェクトを閉じる」をクリックします。または、次のことを選択できます。

4.4.11 プロジェクトに対する変更履歴を表示する方法

プロジェクトに対する主要な変更履歴を表示するには、「最近のアクティビティ」ブラウザを使用します。このブラウザには、次の内容を含む、これらの変更が表示されます。

- プロジェクトの作成

- リソースの変更

- プロセスまたはヒューマン・タスクの作成

プロジェクトの履歴を表示するには:

1. プロジェクトのようこそページに移動します。
プロジェクトの変更が「最近のアクティビティ」ペインに表示されます。

2. 特定の変更の詳細を表示するには、隣にある展開アイコンをクリックします。

4.4.12 プロジェクト・プロパティの表示方法と編集方法

プロジェクト・プロパティを表示および編集するには、プロジェクトのようこそページの「プロジェクト情報」ペインを使用します。「プロジェクト情報」ペインは、図4-2に示されています。

このペインからは、プロジェクトの次のプロパティを編集できます:

- 説明: プロジェクトの説明(オプション)を追加します。これは、他のユーザーとプロジェクトを共有する場合に役立ちます。

- 承認ワークフロー: プロジェクトの承認ワークフローを定義します。詳細は、15.1項「プロジェクトの承認ワークフローの構成」を参照してください。

- イベントの生成: プロジェクト全体に対してサンプリング・ポイントを生成する方法を構成します。サンプリング・ポイントを使用すると、実行中のプロセス内のフロー・オブジェクトのパフォーマンスに関する情報を生成できます。この構成に基づいて生成されたデータは、プロセス分析データベースに格納されます。
個々のフロー・オブジェクトのサンプリング・ポイント生成の設定については、付録B「共有プロパティ」を参照してください。サンプリング・ポイントについては、Oracle Fusion Middleware Business Process Managementのユーザーズ・ガイドを参照してください。

「プロジェクト情報」ペインからは、次のプロジェクト・プロパティを表示できます:

- 編集モード: プロジェクトの編集モードが表示されます。プロジェクトの編集モードの変更方法については、4.4.6項「共有プロジェクトを編集する方法」を参照してください。

- 共有: プロジェクトの共有構成が表示されます。

- プロジェクト言語: プロジェクト言語が表示されます。

4.4.13 プロジェクトをお気に入りとしてマークする方法

重要なプロジェクトや頻繁に使用するプロジェクトは、お気に入りとしてマークすることができます。プロジェクト・ブラウザに、お気に入りとフラグが付いたプロジェクトのみを表示することもできます。

プロジェクトをお気に入りとしてマークするには、右上隅にある「プロジェクトをお気に入りとしてマーク」ボタンをクリックします。

4.5 ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成

次の各項では、ガイド付きビジネス・プロセスおよびプロジェクトのマイルストンの使用方法について説明します。

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

ガイド付きビジネス・プロセスは、プロセス・フローのガイド付き視覚表現を提供します。プロセス参加者にビジネス・プロセスのカプセル化された階層ビューを提供することによって、ユーザーの操作性を向上します。

プロセス設計者は、ガイド付きビジネス・プロセスを使用して、プロセス参加者がプロセスに関連付けられた一連のガイド付き手順に従ってビジネス・プロセスを完了できるように設定できます。ガイド付きビジネス・プロセスには手順の概要が示されます。この手順に従うことによって、プロセス参加者はより少ないトレーニングでビジネス・プロセスを完了できるようになり、プロセスの結果もより予測可能になります。

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

ガイド付きビジネス・プロセスは、ビジネス・プロセスに基づいたアクティビティ・ガイドとしてモデリングされます。アクティビティ・ガイドには、一連のマイルストンが含まれています。マイルストンには、プロセス参加者が完了する必要がある一連のタスクが含まれています。マイルストンに含まれている一連のタスクをユーザーが正常に実行すると、マイルストンが完了します。

各マイルストンは、ヒューマン・ワークフロー・タスクの特定のセットです。各ヒューマン・ワークフロー・タスクは、それ自体が、様々なロールの複数の参加者のコラボレーションを必要とするタスク・フローである場合があります。タスク・フローの内容によっては、参加者は未完了のタスク・フローをいったん保存して、後でそのタスク・フローに戻ることもできます。

4.5.2 アクティビティ・ガイドの構成方法およびプロジェクトのマイルストンの作成方法

Business Process Composerを使用して、ガイド付きビジネス・プロセスを構成し、それらにマイルストンを追加します。

プロジェクトのアクティビティ・ガイドを構成するには:

1. プロジェクトを開きます。

2. 「クイックスタート」メニューから「アクティビティ・ガイド」を選択します。
「アクティビティ・ガイド」エディタが表示されます。

3. アクティビティ・ガイドのタイトルを入力します。

4. 次のオプションのプロパティを構成します。

- 表示モード: ガイド付きビジネス・プロセス内のマイルストンおよびタスクにおけるリンクの表示方法を指定します。マイルストンおよびタスクで他の構成が使用される場合は、ガイド付きビジネス・プロセスの構成は無視されます。
可能な値は次のとおりです。

- 常時: このガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンおよびタスクのリンクを常に表示します。

- インスタンス化時: ガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンの1つ以上のユーザー・タスクがインスタンス化されているときにのみ、マイルストンおよびタスクのリンクを表示します。

- タスク・アクセス: タスクが完了した後、ガイド付きビジネス・プロセスではこの構成を使用してリンクが表示されます。タスク・モードが「アクティブのみ」の場合は、タスクのリンクがグレー表示されます。タスク・モードが「任意の状態」の場合は、タスクのリンクは有効なままになり、タスクを実行するときにメッセージが表示されます。
可能な値は次のとおりです。

- アクティブのみ: タスクへのリンクは、タスクがアクティブであり、ユーザーが更新可能なときにのみ有効になります。タスクを完了すると、タスクへのリンクはグレー表示されます。

- 任意の状態: タスクをインスタンス化すると、そのタスクへのリンクは常に有効になります(タスクを完了した後も有効です)。

- ルート・プロセス: このアクティビティ・ガイドに使用されるプロセスを指定します。BPMプロジェクトごとに、1つのガイド付きビジネス・プロセスのみを定義できます。このプロセスが、ルート・プロセスです。

- 説明: アクティビティ・ガイドのオプションの説明を指定します。

5. プロジェクト・ツールバーで「保存」をクリックします。

新しいマイルストンを作成する手順は、次のとおりです。

1. 「新規マイルストン」をクリックします。

2. リストから、今作成したマイルストンを選択します。

3. 必要に応じて、マイルストンを構成します。

4. プロジェクト・ツールバーで「保存」をクリックします。

マイルストンにユーザー・タスクを追加するには:

1. マイルストンを追加するプロセスを開きます。

2. マイルストンに追加するユーザー・タスクを右クリックします。

3. リストからマイルストンを選択して、「OK」をクリックします。

4.5.3 プロジェクトのプロセス・レポートを作成する方法

プロジェクト内の各プロセスをリストし、各プロセスに関する詳細な情報を表示したHTMLレポートを生成できます。次の情報が含まれます。

- プロセスのプロパティ

- プロセス・イメージ

- レーン

- プロセス・ステップ

プロセス・レポートを生成するには:

1. プロジェクトを開きます。

2. アプリケーションのメイン・メニューから「プロセス・レポート」を選択します。

3. 出力を選択して、「OK」をクリックします。

4.6 プロジェクトで使用するロールの定義

この項では、プロジェクト・ロールの作成方法を説明します。

4.6.1 プロジェクト・ロールの概要

プロジェクト・ロールを使用して、ビジネス・プロセスが表す作業を実行するユーザーまたはグループをモデリングします。ロールでは、組織内の職務や責任に対応する機能上のカテゴリを定義します。Business Process Composerを使用して、プロセス内で必要なロールを作成および編集し、それらをスイムレーンに割り当てます。

Business Process Composerを使用して、BPMプロジェクトで使用されるロールを定義します。ロールへのユーザーの割当てを含む、プロジェクト・ロールのより高度なマッピングと構成を実行するには、BPM StudioまたはOracle Business Process Management Workspaceを使用します。プロジェクトをランタイムにデプロイすると、プロジェクト・ロールを実際の組織のユーザーやグループにマップできます。

プロジェクト・ロールはプロジェクト全体に対して定義されます。それらは、プロジェクト内のすべてのプロセスで共有できます。プロセス内では、ロールは水平スイムレーンに割り当てられます。

4.6.2 プロジェクト・ロールの作成方法

次の手順では、プロジェクト・ロールを作成および削除する方法を説明します。

プロジェクト・ロールを作成するには:

1. プロジェクトのようこそページにアクセスします。

2. 「組織」を展開し、「追加」アイコンをクリックします。

3. 新規ロールの名前を入力し、「ロールの追加」をクリックします。

プロジェクト・ロールを削除するには:

1. プロジェクトのようこそページにアクセスします。

2. 「組織」を展開します。

3. 削除するロールを選択し、「削除」アイコンをクリックします。

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

この章では、Oracle BPMでビジネス・プロセスを作成および使用する方法について説明します。ビジネス・プロセスの全般的な概要を説明し、プロセス・エディタ・ウィンドウと、プロセスを作成して使用する手順の情報について説明します。

Business Process Management Notation (BPMN)を使用したビジネス・プロセスの設計については、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。

この章の内容は次のとおりです。

- 5.1項「ビジネス・プロセスの概要」

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

- 5.3項「ビジネス・プロセスの使用」

- 5.4項「フロー要素の使用」

- 5.5項「ビジネス・カタログのコンポーネントの使用」

- 5.6項「ドラフト・プロセスの使用」

- 5.7項「プロセスのドキュメント化」

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

5.1 ビジネス・プロセスの概要

ビジネス・プロセスとは、明確に定義された結果が実行後に発生するような一連のタスクです。ビジネス・プロセスは、Oracle BPM Suiteで作成されたプロセスベースのビジネス・アプリケーションのコア・コンポーネントです。

ビジネス・アプリケーションのすべてのリソースを含む上位レベルのラッパーがプロジェクトであり、アプリケーションの動作はプロジェクト内のプロセスによって決定されます。ビジネス・プロセス内では、BPMNフロー・オブジェクトでフローおよび動作を定義します。

ビジネス・プロセスは一般にプロセス・アナリストによって作成されます。プロセス・アナリストは、対処が必要なビジネス要件を特定して、対応するプロセス・フローを定義します。

表5-1では、ビジネス・プロセスが他のビジネス・プロセスと関連してどのように動作するか、プロセスのタイプによってどのように決定されるかを説明します。

注意:

デフォルトでは、新規ビジネス・プロセスは同期です。新規プロセスを作成した後は、そのプロセスを編集してタイプを変更できます。

表5-1 ビジネス・プロセスのタイプ

プロセス・タイプ

説明

同期サービス

同期サービスは、別のプロセスまたはサービスから同期的に起動されるビジネス・プロセスのタイプです。同期サービスでは、コール側プロセスは、起動されたプロセスが完了するまで待ってから続行します。

非同期サービス

非同期サービスは、別のプロセスまたはサービスから非同期的に起動されるビジネス・プロセスのタイプです。非同期サービスでは、コール側プロセスは、起動されたプロセスが完了するまで待たずに続行します。

手動プロセス

手動プロセスは、ユーザー相互作用を必要とするプロセスです。手動プロセスは、None開始イベントで始まる必要があります。それらはNone終了イベントで終了する必要があります。

再使用可能なプロセス(再使用可能なサブプロセス)

再使用可能なプロセスは、BPMNプロセスがコール可能なプロセスです。BPMN用語では、多くの場合、再使用可能なプロセスは、再使用可能なサブプロセスと呼ばれます。Oracle BPMでサポートされている様々なサブプロセスのタイプの詳細は、A.9項「Oracle BPMでのサブプロセスの使用」を参照してください。

ビジネス・プロセス内で再使用可能なサブプロセスをコールするには、コール・アクティビティを使用します。再利用可能なプロセスのコールについては、A.4.3項「コール・アクティビティの概要」を参照してください。

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

プロセス・エディタを使用すると、すばやくBPMNプロセスを作成および編集できます。プロセス・エディタは、Business Process Composerアプリケーションでタブ付きペインとして表示され、次の領域にわかれています。

- プロセス・エディタ・ツールバー: プロセスの設計に関連するメニュー・アイテムにすばやくアクセスできます。詳細は、5.2.1項「プロセス・エディタ・ツールバーの概要」を参照してください。

- プロセス・エディタ・キャンバス: プロセス・フローを作成するための作業領域を提供します。詳細は、5.2.2項「プロセス・エディタ・キャンバスの概要」を参照してください。

- BPMNコンポーネント・パレット: BPMNプロセスを構成するフロー・オブジェクト、シーケンス・フローおよびその他の要素にすばやくアクセスできます。これらの要素は、BPMNコンポーネント・パレットからプロセス・エディタ・キャンバスにドラッグ・アンド・ドロップできます。詳細は、5.2.3項「BPMNコンポーネント・パレットの概要」を参照してください。

- ビジネス・カタログ・パレット: BPMプロジェクト内で使用可能なビジネス・カタログ要素のリストを提供します。詳細は、5.2.4項「ビジネス・カタログの概要」を参照してください。

図5-1は、プロセス・エディタのタブの例を示しています。

図5-1 プロセス・エディタ・ウィンドウ

「図5-1 プロセス・エディタ・ウィンドウ」の説明

Business Process Composerで同じプロジェクト内にある複数のプロセスを同時に開くことができます。各プロセスはエディタ・ウィンドウ内の専用タブで開きます。

5.2.1 プロセス・エディタ・ツールバーの概要

プロセス・エディタ・ウィンドウにはツールバーがあり、このツールバーを使用してBusiness Process Composerの機能(表5-2を参照)にアクセスできます。

表5-2 プロセス・エディタのメニュー

メニュー・アイテム

説明

元に戻す

プロセスに対して実行した直前の変更を元に戻します。

再実行

直前に実行した元に戻すアクションを再実行します。

切取り

選択したアイテムを切り取り、クリップボードにコピーします。

コピー

選択したアイテムをクリップボードにコピーします。

貼付け

現在クリップボードにあるアイテムを貼り付けます。

削除

選択した要素をプロセスから削除します。

自動レイアウト

プロセスのレイアウトを自動的に調整します。

グリッド表示の切替え

プロセス・エディタ・ウィンドウのグリッドを表示または非表示にします。

グリッドにスナップ

プロセス内のフロー・オブジェクトを最も近いグリッド軸に基づいて中央に配置します。既存のフロー・オブジェクトは、自動的に中央に配置されます。新しいフロー・オブジェクトは、追加されるときに自動的に中央に配置されます。

このメニュー・アイテムは、グリッド表示の切替えが有効になっている場合にのみアクティブになります。

印刷

ブラウザのプリンタの設定を使用してプロセスを印刷します。

会話の編集

会話エディタを開きます。このエディタを使用して、入力および出力データ・オブジェクトを決定するインタフェースを定義します。

プロセス使用方法の検索

現在のプロセスが、現在のプロジェクト内の他のどのプロセスによって呼び出されるかを確認します。

コラボレーションの表示

プロセス・エディタをコラボレーション・ビューに切り替えます。

データ・オブジェクト

データ・オブジェクト・エディタを開きます。詳細は、12.3項「データ・オブジェクトの使用」を参照してください。

ビジネス・インジケータ

ビジネス・インジケータ・エディタを開きます。

プレーヤ

プロセス・プレーヤを起動します。詳細は、第7章「プロセス・プレーヤの使用」を参照してください。

ズーム・スライダ

プロセスにズーム・インおよびプロセスからズーム・アウトします。

5.2.2 プロセス・エディタ・キャンバスの概要

プロセス・エディタ・キャンバスは、プロセス・エディタ・ウィンドウの中央の領域です。プロセス・エディタ・キャンバスを使用して、BPMNコンポーネント・パレットで使用可能な要素を使用してプロセスのグラフィカル表現を作成します。プロセス・エディタ・キャンバスにはプロセス・フロー以外にスイムレーンも表示されます。

5.2.3 BPMNコンポーネント・パレットの概要

BPMNコンポーネント・パレットを使用して、プロセスにフロー・オブジェクト、シーケンス・フローおよびビジネス・カタログの要素を追加します。図5-2は、コンポーネント・パレットを示しています。

図5-2 コンポーネント・パレット

「図5-2 コンポーネント・パレット」の説明

コンポーネント・パレットを使用して、アーティファクトをプロセス・エディタ・ウィンドウにドラッグ・アンド・ドロップします。

注意:

コンポーネント・パレットは、プロジェクト編集モードに切り替えるまでグレー表示されています。

コンポーネント・パレットを使用すると、BPMN要素を次のグループに分類できます:

- アクティビティ

- 対話型

- ゲートウェイ

- 捕捉イベント

- スロー・イベント

- ノート

- 測定

Business Process Composerには、フロー・オブジェクトをプロセスに追加するために、次の2つのモードが用意されています:

- 単一オブジェクト・モード: 一度に1つのフロー・オブジェクトを追加できます。このモードでは、図5-3に示すように、青い円内に「1」と表示されます。

図5-3 単一オブジェクト入力モード

「図5-3 単一オブジェクト入力モード」の説明

- 複数オブジェクト・モード: 同じタイプの複数のフロー・オブジェクトを簡単に追加できます。このモードでは、青い円内に「N」と表示されます。

図5-3に表示されている青い円をクリックすると、2つの入力モードを切り替えることができます。

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

このパネルを使用して、再使用可能なサービスをビジネス・カタログから選択します。図5-4は、ビジネス・カタログを示しています。

図5-4 ビジネス・カタログ

「図5-4 ビジネス・カタログ」の説明

これらのサービスは、次のようにグループ化されます。

- サービス

- 外部参照

- ヒューマン・タスク

- ビジネス・ルール

注意:

Business Process Composerを使用して、外部参照を作成することはできません。外部参照を作成するには、Oracle BPM Studioを使用します。

参照を含むプロジェクトは、BPMリポジトリを使用して共有するか、プロジェクト・テンプレートの一部として含めます。

Business Process Composerを使用して、Webサービスに基づくサービスを作成できます。ただし、アダプタや他のSOAコンポーネントに基づくサービスは、Oracle BPM Studioで作成する必要があります。それらは、プロジェクト・テンプレートまたは共有プロジェクトに含めることができます。

Business Process Composerを使用して、ビジネス・カタログから対応するフロー・オブジェクトに再使用可能サービスを割り当てることができます。

詳細は、4.1.1.2項「ビジネス・カタログ」を参照してください。

5.3 ビジネス・プロセスの使用

次の各項では、ビジネス・プロセスを作成したり削除する方法、および開く方法について説明します。

5.3.1 新規のビジネス・プロセスを作成する方法

Oracle BPMプロジェクト内にビジネス・プロセスを作成します。1つ以上のプロセスをプロジェクトに追加できます。

新しいビジネス・プロセスを作成するには

1. プロジェクトのようこそページに移動します。

2. 共有プロジェクトを編集する場合は、現在そのプロジェクトを編集中であることを確認します。

3. 「プロセス」をクリックし、次に「新規プロセス」をクリックします。

4. プロセスの名前を入力し、「作成」をクリックします。

新規プロセスがプロセスのリストに表示されます。

新しいビジネス・プロセスを作成すると、そのプロセスには、デフォルト・シーケンス・フローで接続された開始イベントと終了イベントが含まれます。デフォルトでは、開始イベントと終了イベントはいずれもNoneイベントです。ビジネス・プロセスの要件にあわせてタイプを変更できます。

詳細は、付録A「プロセスの開始点および終了点の定義」を参照してください。

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

Oracle BPMプロジェクトを開いた後、このプロジェクトに含まれる任意のプロセスを開くことができます。

ビジネス・プロセスを開くには

1. プロジェクトのようこそページに移動します。

2. 「プロセス」をクリックします。

3. 開くプロセスの名前をクリックします。

プロセス・エディタ・ウィンドウでプロセスが開きます。プロセスを編集する前に、編集モードであることを確認する必要があります。

5.3.3 ビジネス・プロセスを削除する方法

プロジェクトからプロセスを削除できます。

プロジェクトのビジネス・プロセスを削除するには:

1. プロジェクトを開きます。

2. プロジェクトのようこそページに移動します。

3. 「プロセス」をクリックします。

4. 削除するプロセスの名前にカーソルを移動します。

5. 「削除」アイコンをクリックし、「OK」をクリックします。

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

プロセスを削除するときは、削除するプロセスへの参照がプロジェクト内の他の部分に残っていないことを確認してください。たとえば、削除するプロセスが別のプロセスからメッセージ・スロー・イベントを通じて起動されていた場合は、削除するプロセスを参照しないように呼び出し側プロセスを再構成したことを確認する必要があります。削除するプロセスへの参照が残っている場合は、検証時にエラーが表示されます。

5.4 フロー要素の使用

この項では、プロセス・エディタを使用してプロセスにフロー要素を追加する方法の基本メカニズムについて説明します。BPMN 2.0を使用したビジネス・プロセス設計については、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。

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

プロセスにフロー・オブジェクトを追加するには、コンポーネント・パレットからプロセス・エディタ・キャンバスにフロー・オブジェクトをドラッグします。

コンポーネント・パレットからフロー要素を追加するには:

1. フロー要素を追加するプロセスを開きます。

2. 編集モードであることを確認します。

3. コンポーネント・パレットで、追加するフロー・オブジェクトのタイプをダブルクリックします。

4. 使用するオブジェクト入力モードを選択します。
単一のフロー・オブジェクトを入力するか、または同じタイプの複数のフロー・オブジェクトを入力するかを選択できます。詳細は、5.2.3項「BPMNコンポーネント・パレットの概要」を参照してください。

5. 追加するフロー・オブジェクトをクリックし、このフロー・オブジェクトを配置するプロセス・エディタ・キャンバス内の領域にドラッグします。
カーソルに、フロー・オブジェクトのタイプに関連付けられているアイコンが表示されます。

6. フロー・オブジェクトを追加するプロセス内のポイントにカーソルを置いてから、マウスをクリックします。
複数オブジェクト・モードで作業している場合は、引き続きプロセス・エディタ・キャンバス内をクリックして、同じタイプのフロー・オブジェクトを追加できます。

注意:

シーケンス・フローにカーソルを置くと、Business Process Composerによって、新規フロー・オブジェクトの受信シーケンス・フローと送信シーケンス・フローが自動的に作成されます。

5.4.2 フロー・オブジェクトの切取り、コピーまたは削除を行う方法

プロセス・エディタ・ウィンドウ内で、フロー・オブジェクトの切取り、コピーまたは削除を行うことができます。

フロー・オブジェクトの切取り、コピーまたは削除を行うには:

1. 切取り、コピーまたは削除を行うフロー・オブジェクトまたはシーケンス・フローを選択します。

2. プロセス・エディタ・ツールバーから「切取り」、「コピー」または「削除」を選択します。

注意:

受信シーケンス・フローおよび送信シーケンス・フローを含むフロー・オブジェクトの切取りまたは削除を行うと、Business Process Composerによって、そのフロー・オブジェクトが送信シーケンス・フローに自動的に接続されます。ただし、周囲のフロー・オブジェクトを手動で再構成する必要が生じる場合があります。

5.4.3 プロセスにフロー・オブジェクトを貼り付ける方法

事前に切取りまたはコピーしたフロー・オブジェクトを貼り付けることができます。

プロセスにフロー・オブジェクトを貼り付けるには:

1. フロー・オブジェクトを貼り付けるプロセス・エディタ・キャンバスの領域で右クリックします。

2. 「貼付け」を選択します。

5.4.4 プロセスにシーケンス・フローを追加する方法

シーケンス・フローは、プロセス内で処理が実行される順序(シーケンス)を定義します。詳細は、A.6項「シーケンス・フローを使用したプロセス・フローの制御」を参照してください。

プロセスにシーケンス・フローを追加するには:

1. プロセスを開きます。

2. 送信シーケンス・フローを作成するフロー・オブジェクトにカーソルを移動します。

3. 「シーケンス・フローの追加」ボタンをクリックします。
このボタンは、フロー・オブジェクトに送信シーケンス・フローが含まれていない場合のみ表示されます。

4. 接続するフロー・オブジェクトにカーソルを移動してクリックします。

5.4.5 シーケンス・フローを削除する方法

BPMNプロセスからシーケンス・フローを削除できます。

プロセスからシーケンス・フローを削除するには:

1. プロセス・エディタ・キャンバスで、削除するシーケンス・フローを右クリックします。

2. 「削除」を選択します。

5.4.5.1 シーケンス・フローの削除に関する注意事項

プロセスからシーケンス・フローを削除すると、そのシーケンス・フローに対して構成した実装の詳細はすべて失われます。

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

シーケンス・フローの基本プロパティを編集できます。

フロー・オブジェクトのプロパティを編集するには:

1. フロー・オブジェクトを右クリックします。

2. 「プロパティ」を選択します。

3. フロー・オブジェクトのプロパティを編集します。

4. プロパティの編集を終了した後は、「プロパティ」ダイアログ・ウィンドウの外側をクリックします。
変更内容が自動的に保存され、ダイアログ・ウィンドウが閉じます。

5.4.7 カスタム・アイコンをフロー・オブジェクトに割り当てる方法

Business Process Composerを使用して、フロー・オブジェクトのデフォルトのBPMNアイコンと置き換えるカスタム・アイコンを選択します。Oracle BPMで提供されているカスタム・アイコンのリストから選択できます。

カスタム・アイコンをフロー・オブジェクトに割り当てるには:

1. フロー・オブジェクトを右クリックし、「プロパティ」を選択します。

2. 「変更」をクリックし、使用するアイコンを選択します。

3. 「プロパティ」ウィンドウの外側をクリックすると、変更内容が適用されます。

5.5 ビジネス・カタログのコンポーネントの使用

次の各項では、Business Process Composerでビジネス・カタログを使用する際に必要な情報について説明します。ビジネス・カタログの詳細は、4.1.1.2項「ビジネス・カタログ」を参照してください。

5.5.1 ビジネス・カタログ・コンポーネントをフロー・オブジェクトに割り当てる方法

Business Process Composerを使用して、ビジネス・カタログのコンポーネントをフロー・オブジェクトに割り当てることにより、フロー・オブジェクトの実装の詳細を構成します。

ビジネス・カタログのコンポーネントは、次のフロー・オブジェクトに割り当てることができます。

- ビジネス・ルール・タスク

- サービス・タスク

- ユーザー・タスク

- メッセージ・イベントと受信タスク

ビジネス・カタログのコンポーネントをフロー・オブジェクトに割り当てるには:

1. プロセスを開きます。

2. ビジネス・カタログのコンポーネントを追加するフロー・オブジェクトを右クリックします。

3. 「実装」を選択します。

4. 「参照」を選択し、リストからビジネス・カタログのコンポーネントを選択します。

5. 「OK」をクリックします。

6. 「変更の適用」をクリックします。

注意:

フロー・オブジェクトの実装に対する変更内容を保存するには、「変更の適用」をクリックする必要があります。プロジェクトを保存しても、「変更の適用」をクリックしないと実装の変更内容は保存されません。

5.5.2 ビジネス・カタログで新しいヒューマン・タスクを作成する方法

ビジネス・カタログ内に新しいヒューマン・タスクを作成できます。詳細は、第11章「ヒューマン・タスクの使用」を参照してください。

ヒューマン・タスクを作成した後は、そのヒューマン・タスクをプロセス内のユーザー・タスクに割り当てることができます。BPMNプロセス内のヒューマン・タスクの使用方法については、付録A「プロセスへのユーザー相互作用の追加」を参照してください。

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

Oracle BPMを使用して、ドラフト・プロセスを作成およびデプロイできます。

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

ドラフト・プロセスには、実装が未定義のフロー・オブジェクトが1つ以上含まれます。ドラフト・プロセスをデプロイすると、プロセス内で完了している部分をテストできるため、すべてのフロー・オブジェクトが実装されるのを待機する必要がありません。ドラフト・プロセスを作成するには、プロセス内の1つ以上のフロー・オブジェクトをドラフトとしてマークします。

フロー・オブジェクトをドラフトとしてマークした場合、そのフロー・オブジェクトのデータ・アソシエーションは構成できません。すでにデータ・アソシエーションを構成済のフロー・オブジェクトをドラフトとしてマークすると、データ・アソシエーションは失われます。

ドラフト・フロー・オブジェクトの実装の詳細を定義できます。ただし、これは必須ではありません。ドラフトのフロー・オブジェクトに実装が定義されていなくても、プロジェクトの検証時にエラーは発生しません。

ドラフトのフロー・オブジェクトが含まれるプロジェクトをデプロイする場合、それらのフロー・オブジェクトの実装の詳細は無視されます。たとえば、ドラフトとしてマークされたユーザー・タスクがプロセスに含まれている場合、ランタイム・エンジンは関連付けられたヒューマン・タスクのインスタンスを作成しません。

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

フロー・オブジェクトをドラフトとしてマークするには、実装プロパティを編集します。

フロー・オブジェクトをドラフトとしてマークするには:

1. プロセスを開きます。

2. フロー・オブジェクトを右クリックし、「実装」を選択します。

3. 「ドラフト」の隣にあるチェック・ボックスを選択します。

4. 「変更の適用」をクリックします。

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

ドキュメント・エディタを使用して、プロセスのドキュメントを作成できます。プロセス全体のドキュメント、およびプロセス内の個々のフロー・オブジェクトのドキュメントを追加できます。

Oracle BPMを使用して、2つの異なるタイプのドキュメントを作成できます。

- エンド・ユーザー: プロセス・ワークスペースを使用したプロセスベースのアプリケーションのエンド・ユーザーが表示可能なドキュメント。

- 内部(ユースケース): ビジネス・プロセスをコラボレーションしていたり、後で改訂を行う可能性があるプロセス・アナリストおよび開発者向けのドキュメント。
プロセス内のアクティビティ、イベントおよびゲートウェイごとにユースケース・ドキュメントを定義できます。

注意:

シーケンス・フローまたは測定マークのドキュメントは作成できません。

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

ドキュメント・エディタには、プロセスのドキュメントを入力できるツールバーおよびエディタ・ペインが含まれています。

図5-5 ドキュメント・エディタ

「図5-5 ドキュメント・エディタ」の説明

5.7.1.1 ドキュメントへのリンクの挿入

ドキュメントにリンクを追加する場合は、リンク部分として完全なURLを含めます。たとえば、外部リンクを参照するには、単にwww.example.comとするのではなく、http://www.example.comとします。

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

Business Process Composerを使用して、プロセスおよびプロセス内のフロー・オブジェクトにドキュメントを追加します。

プロセスにドキュメントを追加するには:

1. プロセスを開きます。

2. ペインのリストアをクリックして、ドキュメント・エディタを表示します。ペインのリストア・アイコンはBusiness Process Composerアプリケーションの右下隅にあります。

3. 「ドキュメント」タブをクリックしてから、プロセスのタブを選択します。

4. 「ドキュメント・タイプ」ドロップダウン・メニューから、作成するドキュメントのタイプを選択します。

5. エディタ・ウィンドウでドキュメントを入力します。

6. 「適用」をクリックして、変更を保存します。

注意:

別のプロセスまたはプロセス要素を選択する前に、変更を適用する必要があります。変更を適用する前にドキュメント・エディタ以外の機能にナビゲートすると、その変更は保存されません。

プロセス内の特定のフロー・オブジェクトにドキュメントを追加するには:

1. ドキュメントを追加するプロセスを開きます。

2. ドキュメントを追加するフロー・オブジェクトを右クリックし、「プロパティ」を選択します。

3. 「プロパティ」ダイアログ・ボックスで、「ドキュメント」をクリックします。

4. 「ドキュメント・タイプ」ドロップダウン・メニューから、作成するドキュメントのタイプを選択します。

5. エディタ・ウィンドウでドキュメントを入力します。

6. 「適用」をクリックして、変更を保存します。

注意:

別のプロセスまたはプロセス要素を選択する前に、変更を適用する必要があります。変更を適用する前にドキュメント・エディタ以外の機能にナビゲートすると、その変更は保存されません。

5.7.3 プロセスにノートを追加する方法

プロセスを簡単に理解できるように、プロセスにノートを追加できます。

プロセスにノートを追加するには:

1. プロセスを開きます。

2. 編集モードであることを確認します。

3. BPMNコンポーネント・パレットで、「ノート」アイコンをクリックし、ノートを追加するプロセス内のポイントにドラッグします。

4. テキストを編集するノートをダブルクリックします。

5. ノートのテキストを入力してから、ノートの外側をクリックして終了します。

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

Business Process Composerを使用して、他のプログラムで作成されたプロセス・モデルをインポートおよびエクスポートします。

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

Business Process Composerを使用して、プロセス・モデルをインポートし、それらをBPMN表記に変換します。Oracle BPMでは、次のフォーマットのプロセス・モデルのインポートおよび変換がサポートされています。

- Visio

- ワークフロー

- XPDL

- Oracle Tutor(ファイルは拡張子.docxで保存されます)

VisioおよびXPDLのプロセスは、正しく変換されるように、変換前にプロセスへの変更が必要な場合があります。詳細は、付録E「BPMNにインポートするためのプロセスの準備」を参照してください。

注意:

元のファイルにBPMNでサポートされていないプロパティおよびアーティファクトが含まれている場合は、サポートされていない要素は変換されず、BPMNの最終プロセスから省略されます。

たとえば、元のファイルの標準アクティビティにループ特性が含まれている場合、これはBPMNではサポートされていないため、変換後のBPMNプロセスにループ特性は含まれません。

プロセス・モデルをインポートするには:

1. メイン・メニューの「インポート」を選択し、「モデルのインポート」を選択します。

2. ローカル・ファイル・システムでインポートするファイルを参照し、「OK」をクリックします。

3. VisioファイルまたはXPDLファイルをインポートする場合は、次のいずれかを選択します。

- 各プールから個別のモデルを作成

- プールを1つのモデルにマージ

このダイアログは、元のファイルに複数のプールが含まれていない場合でも表示されます。

4. 「OK」をクリックします。

新しく作成されたBPMNプロセスは、プロジェクトのようこそページから表示できます。

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

Business Process Composerを使用して、BPMNプロセスをOracle Tutorにエクスポートします。これらのファイルはMicrosoft Word(.docx)ファイルとしてエクスポートされ、Oracle Tutorの書式設定が含まれています。

BPMNプロセスをOracle Tutorにエクスポートするには:

1. メイン・メニューの「エクスポート」を選択し、Wordにエクスポートを選択します。

2. 次の中から選択します。

- アクティブ・プロセス

- 開かれているすべてのプロセス:

- プロジェクトのすべてのプロセス:

変換されたプロセスは.zipファイル形式でローカル・ファイル・システムにダウンロードされます。

3. 「保存」をクリックします。

エクスポートされたプロセスを表示するには、.zipファイルを展開する必要があります。それぞれのプロセス・ファイルには、変換時に変更されたオブジェクトに関する変換ノートが含まれます。

6 プロセス動作のシミュレート

ここでは、Oracle Business Process Composerを使用して、ビジネス・プロセスのパフォーマンスを向上するためのシミュレーションを実行する方法に関する情報を説明します。シミュレーション・モデルおよびシミュレーション定義を作成する方法について説明します。また、シミュレーションを実行し、その結果を分析する方法についても説明します。

この章は次の項で構成されています:

- 6.1項「シミュレーションの概要」

- 6.2項「シミュレーションの作成と実行」

- 6.3項「シミュレーション定義の使用」

- 6.4項「シミュレーション・モデルの使用」

- 6.5項「シミュレーションの実行」

- 6.6項「シミュレーションの結果の分析」

6.1 シミュレーションの概要

Oracle BPMには、BPMNプロセスの動作およびパフォーマンスをシミュレートする機能が用意されています。プロセス設計者は、Business Process Composerを使用して、設計フェーズ中にシミュレーションを実行できます。

シミュレーションを作成して構成した後にBusiness Process Composerで実行し、定義したリソース割当てを使用してプロセスの効率を測定します。シミュレーションを使用して、次のことができます。

- 特定のプロセスに対して複数のシミュレーション・モデルを定義し、様々な条件を分析します

- 異なるビジネス・プロセスでの処理が、参加者などの共有リソースに与える影響を知るために、マルチプロセス・シミュレーションを実行します。

注意:

Business Process Composerでは、Business Process Composerを使用して定義したテスト・データに基づいたシミュレーションのみを実行できます。実際のデータでのシミュレーションは、Oracle BPM Studioを使用して実行できます。

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

シミュレーションを実行する前に、プロジェクトのシミュレーション動作とシミュレーションに含めるプロセスを定義する必要があります。シミュレーションを定義するには、BPMプロジェクトに次のものを作成して構成する必要があります。

- シミュレーション定義
シミュレーション定義を使用して、特定のシナリオに対するプロセスとリソースを定義します。シミュレーション定義では、プロセスに関連付けるシミュレーション・モデルを選択することで、シミュレーションに含まれるプロセスを指定します。プロセスに対して、複数のシミュレーション・モデルを定義することができます。プロセスに複数のシミュレーション・モデルが定義されている場合は、それらのモデルのうちの1つを選択して、シミュレーション定義で使用する必要があります。

1つのBPMプロジェクトにおいて、それぞれが独自のパラメータ定義とシミュレーション・モデルを持つ複数のシミュレーション定義を定義できます。これによって、複数のシナリオを比較することができます。

- シミュレーション・モデル
シミュレーション・モデルを使用して、個々のプロセス・モデルのシミュレーション動作を定義します。各ビジネス・プロセスに対して複数のシミュレーション・モデルを設定して、複数のシナリオをシミュレートできます。

シミュレーションは、プロセス内の個々のタスクをコールしません。たとえば、シミュレーションはサービス・タスクに関連付けられているサービスを実行せず、変数に値は割り当てられず、外部リソースは更新されません。

6.1.2 シミュレーション・パラメータ

シミュレーション定義とシミュレーション・モデルに対して定義される一般的なパラメータに加えて、BPMNプロセス内の開始イベントとアクティビティに対するシミュレーション・パラメータも定義できます。

6.1.2.1 一般的なシミュレーション定義パラメータ

次のパラメータは、シミュレーション定義の一般的な動作を定義します。

- シミュレーション定義: シミュレーション定義の名前を定義します。

- 期間: シミュレーションの実行期間を定義します。この間隔は、月単位、日単位、時間単位、分単位および秒単位で指定します。

- 開始時間: シミュレーションの開始時間を定義します。この時間はロギングにのみ使用されます。スケジュール目的では使用されません。

- シミュレーションが終了する前に実行中のインスタンスを完了: 選択すると、シミュレーションは、指定した数のインスタンスが完了したときのみ終了します。これを選択しない場合、シミュレーションはシミュレーション期間が経過すると停止します。その時点で完了していないインスタンスはすべて「処理中」または「キュー」ステータスで表示されます。

シミュレーション定義を作成する際、これらのパラメータを定義する必要があります。ただし、必要に応じて、後で再定義できます。

6.1.2.2 シミュレーション・モデルのパラメータ

次のパラメータは、シミュレーション・モデルの一般的な動作を定義します。

- モデル名: シミュレーション・モデルの名前を定義します。

- 作成するプロセス・インスタンスの数を指定してください: シミュレーション中に作成されるシミュレーション・インスタンス数を指定します。

- 対話型タスク: 対話型タスクに対して使用される分布タイプを定義します。次の分布タイプを使用できます。

- 定数

- 均一

- 指数

- 標準

これらは、プロセス内の特定のアクティビティに対して定義されている分布方法と同じになります。プロセス内の特定のアクティビティに対する分布タイプまたはその他のパラメータを変更すると、これらの値は、シミュレーション・モデルに対して定義されている一般的な値をオーバーライドします。詳細は、6.1.2.5項「アクティビティのパラメータ」を参照してください。

- 自動タスク: 自動タスクの実行時に使用できるシミュレーション・スレッド数を定義します。このパラメータは、プロセス内の個々のアクティビティに対して定義できるスレッド・パラメータと同じです。詳細は、6.1.2.5項「アクティビティのパラメータ」を参照してください。

6.1.2.3 リソースのパラメータ

リソースは、組織内のシミュレーション・リソースを定義します。リソースは、シミュレーション定義で定義され、含まれる各プロセス・モデル間で共有できます。これらリソースは、プロジェクト内の特定のロールと関連付けることができます。これらのパラメータを使用することにより、1人またはグループのコスト、時間および効率性を決定するリソース・プロファイルを作成できます。

次のリソース・パラメータがサポートされています。

- 名前: リソースの名前を定義します。

- 時間当たりのコスト: アクティビティの実行時における、時間当たりのリソース・コストを指定します。

- 時間当たりのコスト: アクティビティの実行時における、時間当たりのリソース・コストを指定します。このパラメータは、組織リソースの割当て方法を定義する際、最大効率ポリシーを選択した場合に使用されます。詳細は、6.1.2.5項「アクティビティのパラメータ」を参照してください。

- 容量: 1回に実行可能とするアクティビティ数を指定します。

- 可用性: このリソースを利用可能とする時間の割合を指定します。

- ロール: このリソースに関連付けるロールを指定します。

6.1.2.4 開始イベントのパラメータ

開始イベントの動作とパフォーマンスをシミュレートするために、Oracle BPMは、特定の動作の可能性をシミュレートする統計モデルを使用します。Oracle BPMが使用する統計分布を選択する必要があります。

使用可能な分布タイプは、次のとおりです。

- 定数: 特定の間隔で開始イベントをトリガーします。たとえば、1分15秒と指定すると、1分15秒ごとにイベントがトリガーされます。イベントがトリガーされるたびに、プロセスの新しいインスタンスが作成されます。

- 均一: 平均パラメータと差異パラメータによって指定される範囲内の間隔で開始イベントを繰り返します。たとえば、平均を30秒、差異を3秒と定義した場合、開始イベントの新しいインスタンスが、27秒から33秒の間隔で均一に作成されます。

- 指数: 特定の間隔内で指定回数、開始イベントをトリガーします。たとえば、頻度を10とし、間隔を1時間と定義した場合、1時間当たり10回イベントがトリガーされます。イベントの分布は、指数分布に基づきます。

- 標準: 正規(ガウス)分布に基づいてイベントをトリガーします。これは、ベル曲線に基づいて繰り返す連続確率分布です。たとえば、平均値を10とし、標準偏差を2分と定義した場合、イベントは、図6-1で示されている確率に従って繰り返されます。

図6-1 シミュレーション - 開始イベントの正規分布

「図6-1 シミュレーション - 開始イベントの正規分布」の説明

この例では、イベントの8分から12分の間隔で繰り返される確率は62.8パーセントになります。

- 実数: 時間単位、日単位、週単位または月単位でのユーザー指定間隔に基づいて開始イベントをトリガーします。各間隔について平均と標準偏差を定義できます。これらのパラメータを使用すると、開始イベントは正規分布で新しいプロセス・インスタンスを作成します。
たとえば、平日について平均を5分、標準偏差を1分とし、週末については平均を1時間、標準偏差を10分として、日単位で分布を指定できます。

6.1.2.5 アクティビティのパラメータ

開始イベントに加えて、シミュレーション動作またはプロセス内の対話型および自動アクティビティを決定するパラメータを定義できます。シミュレーション・エディタのタブ付きペインでこれらのパラメータを定義します。図6-2は、対話型アクティビティのタブ付きペインの例を示しています。

図6-2 対話型アクティビティのシミュレーション・パラメータ

「図6-2 対話型アクティビティのシミュレーション・パラメータ」の説明

アクティビティのシミュレーション・パラメータは次のとおりです。

- 期間: アクティビティの実行に必要とされる時間を決定するために使用される統計モデルを指定します。使用される統計モデルは、開始イベントに対して定義される統計モデルと似ていますが、ここでは、イベントのトリガー頻度を定義するのではなく、特定のアクティビティの実行にかかる時間を定義します。
各分布タイプについては、6.1.2.4項「開始イベントのパラメータ」を参照してください。

- リソース (対話型アクティビティのみ): 同時実行可能な対話型アクティビティ数を定義します。シミュレーション・リソースがこのアクティビティにどのように割り当てられるかを定義できます。

- 組織リソース: シミュレーション定義内のすべてのプロセスで共有されるリソースです。アクティビティを実行するためにシミュレーション対象リソースを選択する方法を決定するポリシーを指定する必要があります。

- 最小コスト: 最小コストのリソースを選択します。

- 最大効率: 最大効率のリソースを選択します。

- ランダム: 最小コストと最大効率の間でランダムに選択します。

シミュレーション定義での組織リソースの定義については、6.1.2.3「リソースのパラメータ」を参照してください。

- 修正済リソース: 対話型アクティビティの実行に使用できるリソース数を明示的に定義します。

- スレッド: (自動アクティビティの場合のみ)自動アクティビティの実行時に使用されるシミュレーション・スレッド数を定義します。

- 時間当たりのコスト: アクティビティの実行に必要となるコストを指定します。このパラメータは、コストベースのレポートを作成するのに使用します。

- アクティビティ・コスト・タイプ: 基準コストとして、またはアクティビティを実行するために割り当てるリソースのコストに加算される基準コストとして定義できます。

- アクティビティ修正済基準コスト: 修正済基準コストの金額(小数で指定)を定義します。

シミュレーション定義での組織リソースの定義については、6.1.2.3「リソースのパラメータ」を参照してください。

- キュー情報: このアクティビティのキューの最大サイズを指定します。これは、このアクティビティで同時に待機するインスタンスの数です。この数が最大サイズに達すると、警告が発生します。

- 送信フロー: 各送信シーケンス・フローに沿ったプロセス・インスタンスの確率(小数で定義)を指定します。定義されている送信シーケンス・フローが1つのみの場合、確率は1になり、変更できません。

6.2 シミュレーションの作成と実行

シミュレーションを実行する前に、プロジェクトに対してシミュレーション・モデル、およびシミュレーションに含める各プロセスに対して少なくとも1つのシミュレーション定義を定義する必要があります。複数のシミュレーション定義を作成して、プロセスのパフォーマンスをテストおよび比較できます。

シミュレーションを作成して実行するには:

1. シミュレーションに含めるBPMNプロセスを作成します。
ビジネス・プロセスの作成および使用については、5.3項「ビジネス・プロセスの使用」を参照してください。

2. シミュレーション定義とシミュレーション・モデルを作成します。
プロセスの初期シミュレーション・モデルはシミュレーション定義エディタでのみ作成できます。プロセスに対して少なくとも1つのシミュレーション・モデルを作成した後、プロセスに対して追加シミュレーション・モデルを作成できます。

シミュレーション定義とシミュレーション・モデルを作成するためのシミュレーション・ウィザードの実行については、6.3.1項「シミュレーション定義を作成する方法」を参照してください。

3. プロセスのシミュレーション動作を定義するためのパラメータを構成します。
シミュレーション定義とシミュレーション・モデルに対して定義できるパラメータについては、6.1.2項「シミュレーションのパラメータ」を参照してください。プロセス内のフロー・オブジェクトのパラメータを構成する方法については、6.4.2項「シミュレーション・モデルを編集する方法」を参照してください。

4. シミュレーションを実行します。
シミュレーション定義とシミュレーション・モデルを作成および構成した後、シミュレーションを実行できます。

詳細は、6.5項「シミュレーションの実行」を参照してください。

5. シミュレーションの結果を分析します。
シミュレーション実行後、シミュレーション結果を分析して、プロセスのパフォーマンスが向上するようにパラメータを調整できます。詳細は、6.6項「シミュレーションの結果の分析」を参照してください。

6.3 シミュレーション定義の使用

シミュレーション定義は、BPMプロセスのシミュレーション動作を全体的に定義します。シミュレーション定義内で、組織リソースを含む一般的なパラメータを定義したり、シミュレーションに含めるシミュレーション・モデルを選択できます。複数のシミュレーション定義を作成して、パラメータとプロセスの様々な組合せをテストできます。

シミュレーション定義を作成した後、次の項で説明するように、リソースを編集したり、シミュレーション・モデルを追加したりできます。

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

シミュレーション定義で、様々なパラメータ値を変更して、それがプロジェクトのパフォーマンスにどのように影響するかを確認できます。定義できるパラメータは次のとおりです。

- シミュレーションの開始時間と期間

- プロジェクト・シミュレーションに含めるプロセス・シミュレーション・モデル

- シミュレーションに含めるリソース

Business Process Composerには、新規シミュレーション定義の作成と構成、新規シミュレーション・モデルの作成と構成、および組織リソースの構成を順に行うウィザードが用意されています。

シミュレーション定義を作成および構成するには:

1. プロジェクトのようこそページのツールバーの「シミュレート」をクリックします(図6-3を参照)。

図6-3 プロジェクトのようこそページの「シミュレート」ボタン

「図6-3 プロジェクトのようこそページの「シミュレート」ボタン」の説明

シミュレーション・エディタが表示されます。

2. 図6-4に示すように、「追加」(+)アイコンをクリックします。

図6-4 シミュレーション・エディタ・ウィンドウ

「図6-4 シミュレーション・エディタ・ウィンドウ」の説明

3. シミュレーションの名前と、シミュレーション定義内の期間と開始時間の値を入力します。
シミュレーション定義を作成する際、これらのパラメータを定義する必要があります。ただし、必要に応じて、後で再定義できます。

各パラメータの詳細は、6.1.2.1項「一般的なシミュレーション定義パラメータ」を参照してください。

4. 「次へ」をクリックします。

5. シミュレーション定義に含める各プロセスの新しいシミュレーション・モデルを作成します。
シミュレーション・モデルはシミュレーション定義間で共有できます。ただし、初めてシミュレーション定義を作成するときは、各プロセスに対して少なくとも1つのシミュレーション・モデルを作成する必要があります。

1. 「追加」(+)アイコンをクリックして、新しいシミュレーション・モデルを作成します(図6-5を参照)。

図6-5 シミュレーション・モデル・パネル

「図6-5 シミュレーション・モデル・パネル」の説明

シミュレーション・モデルでは、プロセスのシミュレーション動作を定義します。1つのプロセスに対して複数のシミュレーション・モデルを定義できますが、1つのシミュレーション・モデルのみがシミュレーション定義内の各プロセスに使用されます。

2. 図6-6に示すように、各フィールドに情報を入力します。

図6-6 新規シミュレーション・モデル・エディタ

「図6-6 新規シミュレーション・モデル・エディタ」の説明

各パラメータの詳細は、6.1.2.2項「シミュレーション・モデルのパラメータ」を参照してください。

3. 「追加」をクリックします。

必要に応じて、追加のシミュレーション・モデルを作成します。シミュレーション定義に含めない場合でもプロジェクト内の各プロセスに対して少なくとも1つのシミュレーション・モデルを作成する必要があります。こうすると、追加のシミュレーション・モデルを後で作成して、それらをシミュレーション定義に追加することができます。

6. 図6-5に示されているように、シミュレーション・モデルをシミュレーション定義に含める各プロセスの隣にあるチェック・ボックスを選択します。
プロセスのシミュレーション・モデルを作成していない場合は選択できません。

7. 「次へ」をクリックします。

8. 「リソースの追加」アイコンをクリックして、シミュレーション定義にリソースを追加します(オプション)。
定義できるリソース・パラメータについては、6.1.2.3「リソースのパラメータ」を参照してください。

9. 「終了」をクリックします。

6.3.2 シミュレーション定義作成時の処理

新規シミュレーション定義とシミュレーション・モデルを作成したら、図6-7のようにシミュレーション・パネルが表示されます。

図6-7 シミュレーション定義作成後の「シミュレーション」パネル

「図6-7 シミュレーション定義作成後の「シミュレーション」パネル」の説明

このパネルには、プロジェクトで定義されているすべてのシミュレーション定義を含むドロップダウン・リストが表示されます。また、現在選択されているシミュレーション定義に含まれるすべてのシミュレーション・モデルも表示されます。ドロップダウン・リストから別のシミュレーション定義を選択すると、そのシミュレーション定義に対して定義されているシミュレーション・モデルが表示されます。

このパネルから、次のタスクを実行できます。

- シミュレーション定義を編集します。詳細は、6.3.3項「シミュレーション定義を編集する方法」を参照してください。

- シミュレーションを実行します。詳細は、6.5.1項「シミュレーションを実行する方法」を参照してください。

- シミュレーション・モデルを編集します。詳細は、6.4.2項「シミュレーション・モデルを編集する方法」を参照してください。

6.3.3 シミュレーション定義を編集する方法

シミュレーション定義を作成した後、シミュレーション・パネルから編集できます。

シミュレーション定義を編集するには:

1. プロジェクトのようこそページのツールバーの「シミュレート」をクリックします(図6-3を参照)。
「シミュレート」をクリックしたら、シミュレーション・パネルは図6-7のようになります。

2. ドロップダウン・リストから、編集するシミュレーション定義を選択し、「編集」アイコンをクリックします。
図6-8のように、シミュレーション定義エディタがタブ付きペインで表示されます。

図6-8 シミュレーション定義エディタ

「図6-8 シミュレーション定義エディタ」の説明

このエディタから、シミュレーション定義のシミュレーション・モデルを追加または削除したり、リソースを追加したり、シミュレーションを実行できます。

3. 必要に応じて、開始時間、期間および終了時間を編集します。各パラメータの詳細は、6.1.2.1項「一般的なシミュレーション定義パラメータ」を参照してください。

4. シミュレーション定義にリソースを追加するには、「リソースの追加」アイコンをクリックし、必要に応じて「リソース」表のフィールドを編集します。リソースに対して定義できるパラメータの詳細は、6.1.2.3「リソースのパラメータ」を参照してください。

6.3.4 シミュレーション定義にシミュレーション・モデルを追加する方法

新しいシミュレーション・モデルを作成する前に、少なくとも1つのシミュレーション定義を作成する必要があります。詳細は、6.3.1項「シミュレーション定義を作成する方法」を参照してください。

シミュレーション定義にシミュレーション・モデルを追加するには:

1. プロジェクトのようこそページのツールバーの「シミュレート」をクリックします(図6-3を参照)。

2. ドロップダウン・リストから、シミュレーション・モデルを追加するシミュレーション定義を選択します。
新しいシミュレーション・モデルは、シミュレーション定義エディタから作成します。ただし、プロセスに対するシミュレーション・モデルを作成した後は、そのモデルを複数のシミュレーション定義で共有できます。

3. 「編集」アイコンをクリックします。

4. 「モデル」ペインの「モデル・シミュレーションの追加」アイコンをクリックします。

5. 図6-9のように、ドロップダウン・リストからプロセスを選択し、シミュレーション・モデルを選択します。

図6-9 シミュレーション定義へのシミュレーション・モデルの追加

「図6-9 シミュレーション定義へのシミュレーション・モデルの追加」の説明

6. 「追加」をクリックします。

7. 新しいシミュレーション・モデルがリストに表示されます。

6.4 シミュレーション・モデルの使用

シミュレーション・モデルを使用すると、個々のプロセスの動作をシミュレートできます。シミュレーション定義の一部としてプロセスの動作を指定できます。

各プロセスに複数のシミュレーション・モデルを定義し、リソース割当てとアクティビティ動作の様々な組合せに基づいて様々なシミュレーションを作成できます。

6.4.1 新しいシミュレーション・モデルを作成する方法

1つのプロセスに対して複数のシミュレーション・モデルを作成できます。シミュレーション定義ごとに異なるモデルを含めて、パラメータ設定に基づいてパフォーマンスを判断することができます。

注意:

プロセスに対する最初のシミュレーション・モデルは、直接作成できません。プロセスの最初のシミュレーション・モデルは、シミュレーション定義エディタで作成する必要があります。初期シミュレーション・モデルを作成した後、次の手順で追加のモデルを作成できます。

シミュレーション定義作成時のシミュレーション・モデルの作成については、6.3.1項「シミュレーション定義を作成する方法」を参照してください。

プロセスに対して新しいシミュレーション・モデルを作成するには:

1. プロジェクトのようこそページのツールバーの「シミュレート」をクリックします(図6-3を参照)。

2. 新しいシミュレーション・モデルを作成するプロセスを含むシミュレーション定義を選択します。

3. シミュレーション・モデルの横の編集アイコンをクリックします。
プロセスがシミュレーション・キャンバスに表示されます。このキャンバスは、プロセス・エディタ・キャンバスに似ています。プロセス・エディタ・ツールバーのドロップダウン・リストを使用して、プロセス・デザイナとシミュレーション・キャンバス間を切り替えることができます。

4. 図6-10で示されているように、プロセス・エディタ・ツールバーの「追加」アイコンをクリックします。

図6-10 シミュレーション・エディタ・ツールバー

「図6-10 シミュレーション・エディタ・ツールバー」の説明

5. 名前を入力し、作成をクリックします。

新規シミュレーション・モデルが作成されます。新規シミュレーション定義の作成時または既存シミュレーション定義の編集時にこのモデルを使用できます。詳細は、6.3.4項「シミュレーション定義にシミュレーション・モデルを追加する方法」を参照してください。

6.4.2 シミュレーション・モデルを編集する方法

シミュレーション・モデルを編集するには

1. プロジェクトのようこそページのツールバーから、「シミュレート」をクリックします。

2. ドロップダウン・リストから、編集するシミュレーション・モデルが含まれているシミュレーション定義の名前を選択します。

3. 編集するシミュレーション・モデルの隣にある「編集」アイコンをクリックします。
プロセスがシミュレーション・キャンバスに表示されます。このキャンバスは、プロセス・エディタ・キャンバスに似ています。図6-10のように、プロセス・エディタ・ツールバーのドロップダウン・リストを使用して、プロセス・デザイナとシミュレーション・キャンバス間を切り替えることができます。

注意:

このドロップダウン・リストは、プロセスに対して少なくとも1つのシミュレーション・モデルが定義されている場合のみ表示されます。

4. 構成するシミュレーション情報が含まれるフロー・オブジェクトの上にマウスを重ねて、リソースを定義するフロー・オブジェクトの「編集」アイコンをクリックします。
このシミュレーション定義ペインは図6-11のようになります。

図6-11 シミュレーション・モデル・エディタのリソース定義パネルの表示

「図6-11 シミュレーション・モデル・エディタのリソース定義パネルの表示」の説明

5. タブをクリックし、適切なシミュレーション・パラメータを編集して、フロー・オブジェクトのシミュレーション・パラメータを編集します。特定のフロー・オブジェクトに対して構成できるパラメータについては、6.1.2.4項「開始イベントのパラメータ」と6.1.2.5項「アクティビティのパラメータ」を参照してください。

6. パラメータを編集したら、ポップアップ・ウィンドウの外側をクリックして変更内容を保存します。

6.5 シミュレーションの実行

シミュレーション・モデルとシミュレーション定義を定義したら、シミュレーションを実行して、BPMプロジェクトのパフォーマンスを表示できます。

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

シミュレーションを実行するには、テストする各プロセスに対してシミュレーション定義とシミュレーション・モデルが少なくとも1つ定義されている必要があります。

シミュレーションを実行するには:

1. プロジェクトのようこそページのツールバーから、「シミュレート」をクリックします。

2. 「実行」アイコンをクリックします。

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

シミュレーションのアニメーションがシミュレーション定義エディタに表示されます。

注意:

チャートのカラム上にマウス・ポインタを置くと、アクティビティまたはインジケータの値を示すツールチップが表示されます。

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

「シミュレーション」ウィンドウで「チャート」タブまたは「ログ」タブをクリックして、シミュレーション結果をチャートまたはログ・ファイルとして表示できます。

「ログ」タブには、シミュレーションされたプロセスのすべてのインスタンスの動作を追跡するログが表示されます。ログの各行には、次の情報が示されます。

- 日付と時間

- プロセス

- インスタンス

- インスタンスのパス

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

「チャート」タブでは、シミュレーションの結果を表示するチャートのタイプを選択できます。このチャートは、監視するリソースが表示されるように構成できます。チャートがリソースの使用状況の測定に使用する単位を選択することもできます。

「チャート」タブでは、次を構成することによってシミュレーションの結果のチャートを表示する方法を構成できます。

- チャートのタイプ

- 監視するアクティビティまたはリソース

- インジケータ

チャートを使用してシミュレーションの結果を分析するには:

1. 「チャート」タブの下のリストから、表示するチャートのタイプを選択します。
使用可能なタイプを次に示します。

- 列

- 棒

- 棒3D

- カラム3D

- 表

2. 「チャート」タブの右側にある「構成」アイコンをクリックします。
「構成」ダイアログ・ボックスが表示されます。

3. 監視するリソースまたはアクティビティを選択します。

4. アクティビティまたはリソースを表示する軸を選択します。

5. 「表示」リストの下のリストから、シミュレーションで監視するアクティビティまたはリソースを選択します。

6. 「インジケータ」リストから、監視するインジケータのタイプを選択します。
インジケータの使用可能なタイプは、次のとおりです。

- コスト

- 時間

- 単位

7. インジケータ・リストの下のリストから、監視するインジケータを選択します。
チャートには、選択した変数とインジケータが表示されます。

8. 「閉じる」をクリックします。

9. 必要に応じて、「タイプ」リストの横にあるドリル・アップおよびドリル・ダウンのアイコンをクリックして、チャートの詳細レベルを増減します。

7 プロセス・プレーヤの使用

この章では、BPMプロジェクト内のビジネス・プロセスをテストするプロセス・プレーヤの使用方法について説明します。

この章は次の項で構成されています:

- 7.1項「プロセス・プレーヤの概要」

- 7.2項「プロセス・プレーヤを使用したビジネス・プロセスの動作のテスト」

7.1 プロセス・プレーヤの概要

プロセス・プレーヤは、ビジネス・プロセスを素早く簡単にテストする方法を提供します。Business Process Composerからアクセス可能な、ビジネス・プロセスの実際の動作をエミュレートするランタイム環境を提供します。これを使用すると、プロセス設計者は、BPMプロジェクトを保存およびデプロイしてプロセス・ワークスペースに表示しなくても、簡単にプロセスの作成、テストおよび改訂を行うことができます。

プロセス・プレーヤでは、プロセスの動作のアニメーション表示が提供されます。図7-1は、プロセス・プレーヤ・ビューを示しています。

図7-1 プロセス・プレーヤ

「図7-1 プロセス・プレーヤ」の説明

赤色のアウトラインは、プロセスのフロー・オブジェクトおよびシーケンス・フローを経由したプロセス・インスタンスを示します。プロセスを経由したインスタンスの特定のパスは、様々なフロー・オブジェクトに対して指定した入力データによって異なります。詳細は、7.1.1項「プロセス・プレーヤでのプロセスのフロー・オブジェクトの処理方法」を参照してください。

ビジネス・プロセスでプロセス・プレーヤを実行すると、現在のドラフト・バージョンのBPMプロジェクトが検証され、Oracle BPMランタイム環境のテスト・パーティションにデプロイされます。ビジネス・プレーヤの使用時、プロセス設計中の変更を表示するために、プロジェクトを保存したり手動でデプロイする必要はありません。

プロセス・プレーヤを使用して、プロセス・インスタンスの作成および動作をテストできます。プロジェクト内の各プロセスの複数のインスタンスを作成できます。

注意:

プロセス・プレーヤは、BPMプロジェクトを現在編集中である場合にのみ使用できます。

7.1.1 プロセス・プレーヤでのプロセスのフロー・オブジェクトの処理方法

プロセス・プレーヤはプロセスを通して実行する際に、プロセス内のフロー・オブジェクトの一部の実行時動作をエミュレートします。

- ユーザー・タスク
プロセス・プレーヤがプロセス内のユーザー・タスクに達した際、そこで実行されるアクションは、ヒューマン・タスクにフォームが割り当てられているかどうかに応じて異なります。

フォームが割り当てられていない場合、プロセス・プレーヤが停止し、そのタスクを実行するシミュレーション・ユーザーを入力できる状態になります。そのヒューマン・タスクに対して定義されている結果の1つを選択するように求められます。デフォルトの結果は承認および却下です。ただし、ヒューマン・タスクで結果がどのように構成されているかに応じて、可能性のある結果のリストが異なります。詳細は、11.3.4項「基本タスク・プロパティの構成方法」を参照してください。結果を選択すると、プロセス・プレーヤはプロセスの次のフロー・オブジェクトに進みます。

Webフォームがヒューマン・タスクに割り当てられている場合、プロセス・プレーヤは、Webフォームの起動オプションと、結果の選択オプションを提供します。Webフォームの起動を選択すると、Business Process ComposerがWebフォームをデプロイし、これをビューアに表示します。

ヒューマン・タスクにADFフォームが割り当てられている場合、プロセス・プレーヤから表示するにはOracle JDeveloperを使用してランタイム環境にフォームをデプロイする必要があります。ADFフォームがデプロイされると、Business Process Composerが、プロセス・プレーヤ・パーティションへのデプロイ時にアクセスできます。

WebフォームまたはADFフォームを表示した後、引き続きプロセスを実行するには、手動でフォーム・ビューア・ウィンドウを閉じる必要があります。

- メッセージ送信イベントと送信タスク
プロセス・プレーヤがプロセス内のメッセージ送信イベントまたは送信タスクに達すると、これらが自動的に実行されます。それからプロセス・インスタンスのコールを続け、対応するメッセージ・キャッチまたは受信タスクで停止します。いずれの場合でも、親プロセスに手動で戻る必要があります。たとえば、送信/受信ペアが、同じプロジェクトの別のプロセスでインスタンスを作成している場合、プロセス・プレーヤのホームに戻って、このプロセスの新しいインスタンスを選択し、子プロセスを実行し、親プロセスに戻ることができます。送信/受信ペアが外部Webサービスをコールする場合は、プロセスの実行を続けるために必要なWebサービス・メッセージを手動で入力する必要があります。

- タイマー・イベント
プロセス・プレーヤは、プロセス内のタイマー・イベントに到達すると一時停止し、ユーザーがフロー・オブジェクトの「実行」アイコンをクリックするまで待機します。プロセス・プレーヤはプロセスの次のフロー・オブジェクトに進みます。

- コール・アクティビティ
プロセス・プレーヤが到達したところで、コール・アクティビティが子プロセスをコールし、プロセスの子インスタンスを作成します。子プロセスを表示するには、ドリル・ダウン・アイコンをクリックします。

- 終了イベント
プロセス・プレーヤは、終了イベントに到達すると一時停止し、「ドリル・アップ」アイコンを表示します。このアイコンをクリックすると、プロセス・プレーヤは親プロセスに戻ります。現在のプロセスに親が存在しない場合は、プロセス・プレーヤのホームに戻り、プロセス・インスタンスは削除されます。

- その他のフロー・オブジェクト
プロセス・プレーヤが到達した別のフロー・オブジェクトで、一部の操作や外部イベントをインスタンスが待機する処理が発生すると、プロセス・プレーヤは一時停止します。プロセスの実行を続行するには、プロセス・プレーヤ・ホームの上部にある「リフレッシュ」アイコンをクリックします。

7.1.2 Business Process Composerのプロセス・プレーヤの有効化

プロセス設計者がプロセス・プレーヤを使用してBPMプロジェクトのプロセスをテストできるようになるには、システム管理者がプロセス・プレーヤを有効にする必要があります。詳細は、16.4項「プロセス・プレーヤの管理者資格証明の定義方法」を参照してください。

7.2 プロセス・プレーヤを使用したビジネス・プロセスの動作のテスト

7.2.1 プロセス・プレーヤにアクセスする方法

Business Process Composerでプロセス・プレーヤにアクセスする方法には、次の2つの方法があります。

- プロジェクト・ツールバーから。
プロジェクト・プレーヤが有効で、ユーザーがプロジェクトの編集中である場合は、プロジェクト・ツールバーに、プロセス・プレーヤにアクセスするためのアイコンが表示されます(図7-2を参照)。

図7-2 プロジェクト・エディタ・ツールバーの「プロセス・プレーヤ」アイコンの表示

「図7-2 プロジェクト・エディタ・ツールバーの「プロセス・プレーヤ」アイコンの表示」の説明

- プロジェクト・メイン・メニューから。
プロジェクト・プレーヤが有効で、ユーザーがプロジェクトの編集中である場合は、プロジェクト・メニューに、プロセス・プレーヤにアクセスするためのメニュー・オプションが表示されます(図7-3を参照)。

図7-3 プロジェクト・メニューの「プロセス・プレーヤ」メニュー・アイテムの表示

「図7-3 プロジェクト・メニューの「プロセス・プレーヤ」メニュー・アイテムの表示」の説明

7.2.2 プロセス内で定義されたロールを組織のユーザーにマップする方法

プロセス・プレーヤを使用する前に、プロセス内で定義されたロールを、ランタイム環境で定義された組織インフラストラクチャのユーザーまたはグループにマップする必要があります。プロセス・プレーヤは、組織の情報を使用して、実際の状況におけるビジネス・プロセスの動作を模倣します。

ロールを組織のユーザーにマップするには:

1. プロジェクトを開きます。

2. プロセス・プレーヤを起動します。詳細は、7.2.1項「プロセス・プレーヤにアクセスする方法」を参照してください。

3. 「組織」ペインで、マップするプロセスのロールをドロップダウン・リストから選択します。ドロップダウン・リストには、プロセス内で定義されているすべてのロールが表示されます。図7-4は「組織」ペインを示しています。

図7-4 プロセス・プレーヤ - 「組織」ペイン

「図7-4 プロセス・プレーヤ - 「組織」ペイン」の説明

4. マップするユーザーまたはグループを選択します。

1. 「選択」をクリックします。

2. ユーザーまたはグループをドロップダウン・リストから選択します。

3. 検索するユーザーまたはグループの名前を入力して、「検索」をクリックします。すべてのユーザーまたはグループのリストを表示するには、テキスト領域を空白にしたまま「検索」をクリックします。

4. 表で、マップする各ユーザーまたはグループの隣にあるチェック・ボックスを選択します。ユーザーまたはグループを選択すると、そのユーザーまたはグループがチューザ・ウィンドウの下部に表示されます。

5. 「OK」をクリックします。

5. 「マッピングの追加」をクリックします。

プロセス・ロールにマップしたユーザーまたはグループが、マッピング表に表示されます。

注意:

少なくとも1つのユーザーまたはグループを、プロセス内の各ロールにマップする必要があります。プロセス・プレーヤは、マップされていないロール内のユーザー・タスクに遭遇した場合、ヒューマン・タスク後、プロセスの実行を続行できません。

7.2.3 プロセス・プレーヤを使用してビジネス・プロセスを実行する方法

プロセス・プレーヤを使用してビジネス・プロセスの動作をテストする前に、プロセス内のすべてのロールを、組織内の少なくとも1つのユーザーまたはグループにマップ済であることを確認してください。詳細は、7.2.2項「プロセス内で定義されたロールを組織のユーザーにマップする方法」を参照してください。

プロセス・プレーヤを使用するには:

1. プロジェクトを開きます。

2. プロセス・プレーヤにアクセスします。詳細は、7.2.1項「プロセス・プレーヤにアクセスする方法」を参照してください。

3. プロセスを選択します。

4. プロセスの開始イベントにある「再生」アイコンをクリックします(図7-5を参照)。

図7-5 プロセス・プレーヤの開始イベントの「再生」アイコン

「図7-5 プロセス・プレーヤの開始イベントの「再生」アイコン」の説明

プロセス・プレーヤがプロセスの実行を開始します。各フロー・オブジェクトおよびシーケンス・フローを通過すると、プロセスで経由したパスは赤色で描画されます。

プロセス・プレーヤがプロセスの実行を続行しているときに、プロセス・インスタンスが次のいずれかのフロー・オブジェクトに到達すると、プロセス・プレーヤは停止します。

- ユーザー・タスク

- コール・アクティビティ

- メッセージ・イベント

- タイマー・イベント

プロセス・プレーヤがプロセスの実行を続行する前に、これらの各フロー・オブジェクトに関する入力を提供する必要があります。詳細は、7.1.1項「プロセス・プレーヤでのプロセスのフロー・オブジェクトの処理方法」を参照してください。

5. プロセス・プレーヤがユーザー・タスクで一時停止した場合:

1. ユーザー・タスクの「再生」アイコンをクリックします(図7-6を参照)。

図7-6 プロセス・プレーヤのユーザー・タスクの「再生」アイコン

「図7-6 プロセス・プレーヤのユーザー・タスクの「再生」アイコン」の説明

2. タスクを実行するユーザーを選択します。

注意:

ユーザーのリストが空で表示される場合は、プロセスのすべてのロールが正しくマップ済であることを確認してください。

3. 「実行」をクリックし、結果をリストから選択します。可能性がある結果は、現在のユーザー・タスクに関連付けられているヒューマン・タスクによって定義されます。
図7-7は、ユーザーjsteinが選択され、承認の結果が実行された場合の例を示しています。

図7-7 ヒューマン・タスクのユーザーおよび結果の選択

「図7-7 ヒューマン・タスクのユーザーおよび結果の選択」の説明

結果を選択すると、プロセス・プレーヤはプロセス内の次のフロー・オブジェクトに進みます。

6. プロセス・プレーヤがメッセージ・キャッチ・イベントまたは受信タスクで停止した場合、子プロセスのインスタンスを作成します。

1. 「実行」アイコンをクリックします。

2. 「プロジェクト・プレーヤ」タブを選択します。

3. 「インスタンス」表で、新しく作成されたインスタンスを選択します。
元のプロセスの「プロセス・プレーヤ」タブを閉じるかどうかをたずねられます。このウィンドウを閉じても、プロセス・インスタンスに影響はありません。

4. 「OK」をクリックします。
プロセス・プレーヤにより、新しいプロセス・インスタンスが開かれ、親プロセスからコールされたメッセージ開始イベントからプロセスの実行が開始されます。

5. プロセス・プレーヤを一時停止するフロー・オブジェクトについては、前述の手順と同様に「実行」アイコンをクリックします。

6. プロセス・プレーヤがプロセスのメッセージ終了イベントに到達したら、ドリルアップの矢印をクリックして親プロセスに戻ります(図7-8を参照)。

図7-8 メッセージ終了イベントの「ドリル・アップ」アイコン

「図7-8 メッセージ終了イベントの「ドリル・アップ」アイコン」の説明

プロセス・プレーヤにより、このプロセスのタブが閉じられ、プロセス・インスタンスはインスタンスのリストから削除されます。

7. プロセス・インスタンスのリストから、親プロセスのプロセス・インスタンスを開きます。

親プロセスのプロセス・インスタンスを再度開くと、プロセス・プレーヤは、子プロセスがコールされた地点からプロセスの実行を続行します。

7. プロセス・プレーヤがプロセス内の終了イベントに到達したら、「ドリル・アップ」アイコンをクリックして(図7-8を参照)、プロセス・インスタンスを終了します。プロセス・プレーヤはプロセス・プレーヤ・エディタに戻り、プロセス・インスタンスは削除されます。

8 プロジェクト・ライフサイクルの使用

この章では、BPMプロジェクトに関連するいくつかの拡張機能について説明し、開発ライフサイクル内でそれらの拡張機能を使用する方法について説明します。

この章の内容は次のとおりです。

- 8.1項「プロジェクトのインポートおよびエクスポート」

- 8.2項「BPMプロジェクト・テンプレートの概要」

- 8.3項「プロジェクト・テンプレートの使用」

- 8.4項「プロジェクト・スナップショットの使用」

8.1 プロジェクトのインポートおよびエクスポート

Business Process Composerを使用すると、BPMプロジェクトを.expファイルとしてインポートおよびエクスポートできます。この機能によって、BPMリポジトリを使用せずに、ファイル・システムを直接使用して、他のBusiness Process ComposerユーザーおよびBPM Studioユーザーとプロジェクトを直接共有できます。

8.1.1 ローカル・ファイル・システムからプロジェクトをインポートする方法

以前にエクスポートして.EXPファイルとして保存したBPMプロジェクトをインポートできます。インポートしたプロジェクトは、BPMリポジトリに格納されます。

プロジェクトをインポートするには:

1. アプリケーションのようこそページにアクセスします。

2. メイン・メニューのインポートを選択し、「プロジェクトのインポート」を選択します
図8-1に示すように、メイン・メニューは、Business Process Composerユーザー・インタフェースの左上にあります。

図8-1 アプリケーション・コンポーザのメイン・メニュー

「図8-1 アプリケーション・コンポーザのメイン・メニュー」の説明

3. 「参照」をクリックして、インポートするプロジェクト・ファイルを選択します。

4. 「OK」をクリックします。

5. プロジェクトの名前を入力します。
インポートするプロジェクト・ファイルを選択すると、名前フィールドは自動的に伝播されます。

6. 説明を入力します(オプション)。

7. 必要に応じて、インポートしたプロジェクトが作成されるBPMリポジトリ内のフォルダを選択する場合は、「参照」をクリックしてから、フォルダを選択します。

8. 「OK」をクリックして、プロジェクトをBPMリポジトリにインポートします。

8.1.2 ローカル・ファイル・システムにプロジェクトをエクスポートする方法

Business Process ComposerからエクスポートしたプロジェクトをOracle BPM Studioにインポートできます。プロジェクトをローカル・ファイル・システムにエクスポートすると、Oracle BPM MDSリポジトリを使用せずにプロジェクトを共有できます。

Oracle BPM Studioへのプロジェクトのインポートの詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

プロジェクトをEXPファイルとしてエクスポートするには:

1. エクスポートするプロジェクトを開きます。

2. メイン・メニューの「エクスポート」を選択し、「プロジェクトのエクスポート」を選択します。

3. ローカル・ファイル・システム上の場所を選択し、「保存」をクリックします。

エクスポートしたプロジェクトは、ローカル・ファイル・システム上に.EXPファイルとして保存されます。

プロジェクトをOracle Tutorファイルとしてエクスポートするには:

1. エクスポートするプロジェクトを開きます。

2. メイン・メニューの「エクスポート」を選択し、「Oracle Tutorのエクスポート」を選択します。

3. 次の中から選択します。

- アクティブ・プロセス: 現在アクティブなプロセスを選択します。このオプションは、プロセスがすでに開かれていて、現在焦点がそのプロセスに置かれている場合にのみ表示されます。

- 開かれているすべてのプロセス: 現在開いているプロセスのみをエクスポートします。

- プロジェクトのすべてのプロセス: 現在のプロジェクトのすべてのプロセスをエクスポートします。

4. 「OK」をクリックします。

ファイルは、ファイル・システム上に.ZIPファイルとして保存されます。

8.2 BPMプロジェクト・テンプレートの概要

プロジェクト・テンプレートを使用すると、ビジネス・ユーザーは、開発者の支援を受けなくてもカスタムOracle BPMアプリケーションを迅速に作成し、それをランタイムにデプロイできます。ビジネス・ユーザーは、Oracle Business Process Composerを使用して、プロジェクト・テンプレートを基に新しいBPMプロジェクトを作成できます。これらのプロジェクトには、BPMNプロセス・フローが含まれているため、ランタイムに直接デプロイできます。

プロジェクト・テンプレートには、ヒューマン・タスク、ビジネス・ルール、アダプタなどの再使用可能なコンポーネントとサービスを統合できます。これらのサービスは、ビジネス・カタログの一部として格納されます。

管理者権限があるBusiness Process Composerユーザーは、ローカル・ファイル・システムからプロジェクト・テンプレートを直接インポートすることもできます。詳細は、第16章「管理タスクの実行」を参照してください。

Oracle BPM Studioを使用すると、プロセス開発者は、通常のプロジェクトをテンプレートに変換し、それをOracle BPMリポジトリに公開できます。テンプレートがリポジトリで使用可能になると、Business Process Composerを使用してテンプレートを基に新しいプロジェクトを作成できます。

プロセス・テンプレートの作成の詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

プロジェクト・テンプレートは、通常のOracle BPMプロジェクトに基づいており、一般に、ビジネス・カタログで定義される必須の実装とサービスをすべて保持しています。ただし、必要なフロー・オブジェクトに割り当てられる必須のサービスが一部ない場合があります。プロジェクト・テンプレートに基づいて新しいプロジェクトを作成した後、ビジネス・アナリストは、必要なフロー・オブジェクトにビジネス・カタログ・コンポーネントを割り当てることができます。

各アクティビティに必要な特定のサービスは、プロジェクト・テンプレートのエディタ・ポリシーによって定義されます。プロセス・アナリストが必要なサービスを取り込んだ後、プロジェクトをOracle BPMランタイムにデプロイできるようになります。

8.2.1 編集ポリシーの概要

プロジェクト・テンプレートを使用して、プロセスおよびプロセス内のフロー・オブジェクトの編集ポリシーを定義することもできます。編集ポリシーにより、プロジェクト・テンプレートに基づく新規プロジェクトの作成時に、プロセスのどの部分を変更または編集できるかが決定します。編集ポリシーはプロセス全体に対して定義されます。ただし、個々のフロー・オブジェクトに対する編集ポリシーを定義することもできます。

プロセス・テンプレートでの編集ポリシーの定義の詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

編集ポリシーを使用すると、テンプレートからのプロジェクト作成時にプロセスのどの要素を変更でき、どの要素を変更できないかを、プロジェクト・テンプレートの作成者が定義できます。

注意:

Business Process Composerを使用してプロセスおよび要素の編集ポリシー設定を変更することはできません。

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

プロジェクト・テンプレートでは、各プロセスに編集ポリシーが含まれており、そのポリシーによって、Business Process Composerを使用してプロセスに加えることができる変更が決定されます。

表8-1では、プロセス・レベルの編集ポリシーについて説明します。

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

編集ポリシー

説明

シールされたアクティビティ

ユーザーはプロセス内のアクティビティに変更を加えることはできません。

シールされたフロー

プロセスの全体的なフローを変更することはできません。ユーザーは特定の実装の詳細を編集できますが、プロセス・フローを変更できません。

8.2.1.2 コンポーネント・レベルの編集ポリシー

プロセス内には、プロセス内のフロー・オブジェクトに適用される編集ポリシーもあります。コンポーネント・レベルの編集ポリシーは、プロセス内のフロー・オブジェクト用に構成できます。

表8-2では、コンポーネント・レベルの編集ポリシーに対して構成できる編集ポリシーの値について説明します。

表8-2 コンポーネント・レベルの編集ポリシー

編集ポリシー

説明

シール済

フロー・オブジェクトは変更できません

実装を変更できます

ユーザーは必要に応じてこのフロー・オブジェクトを再定義できます。

実装する必要があります

ユーザーは、適切に機能させるために、コンポーネントをビジネス・カタログからこのフロー・オブジェクトに割り当てる必要があります。

プロセス権限の使用

プロセスで定義されたデフォルトの編集ポリシーを使用します。

8.2.2 プロジェクト・テンプレートでのデータ・オブジェクトおよび変数の使用について

プロジェクト・テンプレートでは、プロジェクト内で使用されるデータ・オブジェクトを定義できます。使用されるデータ・オブジェクトには、Oracle BPMのデフォルト・タイプや、プロセス・テンプレート開発者がOracle BPM Studioで作成した複合データ・オブジェクトがあります。

Business Process Composerでプロジェクト・テンプレートに基づいてプロジェクトを編集する場合は、必要に応じて新規データ・オブジェクトを追加および作成できます。ただし、新規データ・オブジェクトは必ず、プロジェクト・テンプレートに以前に定義されたタイプに基づいて作成する必要があります。複合データ・オブジェクトの新規のタイプは作成できません。

プロジェクト・テンプレートで定義されたデータ・アソシエーションおよび式のすべてのデータ・オブジェクトを使用できます。詳細は、12項「ビジネス・プロセスでのデータの処理」を参照してください。

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

Business Process Composerを使用して、プロジェクト・テンプレートを基に新しいプロジェクトを作成できます。

プロジェクト・テンプレートから新規プロジェクトを作成するには:

1. Business Process Composerを起動します。

2. メイン・メニューの「新規」を選択し、「新規プロジェクト」を選択します。

3. プロジェクトの名前を入力します

4. 「テンプレートの使用」を選択し、「選択」をクリックします。

5. 使用するテンプレートを選択します。

6. 必要に応じて、新しいプロジェクトを格納するフォルダを選択します。

7. 「次へ」をクリックします。

8. ドロップダウン・リストから、プロジェクト用に構成する承認ルーティングのタイプを選択します。

注意:

承認ルーティングのタイプは、新規プロジェクトの作成後に変更できます。

9. 「選択」を選択し、ブラウザのドロップダウン・メニューから「ユーザー」または「グループ」を選択します。

10. 「検索」をクリックして、使用可能なユーザーまたはグループのリストを表示します。

11. 「使用可能」リストからアイテムを選択し、選択したアイテムを他のリストに移動をクリックします。

12. 「OK」をクリックします。

13. 「終了」をクリックすると新規プロジェクトが作成されます。

8.4 プロジェクト・スナップショットの使用

プロジェクト・スナップショットは、特定の時点におけるプロジェクトの読取り専用コピーです。スナップショットは読取り専用であるため、編集のために変更したり、開くことはできません。プロジェクト・スナップショットの内容の表示、およびスナップショットに基づいたプロジェクトのエクスポートおよびデプロイは実行できます。

8.4.1 新規プロジェクト・スナップショットの作成方法

新規プロジェクト・スナップショットはプロジェクトのようこそページから作成できます。

新規プロジェクト・スナップショットを作成するには:

プロジェクトで所有者または編集者権限のあるユーザーは、新規スナップショットを作成できます。

1. プロジェクトのようこそページに移動し、「スナップショット」を開きます。

2. 「新規」をクリックします。

3. スナップショットの名前を入力し、「スナップショットの作成」をクリックします。

スナップショットは、このプロジェクトに対して定義されているスナップショットのリストに表示され、スナップショットが作成された日付やスナップショット作成者のユーザーIDなどが示されます。

8.4.2 プロジェクト・スナップショットの内容の表示方法

プロジェクト・スナップショットの内容を表示すると、プロジェクトの以前のバージョンを表示して、現在のバージョンと比較できます。

プロジェクト・スナップショットの内容を表示するには:

1. プロジェクトのようこそページに移動します。

2. 「スナップショット」を開き、表示するスナップショットの名前をクリックします。

スナップショット・ビュー内では、プロジェクトに関連付けられているプロセスの状態、ルールおよびヒューマン・タスクを表示できます。

8.4.3 プロジェクトのアクティブ・バージョンに戻る方法

プロジェクト・スナップショットからプロジェクトのアクティブ・バージョンに戻るには、プロジェクトのようこそページ上部にある「アクティブなバージョンに戻る」ボタンをクリックします。

8.4.4 プロジェクト・スナップショットの削除方法

プロジェクトの編集者ロールを付与されたユーザーは、Business Process Composerを使用して、作成したスナップショットを削除できます。プロジェクトの所有者または管理者ロールを付与されたユーザーは、任意のユーザーが作成したすべてのスナップショットを削除できます。

1. プロジェクトを開きます。

2. プロジェクトのようこそページから、「スナップショット」を開きます。

3. 削除するスナップショットをリストから選択し、「削除」をクリックします。

4. 「はい」をクリックして、プロジェクト・スナップショットを削除することを確認します。
削除したプロジェクト・スナップショットは復元できません。

8.4.5 プロジェクト・スナップショットのエクスポート方法

Business Process Composerを使用して、プロジェクト・スナップショットをエクスポートできます。プロジェクト・スナップショットは、デプロイや他のユーザーとの共有などが可能な通常のBPMプロジェクトとしてエクスポートされます。

プロジェクト・スナップショットをエクスポートするには:

1. プロジェクトを開きます。

2. エクスポートするプロジェクト・スナップショットを表示します。
詳細は、8.4.2項「プロジェクト・スナップショットの内容の表示方法」を参照してください。

3. メイン・メニューの「エクスポート」を選択し、「プロジェクトのエクスポート」を選択します。

4. ローカル・ファイル・システム上の場所を選択し、「保存」をクリックします。
エクスポートしたプロジェクト・スナップショットは、ファイル・システム上に.EXPファイルとして保存されます。

8.4.6 プロジェクト・スナップショットのデプロイ方法

Business Process Composerを使用して、プロジェクト・スナップショットはランタイムに直接デプロイできます。これにより、プロジェクトをテストしたり、旧バージョンのプロジェクトに戻すことができます。

プロジェクト・スナップショットをデプロイするには:

1. プロジェクトを開きます。

2. デプロイするプロジェクト・スナップショットを表示します。
詳細は、8.4.2項「プロジェクト・スナップショットの内容の表示方法」を参照してください。

3. メイン・メニューの「プロジェクトのデプロイ」を選択します。

4. 図15-1に示すように、情報を入力します。

5. 「デプロイ」をクリックします。

第III部

ユーザーとビジネス・プロセスの相互作用の方法の定義

この部では、Oracle Business Process Composerを使用してユーザーとビジネス・プロセスとの相互作用を定義する方法について説明します。この部は、Webフォームの作成と使用、フォーム・ルールの作成、ヒューマン・タスクの定義についての章で構成されます。

この部には、次の章が含まれます。

- 第9章「Webフォームの使用」

- 第10章「Webフォーム・ルールの使用」

- 第11章「ヒューマン・タスクの使用」

9 Webフォームの使用

この章では、Business Process Composerを利用してWebフォームを作成する方法について説明します。Webフォーム・デザイナの概要を紹介し、Webフォームの作成、Webフォーム・コントロールの追加、Webフォーム・コントロール・プロパティの編集についてその手順を説明します。

この章は次の項で構成されています:

- 9.1項「Oracle BPMでのフォームの概要」

- 9.2項「Webフォーム・デザイナの概要」

- 9.3項「Webフォーム・コントロールの概要」

- 9.4項「データ・ソースの概要」

- 9.5項「ウォークスルー: フォームを先に作成する方法によるWebフォームの作成」

- 9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」

- 9.7項「Webフォームの使用」

9.1 Oracle BPMでのフォームの概要

Oracle Business Process Managementには、BPMNプロセスによって定義されるアプリケーションとエンド・ユーザー間での相互作用を定義する機能が用意されています。Oracle Business Process Management内の3つのコンポーネントが、ユーザーとの相互作用を定義します。

- ユーザー・タスク: プロセス内でユーザーとの対話が必要とされるポイントを指定するBPMNフロー・オブジェクトです。Oracle BPMは、必要な承認プロセスを決定する様々なタイプのユーザー・タスクをサポートしています。

- ヒューマン・タスク: プロセスベースのアプリケーションとユーザーとの相互作用を定義します。ユーザー・インタフェース、データ構造および接続情報を定義します。詳細は、第11章「ヒューマン・タスクの使用」を参照してください。

- フォーム: ユーザーがアプリケーションと対話できるインタフェースを定義します。Oracle BPMで作成されるビジネス・アプリケーションでは、これらのフォームはOracle Business Process Management Workspaceに表示されます。

Oracle BPMは、次のタイプのフォームをサポートしています。

- Webフォーム: ヒューマン・タスクのユーザー・インタフェースを定義します。XHTML、CSS、Javascriptなどの標準的なテクノロジーに基づきます。Webフォームは、プロセス・アナリストがBusiness Process Composerを使用して作成します。これらはBPMプロジェクト内に組み込まれます。この章では、Webフォームを作成および使用する方法について説明します。

- Oracle Application Development Framework (ADF)タスク・フォーム: ヒューマン・タスクのユーザー・インタフェースを定義するADFコンポーネントです。ADFタスク・フォームは、通常、プロセス開発者によって設計されます。これらはOracle JDeveloperで作成され、Oracle BPM Studioを使用してBPMプロジェクトに追加できます。
詳細は、Oracle BPMモデリングおよび実装ガイドのヒューマン・ワークフローの概要を参照してください。

9.1.1 Webフォームの概要

Webフォームは、エンド・ユーザーがビジネス・プロセスと対話するためのユーザー・インタフェースを定義します。Business Process Composerには、Webフォームを作成するためのエディタが用意されています。このエディタを使用して、プロセス・アナリストは、ユーザーがビジネス・プロセスと対話する方法を設計し、アプリケーションが必要とする基のデータ構造を定義します。

Webフォームは、XHTML、CSS、Javascriptなどの規格に基づいているため、複数のプラットフォームやブラウザとの互換性を図ることができます。Webフォームの中核部分はXHTMLファイルです。ただし、フォーム設計者は、XHTMLコードを直接扱わなくても、Webフォームを作成および設計できます。新しいフォームを作成したら、Webフォーム・デザイナを使用して、フォームの外観と動作をカスタマイズできます。

Webフォームには次のものを追加できます。

- フォーム・コントロール: フォームに直接追加できるコンポーネントです。フォーム・コントロールは、Webフォームのグラフィカル要素とそのレイアウトを定義します。また、ユーザーにデータを表示したり、データ入力を受け取ったりします。Oracle BPMでサポートされているフォーム・コントロールのタイプについては、9.3項「Webフォーム・コントロールの概要」を参照してください。
Webフォームに対してフォーム・コントロールを追加、再配置または削除すると、フォーム・エディタにより、基のXHTMLコードが自動的に更新されます。

- フォーム・ルール: WebフォームまたはWebフォーム・コントロールの動作を定義するJavascriptコードです。Business Process Composerには、フォーム・ルールを作成および編集できるフォーム・ルール・エディタが用意されています。詳細は、第10章「Webフォーム・ルールの使用」を参照してください。

9.1.2 フォームからの設計とデータからの設計

Oracle BPMでは、Webフォームを作成するための2つのユース・ケースがあります。

- フォームを先に作成
このユース・ケースでは、データ要素を定義する前にWebフォームを作成します。この方法では、ビジネス・ユーザーが、Business Process Composerを使用して必要なユーザー・インタフェースを定義することができます。このユース・ケースでは、必要な基のデータ・モデルを考慮することなく、ユーザー・インタフェース要素が先に作成されます。

フォームが作成されると、Oracle BPMにより、Webフォームが必要とするデータを定義するスキーマが自動的に生成されます。このデータ・スキーマは、Webフォームに追加されるWebフォーム・コントロールに基づきます。Webフォームをヒューマン・タスクに割り当てると、このスキーマが自動的に使用されて、ヒューマン・タスク・ペイロードが定義されます。

このユース・ケースにおける手順については、9.5項「ウォークスルー: フォームを先に作成する方法によるWebフォームの作成」を参照してください。

- データを先に作成
このユース・ケースでは、既存のヒューマン・タスク・ペイロードに基づいてWebフォームを作成します。Oracle BPMは、ペイロードに基づいてデータ・ソースを生成します。これらのデータ・ソースに基づいてフォームにWebフォーム・コントロールを自動的に追加できます。データを先に作成するモデルでは、複数のフォーム間でスキーマを再利用できるという利点があります。

データ・ソースからフォーム・コントロールを追加した後、フォーム・デザイナを使用して、フォーム内でフォーム・コントロールの位置を調整し、必要なユーザー・インタフェースのルック・アンド・フィールを定義します。

このユース・ケースにおける手順については、9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

9.2 Webフォーム・デザイナの概要

プロセスに基づくアプリケーションのユーザー・インタフェースを、Webフォームで定義します。Business Process Composerには、Webフォームを作成するためのWebフォーム・エディタが用意されています。Webフォーム・エディタを使用して、次のことを行えます。

- WebフォームにWebフォーム・コントロールを追加します。

- Webフォームの外観とレイアウトをカスタマイズします。

- Webフォーム上のコントロールの動作を定義するフォーム・ルールを作成します。

図9-1は、Webフォーム・デザイナの一例です。

図9-1 Business Process Composer Webフォーム・デザイナ

「図9-1 Business Process Composer Webフォーム・デザイナ」の説明

Webフォームを開くと、Business Process Composer内にタブ付きペインとしてWebフォーム・デザイナが表示されます。Webフォーム・デザイナは次の領域に分割されています。

- Webフォーム・コンポーネント・パレット

- Webフォーム・ツールバー

- フォーム・キャンパス

- プロパティ・エディタ

- データ・ソース

注意:

データ・ソースは、データを先に作成するユース・ケースにより作成されたWebフォームでのみ使用可能です。ヒューマン・タスク・ペイロードに基づいたWebフォームの作成については、9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

Webフォーム・デザイナの各領域については、次の項で説明します。

9.2.1 Webフォーム・コンポーネント・パレットの概要

コンポーネント・パレットには、フォームに追加してビジネス・アプリケーションの操作方法を定義できるコントロール類があります。フォーム・パレットは、図9-1に示されているように、Webフォーム・エディタの左側に表示されます。フォーム・コントロールをパレットからフォーム・キャンパスにドラッグすることにより、Webフォームに追加できます。

Oracle BPMで使用できるWebフォーム・コントロールについては、9.3項「Webフォーム・コントロールの概要」を参照してください。コントロールをWebフォームにドラッグする方法については、9.7.1項「Webフォームへのコントロールの追加方法」を参照してください。

9.2.2 Webフォーム・エディタ・ツールバーの概要

Webフォーム・エディタには、フォーム関連機能へのアクセスを提供するツールバーが含まれています。図9-2は、Webフォーム・エディタ・ツールバーを示しています。

図9-2 Webフォーム・エディタ・ツールバー

「図9-2 Webフォーム・エディタ・ツールバー」の説明

Webフォーム・エディタ・ツールバーには、次のボタンが含まれています。

- フォーム・ルール: クリックすると、フォーム・ルール・エディタが開きます。このボタンにより、フォーム・ルール・エディタとWebフォーム・エディタ間を切り替えることができます。

- Webフォームのテスト: ブラウザ・ウィンドウにフォームが開きます。このウィンドウでは、Webフォームがエンド・ユーザーにどのように表示されるのかを確認できます。フォーム・ルールの動作もテストできます。

- リフレッシュ: フォームの外部データ・ソース(ヒューマン・タスク・ペイロード)をリフレッシュします。ヒューマン・タスク・ペイロードを変更する場合、Webフォームのデータ・ソースをリフレッシュする必要があります。このボタンは、データを先に作成する方法で作成されたWebフォームに対してのみ使用できます。詳細は、9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

- ローカライゼーション: リソース・バンドル・エディタが開きます。このエディタでは、WebフォームとWebフォーム・コントロールのコンポーネントをローカライズできます。

9.2.3 プロパティ・エディタの概要

WebフォームまたはWebフォーム・コントロールのプロパティを定義するには、プロパティ・エディタを使用します。フォームでコントロールをクリックすると、「プロパティ」領域にコントロールのプロパティが表示され、確認と編集が可能になります。

プロパティ・エディタにはタブ付きのペインがあり、WebフォームまたはWebフォーム・コントロールのプロパティが、機能ごとにグループ化されて表示されます。図9-3は、プロパティ・エディタの一例です。

図9-3 Webフォーム・デザイナのプロパティ・エディタ

「図9-3 Webフォーム・デザイナのプロパティ・エディタ」の説明

WebフォームとWebフォーム・コントロールのプロパティを編集する手順については、9.7.4項「WebフォームとWebフォーム・コントロールのプロパティの編集方法」を参照してください。各プロパティについては、付録C「WebフォームとWebフォーム・コントロール・プロパティのリファレンス」を参照してください。

9.2.4 「データ・ソース」パネルの概要

「データ・ソース」パネルには、フォームに組み込むことのできるデータ要素のリストが表示されます。詳細は、9.4項「データ・ソースの概要」を参照してください。

「データ・ソース」パネルから、ペイロード内のすべてのデータ要素または特定のデータ要素に基づいてWebフォーム・コントロールを生成できます。

注意:

データ・ソースは、ヒューマン・タスク・ペイロードに基づいて作成されたWebフォームでのみ使用可能です。詳細は、9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

図9-4は、ヒューマン・タスク・ペイロードに基づいて作成されたWebフォームに表示される「データ・ソース」パネルを示しています。

図9-4 「データ・ソース」パネル

「図9-4 「データ・ソース」パネル」の説明

Oracle BPMにおけるデータ・ソースの詳細は、9.4項「データ・ソースの概要」を参照してください。ヒューマン・タスク・ペイロードに基づいたWebフォームの作成については、9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

9.2.5 フォーム・キャンパスの概要

Webフォーム・デザイナの右側は、フォーム・キャンパスです。コンポーネント・パレットからフォーム・デザイナ・キャンパスへコントロールをドラッグして、Webフォームを作成できます。図9-5は、複数のコントロールが含まれているフォーム・キャンパスの一例です。

図9-5 フォーム・キャンパス

「図9-5 フォーム・キャンパス」の説明

9.3 Webフォーム・コントロールの概要

Webフォーム・コントロールは、フォームに追加してビジネス・アプリケーションのユーザー・インタフェースを定義できるユーザー・インタフェース・コンポーネントです。Webフォーム・コントロールはHTMLで定義されますが、Webフォーム・エディタを使用すれば、基のコードを編集する必要は発生しません。

Webフォーム・コントロールについては、次の項で説明します。各Webフォーム・コントロールに構成できるプロパティについては、付録C「Webフォーム・コントロールのプロパティ」を参照してください。

9.3.1 入力コントロール

入力コントロールにより、ユーザーは、フォームにデータ(テキスト、日付、数値など)を入力できます。入力コントロールは、ユーザーが間違ったデータ型を入力するのを自動的に禁じます。たとえば、数値のコントロールにユーザーが文字を入力するとフォームにエラー・メッセージが表示され、有効なデータが入力されるまで「送信」ボタンが無効になります。この検証は、自動的に行われます。各入力コントロールの機能を次に説明します。

入力コントロールの内容を検証するために、Oracle BPMは各コントロールにデフォルトのXMLスキーマ・データ型を割り当てます。各入力コントロールのデフォルトのデータ型を次の表に示します。

入力コントロール

XMLスキーマ型

テキスト

xsd:string

日付

xsd:date

電子メール

types:emailType、types.xsdで定義されるxsd:string制限パターン。

金額

types:number、types.xsdで定義されるxsd:double制限パターン。

電話

types:phoneType、types.xsdで定義されるxsd:string制限パターン。

数量

xsd:integer

数値

types:number、types.xsdで定義されるxsd:double制限パターン。

ブール

xsd:boolean

9.3.1.1 テキスト

テキスト・コントロールにはテキストを入力できます。主に1行の短い入力用です。

9.3.1.2 テキスト領域

テキスト領域コントロールには任意のテキストを入力できます。複数行の長い入力用です。ユーザーがデータを入力すると、必要に応じてテキストを収めるために、スクロール・バーが表示されます。テキスト領域コントロールには「行数」というプロパティがあり、入力領域に表示されるデフォルトの行数がこのプロパティによって制御されます。

HTMLには、テキスト領域コントロールの最大長を設定できるプロパティはありません。したがって、このコントロールにテキスト・コントロールのようなmaxlengthプロパティはありません。最大長を指定する必要がある場合には、テキスト・コントロールを選択するか、ユーザーが入力できるテキストの長さを制限するフォーム・ルールを使用する必要があります。詳細は、第10章「Webフォーム・ルールの使用」を参照してください。

9.3.1.3 日付、時間、日付/時間

日付コントロールにより、ユーザーは日付、時間、日付/時間コントロールとして情報を入力できます。コントロール・タイプ・プロパティを使用して、ドロップダウンから日付、時間、日付/時間を選択できます。

9.3.1.3.1 日付コントロール

カレンダ・アイコン付きの日付入力フィールドを表示するには、日付コントロールを使用します。ユーザーがカレンダをクリックして日付を選択すると、選択した日付がmm-dd-yyyyというデフォルト書式(たとえば、09-01-2008)で表示されます。ユーザーが手動で日付を入力する場合は、次のどの書式でも使用できます。ただし、日付はmm-dd-yyyy書式に再度書式設定されます。

有効な日付書式は、3種類のセパレータ(. / -)と、3つの日付書式(DD/MM/YYYY、MM/DD/YYYY、YYYY/MM/DD)で構成されます。日付の指定方法の例は、次のとおりです:

- mm-dd-yyyy (07-26-1966)

- mm/dd/yyyy (07/26/1966)

- mm.dd.yyyy (07.26.1966)

- dd-mm-yyyy (26-07-1966)

- dd/mm/yyyy (26/07/1966)

- dd.mm.yyyy (26.07.1966)

- yyyy-mm-dd (1966-07-26)

- yyyy/mm/dd (1966/07/26)

- yyyy.mm.dd (1966.07.26)

発行されるXMLドキュメントで、日付は次の書式を使用して標準のxsd:date書式であるyyyy-mm-ddに変換されます。

<Order Date>2012-03-06</Order Date>

9.3.1.3.2 時間コントロール

フォームに時間入力フィールドのみを表示するには、時間コントロール・タイプを使用します。時間フォーマット・プロパティのドロップダウン・メニューが表示され、軍用と標準の4種類の規則から選択することができます。時間フォーマット・コントロールのデフォルトは、軍用時間を使用するhh:mmです(例: 18:30)。他の書式オプションとして、標準時間(AM/PM)もあります。

コントロール・タイプを時間に変更すると、日付ピッカーは表示されません。

時間フォーマット・コントロールには、軍用時間と標準時間の両方を使用する4つの標準書式があります。2つのセパレータはドットとコロンです。次に例を示します。

- hh:mm (18:30)

- hh.mm (18.30)

- hh:mm - AM/PM (06:30 PM)

- hh.mm - AM/PM (06.30 PM)

- hh:mm:ss (18:30:15)

- hh.mm.ss (18.30.15)

- hh:mm:ss - AM/PM (06:30:15 PM)

- hh.mm.ss - AM/PM (06.30.15 PM)

ローカル時間は、発行されるXMLドキュメントではUTC形式に変換されます。たとえば、<Order Time>15:42:00Z</Order Time>のようになります。適切に初期化するには、時間の後に大文字のZが必要です。

9.3.1.3.3 日付/時間コントロール

日付の入力用と時間の入力用に2つの入力フィールドを表示するには、日付/時間コントロールを使用します。プロパティのドロップダウン・メニューでは、コントロールの日付部分から9種類、時間部分から軍用と標準の4種類、それぞれ有効な書式を選択できます。詳細は、9.3.1.3.1項「日付コントロール」および9.3.1.3.2項「時間コントロール」を参照してください。

日付/時間のデフォルトの書式はmm-dd-yyyyとhh:mmです。

- 日付部分に日付を入力すると(またはピッカーで選択すると)、コントロールの時間部分には12:00 AMを表す値が自動的に入力されます。表示される値は、選択した時間書式によって異なります。

- 選択した時間書式がhh:mmである場合、00:00と表示されます。

- 選択した時間書式がhh:mm - AM/PMである場合、12:00 AMと表示されます。

- 選択した時間書式がhh:mm:ssである場合、00:00:00と表示されます。

- 選択した時間書式がhh:mm:ss - AM/PMである場合、12:00:00 AMと表示されます。

- 日付値なしで時間値を入力することはできません。

- コントロール・タイプを時間に変更すると、日付ピッカーは表示されません。

- 時間入力フィールドに、ラベルは付けられません。日付部分のラベルが、時間部分まで含めて十分にわかりやすい内容であることを確認してください。該当する入力フィールドの上に日付と時間のラベルが必要な場合には、2つ別々のコントロールを使用するか、日付部分に対するラベルを時間入力フィールドまで拡大する必要があります。

発行されるXMLドキュメントで、ローカル時間はUTC形式に変換および保存され、日付は標準のxsd:date書式であるyyyy-mm-ddに変換されます。たとえば、次のようになります。

<OrderDate>2012-01-01TO05:00:00Z</OrderDate>

適切に初期化するには、時間の後に大文字のZが必要です。

フォーム・ルールは、すべての種類の日付/時間コントロールに適用できます。フォーム・ルールは、フォームのタイムゾーンで実行される必要があります。

9.3.1.3.4 タイムゾーン

一般的に、フォーム・データはブラウザのタイムゾーンで表示され、発行されるドキュメントではUTC形式で保存されます。フォームのタイムゾーンは、ブラウザのタイムゾーンから自動的に算出されます。一度設定したタイムゾーンは、そのフォーム・インスタンスでは変更できません。ブラウザのタイムゾーンをオーバーライドするには、フォームのURLに&_formTz=<tz>パラメータを追加します。

&_formTzパラメータには、Modern Time Zoneの文字列を使用してください。他のタイムゾーン形式はサポートされていません。

9.3.1.4 電子メール

電子メール・フォーム・コントロールでは、ユーザーが有効な電子メール・アドレスを入力できます。アドレスは、<name>@<name>.<string>という構文に準拠している必要があります。

9.3.1.5 金額

金額フォーム・コントロールでは、ユーザーが米国通貨を入力できます。ユーザーは、コンマまたは小数点を入力できます。ユーザーがこれらを入力しない場合でも、フォームが自動的にこれらの記号を表示します。たとえば、ユーザーが4000と入力すると、フォームにはその値が4,000.00として表示されます。フォームでは、すべての入力が小数点以下2桁に丸められます。

少数点以下2桁より多く入力した場合、XML発行ドキュメントにはユーザーの入力したとおりの桁が格納されますが、ドル記号、小数点、カンマは含まれません。

9.3.1.6 電話

電話Webフォーム・コントロールでは、xxx.xxx.xxxx、xxx-xxx-xxxx、xxx.xxxx、xxx-xxxxのいずれかの書式でユーザーが電話番号を入力できます。強制的に10桁の書式にする(市外局番を必須にする)場合は、コントロールのパターン・プロパティを編集します。

9.3.1.7 数量

数量Webフォーム・コントロールでは、ユーザーが量または整数を入力できます。ユーザーが小数点やカンマなど、整数以外のものを入力すると、フォームにエラー・メッセージが表示されます。

9.3.1.8 数値

数値Webフォーム・コントロールでは、ユーザーが小数を入力できます。小数の後には任意の桁数を入力できます。

9.3.2 選択コントロール

選択コントロールを使用すると、複数のオプションのリストから選択することができます。Oracle BPMでは、次の選択コントロールがサポートされます。

- ドロップダウン

- ラジオ

- チェック・ボックス

- True/False

注意:

Webフォーム・コントロールのパレットに、コンボ・ボックス・コントロールは含まれていません。コンボ・ボックスは、ユーザーが新しい値またはオプションを入力することも可能なドロップダウン・リストです。コンボ・ボックスは、XHTML標準の一部ではないためです。

ただし、その他のオプションのあるドロップダウン、ラジオ、チェック・ボックスをフォーム・ルールと組み合せて使用することは可能です。ユーザーがその他のルールを選択した場合にテキスト・コントロール(詳細または新しいエントリ)が表示され、ユーザーによる入力が可能になります。

9.3.2.1 ドロップダウン

ドロップダウン・コントロールは、フォームにドロップダウン・リストを追加します。デフォルトでは、ドロップダウン・リストの最初の選択肢は空白になっています。コントロールのオプション・プロパティを編集して、他のオプションを定義する必要があります。

9.3.2.2 ラジオ

ラジオ・コントロールは、1つしか選択できないラジオ・ボタンを追加します。コントロールのオプション・プロパティを編集して、ラジオ・ボタンの数と特定の選択肢を定義する必要があります。

ラジオ・オプションの1つをデフォルトとして選択した後で、これを変更するには、そのオプションをコントロールから削除し、オプション・プロパティからタブで移動する必要があります。このオプションをコントロールのオプション・リストに再度追加できます。

9.3.2.3 チェック・ボックス

チェック・ボックス・コントロールは、ユーザーが1つ以上のオプションを選択できるチェック・ボックスのセットを追加します。他の選択コントロールと同じように、コントロールのオプション・プロパティを編集して、チェック・ボックスの数と使用可能な選択肢を定義します。

9.3.2.4 BooleanCheckbox

BooleanCheckboxコントロールでは、データを入力するかわりにtrueまたはfalseの値を選択します。コントロール・オプションのデフォルトは、"true=はい"と"false=いいえ"です。オプション・ラベルは、必要に応じて他の値に変更できます。ただし、オプション値は変更できず、trueかfalseのままになります。

「はい」チェック・ボックスを選択すると、コントロール・データのXMLドキュメントでtrue値が設定されます。未選択のままにするとfalse値となります。XMLドキュメントに値は表示されません。

9.3.3 グループ・コントロール

グループ・コントロールを使用すると、ユーザーに表示する必要がある情報のタイプに基づいてフォームを編成しやすくなります。

9.3.3.1 セクション

セクション・コントロールでは、コントロールのグループを作成します。セクションは、拡張と縮小が可能です。

Webフォーム内でユーザーが拡張アイコンをクリックすると、セクションが拡張または縮小されます。セクションを初期状態で拡張するのか縮小するのかを決定するデフォルト値を指定できます。

セクション・コントロールをフォームにドラッグした後で、他のコントロールをその中に、パネルとして、または他のセクション・コントロールとして、ドラッグすることができます。縮小したセクションの中に必須のコントロールがある場合は、セクション・ラベルが赤色になり、フォームを発行する前にセクションを展開して必須情報を指定する必要があることを示します。フォームの設計中にセクション・コントロールを削除すると、そのセクション内のコントロールもすべて削除されます。

9.3.3.2 タブ

タブ・グループ・コントロールを使用すると、図9-6のようにタブ付きのビューを作成できます。

図9-6 複数のタブを含むWebフォーム

「図9-6 複数のタブを含むWebフォーム」の説明

デフォルトでは、フォームにタブ・コントロールをドラッグすると、独立した3つのタブが作成されます。タブを追加または削除するには、タブをクリックしてから追加(+)アイコンまたは削除(-)アイコンをクリックします。追加したタブは、追加アイコンをクリックしたとき選択されていたタブの右側に表示されます。

タブの順序を並べ替えるには、タブを他のタブの上に重ねるようにドラッグします。ドラッグしたタブが、下になったタブの右側に移動します。他のコントロール(他のグループ・コントロールも含む)を個々のタブにドラッグすることができます。ユーザーは、現在選択されているタブ上のコントロールのみ選択できます。

タブのグループ全体をフォームの別の場所に移動するには、そのタブの右側の領域をクリックし、グループ全体を目的の場所までドラッグします。

9.3.3.3 パネル

パネル・コントロールで、Webフォーム内に列を作成します。フォームに、必要な数のパネルをドラッグすることにより、複数の列を追加できます。

デフォルトでは、パネルの幅は49%に設定されています。2つのパネルをフォームにドラッグすると、2番目のパネルは自動的に最初のパネルと並びます。パネルには、境界がわかるように、1pxの枠線が付いています。したがって、2列構成で、両方の幅を50%にすることはできません。

パネルはグループ・コントロールなので、他のコントロールを内部にドラッグできます。パネルの順序を並べ替える場合には、ドラッグ・アンド・ドロップ機能に制限があるため、グループ・コントロールの下にコントロールをドロップすることはできないという点に注意してください。3つの列があり、中央の列を右側に移動する場合は、パネルの直下にあるコントロール上に中央の列をドラッグする必要があります。

3列または4列構成で、中央のいずれかの列または一番右の列を左端に移動する場合には、一番左の列の上までドラッグ・アンド・ドロップする必要があります。

パネルには設計中に編集できるラベルがありますが、パネルのラベルおよびパネル自体は、実行時またはフォームのテスト時にはユーザーに表示されません。パネル内のコントロールのみ表示されます。これらのコントロールは、パネルの幅に合わせて編成されます。

パネルを削除すると、その内部にドラッグしたコントロールは自動的に削除されます。

9.3.3.4 表

表レイアウト・コントロールを使用すると、Webフォームのスペースを節約することができます。このコントロールにより、フォーム・コントロールをグリッド・パターンに合わせて配置できます。

表名と列名を編集できます。パレットから新しいコントロールをドラッグ・アンド・ドロップして、表の幅を設定することもできます。表の最小および最大行数を制御できます。「追加」および「削除」アイコンが自動的に左に追加されます。フォーム・ルールを使用して、値を計算したり、フィールドを有効または無効にしたり、フィールドを表示または非表示にすることもできます。

表コントロールをフォームにドラッグすると、デフォルトで3行、3列構成の表が追加されます。列には、デフォルト名としてcol 0、col 1およびcol 2の名前が入ります。必要に応じて、表内のすべてのセルが定義されます。表の行ごとに「追加」および「削除」アイコンが表示され、最小/最大プロパティ値に従って行を追加または削除することができます。

表の列を並べ替えるには、移動しようとする列の見出しをクリックし、表示される緑色の矢印をクリックします。表の最終的な列位置に達するまで、列が右に移動します。

表コントロールには、次の制限があります。

- 表コントロールは繰返しコントロールには使用できません。

- 表のセルの境界線は、印刷ビューでは表示されません。

- 表コントロール名は作業領域から編集できません。プロパティ・エディタを使用します。

9.3.3.5 繰返し

繰返しコントロールは、1つのWebフォーム・コントロールの複数のコピーを動的に表示します。これは、ユーザーが同じタイプの情報、たとえば電話番号を何度も入力する必要がある場合に便利です。繰返しコントロールは、余分な入力コントロールを明示的に追加するのではなく、必要な数だけコントロールを動的に表示できます。繰返しコントロールは、フォーム内におけるデータ要素とセクションの繰返しに使用されます。

繰返しコントロールをWebフォームに追加してから、タブ、パネル、セクションなどにコントロールを追加する場合と同じように、追加のコントロールを繰返しコントロールにドラッグ・アンド・ドロップできます。個々のコントロールを繰返しコントロールで囲むこともできますし、セクション・コントロール全体を含めることもできます。このセクション・コントロールには、繰り返す必要のあるすべてのWebフォーム・コントロールが含まれる必要があります。

コントロールを繰返しコントロールに追加した後、コントロールを選択して、そのプロパティを表示および編集できます。繰返しコントロールに追加したWebフォーム・コントロールには2つの追加プロパティが発生します。

- 最小値: コントロールを繰り返すことのできる最小回数を指定します。デフォルト値は0です。

- 最大値: コントロールを繰り返すことのできる最大回数を指定します。デフォルト値は1です。

この値を編集して、コントロールの繰返し回数を定義する必要があります。この値を編集しない場合、コントロールは繰り返されません。

これらのプロパティにより、コントロールがエンド・ユーザーに対してどのように表示されるかを定義します。1より大きい値をこれらのプロパティに設定した場合、自動的に別のコントロールを作成する追加アイコンがユーザーに対して表示されます。フォーム・エディタで、コントロールをクリックすると、自動的にプロパティが増分されます。

最小値は、エンド・ユーザーが追加または入力する必要があるコントロールの最小数を定義します。ユーザーがコントロールの最小数に対してデータを入力しなかった場合、送信ボタンが有効になりません。

ユーザーが最小値により定義されている数値を超えてコントロールを追加した場合、最初から最小値分までのコントロールについて、データを入力することが必要になります。たとえば、最小値が3で、ユーザーが5つのコントロールを追加した場合、フォームの上から数えて3つのコントロールについて、データが入力されないと、送信ボタンが有効になりません。ユーザーが、最大値によって定義されている数値までコントロールを追加すると、追加アイコンは表示されなくなります。

データ要素を追加する方法をユーザーに説明するために、メッセージ・コントロールを使用してメッセージを提供できます。次にその例を示します。

<center>Click on the <img src="/frevvo/images/icons/add.gif"/> icon to addmore phone numbers to the list.<br/></center>

繰返しコントロール内部のコントロールのラベルまたはプロパティを編集すると、繰返しコントロール内のコントロールのインスタンスごとに変更が適用されます。繰返しコントロール内のコントロールを削除すると、コントロールのすべてのインスタンスが削除されます。

パネル・コントロールと同様、フォームのテストまたは使用時には繰返しコントロールは表示されません。繰返しコントロール内のコントロールのみ表示されます。

繰返しコントロールと他のグループ・コントロールには、いくつか違いがあります。

- ボタン、メッセージまたはイメージ・コントロールは追加できません。

- 繰返しコントロールには、1つのWebコントロールのみ含めることができます。タブ・コントロール、パネルまたはその他の繰返しコントロールを追加することはできません。繰返しコントロールに複数のコントロールを追加するには、複数のコントロールをセクション・コントロールに追加してから、セクションを繰返しコントロールに追加します。
セクションにさらにコントロールを追加する必要がある場合には、まずセクションをドラッグして繰返しコントロールから外す必要があります。それから、コントロールを追加して、セクション・コントロールを繰返しコントロールにドラッグして戻すことが必要になります。ただし、セクション・コントロールをパネル・コントロールに追加する場合は、繰返しコントロールからセクションを外す必要はありません。

データ・ソースに含まれる繰返しデータ要素を追加すると、BPCは自動的に、コントロール内に繰返しアイテムを生成します。繰返しコントールのスキーマが、最小要件と最大要件を自動的に適用します。

9.3.4 その他のコントロール

入力、選択、グループのコントロールに加え、Oracle BPMにはユーザーのWebフォーム操作を定義する他のWebフォーム・コントロールも用意されています。

9.3.4.1 メッセージ・コントロール

メッセージ・コントロールを使用すると、静的テキストをフォームに追加できます。コントロールのメッセージ・プロパティにテキストを指定する必要があります。テキストにXHMTLを含めることができます。たとえば、フォントのサイズまたは色が違う2行を指定するとします。

ユーザーがフォームにアクセスすると、ブラウザでXHMTLがフォーマットされます。たとえば、Webフォームにヘッダーを作成する場合、次の例のようにパネルとメッセージ・コントロールの組合せを使用できます。

<center style="font-weight:bold;"> Connecticut Surgeons, LLC </center> <center style="line-height:1.2em;"> 82 Anderson Road<br/> Branford, CT 06180<br/> </center>

<center style="font-weight:bold;">
Connecticut Surgeons, LLC
</center>
<center style="line-height:1.2em;">
82 Anderson Road<br/>
Branford, CT 06180<br/>
</center>

9.3.4.2 リンク・コントロール

リンク・コントロールを使用すると、フォームにURLを含めることができます。ユーザーがリンクをクリックすると、別のブラウザ・ウィンドウでターゲットURLが開きます。

9.3.4.3 ボタン・コントロール

ボタン・コントロールを使用すると、フォームにボタンを追加できます。このコントロールは、主に、フォーム・ルールと組み合せて使用されます。

注意:

ボタン・コントロールは繰返しアイテムでは動作しません。

9.3.4.4 イメージ・コントロール

このコントロールを使用すると、フォームにイメージ(ピクチャ、ロゴなど)を追加できます。イメージ・コントロールで使用できるのは、JPG、GIF、PNGの各ファイルと、ブラウザでサポートされているその他のイメージ・タイプです。

イメージ・コントロールをドラッグすると、「参照」ボタンと「イメージのアップロード」ボタンが表示されます。「参照」をクリックし必要なイメージまでナビゲートし、「イメージのアップロード」をクリックします。イメージをアップロードしたら、「参照」ボタンと「イメージのアップロード」ボタンは使用できなくなります。イメージを変更するには、イメージ・コントロールを削除して、新しいイメージ・コントロールをドラッグする必要があります。

イメージをアップロードする前に、フォーム内に収まるサイズであることを確認する必要があります。標準フォーム・サイズは600ピクセルです。アップロードしたイメージのサイズを変更するには、デザイナでイメージ・コントロールを選択し、「プロパティ」パネルで「スタイル」タブをクリックして幅を設定します。

単位はpx、%、emです。単位を含める必要があります。たとえば50%と指定すると、イメージはフォームまたはパネルの半分の幅に設定されます。

9.4 データ・ソースの概要

データ・ソースにより、既存のデータ構造に基づいてWebフォーム・コントロールを作成できます。Oracle BPMでは、このようなデータ構造はヒューマン・タスク・ペイロードによって定義されます。ヒューマン・タスク・ペイロードを作成した後、ペイロード・データに基づいて新規Webフォームを作成できます。ペイロード・データに基づいたWebフォームの作成については、9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

9.4.1 ペイロード・データ型により生成されるWebフォーム・コントロール

表9-1は、ヒューマン・タスク・ペイロードによってサポートされる各データ型に対して生成されるWebフォーム・コントロールのタイプを示しています。

表9-1 ヒューマン・タスクのデータ型と対応するWebフォーム・コントロール

データ型

Webフォーム・コントロール

文字列

テキスト・コントロール

バイナリ

テキスト・コントロール

ブール

BooleanCheckbox

この要素が必須である場合、選択すると、値がtrueになり、選択されないと、falseに設定されます。コントロールがオプションの場合、値は指定されません。ラベル・プロパティによりtrueオプションとfalseオプションのラベルを設定できます。ただし、trueにマップされる最初のオプションのみが表示されます。複数のラベルを追加すると、余分なラベルは自動的に削除されます。

整数/Int64

テキスト・コントロール

実数/小数

テキスト・コントロール

間隔

テキスト・コントロール

時間

日付コントロール

コンポーネント

セクション

ビジネス・オブジェクトに基づいて作成されるヒューマン・タスク・ペイロード・データはセクション・フォーム・コントロールに追加されます。コンポーネント内の個々のデータ要素は、他のデータ型と同じフォーム・コントロールを生成します。これらはセクション・コントロールに追加されます。フォームに追加した後で、必要に応じて位置を変更できます。

ヒューマン・タスク・ペイロードから生成されるコントロールはほとんどがテキスト・コントロールとして作成されます。ただし、コントロールに対する検証はすべて、基のデータ型に基づいて行われます。たとえば、xsd:integer型は、数値のみを許可します。

要素制限を指定するスキーマ要素は選択コントロールとして生成されます。有効なオプションが4つ以上ある場合、ドロップダウン・リストが作成され、有効な値が3つ以下である場合、ラジオ・ボタンが作成されます。表示形式プロパティを使用して、ラジオ、ドロップダウン、チェック・ボックス間で表示タイプを変更できます。

9.4.2 データ要素から生成されたWebフォーム・コントロールの変更

データ要素からWebフォーム・コントロールを生成した後、次のことを行えます。

- ヒューマン・タスクのデータ・ペイロードを更新して、Webフォームを作成し直す。

- Webフォーム・エディタ上でコントロールを編集する。

9.4.2.1 Webフォーム・エディタで編集できるもの

データ要素からWebフォーム・コントロールを生成した後、Webフォーム・コントロール上で次のことを実行できます。

- Webフォーム・コントロールの名前を編集できます。Webフォーム・エディタに表示される名前を編集できます。ただし、基のXSDは変更されません。

- Webフォーム・コントロールにより使用されるWebフォーム・ルールを作成または編集できます。

- Webフォーム・コントロールのデフォルト値を設定できます。

- Webフォーム内のWebフォーム・コントロールのレイアウトを編集できます。セクションまたはパネル内のコントロールを必要に応じて移動できます。ただし、繰返しコントロールにより生成されたWebフォーム・コントロールを追加または削除することはできません。

- Webフォーム・コントロールの表示形式プロパティを編集できます。詳細は、9.4.3項「表示形式プロパティの概要」を参照してください。

- Webフォーム・コントロールのラベルを編集できます。

9.4.2.2 Webフォーム・デザイナを使用して編集できないもの

データ要素に基づいてWebフォーム・コントロールを生成している場合、次の変更はできません。

- WebフォームまたはWebフォーム・コントロールの検証方法を変更するWebフォーム・コントールの編集。

- 繰返しコントロールの繰返し数の変更。

- 基のデータ・ソースへの変更を必要とするWebフォーム・コントロールの追加。

9.4.3 表示形式プロパティの概要

表示形式プロパティは、データ・ソースから生成されるWebフォーム・コントロールによってのみサポートされます。表示形式プロパティを使用して、Webフォーム上でのコントロールの表示方法を変更できます。たとえば、テキスト・コントロールをドロップダウン・コントロールに変更したり、またその反対を行うことが可能です。これは、フォーム上でのコントロールの外観を変えますが、コントロールのデータ検証方法は変えません。コントロールの検証方法を変更する場合は、ヒューマン・タスク・ペイロード・データを再定義し、Webフォームを作成し直す必要があります。

コントロールの基のデータ型と、バインドされているグローバル要素を確認するには、プロパティ・タブ上にマウスを置きます。拡張されているデータ・ソースに、ツール・チップとしてXSDパスが表示されます。

選択Webフォーム・コントロール(ラジオ、ドロップダウン、チェック・ボックス)の表示形式プロパティを設定すると、ラベル・プロパティが有効になります。ラベル・プロパティに文字列を追加することにより、ユーザーがフォームを使用するときにこのコントロールに入力できる値を制限することができます。フォームが送信されると、値は、選択されたオプション・ラベルと同じになります。

もう一つのラベルの設定方法として、フォームがロードされるとオプションを動的に初期化するルールを使用するという方法もあります。詳細は、第10章「Webフォーム・ルールの使用」を参照してください。

表示形式プロパティは、データ型に基づいている場合、次のコントロールに対しては使用できません。

- メッセージ

- 繰返し

- 日付、時間、日付/時間

- ブール

9.5 ウォークスルー: フォームを先に作成する方法によるWebフォームの作成

Business Process Composerを使用して、既存データに基づかないWebフォームを作成できます。Webフォームを作成するためのユース・ケースについては、9.1.1項「Webフォームの概要」を参照してください。

フォームの最初のユース・ケースを使用して、プロジェクトのホームページから直接Webフォームを作成します。Webフォームを作成したら、必要に応じて、Webフォーム・デザイナを使用してフォーム・コントロールを再配置します。

定義されているデータがない状態でWebフォームを作成および編集するには:

1. プロジェクトのようこそページを使用して新しいWebフォームを作成します。

1. プロジェクトの編集中であることを確認します。

2. プロジェクトのようこそページから、「Webフォーム」タブを選択します。

3. 「新規Webフォーム」をクリックし、名前を入力します。

4. 「作成」をクリックします。

2. Webフォームにコントロールを追加します。
新しいWebフォームを作成したら、必要に応じてフォーム・コントロールを追加し、ユーザーのアプリケーション操作を定義します。詳細は、9.7.1項「Webフォームにコントロールを追加する方法」を参照してください。

3. WebフォームとWebフォーム・コントロール・プロパティを編集します。
Webフォームとそのコントロールのプロパティを編集すると、動作と外観を定義できます。詳細は、9.7.4項「WebフォームとWebフォーム・コントロールのプロパティを編集する方法」を参照してください。

4. Webフォームにフォーム・ルールを追加します。
Webフォームにフォーム・ルールを追加すると、さらに動作のカスタマイズと制御が可能です。詳細は、10.2項「フォーム・ルールの使用」を参照してください。

5. Webフォームをテストします。
Webフォーム・デザイナを使用すると、エンド・ユーザーに対してWebフォームがどのように表示されるかをプレビューできます。詳細は、9.7.7項「Webフォームをテストする方法」を参照してください。

6. Webフォームを保存します。
Webフォームを保存するには、プロジェクト全体を保存する必要があります。詳細は、4.4.7項「プロジェクトへの変更を保存する方法」を参照してください。

7. Webフォームをヒューマン・タスクに割り当てます。
Webフォームが完成したら、ヒューマン・タスク・エディタを使用してヒューマン・タスクに割り当てることができます。Webフォームをヒューマン・タスクに割り当てると、Webフォームに追加したコントロールに基づいて、ヒューマン・タスク・エディタでペイロード情報が自動的に生成されます。ヒューマン・タスクに定義されている既存のペイロードがある場合、Webフォームによって定義される新しいペイロードで置き換えられます。

ヒューマン・タスクへのWebフォームの割当てについては、11.3.11項「ヒューマン・タスクのプレゼンテーションの指定方法」を参照してください。

9.6 ウォークスルー: データを先に作成する方法によるWebフォームの作成

Business Process Composerを使用し、既存のヒューマン・タスク・ペイロードに基づいて新しいWebフォームを作成することができます。Webフォームを作成するためのユース・ケースについては、9.1.1項「Webフォームの概要」を参照してください。

ヒューマン・タスク・ペイロードは、ヒューマン・タスク・エディタを使用して作成されます。ペイロードに基づいてWebフォームを作成すると、ペイロードは読取り専用になります。次の条件が適用されます。

- Webフォームを作成した後で、ペイロード・シグネチャを更新することはできません。つまり、データ・オブジェクトを追加または削除したり、データ型を変更することはできません。ただし、ヒューマン・タスク・ペイロードに対して複合データ型を定義している場合、その基になっているビジネス・オブジェクトを編集することにより、データ型を変更できます。

- ヒューマン・タスク・ペイロードに基づいてWebフォームを作成した後、基のデータ構造を必要とするWebフォーム・コントロールをフォームに追加することはできません。フォーム・エディタを使用してWebフォームにWebフォーム・コントロールを追加するときに必要となる追加データは、基のスキーマには追加されず、ヒューマン・タスク・ペイロードでは使用できません。

複合データ・オブジェクトに基づいてヒューマン・タスク・ペイロードを作成していない場合、ペイロードを変更するにはWebフォームとヒューマン・タスクとの関係を解除し、ペイロードを変更して、この新しいペイロードに基づいて新しいWebフォームを作成する必要があります。

既存のペイロードに基づいて新しいWebフォームを作成および編集するには:

1. 新しいヒューマン・タスクを作成し、そのペイロードを定義します。

1. 新しいヒューマン・タスクを作成します。詳細は、11.3.2項「新しいヒューマン・タスクの作成方法」を参照してください。

2. 新しいWebフォームのベースとして使用するペイロードを作成します。詳細は、11.3.10項「ヒューマン・タスクに対するデータ・ペイロードの作成および構成方法」を参照してください。

3. ヒューマン・タスクを開きます。詳細は、11.3.3項「ヒューマン・タスクを開く方法」を参照してください。

4. 「Basic」タブを選択します。

5. 「プレゼンテーション」領域で「Webフォーム」を選択し、「追加」アイコンをクリックします。

6. Webフォームの名前を入力し、「ペイロードに基づく」を選択します。

7. 「作成」をクリックします。
Webフォームが作成され、現在のヒューマン・タスクに割り当てられます。

8. 「編集」をクリックして、Webフォームを編集します。

Webフォーム・エディタに空白フォームが表示されます。

2. ペイロード・データからWebフォーム・コントロールを生成します。
ペイロードに基づいてWebフォームを作成したら、ペイロード・データを使用して、対応するWebフォーム・コントロールを生成できます。ペイロード・データは、Webフォーム・エディタの左側にあるデータ構造ペインに表示されます。

詳細は、9.7.2項「データ・ソースに基づいてコントロールを追加する方法」を参照してください。

3. Webフォーム・コントロールを追加します。
必要に応じて、ユーザーとアプリケーションとの相互作用を定義するフォーム・コントロールを追加できます。詳細は、9.7.1項「Webフォームにコントロールを追加する方法」を参照してください。

注意:

Webフォームのルック・アンド・フィールを改良するためのコントロールを追加できます。ただし、追加するデータ・コントロールは、基のペイロードを反映しません。

4. WebフォームとWebフォーム・コントロール・プロパティを編集します。
Webフォームとそのコントロールのプロパティを編集すると、動作と外観を定義できます。詳細は、9.7.4項「WebフォームとWebフォーム・コントロールのプロパティを編集する方法」を参照してください。

5. Webフォームにフォーム・ルールを追加します。
Webフォームにフォーム・ルールを追加すると、さらに動作のカスタマイズと制御が可能です。詳細は、10.2項「フォーム・ルールの使用」を参照してください。

6. Webフォームをテストします。
Webフォームの設計時、その外観とフォーム・ルールの動作をテストすることができます。詳細は、9.7.7項「Webフォームをテストする方法」を参照してください。

7. Webフォームを保存します。
Webフォームを保存するには、プロジェクト全体を保存する必要があります。詳細は、4.4.7項「プロジェクトへの変更を保存する方法」を参照してください。

9.7 Webフォームの使用

新規Webフォームの作成後、Webフォーム・エディタを使用して、Webフォーム・コントロールの追加、フォーム・コントロール・プロパティの編集、Webフォームのテストを行うことができます。

9.7.1 Webフォームにコントロールを追加する方法

Webフォーム・コントロール・パレットからWebフォーム・キャンバスにドラッグ・アンド・ドロップすることにより、コントロールをWebフォームに追加できます。

コンポーネント・パレットからコントロールを追加するには:

1. コントロールを追加するWebフォームを開きます。

2. コンポーネント・パレットで、追加するコントロールをクリックして、フォーム・キャンバスにドラッグします。
コンポーネント・パレットからコントロールをドラッグし始めると、フォーム・キャンバスでの位置に応じて位置カーソルが変化します。次のような位置カーソルがあります。

3. マウス・ボタンを放すと、新しいコントロールが追加されます。

9.7.2 データ・ソースに基づいてコントロールを追加する方法

ヒューマン・タスクのペイロード・データに基づいてWebフォームを作成した後、ペイロードで定義されているデータ要素に対してWebフォーム・コントロールを自動的に生成できます。すべてのデータ要素または個々のデータ要素からフォーム・コントロールを生成できます。

詳細は、9.6項「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

ペイロード内のすべてのデータ要素に対してフォーム・コントールを生成するには:

1. ヒューマン・タスク・ペイロードに基づいて作成したWebフォームを開きます。

2. 図9-4で示されているように、「データ・ソース」ペインで、データ要素ツリー内のHumanTaskPayloadノードの右側にある緑の「追加」(+)アイコンをクリックします。
Business Process Composerにより、ペイロード内の各データ要素に対してWebフォーム・コントールが生成されます。コントロールは、現在選択されているコントロールの上のWebフォームに追加されます。ペイロードの各データ型に対してどのWebフォーム・コントロールが生成されるかについては、9.4項「データ・ソースの概要」を参照してください。

3. 必要に応じて、Webフォーム内でコントロールをドラッグ・アンド・ドロップすることによって、コントロールのレイアウトを編集します。

注意:

データ要素から繰返しコントロール内に生成されるコントロールを追加することはできません。

ペイロード内の個々のデータ要素に対してフォーム・コントールを生成するには:

1. ヒューマン・タスク・ペイロードに基づいて作成したWebフォームを開きます。

2. 図9-4で示されているように、「データ・ソース」ペインで、HumanTaskPayloadノードの左側の丸をクリックします。
Business Process Composerにより、ペイロード内のデータ要素のツリー・リストが表示されます。

3. フォームに追加する各データ要素に対して、そのデータ要素の左側にある緑の「追加」(+)アイコンを選択します。
Business Process Composerにより、データ要素に対してフォーム・コントールが生成されます。データ要素を個別に追加すると、フォーム・コントロールはフォームの開始時に直接追加されます。フォーム・パネルには追加されません。

4. 必要に応じて、Webフォーム内でコントロールをドラッグ・アンド・ドロップすることによって、コントロールのレイアウトを編集します。

注意:

データ要素から繰返しコントロール内に生成されるコントロールを追加することはできません。

9.7.3 データ・ソースから作成されたWebコントロールを表示する方法

Webフォーム・エディタでは、データ・ソースから自動的に生成されるWebフォーム・コントロールを表示できます。

データ・ソースから作成されたWebコントロールを表示するには:

1. Webフォームを開きます。

2. 「データ・ソース」パネルを開きます。

3. 図9-7に示されているように、フォーム・コントロールを表示アイコンをクリックします。

図9-7 フォーム・コントロールを表示アイコン

「図9-7 フォーム・コントロールを表示アイコン」の説明

生成された各Webフォーム・コントロールが、Webフォーム・キャンバスで青に強調表示されています。

9.7.4 WebフォームとWebフォーム・コントロールのプロパティを編集する方法

Webフォームのプロパティを編集して、Webフォームの一般設定およびスタイルを構成できます。Webフォーム・コントロールのプロパティを編集し、Webフォームでのコントロールの表示方法を構成することもできます。

Webフォームのプロパティを編集するには:

Webフォームのプロパティを編集し、フォームの設定と一般スタイルのプロパティを構成できます。Oracle BPMでサポートされるプロパティについては、C.1項「Webフォームのプロパティ」を参照してください。

1. 編集するプロパティが含まれているWebフォームを開きます。

2. フォーム・キャンバスの上部にあるWebフォーム・ヘッダーをクリックします。
Webフォームのプロパティ・タブが、プロパティ・エディタで表示されます。

3. プロパティ・エディタで、Webフォームのプロパティを編集します。

Webフォーム・コントロールのプロパティを編集するには:

個々のフォーム・コントロールのプロパティを編集して、動作とスタイルを構成できます。各フォーム・コントロールで使用できるプロパティについては、C.2項「Webフォーム・コントロールのプロパティ」を参照してください。

1. 編集するコントロールが含まれているWebフォームを開きます。

2. フォーム・キャンバスで、コントロールを選択します。
フォーム・キャンバスでコントロールを選択すると、それが強調表示されます。

3. プロパティ・エディタで「設定」または「スタイル」タブを選択し、必要に応じてプロパティを編集します。
サポートされている各Webフォーム・コントロールのプロパティについては、付録C「Webフォーム・コントロールのプロパティ」を参照してください。

9.7.5 Webフォームを削除する方法

プロジェクトのホーム・ページからBPMプロジェクトのWebフォームを削除できます。

注意:

ヒューマン・タスクに関連付けられているWebフォームを削除することはできません。ヒューマン・タスクに関連付けられているWebフォームを削除する必要がある場合は、ヒューマン・タスク・エディタを使用して、その関連付けを解除する必要があります。

Webフォームを削除するには:

1. プロジェクトのホームページに移動します。

2. 「Webフォーム」タブを選択し、削除するWebフォームの上にカーソルを置きます。

3. 「削除」アイコンをクリックし、「OK」をクリックしてWebフォームの削除を確定します。

4. プロジェクトを保存します。プロジェクトを保存しない場合、Webフォームの削除はプロジェクト内に保持されます。

9.7.6 Webフォームからコントロールを削除する方法

Webフォームからフォーム・コントロールを削除するには、Webフォーム・デザイナを使用します。

注意:

コントロールを削除した後で元に戻すことはできません。新しいコントロールをWebフォームに追加し、そのプロパティを構成する必要があります。

Webフォームまたは組織コントロールからコントロールを削除するには:

1. 削除するコントロールが含まれているWebフォームを開きます。

2. コントロールをクリックして選択します。
コントロールを選択すると、図9-8に示すように、強調表示されます。

図9-8 個別のコントロールの選択

「図9-8 個別のコントロールの選択」の説明

注意:

組織コントロールではなく、削除するコントロールを個別に選択していることを確認します。

3. 「クリックして削除」ボタンをクリックします。

Webフォームから組織コントロールを削除するには:

1. 編集する組織コントロールが含まれているWebフォームを開きます。

2. 削除する組織コントロールをクリックします。
組織コントロールを選択すると、コントロールとそれに含まれるコントロールすべても選択されます。

図9-9 組織コントロールの選択

「図9-9 組織コントロールの選択」の説明

3. 「削除」ボタンをクリックします。

注意:

組織コントロールを削除すると、それに含まれるすべてのコントロールも削除されます。

9.7.7 Webフォームをテストする方法

Webフォームの設計時、Webフォーム・エディタから直接、動作をテストできます。

Webフォームをテストするには:

1. Webフォームを開きます。

2. Webフォーム・エディタ・ツールバーでフォームのテストボタンをクリックします。

3. 日付を入力したり、ドロップダウン・コントロールからアイテムを選択するなどして、Webフォームをテストします。

4. テストが終了したら、「閉じる」(x)ボタンをクリックします。

10 Webフォーム・ルールの使用

この章では、Oracle Business Process Composerを使用してWebフォーム内でフォーム・ルールを作成および編集する方法について説明します。フォーム・ルールは、ユーザーとWebフォームとの相互作用を定義するJavascriptコードです。この章では、JavaScriptの基本を理解していることを前提としています。

この章は次の項で構成されています:

- 10.1項「フォーム・ルールの概要」

- 10.2項「フォーム・ルールの使用」

10.1 フォーム・ルールの概要

フォーム・ルールを作成して、Webフォームの動作を定義できます。一般に、フォーム・ルールは次の場合に使用します。

- 要素の表示/非表示、有効/無効の切替えなど、Webフォームへの動的動作の追加。たとえば、他のフォーム・コントロールの状態に基づいて、特定のフォーム・コントロールまたはセクション全体の表示と非表示を切り替えるフォーム・ルールを追加できます。コンテキストに応じた方法でフォーム・フィールドを表示すると、混乱が少なくなり、ユーザーがフォームに移動しやすくなります。

- 複雑な計算の実行。たとえば、アイテム数量と価格など、他のフォーム・フィールドの値から発注フォームの請求書価格合計を計算できます。

- 複雑な検証の実行。

- 動的なドロップダウン・リストの移入。

フォーム・ルールとは、Webフォーム・コントロールの表示方法、ユーザーが入力できるデータのタイプなどを定義することで、ユーザーがWebフォームと対話する方法を定義できるサーバー側のJavascriptコードです。

次の項では、フォーム・ルールに含まれるJavascriptの基本機能について説明します。フォーム・ルールの特定のユース・ケースについては、付録D「Webフォーム・ルールの例」を参照してください。

10.1.1 フォーム・ルールのJavascript構文

Oracle BPMでは、フォーム・ルールはJavaScriptコードです。BPMプロジェクトを保存した後にフォーム・ルールが保存され、実行可能になります。

通常、フォーム・ルールには次のフォームがあります。

if (condition)
{
true actions;
}
else
{
false actions;
}

主に繰返しアイテムをループ処理する目的で高度なフォーム・ルールを作成できます。フォーム・ルールを作成するときに認識する必要があるJavaScriptの基本的な特徴を次に示します。

- 大/小文字の区別: Javascriptコマンドは大文字小文字を区別します。たとえば、var color1とvar Color1は2つの異なる変数です。

- 緩いタイプ指定の変数: Javascript変数のタイプは緩く指定されます。変数のタイプは明示的に宣言する必要はありません。たとえば、var color = 'red';およびvar num = 33と指定すると、変数colorは文字列タイプ、numは数値タイプになります。

- 行末のセミコロン: 行末のセミコロンはオプションです。ただし、適切なコーディングの一部として行を終了するには、セミコロンを使用する必要があります。多くの場合、これにより間違いを防ぐことができます。

- コメント: //または/* */の記号を使用して、コードにコメントを追加できます。

Oracle BPMでは次のJavascript構文はサポートされていません。

- switch文

さらに、Oracle BPMではいくつかの制限付きで次の構文がサポートされています。

- try-catch

たとえば、次の例では、xという名前のJavaScript変数はこのフォーム・ルールでは未定義のため、"FN"という名前のコントロールの値は'got exception'に設定されます。

if (form.load) {
try {
x.randomproperty = 'blah';
} catch (e) {
FN.value = 'got exception';
}
}

ただし、フォーム・コントロールが未定義の場合の例外の捕捉はサポートされていないため、予期しない動作が発生する可能性があります。これは、JavaScriptインタープリタでエラーが捕捉される前に、フォーム・ルールの解析中にOracle BPMで問題が捕捉されるためです。

次の例では、Colorという名前のコントロールはフォームに存在しません。

if (form.load) {
try {
Color.value = "red";
}   catch(e) {
msg1.value = "error caught: " + e;
}
}

10.1.1.1 コントロール名

多くの場合、フォーム・ルールはフォーム・コントロールを参照する必要があります。コントロールのnameプロパティを使用して、コントロールに名前を割り当てる必要があります。

名前は大文字と小文字が区別されます。コントロールがFirstNameという名前の場合、フォーム・ルールをFirstName.valueとして作成する必要があります。firstname.valueは機能しません。

フォーム・ルールでコントロールを使用する場合、コントロールが一意の名前になっていることを確認する必要があります。複数のコントロールが同じ名前を持つ場合、ランタイム環境ではフォーム・ルールが参照するコントロールを判別できません。パレットからフォームに追加したフォーム・コントロールは、通常、一意の名前が保証されます。フォームにすでに存在するコントロールの名前に変更することは、Webフォーム・エディタでは許可されません。

ただし、状況によっては、同じ名前の複数のコントロールを使用できる場合があります。

- XSDデータ・ソースから追加されたコントロール

- カスタム・パレットから追加されたコントロール

- セクションにネストされたコントロール

同じラベルで同じレベルにある2つのコントロールがある場合、コントロールの名前は自動的に一意になります。一意にならないように名前を編集しようとすると、Webフォーム・デザイナにより、変更は許可されません。

コントロールがセクション・コントロール内にドロップされた場合、セクションの外側にドロップされたコントロールとは別のネスト・レベルとなります。また、セクション内とセクション外の2つのコントロールも、異なるネスト・レベルになります。Webフォーム・デザイナでは、このようなコントロールに同じ名前を指定できます。

ただし、フォーム・ルールで一意ではない名前のコントロールが使用された場合、予期しない結果を生じます。フォームでエラーが発生した場合、一意になるようにコントロール名を編集できます。

注意:

フォームの名前を編集しても、xsdスキーマ・コントロールは、フォームの発行時またはxml検証時に作成されたxmlインスタンス・ドキュメントには影響しません。

10.1.1.2 フォーム・ルール識別子

フォーム・ルールは名前プロパティを使用してフォーム・コントロールを参照します。名前プロパティがMyControlと定義されているコントロールであれば、この名前を識別子として使用してフォーム・ルール内でこのコントロールのプロパティを参照できます。

フォーム・ルール識別子は、必ず次の形式である必要があります。

Name.<property>

次のフォーム・ルール識別子がサポートされています。

- visible: コントロールを非表示にする場合はfalse、コントロールを表示する場合はtrueに設定します。

- value: コントロールの値を読み取るか設定します。このプロパティは、セクション、タブ、またはユーザーに対して表示される値がないその他のコントロールに対しては無効です。

- enabled: ユーザーが値を変更できないようにコントロールを無効化(グレー表示)する場合はfalse、コントロールを有効化する場合はtrueに設定します。これは、セクションとタブに対しては無効です。

- expanded: グループ・コントロール(セクション・コントロールのみ)を縮小する場合はfalse、グループ・コントロールを拡張する場合はtrueに設定します。

- selected: タブを選択された状態にする場合、trueに設定します(タブ・コントロールのみ)。

- valid: コントロールに有効な値が含まれる場合、このプロパティの値はtrueです。それ以外の場合はfalseです。妥当性はコントロールのタイプに基づきます。たとえば、ユーザーが数値に変換できない文字列値を入力すると、数値コントロールは無効になります。このプロパティは設定および読み取ることができます。

- required: コントロールを必須にし、赤いアスタリスクを表示する場合は、trueに設定します。このプロパティは、パレット・コントロールにのみ影響し、XSDスキーマ・データ・ソースから生成されたコントロールには影響しません。
このプロパティは、セクション・コントロールに対しても有効です。セクションrequiredをfalseに設定すると、すべての内部コントロールがnot requiredに自動的に設定されます。

- options: 選択コントロール・オプションを動的に設定できます(ラジオ、ドロップダウンおよびチェック・ボックス・コントロールのみ)。

- label: セクションを含む任意のコントロールに表示されるラベルを設定します。

- help: ヘルプ・テキストを設定します。

- hint: マウスを置いて表示されるヒントを設定します。

- status: コントロールの値が無効な場合に表示されるエラー・メッセージを設定します。

- clicked: トリガー・コントロールによって使用されます。初期状態はfalseです。ユーザーがトリガーをクリックすると、状態がtrueになります。

- printable: 印刷可能なビューとPDF提出文書の両方からコントロールを削除する場合は、falseに設定します。

- itemAdded: 繰返しコントロールによって使用されます。初期状態はfalseです。ユーザーが「+」をクリックして繰返しアイテムを追加し、フォームのロード時にドキュメントURIを経由して繰返しアイテムが追加されると、状態がtrueになります。

- itemRemoved: 繰返しコントロールによって使用されます。初期状態はfalseです。ユーザーが「-」をクリックして繰返しアイテムを削除すると、状態がtrueになります。

- itemIndex: 繰返しコントロールによって使用されます。itemAddedまたはitemRemovedイベントが起動されると、itemIndexの値が設定されます。itemRemovedイベントの場合、itemIndexは-1を返します。itemAddedイベントの場合、itemIndexは追加されたアイテムの索引を返します。

- form.load: フォームが初めてロードされる場合、このプロパティはtrueです。ユーザーがフォームとの対話を開始する前に設定する必要があるフォーム・ルールを使用してデフォルト値を設定する場合に便利です。

- form.unload: ユーザーがフォームの発行ボタンをクリックすると、このプロパティはtrueになります。フォームのドキュメント・アクションおよびフォーム・アクションを実行する直前にコントロール値を設定する場合に便利です。

フォーム・ルールで使用される識別子の例を次に示します。

- FirstName.value

- BillingAddress.visible

- Email[1].value

- Email[i].visible

後半の2つは、繰返しコントロールの例です。繰返しコントロールの詳細を次に示します。プロパティの大/小文字は重要です。FirstName.valueは有効なフォーム・ルール識別子ですが、FirstName.ValueおよびFirstName.vAlUeは無効です。

10.1.1.3 文字列と数値

Javascriptはタイプが緩く指定された言語であるため、フィールド値やフォーム・ルールを追加しようとすると、かわりに文字列が連結される場合があります。文字列操作ではなく、算術計算を実行するということをフォーム・ルールに知らせる複数の方法があります。簡単な方法としては、変数に*1を追加します。id = id*1 + 1;と指定することで、idは現在の値に1が付加された値ではなく、現在の値に1を加算した値になります。例: 現在の値が4の場合、id*1と記述しないと、結果は5ではなく41になる可能性があります。

フォーム・ルールでは、通貨コントロールが加算ではなく文字列連結を実行する場合もあります。この問題を修正するには、次のようにします。

- フォーム・ルールを含むフォームをデザイナで開き、通貨コントロールをテキスト・コントロールに変更した後フォームを保存します。

- フォームを開き、テキスト・コントロールを通貨コントロールに戻してから、フォームを再び保存します。

10.1.1.4 条件の作成

最も一般的な条件の1つは、ユーザーがコントロールに値を入力するとただちに実行されるフォーム・ルールです。この条件のテストは、フィールドが文字列タイプか数値タイプかによって異なります。

文字列タイプ: テキスト、テキスト領域、日付、電話番号

if (name.value.length > 0)

数値タイプ: 通貨、数量、数値

if (name.value != null) or if (name.value > 0)

はどちらも一般的なテスト条件です。

多くの場合、条件name.value.length > 0は完全にドロップ可能であり、フォーム・ルールが簡素化されます。このフォーム・ルールは、ユーザーがfirstnameまたはlastnameという名前のコントロールに値を入力するたびに実行されます。

fullname.value = firstname.value + ' ' + lastname.value;

10.1.1.5 選択コントロール

ラジオ・コントロール、ドロップダウンおよびチェック・ボックスはすべて、選択コントロールの例です。ラジオ・コントロールおよびドロップダウン・コントロールは単一選択です。つまり、ドロップダウン内の1つのアイテムを選択すると、ドロップダウン内の他のアイテムはすべて選択解除されます。同じことがラジオにも当てはまります。いつでも押せるのは1つのラジオ・ボタンのみです。したがって、ラジオおよびドロップダウンのID.valueは、他の入力および出力コントロールに似ています。値は単一のアイテムです。

チェック・ボックス・コントロールは複数選択です。いつでも複数のアイテムを選択できます。つまり、チェック・ボックスのID.valueは1つの配列です。したがって、チェック・ボックスの有効な式は、値配列内のアイテムの数を返すID.value.lengthです。ID[0].valueはリスト内の最初のアイテムを取得し、ID[1].valueは2番目のアイテムを取得します(以下同様)。チェック・ボックスが1つのみのチェック・ボックス・コントロールがあり、そのチェック・ボックスが未選択の場合、配列には要素は含まれません。チェック・ボックス・コントロールの場合、ID.value.length == 0という式が便利です。ID.lengthは有効な式ではないことに注意してください。チェック・ボックス・コントロールは配列であるため、ID[0].value ==と記述するのは有効な式ではありません。これは、チェック・ボックス・コントロール内のオプションが未選択の場合、値は空の文字列にならないためです。単に配列に存在しなくなります。

10.1.1.6 コントロールの初期状態

フォーム内のすべてのコントロールは、visible、expanded、value、validおよびenabledの各プロパティのデフォルト・プロパティの初期状態にあります。ただし、フォーム・デザイナの「編集」タブでコントロールの初期状態を変更できます。コントロールの初期状態は複数の方法で変更できます。1つの方法としては、値を入力コントロールに関連付けます。これにより、フォームを使用モードで初めて開いたときにコントロールのデフォルト値が設定されます。グループ・コントロールを拡張または縮小するという方法もあります。これにより、初期拡張状態が設定されます。visibleおよびenabledプロパティのデフォルト状態は、コントロールの「プロパティの編集」パネルを使用して設定されます。「プロパティの編集」には、visibleおよびenabledプロパティが入力コントロールのように意味を持つコントロールのプロパティのチェック・ボックスがあります。

10.1.1.7 フォーム・ルールと繰返しコントロール

それ自体に繰返しコントロールが含まれる繰返しコントロールがフォームに存在する場合、フォーム・ルールを内側の繰返しコントロールに適用することはできません。これは、内側のどの繰返しアイテムが外側のどの繰返しアイテムと対になっているかを区別する方法がないためです。

10.1.2 フォーム・ルールでの動的コンテンツの使用

10.1.2.1 動的コンテンツ

多くの場合、実際のフォームではドロップダウン・リストに動的コンテンツが含まれている必要があります。通常、1つのフォーム・フィールドに入力された値に基づいて、選択コントロールで使用できる他のフィールドまたはオプションの値は動的である必要があります。

フォーム・ルールを使用すると、JSONオブジェクトを含むX-JSONヘッダーを返すhttp getsを呼び出すことができます。これにより、テキスト・コントロールや選択(ラジオ、ドロップダウン、チェック・ボックス)コントロールなど、フォーム・フィールドに移入されるデフォルト値の割当てが完全に柔軟になります。フォーム・ルールではhttp.post()、http.delete()およびhttp.put()を使用することもできますが、すべてのペイロードがサポートされているわけではないため、URLパラメータと組み合せて使用する必要があります。

http.getの構文を表示する例は次のとおりです。このフォーム・ルールでは、JSONオブジェクトを返す必要があるhttp getが呼び出されます。サーブレット上のメソッドは、itemPriceを取得するためにitemNameを指定してデータベースを問い合せるなど、必要な処理をすべて実行できます。この例では、返されるJSONオブジェクトにはpriceという名前のフィールドが含まれています。評価では、JSONオブジェクトがjavascript変数xに変換され、割り当てられます。その後、必要に応じてフォームでxを使用できます。この場合、値をPriceという名前のフォーム・フィールドに設定するために使用されます。

eval('x=' + http.get('http://<webhost>/test/json/getPrice?itemName=' + itemName.value));
Price.value = x.price;

http.getレスポンスで返されるJSONオブジェクトに、clientsという配列が含まれているという別の例を考えてみます。この配列を使用して、ドロップダウン・リストのオプションを設定できます。

eval('x=' + http.get('http://<webhost>/test/json/getClients'));
Clients.options = x.clients;

ユーザー/パスワードの認証後にJSONオブジェクトを返すサーブレットの例もあります。

@Override
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try {
String u = request.getParameter("username");
String p = request.getParameter("password");
if (authenticate(u, p) == null)
response.addHeader("X-JSON", "{auth:false}");
else
response.addHeader("X-JSON", "{auth:true}");
} catch (Exception e) {
throw new ServletException(e);
}
}

このサーブレットは、次のようにフォーム・ルールで使用できます。

if (signForm.clicked)
{
eval('x=' + http.get('http://<webhost>/MYservices/signForm?username=' + u.value + '&password=' + p.value));
if (x.auth)
{
m.value = "<center>Authenticationn Succeeded</center>";
} else
{
m.value = "<center>Invalid username or password</center>";
}
}

http.getはURLを介してhttpサービスにアクセスしていることに注意してください。特定の文字については、HTTP URLを介して正しく渡すためにエンコードする必要があります。ユーザーがフォーム・フィールドに入力する値は常に制御できるわけではありません。値にこのような文字の1つが含まれる場合、その値をエンコードする必要があります。

たとえば、このhttp.getにはパスワード・パラメータが含まれています。ユーザー・パスワードには「#」などの文字が含まれる可能性があるため、値をエンコードする必要があります。組込みのjavascriptメソッドencodeURIComponent()により、これを簡単に実行できます。

eval('x=' + http.get('http://<webhost>/MYservices/signForm?username=' +
u.value + '&password=' + encodeURIComponent(p.value)));

HTTPサービスでURLパラメータをデコードする必要がある場合もあります。例:

import java.net.URLDecoder;
String p = request.getParameter("password");
p = URLDecoder.decode(password, "UTF-8");

10.1.2.2 動的コンテンツの再利用

バックエンド・システムから動的コンテンツを取得しようとすると、フォームのパフォーマンスが低下する原因になる可能性があります。フォームで動的コンテンツを複数回使用する必要がある場合、http.get()からコンテンツを1回取得し、返されたJSON文字列を非表示のテキスト・フォーム・コントロールに保存することで、パフォーマンスを向上できます。その後、バックエンド・システムを複数回呼び出さなくても、テキスト・コントロール値を読み取って再評価できます。

たとえば、jsonUserDataという名前のフォームに非表示のテキスト・コントロールを追加します。http.get():を介してバックエンド・システムからユーザー・データを取得する1行をフォーム・ルールに追加します。

jsonUserDate.value = x;

ユーザー・データを必要とする他のフォーム・ルールで、http.get()をバックエンド・システムに再度呼び出すのではなく、フォーム・ルールに次の行を追加します。

var val = jsonUserDate.value;
eval('x' = val);

これは、バックエンド・システムからコンテンツを再び取得したのと同じように、xを同じ文字列に設定する効果があります。

10.1.3 フォーム・ルールでのデータ・メソッドとビルトイン・メソッドの使用

Webフォーム・ルール内のビルトイン・データとビルドイン・メソッドにアクセスできます。

10.1.3.1 ビルトイン・データ

Oracle BPMではフォーム・ルールに特定のデータが提供されます。これには、フォーム、テナントおよびフォーム情報を現在使用しているユーザーに関する情報が含まれます。_data.getParameter('<data name>')構文を使用してフォーム・ルール内のこのデータを取得します。

使用可能なデータのリストを次に示します。

- subject.id - ログインしたユーザーのユーザー名

- subject.first.name - ログインしたユーザーの名

- subject.last.name - ログインしたユーザーの姓

- subject.roles - ログインしたユーザーのすべてのロールのリスト(v4.1.5で使用可能)

form.loadフォーム・ルールを使用すると、現在ログインしているユーザーに関する情報を使用してフォーム内のフィールドを事前に設定できます。たとえば、Id、FirstName、LastName、EmailおよびRolesというコントロールがフォームにあるような場合です。

注意:

コントロールの値を配列またはランダムなJavaScriptオブジェクトに設定することはできません。

10.1.3.2 ビルトイン・メソッド

Oracle BPMには、フォーム・ルールで必要な共通の機能に使用されるビルトイン・ヘルパー・メソッドが用意されています。日付および時間の操作に使用できるメソッドのリストを次に示します。

- Time frevvo.currentTime(form) - 現在の時間をユーザーのローカル・タイムゾーンで返します。このメソッドは、Timeコントロールの値を設定する場合にのみ使用してください。

- Date frevvo.currentDate(form) - 現在の日付をユーザーのローカル・タイムゾーンで返します。このメソッドは、Dateコントロールの値を設定する場合にのみ使用してください。

- DateTime frevvo.currentDateTime(form) - 現在の日時をユーザーのローカル・タイムゾーンで返します。このメソッドは、日付/時間コントロールの値を設定する場合にのみ使用してください。

Tmという名前の時間コントロール、Dtという名前の日付コントロール、DtTmという名前の日付/時間コントロールを設定する例を次に示します。

Tm.value = frevvo.currentTime(form);
Dt.value = frevvo.currentDate(form);
DtTm.value = frevvo.currentDateTime(form);

_formTz Urlパラメータを使用してフォームのUrlでタイムゾーンを指定しないかぎり、currentTime()、currentDate()およびcurrentDateTime()はform.loadフォーム・ルールでは機能しません。これは、フォーム・サーバーが日時を返すタイムゾーンを認識する必要があるためです。_formTzを指定しない場合、メソッドはnullを返し、コントロール値は空白のままになります。たとえば、東部標準時を指定するには、&_formTz=America/NewYorkとします。

ユーザーとロールを操作する場合は、次のメソッドを使用します。

- boolean isUniqueUserId (String userId, String tenantId) - このユーザーがテナントに存在しない場合はtrue、存在する場合はfalseを返します

- boolean isUniqueRoleId (String roleId, String tenantId) - このロールがテナントに存在しない場合はtrue、存在する場合はfalseを返します

10.1.4 実行時のフォーム・ルールの動作の理解

Webフォームでフォーム・ルールを使用する場合、フォーム・ルールの実行時の動作を理解することが重要です。

10.1.4.1 フォーム・ルールが実行されるタイミング

フォーム・ルールを作成または編集すると、Oracle BPMでは、コントロール、およびフォーム・ルールが依存するそのコントロールのプロパティのリストを確認します。フォーム・ルールに関連する状態が変化すると、フォーム・ルールが自動的に実行されます。フォーム・ルールは、フォーム・ルール・パネルに表示されるときに上から下の順序でも実行されます。

フォーム・ルールは他のフォーム・ルールの実行をトリガーできることに注意してください。したがって、フォーム・ルールR1がコントロールの値をName Aで設定し、A.valueに依存するフォーム・ルールR2が存在する場合、フォーム・ルールR2がトリガーおよび実行されます。

フォーム・ルールでは通常、1つ以上のフォーム・コントロールとそのプロパティが参照され、そのプロパティのいずれかが値を変更するとフォーム・ルールが実行されます。フォーム・ルールは、ページがロードされるときには起動されないことに注意してください。たとえば、次のフォーム・ルールは、N1.valueが値を変更したときにのみ実行されます。

if (N1.value > 0 || N2.value > 0) {
T.value = N1.value + N2.value;
}

ここで、ユーザーが無効な電子メールを入力した場合にメッセージを表示するユースケースがあるとします。フォームには必須の電子メール入力コントロール(Name=E)があり、電子メール・コントロールのvalidプロパティがfalseの場合、アクションを実行する必要があります。たとえば、次のようなフォーム・ルールを作成したとします。

if (!E.valid) {
// code to show message here.
}

前述のコードは、予想どおりに機能しませんでした。Eは必須フィールドであり、フィールドは最初は空のため、E.validの初期値はfalseです。ユーザーが無効な電子メール・アドレスを入力すると、E.validの値はfalseのままになり、状態が変化しないため、フォーム・ルールは実行されません。次のコードは適切に機能します。

if ((E.value.length > 0) && (!E.valid)) {
// code to show message here.
}

ここで、フォーム・ルールはE.validとE.value.lengthの両方の値に依存するため、ゼロより長い文字列が入力されると、フォーム・ルールが実行され、メッセージが表示されます。

10.1.4.2 無限ループ

ループ状態になるフォーム・ルールを簡単に作成できます。たとえば、B.valueに基づいてA.valueを更新するフォーム・ルールや、A.valueに基づいてB.valueを更新するフォーム・ルールなどです。このようなフォーム・ルールは相互に継続してトリガーされます。

Oracle BPMサーバーでは、フォーム・ルールごとに実行時間の制限を設定することで、この状態が発生しないようにします。実行に5秒以上かかるフォーム・ルールは強制的に停止されます。これは、ほとんどの計算タスクでは非常に長い期間であり、フォーム・ルールの大部分がこの制約の影響を受けないことに注意してください。ただし、Oracle BPMは多数のユーザーが同時に使用するホスト・サイトであるため、このような計算によって課される時間制限があります。

10.1.5 フォーム・ルールのデバッグ

この項では、フォームのデバッグ方法について説明します。

10.1.5.1 重複するコントロール名のデバッグ

フォームを設計する場合、フォーム設計者は通常、コントロールに重複する名前が指定されないようにしますが、コントロールが別のセクション・コントロールに含まれる場合、コントロールに同じ名前を付けることができます。たとえば、HomeとOfficeという名前の2つのセクションがフォームにあり、各セクションにAddressという名前のテキスト・コントロールがあるとします。ただし、フォーム・ルールでいずれかのAddressコントロールを使用する場合、一意の名前を指定する必要があります。

名前が重複しているためにフォーム・ルールに違反しているかどうかを識別するには、Tomcatコンソールのログを参照するという方法があります。次のようなメッセージが表示された場合、コントロール名が重複している可能性があります。

16:50:35,390 WARN RuleObserver:455 - Error evaluating rule [Translate.Translate Form Rule]: Java arrays have no public instance fields or methods named "value." ([Translate.Translate Form Rule]#2) if (form.load) { Name.value = 'Nancy'; }

Java arrays have no public instance fields or methods...は、Javaでは同じ名前のコントロールが、単一のコントロールではなく1つの配列として解釈されていることを意味します。

10.1.5.2 フォーム・ルールのプロファイリング

フォーム・ルールの実行をプロファイリングすると、各フォーム・ルールの実行にかかる時間を判断できます。これは、多数のフォーム・ルールを使用するフォームのパフォーマンスを調整および向上する際に役立ちます。プロファイリングをオンにするには、urlでrule-debug=profileを設定します。

動的な選択コントロール(ドロップダウン、ラジオ、チェック・ボックス)を設定するためにフォーム・ルールがデータベース問合せを実行する場合、フォーム・ルール・プロファイリングを使用すると、データベース問合せに時間がかかりすぎるかどうかを識別するのに役立ちます。実行に時間がかかるHTTPコールが表示されます。

10.2 フォーム・ルールの使用

次の手順では、フォーム・ルールを作成およびテストする方法を説明します。

10.2.1 フォーム・ルールの作成方法

Business Process Composerには、フォーム・ルールを作成および編集できるエディタが用意されています。

新しいフォーム・ルールを作成するには:

1. 新しいフォーム・ルールを作成するフォームを開きます。

2. フォーム・ツールバーで、「ルール」ボタンをクリックします。

3. 「新規ルールの作成」をクリックします。

4. 「編集」をクリックし、必要に応じて次のフィールドを編集します。

要素

説明

名前

フォーム・ルールの名前を定義します。これは、意味のある名前に変更する必要があります。

有効

フォーム内のフォーム・ルールを有効にする場合に選択します。このオプションの選択を解除すると、フォーム・ルールはランタイム時にフォームに適用されません。

説明

フォーム・ルールの説明を指定します。フォーム・ルールの動作、およびフォーム内のフォーム・コントロールや他のフォーム・ルールのコンテキストでどのように機能するかを説明するようにデフォルトを変更する必要があります。

ルール

フォーム・ルールを定義します。

5. フォーム・ルールの作成および編集が完了したら、ツールバーの「編集」をクリックしてWebフォーム・デザイナに戻ります。

10.2.2 フォーム・ルールのテスト方法

Webフォームのテスト中にフォーム・ルールの動作をテストできます。詳細は、9.7.7項「Webフォームをテストする方法」を参照してください。

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

この章では、ヒューマン・タスクを使用して、エンド・ユーザーとプロセスベースのアプリケーションとの相互作用を定義する方法について説明します。Oracle Business Process Composerを使用してヒューマン・タスクを作成および編集する方法について説明します。

この章の内容は次のとおりです。

- 11.1項「ヒューマン・タスクの概要」

- 11.2項「ヒューマン・タスク・エディタの概要」

- 11.3項「ヒューマン・タスクの使用」

- 11.4項「ユーザー・タスクへのヒューマン・タスクの割当て」

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

ヒューマン・タスクは、Oracle Human Workflowのコンポーネントの1つです。Oracle Human Workflowは、Oracle SOA SuiteとOracle BPM Suitesのコンポーネントで、ユーザーとプロセスベースのアプリケーションとの対話を管理するためのランタイム環境を提供します。ヒューマン・タスクは、ユーザー・インタフェースとワークフローを含む、ユーザー相互作用を定義します。

Business Process Composerを使用して、新規ヒューマン・タスクを作成し、その基本プロパティを構成できます。ただし、ヒューマン・タスクのより詳細な構成を行う場合は、Oracle BPM Studioを使用する必要があります。詳細は、Oracle BPMモデリングおよび実装ガイドのヒューマン・ワークフローの概要を参照してください。

ヒューマン・タスクは、BPMプロジェクト内のサービスとして定義され、ビジネス・カタログに格納されます。

ヒューマン・タスクでは次が定義されます。

- 参加者: ヒューマン・タスクの作業を実行するユーザーまたはユーザー・グループを指定します。

- 承認パターン: ヒューマン・タスクの作業を実行する順序を指定します。

- アクセス権: タスクにアクセスできるユーザーを決定します。

- ペイロード: ヒューマン・タスクによって使用されるデータ構造を定義します。ペイロード・データはBPMNプロセスのユーザー・タスクからヒューマン・タスクに渡されます。

- 有効期限: ヒューマン・タスクの期間を定義します。

- プレゼンテーション: BPMNプロセスと対話する参加者が使用するユーザー・インタフェースを定義します。プレゼンテーションはフォームによって定義されます。Oracle BPMは、WebフォームとOracle Application Development Framework (ADF)タスク・フォームの2つのタイプのフォームをサポートしています。
Business Process Composerを使用したフォームの作成と使用の詳細は、第9章「Webフォームの使用」を参照してください。Oracle BPM Studioを使用したADFタスク・フォームの作成については、Oracle BPMモデリングおよび実装ガイドのヒューマン・ワークフローの概要を参照してください。

11.1.1 参加者とルーティング・タイプの概要

ヒューマン・タスクでは、アプリケーションでユーザーが様々なタスクを実行する順序を決定できます。この順序はヒューマン・タスクのルーティングによって定義されます。参加者とは各タスクの実行を担当するユーザーまたはグループです。ヒューマン・タスク・エディタを使用して、ヒューマン・タスクのルーティング・フローおよび参加者を指定できます。

11.1.1.1 参加者タイプ

ヒューマン・タスクでは、次の一般的なルーティング・シナリオのパターンがサポートされます。

- 単一の承認者
これは、1人の参加者を単一のユーザー、グループまたはロールにマップする単純なケースです。詳細は、11.1.2項「参加者割当ての概要」を参照してください。

たとえば、休暇申請がマネージャに割り当てられているとします。マネージャは、休暇が始まる3日前までに申請タスクを操作する必要があります。マネージャが申請を正式に承認または却下すると、その決定が従業員に通知されます。マネージャがタスクを操作しない場合、申請は却下として処理されます。正式な却下の場合と同様に通知アクションが実行されます。

- パラレル
この参加者タイプは、一連のユーザーがパラレルで作業する必要があることを示します。このパターンは通常、投票で使用されます。

たとえば、雇用に関して複数のユーザーが応募者の採否を票決する必要がある場合です。結果が有効になるために必要な得票率(多数決や満場一致など)を指定します。

- FYI
この参加者は、単一の承認者と同様に、単一のユーザー、グループまたはロールにマップします。ただし、このパターンでは、参加者は通知タスクを単に受信するのみで、ビジネス・プロセスでは参加者のレスポンスを待機しません。FYIの参加者は、タスクの結果に直接影響を与えることはできませんが、場合によっては、コメントを提供したり、添付ファイルを追加できます。

たとえば、採用候補者の採用について地域マネージャが承認し、その候補が承認または却下のために州全体の統括マネージャに渡されたことが、地域の営業所に通知される場合です。

- シリアル
この参加者タイプは、一連のユーザーが順番に作業する必要があることを示します。ルーティング・ポリシーには、複数の参加者を順番に使用した順番による作業を指定できますが、このパターンは一連のユーザーが動的である場合に有用です。このシリアル・タイプの一般的なシナリオは、管理チェーン・エスカレーションです。このエスカレーションは、このパターンの指定内にある管理チェーンに基づいてリストを指定することで実行されます。

ヒューマン・タスクを作成すると、デフォルトの単純参加者が含まれます。ヒューマン・タスク・エディタを使用して、参加者タイプを変更したり、参加者を追加できます。詳細は、11.3.6項「デフォルト参加者の変更方法」を参照してください。

11.1.1.2 ルーティングのタイプ

図11-1は、単一の参加者のみが含まれている基本的なルーティングを示しています。

図11-1 単一の参加者の基本的なルーティング

「図11-1 単一の参加者の基本的なルーティング」の説明

参加者タイプに加えて、ヒューマン・タスクでは、より制御機能が高い複雑なルーティング・タイプもサポートされています。これらのルーティング・タイプには、次のものがあります。

- 順次
順次ルーティングでは、様々な参加者が、タスクを順番に処理します。図11-2は、順次ルーティングの例を示しています。この例では、Participant_1はルーティング・フローの最初の参加者です。Participant_1がタスクの処理を終了した後、タスクはParticpant_2に渡されます。Participant_2がタスクの処理を終了した後、ヒューマン・タスクは完了となります。

図11-2 タスクの順次ルーティングの例

「図11-2 タスクの順次ルーティングの例」の説明

- パラレル
パラレル・ルーティングでは、複数の参加者がタスクを同時に処理します。図11-3は、パラレル・ルーティングの例を示しています。この例では、Participant_1とParticipant_2がタスクを同時に処理します。

パラレル・ルーティングでは、パラレル・ブロックの後、タスク・フローが次の参加者にどのように続くかを決定するルーティングの結果を定義できます。詳細は、11.1.1.3項「結果」を参照してください。

図11-3 タスクのパラレル・ルーティングの例

「図11-3 タスクのパラレル・ルーティングの例」の説明

11.1.1.3 結果

結果には、ヒューマン・タスクについて可能性がある結果引数を指定します。Oracle BPM Worklistとプロセス・ワークスペースには、ランタイム時に実行できるタスクとして選択した結果が表示されます。

デフォルトの結果リストで選択されたデフォルトの結果よりも優先される投票時結果を指定できます。この結果は、必要なパーセンテージに達した場合に有効になります。結果は、表にリストされている順に評価されます。

ヒューマン・タスクに対して次の結果を定義できます。

- 遅延

- はい

- 承認

- 承認

- 却下

- いいえ

ヒューマン・タスクの結果の構成については、11.3.4項「基本タスク・プロパティの構成方法」を参照してください。パラレル・ルーティングの結果の構成については、11.3.9項「パラレル・ルーティングの結果の構成方法」を参照してください。

11.1.2 参加者割当ての概要

参加者割当ては、アプリケーションを使用する組織内のユーザーにヒューマン・タスクをマップするプロセスです。各参加者を次のいずれかにマップして割り当てます。

- ユーザー
個々のユーザーをタスクの処理に割り当てることができます。たとえば、ユーザーjlondonまたはjsteinを特定のタスクに割り当てることができます。ユーザーは、SOAインフラストラクチャで構成されるアイデンティティ・ストアに定義されます。これらのユーザーは、Oracle WebLogic Server、Oracle Internet Directoryまたはサード・パーティのLDAPディレクトリの埋込みLDAPにできます。

ユーザーと同様に、グループはSOAインフラストラクチャのアイデンティティ・ストアに定義されます。

- グループ
グループをタスクの処理に割り当てることができます。グループには、タスクの申告と処理を実行できる個々のユーザーが登録されます。たとえば、ユーザーjcooperおよびfkafkaは、タスクの処理に割り当てるLoanAgentGroupというグループのメンバーにできます。

- アプリケーション・ロール
タスクの要求と操作に、アプリケーション・ロールのメンバーであるユーザーを割り当てることができます。

ユーザー、グループまたはロールをヒューマン・タスク参加者に割り当てる手順は、11.3.8項「参加者へのユーザー、グループまたはロールの割当て方法」を参照してください。

11.1.3 期間の概要

期間は、別のアクションが実行されるまでヒューマン・タスクがアイドル状態でいる期間を定義します。期間は、ヒューマン・タスク全体または各ヒューマン・タスク参加者に対して定義できます。

ヒューマン・タスク全体に対して期間を定義する方法は、11.3.5項「ヒューマン・タスクに対する期限(期間)の定義方法」を参照してください。

11.2 ヒューマン・タスク・エディタの概要

Oracle Business Process Composerには、ヒューマン・タスクを作成および編集できるヒューマン・タスク・エディタがあります。ヒューマン・タスク・エディタは、図11-4に示すようなタブ付きペインで構成されています。

図11-4 ヒューマン・タスク・エディタ

「図11-4 ヒューマン・タスク・エディタ」の説明

ヒューマン・タスク・エディタには次のタブが含まれています。

- 基本: ヒューマン・タスクの基本プロパティを構成したり、ヒューマン・タスクの期限を定義したり、プレゼンテーションを構成できます。詳細は、11.3.4項「基本タスク・プロパティの構成方法」と11.3.11項「ヒューマン・タスクのプレゼンテーションの指定方法」を参照してください。

- ルーティング・スリップ: ヒューマン・タスクの参加者とルーティング・タイプを定義および構成できます。詳細は、11.3.6項「デフォルト参加者の変更方法」および11.3.8項「参加者へのユーザー、グループおよびロールの割当て方法」を参照してください。

- データ: ヒューマン・タスクによって使用されるデータ・ペイロードを定義します。詳細は、11.3.10項「ヒューマン・タスクに対するデータ・ペイロードの作成および構成方法」を参照してください。

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

次の項では、ヒューマン・タスクの作成、構成および編集の方法について説明します。

11.3.1 ウォークスルー: ヒューマン・タスクの作成と構成

次の手順では、ヒューマン・タスクの作成と構成に必要な一般的なステップを示します。

ヒューマン・タスクを作成して構成するには:

1. 新しいヒューマン・タスクを作成します。新規ヒューマン・タスクはプロジェクトのようこそページから直接作成できます。詳細は、11.3.2項「新しいヒューマン・タスクの作成方法」を参照してください。

2. ヒューマン・タスクを開きます。詳細は、11.3.3項「ヒューマン・タスクを開く方法」を参照してください。

3. ヒューマン・タスクの基本プロパティと期限を構成します。

4. ヒューマン・タスクのペイロード・データを定義します。

5. ヒューマン・タスクにフォームを割り当てます。

6. ヒューマン・タスクをユーザー・タスクに割り当てます。

11.3.2 新しいヒューマン・タスクの作成方法

Oracle Business Process Composerでは、プロジェクトのようこそページから直接、新しいヒューマン・タスクを作成できます。ヒューマン・タスクは、サービスとして定義され、BPMプロジェクトのビジネス・カタログに格納されます。

新しいヒューマン・タスクを作成する手順は、次のとおりです:

1. 新しいヒューマン・タスクを作成するプロジェクトを開きます。

2. プロジェクトが編集モードであることを確認します。

3. プロジェクトのようこそページから、「ヒューマン・タスク」タブを選択します。

4. 「新規ヒューマン・タスク」をクリックします。

5. 新規ヒューマン・タスクの名前を入力し、「作成」をクリックします。

ヒューマン・タスクのリストに新規ヒューマン・タスクが表示されます。

11.3.3 ヒューマン・タスクを開く方法

既存のヒューマン・タスクは、開いて表示または編集できます。

既存のヒューマン・タスクを開く手順は、次のとおりです。

1. 表示または編集するヒューマン・タスクがあるプロジェクトを開きます。

2. プロジェクトのようこそページから、「ヒューマン・タスク」を選択します。

3. 開くヒューマン・タスクの名前をクリックします。

ヒューマン・タスクがヒューマン・タスク・エディタで開きます。詳細は、11.2項「ヒューマン・タスク・エディタの概要」を参照してください。

11.3.4 基本タスク・プロパティの構成方法

ヒューマン・タスク・エディタの「基本」タブを使用して、ヒューマン・タスクの基本プロパティ(タスクのタイトル、優先度、結果など)を構成します。

基本タスク・プロパティを構成するには:

1. ヒューマン・タスクを開きます。

2. ヒューマン・タスク・エディタから、「基本」タブを選択します。

3. タスクの・タイトルの隣のドロップダウン・リストから、次のいずれかを選択します。

- プレーン・テキスト: テキスト・ボックスを使用してタスク・タイトルを定義します。このオプションを選択した後、テキスト・ボックスにタスク・タイトルを入力します。

- XPath: XPath機能に基づいてタスク・タイトルを定義します。

- 変換: タスク・タイトルの変換バージョンを定義します。

タスクのタイトルは、プロセス・ワークスペースに表示されるヒューマン・タスクのタイトルを定義します。

4. 「優先度」の隣のドロップダウン・リストから、ヒューマン・タスクの優先度を選択します。有効値は1(優先度最高)から5(優先度最低)です。この値はプロセス・ワークスペースに表示されます。

5. ヒューマン・タスクの結果を定義します。

1. 「結果」フィールドの隣の虫眼鏡アイコンをクリックします。

2. 構成する結果を選択します。最後に1つの結果を選択する必要があります。詳細は、11.1.1.3項「結果」を参照してください。

3. 「OK」をクリックします。

6. プロジェクトを保存して、変更を保存します。

11.3.5 ヒューマン・タスクの期限(期間)の構成方法

タスク・エディタを使用して、ヒューマン・タスクの期間を定義します。

ヒューマン・タスクの期限(期間)を構成するには:

1. ヒューマン・タスクを開きます。

2. ヒューマン・タスク・エディタから、「基本」タブを選択します。

3. 「期限」の下のドロップダウン・リストから、次のいずれかを選択します。

- 有効期限なし: ヒューマン・タスクに有効期限がないことを示します。

- 有効期限切れまでの時間: 指定の期間後、ヒューマン・タスクの有効期限が切れることを示します。オプションを選択したら、次を構成できます。

- 固定期間: ヒューマン・タスクの期間を定義します。このオプションを指定したら、特定の日数、時間数および分数を定義できます。

- 式別: 式を使用して、ヒューマン・タスクの期間を定義できます。

- ビジネス・カレンダのベース有効期限: ビジネス・カレンダに基づいてヒューマン・タスクの期間を定義できます。

- 期限更新までの時間: ヒューマン・タスクの有効期限を延長します。このオプションを選択したら、次を構成できます。

- 固定期間: ヒューマン・タスクの有効期限を延長する期間を定義します。このオプションを指定したら、特定の日数、時間数および分数を定義できます。

- 式別: 式を使用して、ヒューマン・タスクの有効期限を延長する期間を定義できます。

- 期限更新の最大回数: 期限更新できる回数を定義します。

- ビジネス・カレンダのベース有効期限: 選択すると、ビジネス・カレンダに基づいてヒューマン・タスクの期間が定義されます。

- エスカレートまでの時間: 有効期限が切れたら、タスクをマネージャにエスカレートします。このオプションを選択したら、次を構成できます。

- 固定期間: ヒューマン・タスクの期間を定義します。このオプションを指定したら、特定の日数、時間数および分数を定義できます。

- 式別: 式を使用して、ヒューマン・タスクの期間を定義できます。

- エスカレーション・レベルの最大数: 有効期限後にタスクをエスカレートできるレベル数を定義します。

- 承認の最高役職: エスカレーションが到達する管理チェーン内の最高役職を定義します。

- ビジネス・カレンダのベース有効期限: 選択すると、ビジネス・カレンダに基づいてヒューマン・タスクの期間が定義されます。

4. プロジェクトを保存して、変更を保存します。

11.3.6 デフォルト参加者の変更方法

新規ヒューマン・タスクを作成すると、デフォルトの単純参加者が含まれます。ヒューマン・タスク・エディタを使用して、デフォルト参加者のタイプを変更できます。

ヒューマン・タスクのデフォルト参加者を変更するには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」タブを選択します。

3. 図11-5に示されているように、参加者をクリックして、「削除」(X)アイコンをクリックし、参加者を削除します。

図11-5 参加者の追加/削除アイコン

「図11-5 参加者の追加/削除アイコン」の説明

4. ルーティング・スリップ・ボックスをクリックします。

5. 「追加」(+)アイコンをクリックし、参加者タイプを選択します。各参加者タイプについては、11.1.1項「参加者とルーティング・タイプの概要」を参照してください。

新しい参加者がルーティング・スリップ・ボックスに表示されます。ヒューマン・タスクへの参加者の追加については、次の手順を参照してください。

11.3.7 ヒューマン・タスクへの参加者とルーティングの追加方法

ヒューマン・タスク・エディタを使用して、ヒューマン・タスクに参加者またはルーティング・タイプを追加します。

参加者をヒューマン・タスクに追加する手順は、次のとおりです。

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」タブを選択します。

3. ルーティング・スリップ・ブロックをクリックします。

4. 「+」アイコンをクリックし、参加者タイプを選択します。各参加者タイプについては、11.1.1項「参加者とルーティング・タイプの概要」を参照してください。

新しい参加者がルーティング・スリップの一番右に追加されます。

11.3.8 参加者へのユーザー、グループおよびロールの割当て方法

ヒューマン・タスク内において、参加者は、抽象的に、ヒューマン・タスクとそのワークフローに参加する責任を持つユーザーを定義します。ヒューマン・タスクで定義されている参加者とルーティングが、実際の組織内の参加者にどのようにマップされるかは、参加者の選択を構成することにより定義できます。

参加者の選択方法は次のとおりです。

- 名前と式

- レーン参加者

- パラメータ・ロール

注意:

ヒューマン・タスクはパラメータ・ロールを使用するように構成できますが、Business Process Composerを使用してパラメータ・ロールを作成または構成することはできません。パラメータ・ロールは、プロセス・ワークスペースまたはOracle BPM Studioを使用して作成し、ヒューマン・タスクに割り当てる必要があります。

各方法については、次の手順で説明します。

名前と式を使用して参加者を選択するには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. 参加者をダブルクリックします。

4. 「参加者のリストの作成で使用」の隣のドロップダウン・リストから「名前および式」を選択します。

5. 「参加者名」の下の「追加」アイコンをクリックして、次のいずれかを選択します。

- ユーザーの追加:

- グループの追加:

- アプリケーション・ロールの追加:

これらのオプションの1つを選択したら、表内に表示されます。必要に応じて、表内のドロップダウン・リストを使用して、値を変更できます。

6. 「データ型」列で、ドロップダウン・リストから「名前別」または「式別」のいずれかを選択します。

7. 参加者に対して値を選択します。

1. 「値」列の「検索」アイコンをクリックします。

2. ドロップダウン・リストから、「ユーザー」、「グループ」または「アプリケーション・ロール」のいずれかを選択します。

3. 検索する名前を入力し、「検索」をクリックします。すべての名前、グループまたはロールのリストを表示するには、テキスト・フィールドを空白のままにして、「検索」をクリックします。

4. 追加するユーザー、グループまたはロールの隣のチェック・ボックスを選択します。

5. 「OK」をクリックします。

名前が「値」列に表示されます。

レーン参加者を使用して参加者を選択するには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. 参加者をダブルクリックします。

4. 「参加者のリストの作成で使用」の横のドロップダウン・リストから「レーン参加者」を選択します。

5. 次の中から選択します。

- 前のレーン参加者

- 現在のレーン参加者

パラメータ・ロールを使用して参加者を選択するには:

1. Oracle BPM Studioを使用してプロジェクトに対してパラメータ・ロールを作成していることを確認します。

2. 共有プロジェクトの場合は、編集モード中であることを確認します。

3. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

4. 参加者をダブルクリックします。

5. 「参加者のリストの作成で使用」の隣のドロップダウン・リストから「パラメータ・ロール」を選択します。

6. 「データ型」列で、ドロップダウン・リストから「名前別」または「式別」のいずれかを選択します。

7. 参加者に対して値を選択します。

1. 「値」列の「検索」アイコンをクリックします。

2. ドロップダウン・リストから、「ユーザー」、「グループ」または「アプリケーション・ロール」のいずれかを選択します。

3. 検索する名前を入力し、「検索」をクリックします。すべての名前、グループまたはロールのリストを表示するには、テキスト・フィールドを空白のままにして、「検索」をクリックします。

4. 追加するユーザー、グループまたはロールの隣のチェック・ボックスを選択します。

5. 「OK」をクリックします。

11.3.9 パラレル・ルーティングの結果の構成方法

パラレル・ブロックのルーティング結果を構成できます。

パラレル・ルーティングの結果を構成する手順は、次のとおりです。

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. 「一般」タブを選択します。

4. 「参加者」エディタで、パラレル・ブロックのいずれかの交点をダブルクリックします。
図11-6に示すような投票結果エディタが表示されます。

図11-6 投票結果エディタ

「図11-6 投票結果エディタ」の説明

5. 「追加」アイコンをクリックし、次のいずれかの結果を選択します。

- 承認

- 却下

6. 表に、結果の値を入力します。

7. デフォルトの結果に対応する値をドロップダウン・リストから選択します。

8. 「OK」をクリックします。

11.3.10 ヒューマン・タスクに対するデータ・ペイロードの作成および構成方法

ヒューマン・タスク・エディタを使用して、ヒューマン・タスク内で使用するデータ型を定義できます。このデータは、ユーザー相互作用で入力される情報を保存する際に使用されます。

ヒューマン・タスクのタスク・データを作成する手順は、次のとおりです。

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開きます。

3. 「データ」タブを選択します。

4. 「追加」ボタンをクリックします。

5. 次の中から選択します。

- 文字列

- 整数

- 整数(64)

- 小数

- 実数(32)

- 実数

- ブール

- 時間間隔

- TaskExecutionData

「タスク・データ」表に、タスク・データが表示されます。

6. 新しいタスク・データの名前を表に入力します。

11.3.11 ヒューマン・タスクのプレゼンテーションの指定方法

ヒューマン・タスクのプレゼンテーションは、アプリケーションのユーザー・インタフェースを定義します。プレゼンテーションは、ヒューマン・タスク用のユーザー・インタフェース、データ構造および接続情報を定義するフォームに関連付けられます。Oracle BPMは、WebフォームとADFタスク・フォームの2つのタイプのフォームをサポートしています。フォームの使用の詳細は、9.1項「Oracle BPMでのフォームの概要」を参照してください。

ADFタスク・フォームを使用してヒューマン・タスクのプレゼンテーションを指定するには:

1. ヒューマン・タスクを開きます。

2. 「Basic」タブを選択します。

3. 「プレゼンテーション」で、「ADFフォーム」を選択します。

4. ADFフォームに対して次の接続情報を入力します。

- ホスト名: プレゼンテーションのデプロイ先サーバーのホスト名を指定します。

- HTTPポート: プレゼンテーションのデプロイ先サーバーのポートを指定します。

- HTTPSポート: プレゼンテーションのデプロイ先サーバーのセキュアなポートを指定します。

- URI: プレゼンテーションのURIを指定します。

5. 「OK」をクリックします。

Webフォームを使用してヒューマン・タスクのプレゼンテーションを指定するには:

1. ヒューマン・タスクを開きます。

2. 「Basic」タブを選択します。

3. 「プレゼンテーション」で、「Webフォーム」を選択します。

4. 「参照」ボタンをクリックします。
Webフォーム・ブラウザが表示されます。

5. 選択するWebフォームの名前をクリックします。

11.4 ユーザー・タスクへのヒューマン・タスクの割当て

ヒューマン・タスクを作成すると、BPMプロジェクトのビジネス・カタログの一部になります。ヒューマン・タスクをBPMNプロセスに組み込むには、そのプロセス内のユーザー・タスクに割り当てる必要があります。

ヒューマン・タスクをユーザー・タスクに割り当てるには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ビジネス・プロセスを開きます。

3. プロセスにユーザー・タスクを追加します。

4. ユーザー・タスクを右クリックして、「実装」を選択します。

5. 「ヒューマン・タスク」テキスト・ボックスの隣の「参照」アイコンをクリックします。
ヒューマン・タスク・ブラウザが表示されます。

6. 選択するヒューマン・タスクの名前をクリックします。
名前をクリックしたら、ヒューマン・タスクがヒューマン・タスク・テキスト・ボックスに表示されます。

7. 実装エディタで「変更の適用」をクリックします。

第IV部

BPMプロジェクトの実装およびデプロイ

この部では、BPMプロジェクトの実装の詳細を変更する必要があるプロセス開発者向けに、Business Process Composerの拡張機能について説明します。

この部は、次の章で構成されています。

- 第12章「ビジネス・プロセスでのデータの処理」

- 第13章「Oracle Business Rulesの使用」

- 第14章「他のプロセスおよびサービスとの通信」

- 第15章「BPMプロジェクトのデプロイ」

12 ビジネス・プロセスでのデータの処理

この章では、Oracle BPMアプリケーション内で使用される様々なタイプのデータを処理する方法について説明します。データ・オブジェクトおよびビジネス・オブジェクトを使用して、BPMプロジェクト内で使用されるデータ構造を定義する方法を示します。式およびデータ・アソシエーションを使用してデータを操作する方法について説明します。また、この章では、プロセス分析で使用されるデータを定義する方法についても説明します。

この章の内容は次のとおりです。

- 12.1項「ビジネス・プロセスで使用されるデータの処理について」

- 12.2項「データ・オブジェクトの概要」

- 12.3項「データ・オブジェクトの使用」

- 12.4項「ビジネス・オブジェクトの概要」

- 12.5項「ビジネス・オブジェクトの使用」

- 12.6項「データ・アソシエーションの概要」

- 12.7項「式の概要」

- 12.8項「式の使用」

- 12.9項「ビジネス・インジケータおよびカウンタ・マークの使用」

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

12.1 ビジネス・プロセスで使用されるデータの処理について

ほとんどのビジネス・アプリケーションでは、ユーザーがデータを作成して操作する必要があります。営業見積サンプル・プロジェクトでは、顧客、見積、その他のタイプのデータに関する情報を含め、見積に関連するデータをアプリケーション・ユーザーが入力します。また、アプリケーションでは、アプリケーションの全体的な機能の一部として内部でのみ使用されるその他のデータを作成および操作することが必要な場合があります。

ビジネス・プロセスの作成時に、アプリケーションが使用するデータを定義する必要があります。Oracle BPMでは、データはデータ・オブジェクトを使用して格納されます。データ・オブジェクトは、ほとんどのプログラミング言語に見られる型に類似した単純型に基づいて定義できます。

また、データ・オブジェクトは、ビジネス・オブジェクトに基づいて定義することもできます。ビジネス・オブジェクトを使用すると、関連データをグループ化できます。たとえば、従業員に関する情報の格納に必要なアプリケーションを作成している場合、名前、住所、給与および従業員に関するその他の情報を格納したビジネス・オブジェクトを作成する必要があります。ビジネス・オブジェクトは、Javaなどのオブジェクト指向プログラミング言語で使用されるクラスの概念に似ています。

12.1.1 Oracle BPMアプリケーションで使用されるデータを定義する方法

データの格納および操作方法を定義することは、Oracle BPMアプリケーションの全体的な設計および開発の一部です。次のタスクの概要では、Oracle BPMアプリケーション内で使用されるデータを定義するための一般的なプロセスを示します。

Oracle BPMアプリケーションで使用されるデータを定義する手順

1. プロジェクトに必要なビジネス・オブジェクトを定義します。
Oracle BPMアプリケーション内で使用されるデータの定義における最初のステップは、必要なビジネス・オブジェクトを定義することです。ビジネス・オブジェクトを使用すると、アプリケーション内で使用されるデータ構造を定義できます。詳細は、12.4項「ビジネス・オブジェクトの概要」を参照してください。

2. プロジェクト内で使用されるデータ・オブジェクトを作成します。

3. プロセスでのデータの操作に使用される式を定義します。

4. データ・アソシエーションを使用してBPMNフロー・オブジェクト間で情報を渡す方法を定義します。

5. プロセスの入力および出力を定義します。

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

データ・オブジェクトは、一般にビジネス・プロセスおよびOracle BPMアプリケーションで使用される情報の格納に使用される変数です。プロセスの設計および実装ステージ中に定義されます。BPMプロジェクトのデプロイ前に、実行中のアプリケーションで必要なデータ・オブジェクトをすべて定義する必要があります。

実行時に、新規データ・オブジェクトは作成されませんが、ユーザーがアプリケーションと相互作用するため、データ・オブジェクトに格納された情報の値は変更されます。実行中のプロセスでは、データを格納、アクセスおよび操作できます。また、データの値によってプロセスの分岐が決まります。

12.2.1 基本データ・オブジェクトと複合データ・オブジェクトの概要

Oracle BPMは、基本と複合の2つのタイプのデータ・オブジェクトをサポートします。使用するデータ・オブジェクトのタイプは、処理する必要があるデータのタイプによって決まります。

- 基本データ・オブジェクト
基本データ・オブジェクトは単純データ型に基づいています。これらは、ほとんどのプログラミング言語に共通のコアなデータ型です。表に、Oracle BPMでサポートされている基本データ型を示します。

表12-1 単純データ・オブジェクト

タイプ

説明

ブール

論理値trueまたはfalseを表します。

整数

整数を表します。例: 23、-10、0

小数

10進表記で表される数値を表します。例: 3.14、62、0.023。

実数

浮動小数点の数値を表します。例: 2e-1、2.3E8。

文字列

文字列を表します。例: "This is a string."

時間

年-月-日 時:分:秒として表される特定の時間を表します。例: 1995-02-03 13:30:28-08:00

間隔

年数、月数、日数、時間数、分数、秒数として表される期間を表します。例: 1d3h30m。

バイナリ

イメージや動画を含む、バイナリ・データの格納に使用されます。

- 複合データ・オブジェクト
複合データ・オブジェクトを使用すると、様々なタイプのデータをグループ化するデータ構造を作成できます。複合データ・オブジェクトは、ビジネス・オブジェクトに基づいています。ビジネス・オブジェクトでは、基本データ・オブジェクトに基づいてデータ構造を作成できます。

たとえば、ID、名前、年齢といった従業員の様々なタイプのデータを含む、従業員という複合データ・オブジェクトを作成できます。ビジネス・オブジェクトと複合データ・オブジェクトの間の関係は、Javaプログラミング言語におけるクラスとインスタンスの間の関係に似ています。

図12-1は、基本データ・オブジェクトと複合データ・オブジェクトの関係を示しています。

図12-1 基本データ・オブジェクトと複合データ・オブジェクトの関係

「図12-1 基本データ・オブジェクトと複合データ・オブジェクトの関係」の説明

複合データ・オブジェクトを作成する前に、まず、データ構造を定義するビジネス・オブジェクトを定義する必要があります。詳細は、12.4項「ビジネス・オブジェクトの概要」を参照してください。

12.2.2 プロセスおよびプロジェクト・データ・オブジェクトの概要

タイプおよび複雑さに基づいてデータ・オブジェクトを定義することに加えて、スコープに基づいてデータ・オブジェクトを定義することもできます。Oracle BPMにおいて、データ・オブジェクトのスコープとは、データ・オブジェクトにアクセスできるプロセスまたはプロジェクト内の場所を指します。

Oracle BPMでは、プロセスとプロジェクトの2つのタイプのデータ・オブジェクト・スコープがあります。プロセス・データ・オブジェクトは、特定のプロセス用に定義されたデータ・オブジェクトです。同様に、プロジェクト・データ・オブジェクトはBPMプロジェクト全体用に定義されます。プロジェクト・データ・オブジェクトとプロセス・データ・オブジェクトはいずれも、基本タイプと複合タイプの両方から作成できます。

12.2.2.1 プロセス・データ・オブジェクト

プロセス・データ・オブジェクトを使用すると、単一のプロセス内でのみ使用されるデータ・オブジェクトを定義できます。プロセス・データ・オブジェクトは、定義されているプロセス内でのみ使用できます。

プロセスベースのアプリケーションを設計している場合、データ・オブジェクトが単一のプロセス内でのみ必要であることが判明しているときは、システム・リソースを節約するためプロセス・データ・オブジェクトとして定義することをお薦めします。

12.2.2.2 プロジェクト・データ・オブジェクト

プロジェクト・データ・オブジェクトでは、プロセス間でデータを共有できます。たとえば、Oracle BPMアプリケーション内では、発注書プロセスと承認リクエスト・プロセスはいずれも、リクエストを作成した従業員のデータを追跡します。1つのプロセスで作成または変更されたデータに他のユーザーがアクセスできます。

プロジェクト・データ・オブジェクトを使用すると、アプリケーション内のすべてのプロセスが同じデータにアクセスできるようになります。ただし、各プロセスでは、そのデータの値を割り当てて、更新する必要があります。

注意:

プロジェクト・データ・オブジェクトではプロジェクト内のすべてのプロセスで使用されるデータ・オブジェクトを定義できますが、このデータ・オブジェクトはグローバルなデータ・オブジェクトではありません。プロジェクト内の各プロセスは、独自のバージョンのデータ・オブジェクトを使用します。プロセス間でデータを共有するためにプロジェクト・データ・オブジェクトが使用されることはありません。

プロジェクト・データ・オブジェクトを定義することのもう1つの利点は、プロジェクトの公開後に変数の値が表示されるようにOracle Business Process Management Workspaceビューを構成できることです。これは、プロジェクト・データ・オブジェクトを使用する場合にのみ可能です。

12.3 データ・オブジェクトの使用

この項では、新規データ・オブジェクトを作成する方法や既存のデータ・オブジェクトを編集または削除する方法など、データ・オブジェクトを使用する手順について説明します。

12.3.1 データ・オブジェクトの作成方法

この項の手順では、新規のプロセス・データ・オブジェクトまたはプロジェクト・データ・オブジェクトを作成する方法について説明します。ビジネス・オブジェクトに基づいてデータ・オブジェクトを作成する必要がある場合は、先にビジネス・オブジェクトを作成する必要があります。詳細は、12.5項「ビジネス・オブジェクトの使用」を参照してください。

プロジェクトのようこそページからデータ・オブジェクトを作成するには:

1. プロジェクトの編集中であることを確認します。

2. プロジェクトのようこそページに移動します。

3. プロセス・データ・オブジェクトを作成する場合は、プロジェクトにプロセスを作成したことを確認します。

4. 図12-2に示すように、「データ・オブジェクト」パネルで、プロジェクトまたはプロセスの名前を右クリックして「追加」を選択します。

図12-2 新規データ・オブジェクトの追加

「図12-2 新規データ・オブジェクトの追加」の説明

5. データ・オブジェクトの一意の名前を入力します。

- 基本データ・オブジェクトを作成する場合は、ドロップダウン・リストから基本タイプのいずれかを選択します。

- 複合データ・オブジェクトを作成する場合は、ドロップダウン・リストから<component>を選択します(複合データ・オブジェクトのベースとなるビジネス・オブジェクトの選択)。

Oracle BPMによってサポートされているデータ・オブジェクト・タイプについては、12.2.1項「基本データ・オブジェクトと複合データ・オブジェクトの概要」を参照してください。

6. 「OK」をクリックします。

プロセス・エディタからデータ・オブジェクトを作成するには:

1. プロジェクトの編集中であることを確認します。

2. データ・オブジェクトを作成するビジネス・プロセスを開きます。

3. プロセス・エディタ・ツールバーのデータ・オブジェクト・アイコンをクリックします(図12-3参照)。

図12-3 プロセス・エディタ・ツールバーの「データ・オブジェクト」アイコンの表示

「図12-3 プロセス・エディタ・ツールバーの「データ・オブジェクト」アイコンの表示」の説明

4. 図12-4に示すように、「追加」をクリックして、「プロジェクト・データ・オブジェクト」または「プロセス・データ・オブジェクト」を選択します。

図12-4 データ・オブジェクト・エディタ

「図12-4 データ・オブジェクト・エディタ」の説明

5. データ・オブジェクトの一意の名前を入力します。

- 基本データ・オブジェクトを作成する場合は、ドロップダウン・リストから基本タイプのいずれかを選択します。

- 複合データ・オブジェクトを作成する場合は、ドロップダウン・リストから<component>を選択します(複合データ・オブジェクトのベースとなるビジネス・オブジェクトの選択)。

Oracle BPMによってサポートされているデータ・オブジェクト・タイプについては、12.2.1項「基本データ・オブジェクトと複合データ・オブジェクトの概要」を参照してください。

6. 「OK」をクリックします。

12.3.2 データ・オブジェクトを編集または削除する方法

プロセス・データ・オブジェクトまたはプロジェクト・データ・オブジェクトを編集または削除できます。

プロジェクト・ホーム・ページからデータ・オブジェクトを編集するには:

1. プロジェクトを開きます。

2. プロジェクトのようこそページの「データ・オブジェクト」ペインで、編集するデータ・オブジェクトを含むプロジェクトまたはプロセスの名前を選択します。

3. データ・オブジェクトの名前を右クリックして「編集」をクリックします。

4. 必要に応じて、データ・オブジェクトの名前またはタイプを変更します。

5. 「OK」をクリックします。

プロセス・エディタからデータ・オブジェクトを編集または削除するには:

1. プロジェクトの編集中であることを確認します。

2. データ・オブジェクトを削除するプロセスを開きます。プロジェクト・データ・オブジェクトを削除する場合は、プロジェクト内の任意のプロセスを開くことができます。

3. プロセス・エディタ・ツールバーのデータ・オブジェクト・アイコンをクリックします(図12-3参照)。

4. データ・オブジェクトのリストで、削除または編集するプロジェクト・データ・オブジェクトまたはプロセス・データ・オブジェクトを選択し、次のようにします。

- データ・オブジェクトを編集するには、「編集」をクリックし、必要に応じて新しい名前を指定したり、データ型を変更します。

- データ・オブジェクトを削除するには、「削除」をクリックします。

5. 「OK」をクリックします。

12.3.3 データ・オブジェクト削除または編集時の処理

データ・オブジェクトの編集または削除後にプロジェクトを検証し、変更または削除されたデータ・オブジェクトへの参照がないことを確認します。

データ・オブジェクトの編集後、そのオブジェクトへのすべての参照が引き続き有効であることを確認する必要があります。たとえば、int型からstring型にデータ・オブジェクトを変更した場合は、そのデータ・オブジェクトを使用するすべての式が引き続き正しく機能することを確認する必要があります。

データ・オブジェクトの削除後、そのオブジェクトへのすべての参照を必ず削除してください。参照には、そのデータ・オブジェクトを使用しているすべてのデータ・アソシエーションおよび式が含まれます。削除されたデータ・オブジェクトへの参照を削除しない場合は、プロジェクトが検証されません。

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

ビジネス・オブジェクトを使用して、Oracle BPMアプリケーションで必要なデータ構造を作成できます。ビジネス・オブジェクトを使用すると、関連するタイプのデータをグループ化できます。これにより、他のユーザーに対してプロセスが管理および読取りやすくなります。

Business Process Composerを使用して、手動で、またはXMLスキーマに基づいてビジネス・オブジェクトを作成します。

ビジネス・オブジェクトの構造は、3つのコンポーネントで構成されます:

- モジュール
モジュールは、ビジネス・オブジェクトでの階層構造の作成を可能にするコンテナです。各ビジネス・オブジェクトには、最上位レベルのモジュールを1つ含める必要があります。モジュール内では、ビジネス・オブジェクトまたは他のモジュールを作成できます。

- ビジネス・オブジェクト
モジュール内では、1つ以上のビジネス・オブジェクトを定義できます。他のビジネス・オブジェクトまたはモジュールを含めることができます。

- 属性
属性は、ビジネス・オブジェクトの最下位レベルのコンポーネントです。属性は、ビジネス・オブジェクトのデータ型を定義します。

ビジネス・オブジェクトおよび属性には、ドキュメントを追加することもできます。ドキュメントを追加すると、BPMプロジェクトでコラボレーションしている他のユーザーに対してデータ構造がわかりやすくなります。

営業見積サンプル・プロセスでは、必要なデータを処理するために、2つの異なるビジネス・オブジェクトを定義しています。図12-5は、これらがビジネス・オブジェクト・エディタに表示されている状態を示しています。

図12-5 営業見積サンプル・プロジェクトに定義されたビジネス・オブジェクト

「図12-5 営業見積サンプル・プロジェクトに定義されたビジネス・オブジェクト」の説明

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

Business Process Composerを使用すると、ビジネス・オブジェクトとそのモジュールおよび属性を作成、編集および削除できます。

12.5.1 ビジネス・オブジェクトを手動で作成する方法

ビジネス・オブジェクト・エディタからビジネス・オブジェクトを手動で作成できます。ビジネス・オブジェクトを手動で作成する際には、モジュールとオブジェクトとの階層関係、およびビジネス・オブジェクトで使用される属性を定義できます。ビジネス・オブジェクトには次が含まれます。

- 単純なデータ型

- データ型の配列

- 他のビジネス・オブジェクトをコンポーネントとして使用する複合データ型

注意:

モジュール、ビジネス・オブジェクトまたは属性を作成した後に、その名前を変更することはできません。

新しいビジネス・オブジェクトを手動で作成するには:

1. プロジェクトのようこそページから「ビジネス・オブジェクト」タブをクリックします(図12-6を参照)。

図12-6 「ビジネス・オブジェクト」タブ

「図12-6 「ビジネス・オブジェクト」タブ」の説明

2. 「新規BO」をクリックし、名前を入力します。

3. ドロップダウン・リストから親モジュールを選択します。
新規ビジネス・オブジェクトの作成時に、親モジュールを選択する必要があります。現在モジュールが存在しない場合、新しく作成する必要があります。新規のモジュールを作成するには、次のようにします。

1. 「+」アイコンをクリックします。

2. 新しいモジュールの名前を入力して、OKをクリックします。

4. 「作成」をクリックします。
新規ビジネス・オブジェクトが「ビジネス・オブジェクト」タブに表示されます。

5. 「ビジネス・オブジェクト」タブで、作成したばかりのビジネス・オブジェクトをクリックします。
ビジネス・オブジェクト・エディタが開きます。

6. 必要に応じて、ビジネス・オブジェクト内に新しいモジュールを作成します。

1. ビジネス・オブジェクトを右クリックし、「新規モジュール」を選択します。

2. 新規モジュールの名前を入力して、「OK」をクリックします。
新規モジュールを作成した後に、必要に応じてサブモジュールを追加作成できます。

7. 必要に応じて、新規ビジネス・オブジェクトを作成します。

1. モジュールを右クリックし、「新規ビジネス・オブジェクトの追加」を選択します。

2. 名前を入力して「OK」をクリックします。
新規ビジネス・オブジェクトが、ビジネス・オブジェクトのリスト内に表示されます。必要に応じてビジネス・オブジェクト内にビジネス・オブジェクトまたはサブモジュールを追加作成できます。

8. 新しい属性を追加します。

1. ビジネス・オブジェクトを選択し、メニューから「新規属性の追加」を選択します。

2. 属性の名前を入力し、ドロップダウン・メニューからタイプを選択します。

9. 「OK」をクリックします。

12.5.2 XMLスキーマ定義(XSD)に基づいてビジネス・オブジェクトを作成する方法

XMLスキーマ定義に基づいてビジネス・オブジェクトを作成できます。ビジネス・オブジェクトのように、XSDは、データ構造の階層定義を提供します。

XSDに基づいてビジネス・オブジェクトを作成するには:

1. プロジェクトのようこそページで、「ビジネス・オブジェクト」タブをクリックして、「新規BO.」をクリックします。

2. 新規ビジネス・オブジェクトの名前を入力します。

3. 「拡張」を開いて、「XSDから」をクリックします。

4. 図12-7に示されているように、ドロップダウン・リストからXSDを選択します。

図12-7 XSDからの新規ビジネス・オブジェクトの作成

「図12-7 XSDからの新規ビジネス・オブジェクトの作成」の説明

5. 「作成」をクリックします。

新規ビジネス・オブジェクトが「ビジネス・オブジェクト」タブに表示されます。必要に応じて、新規ビジネス・オブジェクトを編集できます。詳細は、12.5.4項「ビジネス・オブジェクトを編集または削除する方法」を参照してください。

12.5.3 ビジネス・オブジェクト作成時の処理

ビジネス・オブジェクトを定義すると、ビジネス・オブジェクト・エディタのビジネス・オブジェクトのリストに表示されます。ビジネス・オブジェクトを使用して、それに基づいた新規複合データ・オブジェクトを作成できます。また、ビジネス・オブジェクトを使用して、他のビジネス・オブジェクトを定義することもできます。

12.5.4 ビジネス・オブジェクトを編集または削除する方法

ビジネス・オブジェクトを作成した後に、属性のタイプを変更したり、ドキュメントを追加できます。ビジネス・オブジェクトやそのモジュールまたは属性を削除することもできます。

ビジネス・オブジェクトの属性タイプを変更する、またはドキュメントを追加するには:

1. プロジェクトのようこそページから「ビジネス・オブジェクト・エディタ」をクリックします(図12-6を参照)。

2. 編集する属性を選択するか、またはビジネス・オブジェクト・ツリーでドキュメントを追加します。
属性を選択すると、図12-8に示すように、属性エディタ・ペインが右側のペインに表示されます。

図12-8 ビジネス・オブジェクト・エディタの属性エディタ・ペイン

「図12-8 ビジネス・オブジェクト・エディタの属性エディタ・ペイン」の説明

3. 属性のデータ型を変更するには:

1. 「タイプの変更」をクリックして、ドロップダウン・リストから新しいデータ型を選択します。

2. 「OK」をクリックします。

4. ドキュメントを追加するには:

1. 「編集」をクリックします。アプリケーションの下部に、ドキュメント・エディタが開きます。

2. ドキュメント・エディタで、必要なドキュメントを追加します。
詳細は、5.7.1項「ドキュメント・エディタ」を参照してください。

3. 「変更の適用」をクリックします。

ビジネス・オブジェクト、モジュールまたは属性を削除するには:

1. プロジェクトのようこそページから「ビジネス・オブジェクト」タブをクリックします(図12-6を参照)。

2. 削除するビジネス・オブジェクトの右にマウスを置きます。

3. 「削除」アイコンをクリックし、「OK」をクリックします。

注意:

削除したビジネス・オブジェクト、モジュールまたは属性は復元できません。他のコンポーネントを含むモジュールまたはビジネス・オブジェクトを削除すると、コンポーネントも削除されます。ただし、削除したビジネス・オブジェクトまたはモジュールに、ビジネス・オブジェクトに基づく属性が含まれている場合、そのビジネス・オブジェクトは削除されません。

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

データ・アソシエーションは、次のコンテキストで、データ・オブジェクトに格納された情報を処理する方法を決定します。

- BPMNプロセスから起動された別のプロセスまたはサービス

- ヒューマン・タスク・サービス

- Oracle Business Rule

- スクリプト・タスク。このBPMNフロー・オブジェクトは、データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

表12-2は、データ・アソシエーションを定義できるフロー・オブジェクトをリストしています。また、実装されるオブジェクトもリストしています。

表12-2 データ・アソシエーションを受け入れるフロー・オブジェクト

フロー・オブジェクト

実装

メッセージ開始および終了イベント

サービスおよびその他のBPMNプロセス

メッセージ・スロー・イベントおよびキャッチ・イベント

サービスおよびその他のBPMNプロセス

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

サービスおよびその他のBPMNプロセス

スクリプト・タスク

実装は含みません。データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

ユーザー・タスク

Oracle Human Tasks

ビジネス・ルール・タスク

Oracle Business Rules

サービス・タスク

サービスおよびBPMNプロセス

データ・アソシエーションは、フロー・オブジェクトから外部のサービスまたはプロセスへの入力引数および出力引数を定義するために使用します。図12-9に、フロー・オブジェクトと、それに対応する実装、および外部のプロセスまたはサービスの間にある関係を示します。

青い矢印は、外部のプロセスまたはサービスとの間で入力と出力を行う引数を表します。これらの引数はデータ・アソシエーションを使用して定義されます。

図12-9 フロー・オブジェクトと実装と外部のサービスまたはプロセスの関係

「図12-9 フロー・オブジェクトと実装と外部のサービスまたはプロセスの関係」の説明

入力および出力はフロー・オブジェクトのデータ・アソシエーションで定義されますが、コールされているシステムまたはサービスに渡される値を定義していることに注意してください。これらのシステムおよびサービスは、図12-11に示すように、ビジネス・プロセスの外に存在します。

図12-10 プロセス間のデータ・アソシエーション

「図12-10 プロセス間のデータ・アソシエーション」の説明

式を使用して、入力値および出力値を評価および変更できます

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

データ・アソシエーション・エディタを使用すると、フロー・オブジェクトとその実装の間で受渡しされる入力値と出力値を構成できます。

図12-11 データ・アソシエーション・エディタ

「図12-11 データ・アソシエーション・エディタ」の説明

表12-3では、データ・アソシエーション・エディタの各領域について説明します。

表12-3 データ・アソシエーション・エディタのユーザー・インタフェース

UI領域

説明

入力

フロー・オブジェクト内に実装されるサービスまたはプロセスへの入力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。各テキスト・ボックスの横には、式エディタを起動するアイコンがあります

フロー・オブジェクト・インタフェース

実装されるサービスまたはプロセスに必要な入力引数がリストされます。また、入力および出力として提供されたデータ・オブジェクトの展開可能なリストも表示されます。フロー・オブジェクトの領域では、複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。

出力

フロー・オブジェクト内に実装されるサービスまたはプロセスからの出力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。

データ・オブジェクト

すべてのデータ・オブジェクトのリストが表示されます。このリストは、プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトの間が分割されます。

12.6.2 フロー・オブジェクトのデータ・アソシエーションの構成方法

フロー・オブジェクトのデータ・アソシエーションを構成できます。

フロー・オブジェクトのデータ・アソシエーションを構成するには:

1. データ・アソシエーションを構成するプロセスを開きます。

2. データ・アソシエーションを有効化するフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。
データ・アソシエーションを有効化するシーケンス・フローのリストについては、表12-2を参照してください。

3. 右側のデータ・オブジェクト列から、入力引数としてマップするデータ・オブジェクトを選択します。

4. データ・オブジェクトをクリックし、入力テキスト・フィールドにドラッグします。

12.7 式の概要

式を使用すると、データ・オブジェクトで計算を実行できます。Business Process Composerを使用して、次のコンテキストにおいて式を定義および編集できます:

- 条件シーケンス・フロー

- 複合ゲートウェイ

- タイマー・イベント

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

- 通知タスク

式では直接データ・オブジェクトに値を再割当てすることはできません。ただし、式を使用して、シーケンス・フローの実装との間で受渡しされる値を変更することはできます。詳細は、12.6項「データ・アソシエーションの概要」を参照してください。

12.7.1 式エディタの概要

式エディタを使用すると、リストからデータ・オブジェクトおよび演算子を選択して式に挿入し、簡単に式を作成できます。必要に応じて、手動で式を入力することもできます。

図12-12は、式エディタのユーザー・インタフェースを示しています。

図12-12 Oracle Business Process Composerの式エディタ

「図12-12 Oracle Business Process Composerの式エディタ」の説明

表12-4 式エディタのユーザー・インタフェース

領域

説明

「式」フィールド

式のテキストを指定します。このフィールドでは、直接入力するか、「式に挿入」ツールを使用できます。

式に挿入

選択したデータ・オブジェクトまたは演算子を式に挿入します。

「データ・オブジェクト」および「演算子」の選択

式に挿入するデータ・オブジェクトまたは演算子を選択できるタブ付きペインが表示されます。

「説明」タブ

選択した演算子の説明を入力します。

エラー

現在の式に含まれるエラーを表示します。

12.7.2 式のタイプ

Oracle Business Process Composerでは、次のタイプの式がサポートされています:

- シンプル

- プレーン・テキスト

- XMLリテラル

12.7.3 単純式

単純式は、Oracle BPMでサポートされている標準式言語を使用して定義されます。

12.7.3.1 演算子タイプ

単純式では、次の演算子タイプがサポートされています:

- 算術演算子

- 単項演算子

- 等号演算子と関係演算子

- 条件演算子

これらの演算子を使用して式および条件を作成し、プロセス・フローを定義できます。一般に、これらの式は、プロセス内のデータ・オブジェクトに基づいて計算を実行します。式と条件はデータ・オブジェクトの値を使用して作成できますが、値は変更できません。

次の式の例では、演算子が使用されています。

- totalAmount - discount

- activationCount > 3

- unitsSold <= 1200

表12-5、表12-6、表12-7および表12-8では、シンプルな式ビルダーでサポートされている演算子を説明します。

表12-5 算術演算子

演算子

名前

説明

+

加算

数値データ型を加算します。

文字列同士を連結します。

-

減算

数値データ型を減算します。

*

乗算

数値データ型を乗算します。

/

除算

数値データ型を除算します。

rem

剰余

除数が被除数で除算しきれない場合の剰余を計算します。

( )

優先順位

演算式の評価の順序を指定します。

表12-6 単項演算子

演算子

名前

説明

+

プラス

数値オペランドの値には影響しません。ある値が正であることを明示的に示す場合に使用します。

-

マイナス

算術式の符号をマイナスにします

*

NOT

論理補数演算子。ブール式の値を否定します。

表12-7 等号演算子と関係演算子

演算子

名前

説明

=または==

等しい

最初のオペランドが2番目のオペランドと等しい場合にTrueを戻します。

!=

等しくない

最初のオペランドが2番目のオペランドと等しくない場合にTrueを戻します。

>

より大きい

最初のオペランドが2番目のオペランドより大きい場合にTrueを戻します。

>=

次以上

最初のオペランドが2番目のオペランド以上の場合にTrueを戻します。

<

より小さい

最初のオペランドが2番目のオペランドより小さい場合にtrueを戻します。

<=

次以下

最初のオペランドが2番目のオペランド以下の場合にTrueを戻します。

表12-8 条件演算子

演算子

名前

説明

and

条件付きAND

両方のオペランドがtrueと評価された場合にtrueを戻します。

or

条件付きOR

いずれかのオペランドがTrueと評価された場合にTrueを戻します。

12.7.3.2 演算子の優先順位

演算子の優先順位とは、コンパイラが演算子を評価する順序のことです。式内の演算子の優先順位は、カッコを使用して変更できます。

Oracle BPMにおける演算子の優先順位は、次のとおりです。

- 加算、減算

- 乗算、除算、剰余

- プラスおよびマイナス

- 次より小さい、次より大きい、次以下、次以上

- 等しい、等しくない

- NOT

- 条件付きAND

- 条件付きOR

12.8 式の使用

次の各項では、Business Process Composerを使用して式を定義する方法について説明します。

12.8.1 条件シーケンス・フローの単純式の定義方法

Business Process Composerを使用して、条件シーケンス・フローの式を作成および編集できます。条件シーケンスでは、式を使用してプロセスのフローを決定します。

条件シーケンス・フローの式を定義するには:

1. プロセスを開きます。

2. プロジェクトが編集モードであることを確認します。

3. 編集する条件シーケンスの「編集」アイコンをクリックします。

4. 「実装」をクリックします。

5. 「編集」をクリックします。
式エディタ・ウィンドウが表示されます。

6. 必要なデータ・オブジェクトおよび演算子を追加します。
データ・オブジェクトを式に追加するには:

1. 「データ・オブジェクト」タブを選択します。

2. リストからデータ・オブジェクトを選択します。
複合データ・オブジェクトの一部である基本データ・オブジェクトを追加する場合は、複合データ・オブジェクトを展開し、追加する基本データ・オブジェクトを選択します。

3. 「式に挿入」をクリックします。

演算子を式に追加するには:

1. 「演算子」タブを選択します。

2. 展開可能なリストから、追加する演算子を選択します。

3. 「式に挿入」をクリックします。

7. 「エラー」タブをクリックし、式にエラーがないことを確認します。

8. 「OK」をクリックします。

9. 「実装」タブで「変更の適用」をクリックします。

12.8.2 データ・アソシエーションの単純式の定義方法

Business Process Composerを使用して、データ・アソシエーションの式を作成および編集できます。データ・アソシエーションでは、式を使用して、データ・オブジェクトが入力および出力として受け渡す値を変更できます。

データ・アソシエーションの入力または出力に式を定義するには:

1. プロセスを開きます。

2. プロジェクトが編集モードであることを確認します。

3. プロセス内のフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。

4. 「式ビルダーの起動」をクリックします。

5. 必要なデータ・オブジェクトおよび演算子を追加します。
データ・オブジェクトを式に追加するには:

1. 「データ・オブジェクト」タブを選択します。

2. リストからデータ・オブジェクトを選択します。
複合データ・オブジェクトの一部である基本データ・オブジェクトを追加する場合は、複合データ・オブジェクトを展開し、追加する基本データ・オブジェクトを選択します。

3. 「式に挿入」をクリックします。

演算子を式に追加するには:

1. 「演算子」タブを選択します。

2. 展開可能なリストから、追加する演算子を選択します。

3. 「式に挿入」をクリックします。

6. 「エラー」タブをクリックし、式にエラーがないことを確認します。

7. 「OK」をクリックします。

12.9 ビジネス・インジケータおよびカウンタ・マークの使用

この項では、Business Process Composerを使用してビジネス・インジケータおよびカウンタ・マークを作成する方法について説明します。

12.9.1 ビジネス・インジケータおよびカウンタの概要

ビジネス・インジケータは、プロセスの主要パフォーマンス・インジケータの値を格納するのに使用するプロジェクト・データ・オブジェクトです。Oracle BPMでは異なるタイプのデータ・オブジェクトを使用してビジネス・インジケータを作成できますが、Business Process Composer内では、カウンタ・マークとして使用するビジネス・インジケータのみ作成できます。

カウンタは、インスタンスが特定のアクティビティを完了した回数を追跡します。カウンタはカウンタ・マークとともに使用する必要があります。カウンタ変数の値は常に1で、実際の値は格納されません。インスタンスがアクティビティを完了した回数を示す値は、プロセス分析データベースで直接更新されます。カウンタ・ビジネス・インジケータの値を監視するには、そのカウンタ・ビジネス・インジケータを追跡するように構成されたカウンタ・マークに基づいて、ダッシュボードを作成する必要があります。

12.9.2 カウンタ・マークの概要

カウンタ・マークを使用して、プロセスに対して定義したカウンタ・ビジネス・インジケータの値を更新できます。1つのカウンタ・マークで複数のカウンタ・マーク・ビジネス・インジケータを更新できます。カウンタ・マークが定義されているアクティビティにトークンが到達すると、BPMサービス・エンジンによって、プロセス分析データベース内の関連するカウンタの値が更新されます。BPMサービス・エンジンがカウンタ・ビジネス・インジケータを更新するたびに、1単位が現在の値に追加されます。

注意:

カウンタ変数の実際の値はプロセス分析データベースに格納されます。カウンタ変数のデフォルト値は変更されないため、プロセスでカウンタ変数を使用して計算を実行しないでください。カウンタ変数の値は常に1です。

カウンタ・マークは次の目的で使用できます。

- 監査: インスタンスが完了したアクティビティの数とその他のパフォーマンス測定を組み合せた情報は、プロセスを監査するために重要です。

- パフォーマンスの問題の識別: カウンタを使用して、プロセス内のパフォーマンスの問題を識別できます。インスタンスが予期したパスと異なるパスを経由しているか、アクティビティ内のループの実行時間が適正な時間を超えているため、プロセスの実行時間が予期した時間より長くなる場合があります。このような状況は、実際に完了したアクティビティの数と予期した数を比較して識別できます。

- インスタンスが経由するプロセス・パスの識別: 異なるカウンタ・ビジネス・インジケータを使用して、対応するパスをマークできます。インスタンスがプロセスの最後に到達したとき、インスタンスが経由したパスは、完了したアクティビティの最大数を示します。

通常は、監視対象のプロセス・パスごとに1つのカウンタ・ビジネス・インジケータを定義します。次に、そのプロセス・パスに含まれるすべてのアクティビティにカウンタ・マークを追加します。最後に、アクティビティが含まれるパスに対応するカウンタ・ビジネス・インジケータを、カウンタ・マークに関連付けます。

12.9.3 新しいカウンタ・マークをプロセスに追加する方法

新しいカウンタ・マークをプロセス内のアクティビティやタスクに追加できます。

新しいカウンタ・マークをプロセスに追加する手順は、次のとおりです。

1. カウンタ・マークを追加するタスクまたはアクティビティを右クリックします。

2. 「実装」を選択します。

3. 必要に応じて、新しいビジネス・インジケータを作成します。

1. 「追加」ボタンをクリックします。

2. ビジネス・インジケータの名前を指定します。

3. 「OK」をクリックします。

4. ビジネス・インジケータのリストで、このフロー・オブジェクトで使用するインジケータの隣にあるチェック・ボックスを選択します。

5. 「変更の適用」をクリックします。

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

プロセスに対して定義したカウンタ・マークは削除できます。

カウンタ・マークを削除するには:

1. カウンタ・マークを編集するアクティビティまたはタスクを右クリックします。

2. 「データ・アソシエーション」を選択します。

3. データ・オブジェクトのリストで、プロジェクト名を展開します。すべてのプロジェクト・データ・オブジェクトのリストが表示されます。

4. 削除するカウンタ・マークを選択します。

5. 「データ・オブジェクトの削除」をクリックします。

6. 「はい」をクリックします。

7. 「適用」をクリックします。

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

測定マークを使用して、プロセス・パフォーマンスを測定できます。測定マークを使用すると、プロセス内の特定の位置、またはプロセスの特定のセクションにおいて、タイプが測定のビジネス・インジケータを測定できます。

測定マークおよびプロセス分析データベースの使用方法の詳細は、Oracle BPMモデリングおよび実装ガイドのプロセス分析の使用を参照してください。

測定マークによって、プロセス分析データベースに次のデータが保存されます。

- プロセスのデフォルト測定の値

- 該当する測定マークに関連付けられている測定ビジネス・インジケータの値

- プロセスに定義されているディメンションの値

1つの測定マークを使用して、複数の測定ビジネス・インジケータを測定できます。

BPMNサービス・エンジンでは、測定ビジネス・インジケータの値が保存されるときに、プロセスに定義されたディメンションの値も保存されます。後でプロセスを監視するためにダッシュボードを構築するときに、これらのディメンションを使用して値を様々なカテゴリにグループ化できます。たとえば、営業見積サンプルでは、承認済見積件数の合計を地域ごとに表示できます。

定義できる測定マークのタイプは次のとおりです。

- 単一測定

- 間隔の開始

- 間隔の停止

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

測定マークは、コンポーネント・パレットからプロセス・エディタ・キャンバスにドラッグすることによって、ビジネス・プロセスに追加できます。

単一測定マークをプロセスに追加するには:

1. BPMNプロセスを開きます。

2. コンポーネント・パレットで、「測定」アイコンをダブルクリックし、次のいずれかをクリックしてドラッグします。

- 測定マーク(スナップショット)

- 「測定の開始」マーク

- 「測定の終了」マーク

3. ビジネス・インジケータを追加するシーケンス・フロー付近まで測定マークをドラッグします。シーケンス・フローが青色になったら、測定マークをドロップします。

4. 測定マークを右クリックして「プロパティ」を選択し、「実装」をクリックします。

5. 「名前」フィールドに、測定マークを識別するための名前を入力します。

6. 「ビジネス・インジケータ」セクションで、使用可能なビジネス・インジケータのリストからビジネス・インジケータを選択し、2つのリストの間にある矢印を使用して「選択済」リストに移動します。

注意:

1つの測定マークで複数のビジネス・インジケータを測定できます。

注意:

ビジネス・インジケータを選択しない場合、測定マークにはデフォルト・ビジネス・インジケータの値のみが格納されます。「測定マーク・プロパティ」ダイアログ・ボックスを開いた状態でビジネス・インジケータを追加するには、「選択済」リストの下にある「新規」ボタンをクリックします。

7. 「OK」をクリックします。

13 Oracle Business Rulesの使用

この章では、Business Process Composerを使用してビジネス・ルールを作成および編集する方法について説明します。この章には、Oracle Business Rulesの全般的な概要および使用するためのタスクを示します。

この章の内容は次のとおりです。

- 13.1項「Oracle Business Rulesの概要」

- 13.2項「Business Process Composerルール・エディタの概要」

- 13.3項「ビジネス・ルールの作成および編集」

- 13.4項「ビジネス・ルール・タスクへのルールの割当て」

- 13.5項「実行時のOracle Business Rulesの編集」

13.1 Oracle Business Rulesの概要

この項では、Oracle Business Rulesの概要について説明します。

ビジネス・ルールは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。たとえば、ビジネス・ルールには次のものが含まれます。

- 購買ポリシーや承認マトリックスなどのビジネス・ポリシー。

- 有効な構成や規制上の要件などの絞込み条件。

- 割引や割増などの計算。

- 顧客価値に基づいた提案などの推論機能。

たとえば、レンタカー会社では次のようなビジネス・ルールを使用する場合があります。

IF
Rental_application.driver age < 21
THEN
modify Rental_application(status: "Declined")

航空会社では次のようなビジネス・ルールを使用することがあります。

IF
Frequent_Flyer.total_miles > 10000
THEN
modify Frequent_Flyer (status : "GOLD")

金融機関では次のようなビジネス・ルールを使用することがあります。

IF
Application_loan.income < 10000
THEN
modify Application_loan (deny: true)

これらの例は、個別のビジネス・ルールを表します。実際には、Oracle Business Rulesを使用すると、複数のビジネス・ルールを組み合せたり、より複雑なテストを使用できます。

Oracle Business Rulesを使用すると、プロセス・アナリストはルールとして表されているビジネス・ポリシーを変更でき、プロセス開発者の手助けはほとんどまたはまったく不要です。Oracle Business Rulesを使用するアプリケーションは継続的な変化をサポートします。これにより、これらのアプリケーションは、行政の新しい規制、社内プロセスの改善、または顧客とサプライヤの関係の変化に対して適応できます。

ビジネス・ルールはif-then構造に従い、次の2つの部分で構成されます。

- IF部分: 条件またはパターン一致。

- THEN部分: アクションのリスト。

または、デシジョン表と呼ばれるスプレッドシート状の形式でルールを表すこともできます。

13.1.1 ルール条件の概要

ルールのIF部分は、ファクトを参照する条件式、つまりルール条件で構成されます。例:

IF Rental_application.driver age < 21

条件式では、「次より小さい」比較を使用してビジネス条件(Rental_application.driver age)を数字の21と比較します。

ルール条件は、ファクトの組合せで条件式がtrueになるたびにルールをアクティブにします。ルール条件はRules Engine内の使用可能なファクト全体に対する問合せのようなものであり、問合せから戻される行のそれぞれに対してルールがアクティブになります。

13.1.2 ルール・アクションの概要

ルールのTHEN部分には、ルールが起動された場合に実行されるアクションが含まれます。ルールは、アクティブ化され、優先度などの競合解消メカニズムを使用してその他のルール・アクティブ化の中で選択されると、起動されます。ルールはいくつかの種類のアクションを実行することがあります。ファクトを追加、変更または削除するアクションがあります。Javaメソッドを実行したり、ファクトのステータスの変更やファクトの生成を行う場合がある関数を実行するアクションもあります。

ルールは同時にではなく順番に起動されます。ルール・アクションにより一連のルールのアクティブ化が変更されることがよくあり、このため次に起動されるルールが変更されることがあります。

13.1.3 デシジョン表の概要

デシジョン表は、数多くのルールで数多くのプロパティ値の組合せを分析する必要がある場合に、よりコンパクトかつ直観的に使用できる代替のビジネス・ルール形式です。デシジョン表を使用すると、すべての組合せを網羅する、または競合する2つの組合せが存在しないルールのセットを作成できます。

13.1.4 ファクトおよびバケットセットの概要

Oracle Business Rulesでは、ファクトはルールの基礎となるオブジェクトです。各ファクトは1つのファクト・タイプのインスタンスです。ルールを作成する前に、1つ以上のファクト・タイプをインポートまたは作成する必要があります。

Oracle Business Rulesでは、ファクトはクラスのアサートされたインスタンスです。Oracle Business Rulesランタイム、またはRL言語で作成する開発者は、RL言語アサート関数を使用して、ファクトのインスタンスをOracle Business Rulesエンジンに追加します。

ルール・デザイナでは、XMLスキーマ、Javaクラス、Oracle RL定義およびADF Business Componentsビュー・オブジェクトに基づいて様々なファクト・タイプを定義できます。Oracle Business Rulesランタイムでは、このようなファクト・タイプ・インスタンスはファクトと呼ばれます。

バケットセットを作成して、指定したタイプの値のリストまたは値の範囲を定義できます。バケットセットを作成した後、バケットセットを一致するタイプのファクト・プロパティに関連付けることができます。Oracle Business Rulesでは定義したバケットセットを使用して、ルールまたはデシジョン表のファクト・プロパティに関連付けられた値に対する制限を指定します。バケットセットを使用して、可変初期値および関数の戻り値または関数の引数値に対する制限を指定することもできます。

13.1.5 ルールセットの概要

ルールセットは、Oracle Business Rulesにおけるルールおよびデシジョン表のコンテナです。1つのルールセットには、ルールおよびデシジョン表用の、Javaパッケージに類似したネームスペースがあります。また、ルールセットを使用して、ルール起動を部分的に順序付けることもできます。

13.1.6 デシジョン関数の概要

デシジョン関数によって、JavaまたはSOAから(SOAコンポジット・アプリケーションからまたはBPELプロセスから)ルールを呼び出す規約が提供されます。規約には、入力ファクト・タイプ、実行するルールセットおよび出力ファクト・タイプが含まれます。

13.1.7 デシジョン・ポイントの概要

Oracle Business Rules SDK (Rules SDK)によってAPIが提供されます。このAPIを使用して、Oracle Business Rulesディクショナリ内のルール(およびディクショナリのすべてのコンテンツ)にアクセス、作成、変更および実行するアプリケーションを作成できます。Rules SDKは、Javaアプリケーションからルールまたはデシジョン表にアクセスおよび実行するデシジョン・ポイントAPIを提供します。

13.1.8 ディクショナリの概要

ディクショナリは、ファクト、関数、グローバル、バケットセット、リンク、デシジョン関数およびルールセットのOracle Business Rulesコンテナです。ディクショナリは、アプリケーションのルールセットおよびデータ・モデルが格納されるXMLファイルです。ディクショナリは他のディクショナリにリンクできます。Oracle JDeveloperでは、.rulesファイルにOracle Business Rulesディクショナリが作成されます。ディクショナリは必要な数だけ作成できます。ディクショナリには任意の数のルールセットを含めることができます。

13.2 Business Process Composerルール・エディタの概要

Business Process Composerルール・エディタを使用すると、ルール・ディクショナリを表示および編集できます。ルール・ディクショナリは、プロセス・エディタおよびデータ・アソシエーション・エディタに類似のタブを使用したウィンドウに表示されます。

このウィンドウは、次の2つの主な領域にわかれています。

- グローバル、バケットセットおよびルールセットのタブを使用したペインを含むパネル。

- 各タブの詳細情報を表示するエディタ・パネル。

図13-1は、営業見積サンプル・プロジェクトに含まれるグローバルの情報を表示する「グローバル」タブを示しています。

注意:

このタブには、ルール・ディクショナリが作成されたときに最後としてマークされたグローバルのみが表示されます。

図13-1 Oracle Business Rulesエディタの「グローバル」タブ

「図13-1 Oracle Business Rulesエディタの「グローバル」タブ」の説明

図13-2は、営業見積サンプル・プロジェクトに含まれるバケットセットの詳細を表示する「バケットセット」タブを示しています。

図13-2 Oracle Business Rulesエディタの「バケットセット」タブ

「図13-2 Oracle Business Rulesエディタの「バケットセット」タブ」の説明

図13-3は、営業見積サンプルに含まれるルールセットの詳細を表示する「ルールセット」タブを示しています。

図13-3 Oracle Business Rulesエディタの「ルールセット」タブ

「図13-3 Oracle Business Rulesエディタの「ルールセット」タブ」の説明

13.3 ビジネス・ルールの作成および編集

次の各項では、Business Process Composerを使用してOracle Business Rulesを表示および編集する特定の手順について説明します。

13.3.1 新しいビジネス・ルールの作成方法

Business Process Composerを使用して、新しいビジネス・ルールを作成できます。

新しいビジネス・オブジェクトを作成するには:

1. プロジェクトのようこそページから、「ビジネス・ルール」タブを選択します。

2. 「新規ビジネス・ルール」をクリックします。

3. ビジネス・ルールの名前とパッケージを入力します。

4. 入力データ・オブジェクトと出力データ・オブジェクトを定義します。

1. 「データ・オブジェクトの追加」ボタンをクリックします。

2. ウィンドウの右側のドロップダウン・リストから「入力」または「出力」を選択します。

3. データ・オブジェクトの名前を入力します。

4. ドロップダウン・リストからデータ型を選択します。

5. 「追加」をクリックします。
データ・オブジェクトが、「入力と出力データ・オブジェクト」表に表示されます。必要に応じて、入力オブジェクトまたは出力オブジェクトを追加します。

5. 「OK」をクリックします。

13.3.2 ビジネス・ルールを開く方法

Oracle Business Rulesは再利用可能なビジネス・カタログの一部として含めることができ、これにより、プロジェクト・テンプレートから作成されたOracle BPMプロジェクトを編集するときにビジネス・ルールを使用できます。

プロジェクト・ナビゲータからビジネス・ルールを開くには:

1. プロジェクトのようこそページから「ルール」を開き、開くルールの名前をクリックします。

ルール・エディタにビジネス・ルールが表示されます。ルールを編集する場合は、プロジェクトが編集モードになっていることを確認します。

13.3.3 バケットセットを追加する方法

Business Process Composerを使用して、ルール・ディクショナリに新規バケットセットを追加できます。

新規バケットセットを追加するには:

1. バケットセットを編集するルール・ディクショナリを開きます。

2. 「バケットセット」タブを選択します。これにより、図13-2に示すように、ディクショナリ内のバケットセットを一覧表示した表が表示されます。

3. 「バケットセットの追加」ドロップダウン・リストをクリックし、作成するバケットセットのタイプを選択します。

- 値リスト

- 範囲リスト

4. リストからバケットセットを選択し、「バケットセットの編集」をクリックします。

5. 必要に応じてバケットセットを編集し、「OK」をクリックします。

13.3.4 既存のバケットセットを編集する方法

Business Process Composerで「バケットセット」タブを選択すると、ディクショナリ内のバケットセットを一覧表示した表が表示されます。バケットセットを編集するには、適切な行を選択して「編集」アイコンをクリックします。バケットセットのタイプ、範囲、列挙またはLOVに応じて、対応するバケットセットの編集ページが表示されます。

メニュー・バーで「追加」をクリックし、タイプを選択して、範囲バケットセットを作成できます。これにより、バケットセット表に新規行が追加されます。バケットを追加すると、範囲バケットのエンド・ポイントおよびLOVバケットの値がデータ型に基づいて自動的に追加されます。新たに追加されたバケットのエンド・ポイントや値は変更できます。エンド・ポイントまたは値を変更した場合、エイリアスが変更されることに注意してください。

バケットセットを削除するには、行を選択して「削除」をクリックします。

バケットセットを編集するには:

1. バケットセットを編集するルール・ディクショナリを開きます。

2. 「バケットセット」タブを選択します。これにより、図13-2に示すように、ディクショナリ内のバケットセットを一覧表示した表が表示されます。

3. 適切なバケットセットの行を設定し、「バケットセットの編集」アイコンをクリックします。

4. バケットセット・エディタを使用して、バケットセットの適切なフィールドを編集します。

5. 「OK」をクリックして変更を確認します。

13.3.5 ルール・ディクショナリでグローバルを表示する方法

ルール・ディクショナリを開くと、Business Process Composerによって「グローバル」タブが表示されます。「グローバル」タブには、最後のグローバル変数(「最後」オプションが選択されたグローバル変数)のみが表示されます。

グローバル変数を作成したり削除することはできません。「グローバル」タブから、編集モードで「名前」、「説明」および「値」の各フィールドを変更できます。「値」フィールドでは、式ビルダーを使用して値を設定できます。

グローバルを表示するには:

1. グローバルを表示するルール・ディクショナリを開きます。

2. 「グローバル」タブを選択します。これにより、図13-1に示すように、このルール・ディクショナリに定義されたグローバルを一覧表示した表が表示されます。

13.3.6 ルールセットにルールを追加する方法

Business Process Composerを使用して、ルールセットのルールを編集、追加および削除できます。

ルールセットにルールを追加するには:

1. ルールを追加するルールセットを含むルール・ディクショナリを開きます。

2. 編集するルールセットのタブをクリックします。これにより、図13-3に示すように、このディクショナリに定義されたルールセットを一覧表示した表が表示されます。

3. 「新規ルール」アイコンをクリックします。

4. 新規ルールの名前を入力します。

5. 「詳細設定の表示」アイコンをクリックします。

6. IF領域で、「左の値」式アイコン、演算子のドロップダウン・リスト、「右の値」式アイコンを含む、コントロール、アイコンおよび選択ボックスを使用して条件を変更します。

7. ルールのTHEN領域でルール・アクションの横にある「アクションの追加」をクリックします。

8. 「エディタ」ツールバーの「保存」をクリックして、ルール・ディクショナリに対する変更を保存します。

13.4 ビジネス・ルール・タスクへのルールの割当て

ビジネス・ルール・タスクは、プロセス・モデル内にOracle Business Rulesを取り込むことができるOracle BPMN要素です。

ビジネス・カタログにビジネス・ルールを含むプロジェクト・テンプレートに基づいてプロジェクトを編集する場合、ビジネス・ルール・タスクにビジネス・ルールを割り当てることができます。

ビジネス・ルール・タスクにビジネス・ルールを割り当てるには:

1. 編集するビジネス・ルール・タスクを含むプロセスを開きます。

2. ビジネス・ルール・タスクを右クリックし、「プロパティ」を選択します。

3. 「実装」タブを選択します。

4. 「変更」をクリックします。使用可能なビジネス・ルールの表を含むビジネス・ルール・ブラウザが表示されます。

5. 表でルールをダブルクリックします。

6. 「OK」をクリックします。

13.5 実行時のOracle Business Rulesの編集

Business Process Composerを使用して、デプロイ済のOracle BPMプロジェクトを開くことができます。デプロイ済のプロジェクトを開くと、プロジェクトに含まれているOracle Business Rulesを編集し、Oracle BPMランタイムに変更を再度デプロイできます。

注意:

デプロイ済のプロジェクトを編集する場合、そのプロジェクトのOracle Business Rulesのみを編集できます。他のプロジェクト・リソースは表示できますが、編集できません。

デプロイ済のプロジェクトを開くには:

1. 「プロジェクト」メニューの「デプロイ済プロジェクトを開く」を選択します。
現在プロジェクトを編集している場合は、変更内容が自動的に保存されます。

2. 「デプロイ済プロジェクト」を選択し、次に、プロジェクト・リストから開くプロジェクトを選択します。

3. 「リポジトリ」を開き、次に、開くデプロイ済プロジェクトを選択します。

4. 「OK」をクリックします。

5. プロジェクト・ナビゲータで、「ビジネス・ルール」を開き、次に、編集するOracle Business Rulesを含むルール・ディクショナリを開きます。

6. ルール・エディタで「編集」をクリックします。

7. 必要に応じてルールを編集し、「保存」をクリックします。

8. ビジネス・プロセスに対して行った変更が有効であることを確認するには、「検証」をクリックします。

9. 「コミット」をクリックして、変更をOracle BPMランタイムにコミットします。

10. 「はい」をクリックします。

11. 「プロジェクト」メニューの「プロジェクトを閉じる」を選択します。

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

この章では、BPMNプロセスの技術的な実装に関連する、Business Process Composerの機能について説明します。通常、この章で説明する機能はプロセス開発者が実行します。

この章の内容は次のとおりです。

- 14.1項「プロセスの入力および出力の定義」

- 14.2項「会話の定義」

- 14.3項「サービスの使用」

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

操作をBPMNプロセスに追加するときは、他のプロセスまたはサービスとの通信に使用できるポイントをプロセス内に定義します。通常、プロセスが他のプロセスまたはサービスと通信するときは、入力が要求され、出力が返されます。BPMNプロセスの操作を定義するために使用するフロー・イベントでは、入力引数と出力引数を定義できます。これらの入力引数と出力引数によって、プロセスの入力と出力が定義されます。

14.1.1 プロセスへの入力引数の定義方法

メッセージ開始イベントから開始するプロセスを作成する場合は、そのプロセスに渡される入力引数を定義する必要があります。

プロセスに入力引数を定義するには:

1. メッセージ開始イベントをプロセスに追加します。

2. メッセージ開始イベントを右クリックし、「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「インタフェースの定義」を選択します。

5. 「追加」アイコンをクリックします。

6. データ・オブジェクトのタイプを決定します。

7. 「OK」をクリックします。

14.1.2 メッセージ開始イベントへのデータの関連付けの定義方法

プロセスに入力引数を定義した後は、その内容をプロセス内のデータ・オブジェクトにマップする必要があります。

メッセージ開始イベントにデータ・アソシエーションを定義するには:

1. プロセスのメッセージ開始イベントを選択します。

2. 「データ・アソシエーション」をクリックします。

3. 右側のリストから「出力」の下にリストされたテキスト・ボックスに、データ・オブジェクトをドラッグします。

4. 「適用」をクリックします。

14.1.3 プロセスへの出力引数の定義方法

メッセージ終了イベントを含むプロセスを作成する場合は、終了イベントごとに出力引数を定義する必要があります。それらはプロセスに対する出力引数になります。

プロセスに出力引数を定義するには:

1. メッセージ終了イベントをプロセスに追加します。

2. メッセージ終了イベントを右クリックし、「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「インタフェースの定義」を選択します。

5. 「追加」アイコンをクリックします。

6. データ・オブジェクトのタイプを決定します。

7. 「OK」をクリックします。

14.1.4 メッセージ終了イベントへのデータの関連付けの定義方法

プロセスの出力引数を定義した後は、その内容をプロセス内のデータ・オブジェクトにマップする必要があります。

メッセージ終了イベントにデータ・アソシエーションを定義するには:

1. プロセス内のメッセージ終了イベントを選択します。

2. 「データ・アソシエーション」をクリックします。

3. 右側のリストから「入力」の下にリストされたテキスト・ボックスに、データ・オブジェクトをドラッグします。

4. 「適用」をクリックします。

14.2 会話の定義

次の各項では、Business Process Composerを使用して会話を編集する方法について説明します。詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

14.2.1 会話の概要

複数のプロセス間のメッセージ交換は、会話によってグループ化されます。プロセス間のメッセージ交換をコラボレーションと呼びます。1つのプロジェクト内に複数の会話を定義すると、そのプロジェクト内のプロセス間で再利用できます。

コラボレーション・ダイアグラムを使用してプロセス・フローを表示すると、会話での他の参加者とプロセスとの相互作用も表示できます。

デフォルトでは、BPMプロジェクトに1つの会話が定義されています。複数の会話を定義しない場合は、このデフォルトの会話を使用して、プロジェクト内のプロセス間のメッセージ交換をすべて収集する必要があります。

プロジェクトごとに定義できるデフォルトの会話は1つのみです。ただし、デフォルトで使用する会話ではなく、別の会話をデフォルトとして使用するようにプロジェクトを変更できます。

様々なタイプの会話を使用すると、プロセスが他のプロセスやサービスとの間で確立できる各種の相互作用を指定できます。次に、各タイプの会話について説明します:

- インタフェースの定義: BPMNプロセスと相互作用するために他のサービスやプロセスで起動できる操作を定義する場合は、このタイプを使用します。

- インタフェースの使用: ビジネス・カタログのコンポーネントからインタフェースを使用するようにプロセスを構成する場合は、このタイプを使用します。

- プロセス・コール: 別のBPMNプロセスを起動する場合は、このタイプを使用します。

- サービス・コール: BPMプロジェクトに定義されているサービスを起動する場合は、このタイプを使用します。

14.2.2 会話の使用

次の各項では、Business Process Composerを使用して会話を定義および構成する方法について説明します。

14.2.2.1 会話の定義方法

1. プロセスを開きます。

2. プロセス・エディタ・ツールバーで「会話の編集」ボタンをクリックします。

3. 「会話の追加」ボタンをクリックします。

4. 会話の名前を入力します。

5. 定義する会話のタイプを選択します。

6. 「OK」をクリックします。

14.2.2.2 デフォルトの会話の設定方法

1. プロセスを開きます。

2. プロセス・エディタ・ツールバーで「会話の編集」ボタンをクリックします。

3. リストから会話を選択し、「編集」ボタンをクリックします。

4. 「デフォルトの会話」チェック・ボックスを選択します。

5. 「OK」をクリックします。

14.2.2.3 BPMNフロー・オブジェクトに対する会話の定義方法

1. プロセスを開きます。

2. 次のいずれかのタイプのBPMNフロー・オブジェクトを右クリックします:

- メッセージ・イベント(スローおよびキャッチ)

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

- サービス・タスク

これらのBPMフロー・オブジェクトに対してのみ会話を定義できます。

3. 「実装」を選択します。

4. 「実装」タブで、「会話」テキスト・フィールドの隣にある「参照」ボタンをクリックします。

5. リストから会話を選択し、「OK」をクリックします。

14.2.2.4 コラボレーション・ダイアグラムの表示方法

プロセスのコラボレーション・ダイアグラムを表示するには、プロセス・エディタ・ツールバーで「コラボレーションの表示」ボタンをクリックします。

注意:

コラボレーション・ビューではプロセスを変更できません。通常のプロセス編集に戻るには、「コラボレーションの表示」ボタンを再度クリックします。

14.3 サービスの使用

次の各項では、Business Process Composerを使用してサービスを作成する方法について説明します。

14.3.1 ビジネス・カタログで新しいサービスを作成する方法

Business Process Composerでは、ビジネス・カタログに新しいサービスを作成できます。これらのサービスは、標準的なWebサービスに基づきます。

Webサービスに基づくサービスは、Webサービス記述言語(WSDL)ファイルを使用して定義されます。WSDLファイルは、Webサービスの実装方法を記述するために使用するXMLファイルです。Business Process Composerを使用して新規サービスを作成する場合は、コンピュータにローカルに格納されているWSDLファイル、または使用可能なWSDLファイルを指定できます。

WSDLファイルまたはURLの場所の提供は、プロセス開発者が担当します。

新しいサービスを作成する手順は、次のとおりです。

1. 新しいサービスを作成するプロジェクトを開きます。

2. メイン・メニューから「新規」を選択し、次に「新規サービス」を選択します。

3. 次の情報を入力します。

- 名前: ビジネス・カタログに表示するとおりに、サービスの名前を定義します。

- タイプ: 作成するサービスのタイプを定義します。

- WSDL: 新しいサービスの作成に使用するWSDLのソースとして、次のいずれかを指定できます:

- URL: WSDLのリモートURLを指定します。

- ファイル: ローカル・ファイル・システムにあるWSDLファイルまたはZIPファイルのいずれかを指定します。
ZIPファイルを使用する場合、そこに含めることができるのはWSDLおよびXSDファイルのみです。WSDLファイルには、有効な参照が必要です。

- ポート・タイプ: ポート・タイプには、使用するサービスを指定します。WSDLファイルは1つ以上のポート・タイプを公開します。

- コールバック・タイプ: このWebサービスで使用するコールバック・タイプを指定します。これは、非同期サービスにのみ適用可能です。

- トランザクション参加:

- バージョン:

4. 「OK」をクリックします。

15 BPMプロジェクトのデプロイ

この章では、Oracle Business Process ComposerからBPMプロジェクトをデプロイする方法について説明します。権限を付与されたユーザーは、プロジェクトをランタイムに直接デプロイできます。

この章には次の項が含まれます:

- 15.1項「プロジェクトの承認ワークフローの構成」

- 15.2項「プロジェクトのデプロイ」

15.1 プロジェクトの承認ワークフローの構成

次の各項では、プロジェクトの承認ワークフローの構成方法について説明します。

15.1.1 承認ワークフローの概要

承認ワークフローでは、Business Process Composerを使用して、Oracle BPMプロジェクトをランタイムにデプロイする前に経由する必要がある承認プロセスを定義します。承認ワークフローは、新規プロジェクトを作成するとき、またはプロジェクトを後で構成するときに定義できます。プロジェクトのようこそページのプロジェクト・プロパティ・ボックスで、プロジェクトに対して定義されている承認ワークフローを表示できます。

表15-1では、Oracle BPMで使用可能な承認ワークフローの様々なタイプについて説明します。

表15-1 承認ルーティング

なし

承認ワークフローは指定されていません。適切な権限を持つユーザーは、プロジェクトをOracle BPMランタイムに直接デプロイできます。

シンプル

ワークフローで承認者を1人のみ指定します。

シンプル・シーケンシャル

承認者の順次リストを指定します。プロジェクトのデプロイメントを承認するには、すべての承認者が承認する必要があります。

シンプルFYI

プロジェクトがデプロイ中であることを示す通知が送信されますが、承認ワークフローは、承認者によるタスクの処理を待機しません。

パラレル

プロジェクトのデプロイを同時に承認する必要がある承認者のリストを指定します。

15.1.2 承認ワークフローの構成

次の各項では、プロジェクトの承認ワークフローを構成する方法、およびワークフローの一部として承認を実行する方法について説明します。

15.1.2.1 プロジェクトの承認ワークフローの構成方法

Business Process Composerを使用すると、新規プロジェクトの作成時に承認ワークフローのタイプを構成できます。プロジェクトの作成後に承認ワークフローを構成することもできます。

プロジェクトの承認ワークフローを構成するには:

1. プロジェクトのようこそページに移動します。

2. プロジェクトの編集中であることを確認します。

3. プロジェクト情報領域の承認ワークフローの隣にある「編集」をクリックします。

4. 承認ワークフローのタイプを選択し、「適用」をクリックします。

5. 「選択」を選択し、ブラウザのドロップダウン・メニューから「ユーザー」または「グループ」を選択します。

6. 「検索」をクリックして、使用可能なユーザーまたはグループのリストを表示します。

7. 「使用可能」リストからアイテムを選択し、選択したアイテムを他のリストに移動をクリックします。

8. 「OK」をクリックします。

9. 「適用」をクリックします。

15.2 プロジェクトのデプロイ

Business Process Composerを使用して、Oracle BPMランタイムにプロジェクトをデプロイできます。デプロイは、Business Process Composerアプリケーションがインストールされている同じ環境内でのみ可能です。

15.2.1 プロジェクトをデプロイできるユーザー

プロジェクト所有者権限が付与されているユーザーは、Business Process Composerを使用して、プロジェクトを直接Oracle BPMランタイムにデプロイできます。

15.2.2 プロジェクトをランタイムにデプロイする方法

プロジェクト所有者は、プロジェクトを直接Oracle BPMランタイムにデプロイできます。次の手順では、承認ワークフローが有効になっていない場合にプロジェクトをデプロイする方法について説明します。

ランタイムにプロジェクトをデプロイするには:

1. メイン・メニューの「デプロイメント」を選択し、「プロジェクトのデプロイ」を選択します。
Business Process Composerでプロジェクトが検証されます。プロジェクトにエラーがない場合、デプロイ・プロセスが続行されます。

2. 図15-1に示すように、「プロジェクトのデプロイ」ダイアログに必要な情報を入力します。

図15-1 「プロジェクトのデプロイ」ダイアログ

「図15-1 「プロジェクトのデプロイ」ダイアログ」の説明

「プロジェクトのデプロイ」ダイアログのプロパティの説明を次の表に示します。

表15-2 「プロジェクトのデプロイ」ダイアログのプロパティ

プロジェクト

プロジェクトの名前が表示されます

バージョン

デプロイするプロジェクトのバージョンを選択する場合に使用します。プロジェクトの現行バージョンまたはプロジェクト・スナップショットを選択できます。

最終リビジョンID

プロジェクトの最新のデプロイ済バージョンのリビジョンIDが表示されます。

新規リビジョンID

デプロイしたアプリケーションのリビジョンIDを指定します。このIDは次の形式で指定する必要があります:

n0[.n1[.n2[.n3[.n4]]]][-milestone-name[milestone-number]/_patch-number

デフォルトのデプロイメント・バージョンのオーバーライド

デフォルトのデプロイメント・バージョンをオーバーライドします。

デプロイ担当ユーザー名

Oracle BPMプロジェクトをランタイムにデプロイするために使用します。

パスワード

前述のデプロイ担当ユーザー名に対応するパスワードを指定します。

oramdsプロトコル用MDS接続を追加。

このオプションは、サーバーの構成内容に応じて使用できます。

oramdsプロトコルを使用したデータベースへの接続を有効にする場合に選択します。Oracle BPMリポジトリに使用されるデータベースへの接続時に必要になる場合があります。

これが必要な場合、システム管理者は、データベースに関する次の接続情報を提供する必要があります。

- ホスト名: データベースのホスト名またはIPアドレスを指定します。

- ポート: データベースのポートを指定します。

- SID: データベースのSIDを指定します。

- ユーザー名: Oracle MDSデータベースに接続する際に使用するデータベース・ユーザー名を指定します。

- パスワード: データベース・ユーザーのパスワードを指定します。

コンポジット・リビジョンをデフォルトとしてマークします

現在のリビジョンをデフォルトのリビジョンとして定義します。

ターゲットのデプロイ

Oracle MDSで、SOAコンポジット・アプリケーションがデプロイされるフォルダを選択できます。

3. 「デプロイ」をクリックします。
Business Process Composerは、プロジェクトをランタイムにデプロイします。この操作には数分かかります。

4. デプロイメントの完了後、「OK」をクリックします。

プロジェクトはOracle BPMランタイムにデプロイされます。プロジェクトは、プロジェクト・ブラウザのデプロイ済プロジェクトのリストから使用できます。

15.2.3 承認ワークフローを使用してプロジェクトをデプロイする方法

Business Process Composerを使用すると、承認ワークフローを指定できます。このワークフローでは、プロジェクトがOracle BPMランタイムにデプロイされる前にプロジェクトを承認する必要があるユーザーを定義します。

承認ワークフローを使用してプロジェクトをデプロイするには:

1. メイン・メニューの「プロジェクトのデプロイ」を選択します。
Business Process Composerでプロジェクトが検証されます。プロジェクトにエラーがない場合、そのプロジェクトは承認ワークフロー・ブラウザに表示されます。

プロジェクトに対して定義されている承認ワークフローのタイプに基づいて、必要な承認者はプロセス・ワークスペースを使用してデプロイメントを承認する必要があります。詳細は、Oracle Fusion Middleware Business Process Managementのユーザーズ・ガイドを参照してください。

承認のステータスおよび進捗状況は、承認ワークフロー・ブラウザを使用して監視できます。

2. デプロイメントの承認後、承認ワークフロー・ブラウザを開き、「デプロイ」をクリックします。

15.2.4 デプロイ済のプロジェクトを編集する方法

Business Process Composerを使用して、デプロイ済のOracle BPMプロジェクトを開くことができます。デプロイ済のプロジェクトを開くと、プロジェクトに含まれているOracle Business Rulesを編集し、Oracle BPMランタイムに変更を再度デプロイできます。

注意:

デプロイ済のプロジェクトを編集するには、「SOAデザイナ」ロールが付与されている必要があります。

実行時にOracle Business Rulesを編集する方法の詳細は、13.5項「実行時のOracle Business Rulesの編集」を参照してください。

デプロイ済のプロジェクトを開くには:

1. Business Process Composerを起動します。

2. メイン・メニューの「デプロイ済プロジェクトを開く」を選択します。

3. プロジェクト・ナビゲータからプロジェクトを選択します。

4. 「リフレッシュ」をクリックして、Oracle BPMリポジトリの最新の内容が確実に表示されるようにします。

5. 「OK」をクリックします。

15.2.5 プロジェクトSARファイルの生成方法

Business Process Composerから、プロジェクトをSARファイルとして生成できます。システム管理者はこのファイルを使用して、Oracle Enterprise Manager管理コンソールからプロジェクトをデプロイできます。

プロジェクトSARファイルを生成するには:

1. メイン・メニューの「デプロイメント」を選択し、「プロジェクトSARファイルの生成」を選択します。
Business Process Composerでプロジェクトが検証されます。プロジェクトにエラーが含まれている場合は、プロジェクトの「検証」タブに表示されます。

2. SARファイルの生成に使用するプロジェクト・バージョンを選択します。プロジェクトの現行バージョンまたはプロジェクト・スナップショットを選択できます。

3. リビジョンIDを入力します。

4. 必要に応じて、次のオプションを選択します:

- デフォルトのデプロイメント・バージョンのオーバーライド

- oramdsプロトコル用MDSデータベース接続を追加。: oramdsプロトコルを使用したデータベースへの接続を有効にする場合に選択します。Oracle BPMリポジトリに使用されるデータベースへの接続時に必要になる場合があります。

5. 「OK」をクリックします。

6. プロジェクトにエラーが含まれていない場合は、「OK」をクリックしてSARファイルをローカル・ファイル・システムに保存します。

15.2.6 デプロイメント計画の生成方法

デプロイメント計画とは、Oracle BPM StudioからBPMプロジェクトをデプロイする際に使用されるXML構成ファイルです。デプロイメント計画のXMLファイルを生成する際に、予期しないエラーがBusiness Process Composerによって生成される場合があります。

注意:

デプロイメント計画を作成する前に、プロジェクトを検証してください。Business Process Composerでは、デプロイメント計画の生成時に検証は行われません。

デプロイメント計画を生成するには:

1. メイン・メニューから、「デプロイメント」を選択します。

2. デプロイメント計画の生成を選択します

3. ローカル・ファイル・システム上の場所を選択し、「OK」をクリックします。

第V部

Business Process Composerを使用した管理タスクの実行

ここでは、Oracle BPMリポジトリ内のプロジェクトを管理する方法について説明します。

この部では、次の内容について説明します。

- 第16章「管理タスクの実行」

16 管理タスクの実行

この章では、Oracle Business Process Composerを使用して管理タスクを実行する方法について説明します。管理者は、グローバル・ロールの割当て、プロジェクトとプロジェクト・テンプレートの管理およびプロセス・プレーヤ機能の有効化を行うことができます。

注意:

この章で説明する手順を実行できるのは、プロジェクト管理者セキュリティ・ロールが付与されているユーザーのみです。

この章の内容は次のとおりです。

- 16.1項「Business Process Composer管理の概要」

- 16.2項「グローバル・ロールの割当て方法」

- 16.3項「プロジェクトとプロジェクト・テンプレートの管理」

- 16.4項「プロセス・プレーヤの管理者資格証明の定義方法」

16.1 Business Process Composer管理の概要

Business Process Composerを使用すると、ユーザーに管理者権限を割り当てることができます。ユーザーに管理者権限がある場合、図16-1のように、Business Process Composerツールバーに管理オプションが表示されます。

図16-1 Business Process Composerツールバーの「管理」メニュー・アイテムの表示

「図16-1 Business Process Composerツールバーの「管理」メニュー・アイテムの表示」の説明

管理者は、次のタスクを実行できます:

- ユーザーへのグローバル・ロールの割当て。

- 共有プロジェクトおよびプロジェクト・テンプレートの削除。

- 共有プロジェクトでのロックの解放。

- プロジェクトでの権限の構成。

- プロジェクト・テンプレートのインポート。

- プロセス・プレーヤ用管理者資格証明の構成。

16.2 グローバル・ロールの割当て方法

BPM Composerを使用すると、管理者は、個々のプロジェクトに対して権限を割り当てる以外に、権限をグローバルに割り当てることができます。次のグローバル・ロールを使用できます:

- SOAデザイナ: SOAデザイナ・ロールは、SOAインフラストラクチャと共有されるセキュリティ・ロールです。Business Process Composerでは、このロールにより、ユーザーおよびグループが、実行時にOracle Business Rulesを編集することが可能となります。詳細は、 8.4項「実行時のOracle Business Rulesの編集」 を参照してください。

- プロジェクト管理者: このロールが割り当てられたユーザーまたはグループは、すべての共有プロジェクトで次のアクションを実行できます:

- プロジェクトの削除

- プロジェクトのデプロイ

- プロジェクト権限の定義

- プロジェクト・スナップショットの作成

グローバル・ロールを割り当てるには:

1. 管理者権限があるユーザーとしてBusiness Process Composerにログインします。

2. 図16-1に示すように、Business Process Composerアプリケーション・ツールバーの「管理」をクリックします。

3. 「ロール・マッピング」タブを選択します。ロール・マッピング・エディタが図16-2のように表示されます。

図16-2 「管理」コンソール - 「ロール・マッピング」タブ

「図16-2 「管理」コンソール - 「ロール・マッピング」タブ」の説明

4. 「マッピングの追加」を開きます。

5. ドロップダウン・リストからロールを選択します。

6. 「選択」をクリックします。

1. ドロップダウン・リストから次を選択します。
すべて: ユーザーとグループ両方を検索します。

ユーザー: 検索対象をユーザーに絞り込みます。

グループ: 検索対象をグループに絞り込みます。

2. 任意のユーザーまたはグループを検索します。
特定のユーザーまたはグループを検索するには、そのユーザーまたはグループの名前を入力して、「検索」をクリックします。

「検索」をクリックして、使用可能なすべてのユーザーまたはグループのリストを表示します。

3. 追加するユーザーまたはグループの名前の隣のチェック・ボックスをクリックします。

4. 「OK」をクリックします。

5. 「マッピングの追加」をクリックします。

新しいマッピングが「マッピングの管理」の下の表に表示されます。

グローバル・ロールを削除するには:

1. 管理者権限があるユーザーとしてBusiness Process Composerにログインします。

2. 図16-1に示すように、Business Process Composerアプリケーション・ツールバーの「管理」をクリックします。

3. 「マッピングの管理」を開きます。

4. ドロップダウン・リストからすべてを選択します。

5. ロール・マッピング表で、削除するマッピングを選択し、「削除」をクリックします。

16.3 プロジェクトとプロジェクト・テンプレートの管理

Business Process Composer管理コンソールを使用して、プロジェクトとプロジェクト・テンプレートを管理します。

16.3.1 プロジェクトまたはプロジェクト・テンプレートの削除方法

管理者は、共有プロジェクトまたはプロジェクト・テンプレートを削除できます。

注意:

管理者は、プライベート・プロジェクトでタスクを実行することはできません。プライベート・プロジェクトにアクセスできるのは、プロジェクト所有者のみです。

共有プロジェクトを削除するには:

1. 管理者権限があるユーザーとしてBusiness Process Composerにログインします。

2. 図16-1に示すように、Business Process Composerアプリケーション・ツールバーの「管理」をクリックします。

3. 「プロジェクト管理」または「テンプレート管理」を選択します。

4. 表からプロジェクトまたはプロジェクト・テンプレートを選択します。

5. 「削除」をクリックします。

6. 「はい」をクリックして、プロジェクトまたはプロジェクト・テンプレートの削除を確定します。

プロジェクトまたはプロジェクト・テンプレートを削除すると、これらはBPMリポジトリから削除されます。

16.3.2 プロジェクトでの共有の構成方法

管理者は、共有BPMプロジェクトで共有を構成できます。

プロジェクトで共有を構成するには:

1. 管理者権限があるユーザーとしてBusiness Process Composerにログインします。

2. 図16-1に示すように、Business Process Composerアプリケーション・ツールバーの「管理」をクリックします。

3. 「プロジェクト管理」を選択します。

4. 表からプロジェクトを選択します。

5. 「共有」をクリックします。

1. ドロップダウン・リストから次のいずれかを選択します。
チーム・メンバーのみ: プロジェクト所有者のチーム・メンバーのみでプロジェクトを共有します。

パブリック: すべてのBusiness Process Composerユーザーでプロジェクトを共有します。

2. 「選択」をクリックして、任意のユーザーまたはグループを指定します。

3. 次のロールの1つを選択します:
所有者: 編集、削除など、プロジェクトに対して完全な権限を持ちます。

エディタ: 指定のユーザーまたはグループはプロジェクトの編集が可能になります。

表示者: 指定のユーザーまたはグループはプロジェクトの表示が可能になります。

6. 「共有」をクリックします。
指定のユーザーまたはグループがロールとともに表内に表示されます。

7. 「閉じる」をクリックして、管理コンソールに戻ります。

16.3.3 共有プロジェクトでのロックの解放方法

管理者は、他のユーザーによってロックされていた共有プロジェクトのロックを解放することができます。

共有プロジェクトでロックを解放するには:

1. 管理者権限があるユーザーとしてBusiness Process Composerにログインします。

2. 図16-1に示すように、Business Process Composerアプリケーション・ツールバーの「管理」をクリックします。

3. 「プロジェクト管理」タブを選択します。

4. ロックを解放するプロジェクトを選択します。

5. 「ロックの解放」をクリックします。

注意:

プロジェクトのロックを解放すると、プロジェクトをロックしていたユーザーによる変更はすべて失われます。

16.3.4 プロジェクト・テンプレートのインポート方法

管理者は、ローカル・ファイル・システムからプロジェクト・テンプレートをインポートできます。

プロジェクト・テンプレートをインポートする手順は、次のとおりです。

1. 管理者権限があるユーザーとしてBusiness Process Composerにログインします。

2. 図16-1に示すように、Business Process Composerアプリケーション・ツールバーの「管理」をクリックします。

3. 「テンプレート管理」を選択します。

4. 「テンプレートのインポート」をクリックします。

5. 「参照」をクリックして、ローカル・ファイル・システム上のプロジェクト・テンプレートを検索します。

6. プロジェクト・テンプレートの名前を入力します。

7. 「OK」をクリックします。

インポートされたプロジェクト・テンプレートは、他のBusiness Process ComposerユーザーとOracle BPM Studioユーザーから使用できるようになります。詳細は、8.3項「プロジェクト・テンプレートの使用」を参照してください。

16.4 プロセス・プレーヤの管理者資格証明の定義方法

プロセス・プレーヤにより、Business Process Composerを使用して設計時にビジネス・プロセスの動作をテストできます。BPMプロジェクトをデプロイせずに別のユーザーとしてプロセスをテストしたり、プロセス・スペースを使用したプロセスをテストできます。詳細は、第7章「プロセス・プレーヤの使用」を参照してください。

ビジネス・プロセスのテスト時、プロセス・プレーヤは、特別なパーティションを使用してランタイムにBPMの1つのバージョンをデプロイします。これにより、プロセス・プレーヤは、正常にデプロイされたBPMプロジェクトと同じ環境を使用してプロセスを実行できます。

Business Process Composerでプロセス・プレーヤ機能を有効にするには、管理者資格証明を定義しておくことが必要です。Business Process Composerでは、管理者資格証明を使用して次を行うことができます。

- 実行時にプロジェクトの1つのバージョンをデプロイします。

- 別のユーザーとしてプロセス・インスタンス上でタスクを実行します。

管理者資格証明が定義されたら、プロジェクトに対して編集権限を持つすべてのユーザーがプロセス・プレーヤを実行できるようになります。

プロセス・プレーヤを起動すると、Business Process Composerが、これらの資格証明を使用してランタイムにプロジェクトをデプロイします。現在のユーザーが別のユーザーとしてアクティビティまたはタスクを実行する場合でも、Business Process Composerはこれらの資格証明を使用します。

16.4.1 プロセス・プレーヤを有効にする方法

Business Process Composerユーザーがアクセスする前に、管理者資格証明を定義してプロセス・プレーヤを有効にする必要があります。

プロセス・プレーヤを有効にするには:

1. アプリケーションのツールバーで、「管理」をクリックします。

2. 左側のメニューから、「プレーヤの管理」を選択します。

3. ユーザー名、パスワード、パスワードの確認を入力してから「保存」をクリックします。

4. 「戻る」をクリックしてBPMプロジェクトに戻ります。

16.4.2 プロセス・プレーヤを有効時の処理

プロセス・プレーヤを有効にすると、Business Process Composerユーザーがビジネス・プロセスの動作をテストできます。詳細は、7.2.1項「プロセス・プレーヤにアクセスする方法」を参照してください。

プロセス・プレーヤを有効にすると、すべてのBusiness Process Composerユーザーがプロセス・プレーヤを使用できるようになります。BPMプロジェクトでの編集権限があればどのユーザーでもプロセス・プレーヤを実行できます。

A BPMNフロー・オブジェクト・リファレンス

ここでは、Oracle BPMでサポートされる各BPMN 2.0フロー・オブジェクトの詳細を説明します。

この章では、オラクル社のBPMN 2.0の実装に関する具体的な情報について説明します。営業見積サンプル・プロジェクトを使用したBPMNの概要説明については、付録F「営業見積サンプル・プロセス」を参照してください。正式な仕様を含むBPMNの一般的な情報については、http://www.bpmn.orgを参照してください。

この章は、ビジネス・プロセスで実行する必要がある様々なタイプのタスクで構成されています。この章には次の項が含まれます。

- A.1項「スイムレーンを使用したプロセスの整理」

- A.2項「プロセスの開始点および終了点の定義」

- A.3項「プロセスへのユーザー相互作用の追加」

- A.4項「他のプロセスおよびサービスとの通信」

- A.5項「Oracle Business Rulesを使用したビジネス・ロジックの追加」

- A.6項「シーケンス・フローを使用したプロセス・フローの制御」

- A.7項「ゲートウェイを使用したプロセス・フローの制御」

- A.8項「中間イベントを使用したプロセス・フローの制御」

- A.9項「Oracle BPMでのサブプロセスの使用」

- A.10項「プロセス内のデータ・オブジェクトの値の変更」

A.1 スイムレーンを使用したプロセスの整理

この項では、スイムレーンを使用してプロセスを整理する方法を示します。また、ロールを使用してプロセスベースのアプリケーションの作業を実行するビジネス組織のメンバーを決定する方法についても説明します。

A.1.1 ロールの概要

ビジネス・プロセスの設計においては、ユーザー相互作用を必要とする各タスクを完了させる責任を負うユーザーおよびロールを決定することが重要となります。プロセスにおいて、ロールは、ビジネス・プロセス内で実行される作業の実行責任者をモデリングするために使用されます。ロールを使用すると、組織内の職務や責任を表す機能上のカテゴリを定義できます。

また、プロセスに定義されたロールは、論理ロールとも呼ばれます。Oracle BPMプロジェクトがランタイム環境にデプロイされると、これらのロールは、実際の組織におけるユーザーに対応するLDAPロールにマップされます。

ロールは水平のスイムレーンに割り当てられます。スイムレーンには、プロセス内のアクティビティおよびタスクを完了する責任を負うロールが表示されます。Business Process Composerを使用すると、プロセス内で必要なロールを作成および編集して、それらをスイムレーンに割り当てることができます。

Oracle BPM Studioを使用すると、LDAPを使用する特定のユーザーにロールをマップすることもできます。また、Oracle BPM Studioでは、組織単位、カレンダおよび休日を使用して、より堅牢な組織モデルを作成できます。詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

A.1.1.1 コンテキスト内のロール

プロセス・アナリストは、ビジネス・プロセスを設計するときにどのようなロールが必要となるかを決定します。

営業見積サンプルでは、次のロールが定義されています。

- 営業担当者: 営業担当者は、プロジェクトに定義された他のロールによって承認されるまでの間における、営業見積の作成および更新を担当します。

- 承認者: 承認者は、営業見積で定義された製品と価格設定構成の組合せの承認を担当します。

- ビジネス実行: このロールは、営業見積の参照および承認を担当するユーザーを表します。これらのユーザーは、営業見積のレビューにおいて、追加の承認者を追加する権限も持っています。

- 契約: このロールは、営業見積に指定された条項の承認を担当するユーザーを表します。これらのユーザーは、顧客に転送可能な正式な法的文書の作成も担当します。

営業見積サンプル・プロジェクトの詳細は、F.2項「営業見積サンプルの概要」を参照してください。

A.1.2 スイムレーンの概要

スイムレーンは、プロセス・エディタに水平方向に描かれた線です。すべてのフロー・オブジェクトは、スイムレーン内に配置する必要があります。

スイムレーンは、プロセス内に定義されたロールに基づいてフロー・オブジェクトをグループ化するためにも使用します。ユーザー・タスクを含むスイムレーンには、ロールが割り当てられている必要があります。スイムレーンには、プロセス内の各フロー・オブジェクトの実行を担当するロールが視覚的に表示されます。さらに、同じロールに複数のスイムレーンを割り当てることもできます。

同じプロセスの様々な部分で同一のロールを使用する必要がある場合は、スイムレーンを使用するとプロセスがわかりやすくなります。

新しいプロセスを作成すると、Oracle BPM StudioおよびBusiness Process Composerによってデフォルトのスイムレーンが作成されます。必要に応じて、プロセスに追加のスイムレーンを追加できます。プロセスに対話型アクティビティや手動アクティビティを追加する場合は、スイムレーンにロールを割り当てる必要があります。

注意:

プロセスの開始イベントまたは終了イベントのみを含むスイムレーンは削除できません。

A.1.2.1 コンテキスト内のスイムレーン

図A-1は、複数のスイムレーンにスプリットされた単純なプロセスを示しています。この例では、営業担当者ロールが最初のスイムレーンに割り当てられています。このスイムレーン内には見積入力ユーザー・タスクが表示されているため、営業担当者ロールに割り当てられているプロセス参加者は、このタスクの実行を担当します。

図A-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス

「図A-1 2つのスイムレーンにスプリットされた、単純なビジネス・プロセス」の説明

実際のビジネス・プロセスでは、スイムレーンの組合せ、およびスイムレーン内のフロー・オブジェクトが複雑になる場合があります。付録F「営業見積サンプル・プロセス」で説明している営業見積サンプル・プロジェクトは、複数のスイムレーンを使用したより複雑なプロセスの例です。

A.1.3 プロセスにロールおよびスイムレーンを追加する方法

BPMNプロセスにロールおよびスイムレーンを追加できます。

プロセスに新しいスイムレーンを追加するには:

1. プロセス・エディタ・キャンバスの白い領域を右クリックします。

2. 「レーンの追加」を選択します。

新しいスイムレーンが作成されます。デフォルトでは、スイムレーンにロールは割り当てられていません。ロールを追加するには、スイムレーンのプロパティを編集します。

新しいフロー・オブジェクトを追加してプロセスに新しいスイムレーンおよびロールを追加するには:

1. スイムレーンを追加するプロセスを開きます。

2. コンポーネント・パレットからフロー・オブジェクトを選択し、それを既存のスイムレーンの下のプロセス・キャンバスにドラッグ・アンド・ドロップします。

新しいスイムレーンが作成されます。デフォルトでは、スイムレーンにロールは割り当てられていません。ロールを追加するには、スイムレーンのプロパティを編集します。

A.1.4 スイムレーンのプロパティを編集する方法

スイムレーンのプロパティはプロセス・エディタで編集できます。

スイムレーンのプロパティを編集するには:

1. スイムレーンのロール名にカーソルを移動します。

2. 「編集」アイコンをクリックします。

3. 既存のロールを使用するか、または新しいロールを作成するかを決定します:
既存のロールをスイムレーンに割り当てるには:

1. 「使用」ボタンをクリックします。

2. ドロップダウン・リストからロールを選択します。

新しいロールをスイムレーンに割り当てるには:

1. 「作成」ボタンをクリックします。

2. テキスト・フィールドに、新しいロールの名前を入力します。

4. (オプション)カスタム・アイコンをスイムレーンに追加するには、「変更」をクリックし、使用するアイコンを選択します。

5. (オプション)スイムレーンの背景色を変更するには:

1. 「実装」をクリックします。

2. 実装プロパティ・エディタで、色のRGB値を入力するか、カラー・パレットから色を選択します。

3. 「変更の適用」をクリックします。

A.1.5 Business Process ComposerとBPM Studioとの間でのロールの共有

Oracle BPM Studioでは、組織単位、カレンダおよび休日に基づいて、複雑な組織モデル内にロールを統合できます。

Business Process Composerでプロジェクト・テンプレートに基づいてプロジェクトを作成または編集するときに、そのプロジェクト内に定義されたロールにアクセスできます。ただし、プロジェクト内に定義された組織情報は表示または編集できません。

また、Business Process Composerを使用して新しいロールを作成することもできます。これらのロールは、プロジェクトの全体的な組織情報の一部として統合されます。

A.2 プロセスの開始点および終了点の定義

この項では、プロセスの開始と終了を定義するために使用するBPMNフロー・オブジェクトについて説明します。

A.2.1 開始イベントと終了イベントの概要

開始イベントは、プロセスの開始点を定義するBPMNフロー・オブジェクトです。開始イベントには様々なタイプがあり、それによってプロセス・インスタンスの作成方法が定義されます。

一方、終了イベントはプロセスの終了点を定義します。終了イベントには様々なタイプがあり、それによってプロセス・インスタンス完了時の処理が定義されます。

注意:

Oracle BPMでは、すべてのBPMNプロセスに少なくとも1つの開始イベントと1つの終了イベントが必要です。

開始イベントではプロセスの始まりを定義するため、受信シーケンス・フローは含まれません。同じく、終了イベントには送信シーケンス・フローを含めることができません。

ただし、None開始イベントとNone終了イベント以外の開始イベントと終了イベントには、プロセスへの入力と出力を含めることができます。

A.2.1.1 様々なタイプのプロセスに対する開始イベントの指定

新しいプロセスを作成すると、Business Process Composerではメッセージ開始イベントとメッセージ終了イベントが作成されます。

これらのデフォルトは、作成するビジネス・プロセスのタイプに応じて変更できます。表A-1は、各プロセス・タイプのデフォルトの開始イベントと終了イベントを示しています。

表A-1 各プロセス・タイプの開始イベントおよび終了イベント

プロセス・タイプ

デフォルトの開始イベント・タイプおよび終了イベント・タイプ

非同期サービス

メッセージ開始イベントおよび終了イベント

同期サービス

メッセージ開始イベントおよび終了イベント

手動プロセス

None開始イベントおよび終了イベント

Oracle BPMでサポートされている様々なタイプのプロセスの詳細は、5.1項「ビジネス・プロセスの概要」を参照してください。

サブプロセスには、デフォルトでNone開始イベントおよびNone終了イベントが含まれています。これらは必須の開始イベントおよび終了イベントであり、変更できません。

イベント・サブプロセスには、デフォルトでメッセージ開始イベントおよびNone終了イベントが含まれています。ただし、処理するイベントのタイプに応じて、開始イベントを変更できます。

A.2.1.2 1プロセスでの複数の開始イベントの使用

1つのBPMNプロセスに、複数の開始点を定義できます。複数の開始点を定義すると、使用される開始イベントに応じて、プロセス・インスタンスの複数の作成方法を指定できます。

図A-2は、メッセージ開始イベントとタイマー開始イベントの両方を含むプロセスの例を示しています。

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

「図A-2 1プロセスでの複数の開始イベントの使用」の説明

このプロセスは、他のプロセスまたはサービスから呼び出されたときにメッセージ・イベントを使用して開始できます。また、プロセス・インスタンスを自動的に作成する必要がある場合は、一定の時間間隔に基づいて開始することもできます。

複数の開始イベントを使用すると、2つの異なるプロセスを作成することなく、1つのプロセスが複数の方法で開始されるようにできます。

A.2.1.3 1プロセスでの複数の終了イベントの使用

終了イベントは、プロセス・パスの終わりを示します。プロセスに1つしか終了イベントがないときに、トークンがその終了イベントに到達すると、終了イベント到達時にプロセスが停止します。

注意:

メッセージ終了イベントを使用できるのは、メッセージ開始イベントによって開始したプロセスを終了する場合のみです。さらに、複数のメッセージ終了イベントを1つのメッセージ開始イベントに関連付けた場合、各メッセージ終了イベントには同じ数とタイプの出力引数を設定する必要があります。

複数の終了イベントを使用している場合は、1プロセス内で様々なトークンが様々なパスを経由する可能性があります。通常は、すべてのパラレル・パスが終了イベントに達して初めてプロセスが完了します。

ただし、次のような特別な場合には、すべてのプロセス・パスが完了する前にプロセス・インスタンスが停止することがあります。

- エラー終了イベント: エラー終了イベントに達すると、すべてのプロセス・アクティビティが停止します。エラー・スロー・イベントと同様に、エラー終了イベントでは、プロセスのフローが停止されます。詳細は、A.2.9項「エラー終了イベントの概要」を参照してください。

- 強制終了イベント: 強制終了イベントが発生すると、プロセス上のすべての作業が即時に停止します。エラー処理や、その他の実行中プロセスのクリーン・アップは行われません。詳細は、A.2.11項「強制終了イベントの概要」を参照してください。

A.2.2 プロセス・インスタンスのトリガー方法の定義

Oracle BPMでは、プロセス・インスタンスをトリガーするために次の方法がサポートされています。

- メッセージ開始イベント、シグナル開始イベントまたはタイマー開始イベントを使用する方法。詳細は、次の各項を参照してください。

- A.2.4項「メッセージ開始イベントの概要」

- A.2.5項「シグナル開始イベントの概要」

- A.2.6項「タイマー開始イベントの概要」

- None開始イベントを使用し、その後で受信タスクを使用。プロセス・インスタンスを作成するために受信タスクを構成する必要があります。詳細は、A.4.5項「受信タスクの概要」を参照してください。

- None開始イベントを使用し、その後でイニシエータ・パターンで定義したユーザー・タスクを使用。詳細は、A.3.2項「ユーザー・タスクの概要」を参照してください。

- 新しいプロセス・インスタンスを作成するように構成されたイベント・ベース・ゲートウェイを使用する方法。詳細は、4.5項「ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成」を参照してください。

A.2.3 None開始イベントの概要

None開始イベントは、インスタンス・トリガーが明確に定義されていないときに使用します。プロセスで必要な開始イベントが不明な場合、または開始イベントが後でプロセス開発者によって定義および実装される場合、プロセス・アナリストはNone開始イベントをプレースホルダとして使用できます。

図A-3は、None開始イベントのデフォルトの表記を示しています。

図A-3 None開始イベント

「図A-3 None開始イベント」の説明

None開始イベントは、プロセス・インスタンスが別のフロー・オブジェクトで作成される場合に、プロセスの始まりを指定するためにも使用されます。通常、None開始イベントは新しいプロセス・インスタンスの作成をトリガーしません。

ただし、次のタスクとともに使用する場合、None開始イベントは新しいプロセス・インスタンスをトリガーします。

- 受信タスク。受信タスクでは、「インスタンスの作成」プロパティがtrueに設定されている必要があります。

- ユーザー・タスク。イニシエータ・パターンを使用して実装されたユーザー・タスク。

他の開始イベントと同様に、None開始イベントも受信シーケンス・フローを含むことはできません。含むことができるのは、デフォルトの送信シーケンス・フローのみです。

注意:

Noneイベントは、サブプロセスの開始を定義するときに常に使用されます。

A.2.3.1 コンテキスト内のNone開始イベント

図A-4は、営業見積サンプル・プロジェクト内のNone開始イベントの例を示しています。この例では、None開始イベントによってプロセスの開始が定義されています。また、プロセスにはイニシエータ・パターンを使用して実装されたユーザー・タスクが含まれているため、None開始イベントによってプロセス・インスタンスがトリガーされます。

図A-4 営業見積サンプル・プロセス内のNone開始イベント

「図A-4 営業見積サンプル・プロセス内のNone開始イベント」の説明

A.2.3.2 データ・アソシエーション

None開始イベントでは、プロセスの入力引数を受け入れません。

A.2.4 メッセージ開始イベントの概要

メッセージ開始イベントは、メッセージを受信するとプロセス・インスタンスをトリガーします。このメッセージは、別のBPMNまたはBPELプロセス、あるいはサービスから送信されます。

メッセージとは、プロセス間で情報を交換するために使用されるタイプのデータです。データ・オブジェクトが、プロジェクト内で使用されるデータを定義するために使用されるのと同様に、メッセージは、プロセス間またはプロセスとサービスとの間で使用されるデータを定義するために使用されます。

図A-5は、メッセージ開始イベントのデフォルトの表記を示しています。

図A-5 メッセージ開始イベント

「図A-5 メッセージ開始イベント」の説明

他の開始イベントと同様に、メッセージ開始イベントには受信シーケンス・フローを含めることができません。メッセージ開始イベントには、デフォルトの送信シーケンス・フローが必要です。

他のプロセスやアプリケーションがプロセスを起動できるように、BPMNプロセスをサービスとして公開できます。プロセスをサービスとして公開するには、プロセスをメッセージ開始イベントで開始する必要があります。また、プロセスへの入力引数(メッセージ開始イベントに渡されるデータ・オブジェクト)を定義する必要があります。詳細は、14.1項「プロセスの入力および出力の定義」を参照してください。

A.2.4.1 コンテキスト内のメッセージ開始イベント

図A-6は、営業見積プロセスの修正バージョンを示しています。ここでは、プロセスは、プロセス・インスタンスを開始するメッセージ開始イベントから開始されています。

図A-6 営業見積サンプル・プロセス内のメッセージ開始イベント

「図A-6 営業見積サンプル・プロセス内のメッセージ開始イベント」の説明

A.2.4.2 プロセスの入力引数と出力引数の使用

メッセージ開始イベントを使用すると、プロセスに対して入力引数および出力引数を指定できます。これらの引数では、他のプロセスやサービスがプロセスを呼び出すときに送信する必要があるメッセージが定義されます。プロセスの入力および出力引数を構成する方法については、14.1項「プロセスの入力および出力の定義」を参照してください。

A.2.5 シグナル開始イベントの概要

シグナル開始イベントは、別のプロセスまたはサービスからの通信に基づくという点でメッセージ開始イベントに似ています。ただし、メッセージ開始イベントは、特定のプロセスに送信されたメッセージに応答します。対照的に、シグナル開始イベントは複数のプロセスにブロードキャストされたシグナルに対するレスポンスです。

シグナルは、BPMNプロセスからシグナル・スロー・イベントを使用してブロードキャストできます。シグナル・スロー・イベントとシグナル開始イベントを組み合せて使用すると、複数のプロセスを同時に起動できます。

シグナル開始イベントとシグナル・スロー・イベントは、プロセス開発者によってプロセスに追加されます。シグナル・スロー・イベントの実装の詳細は、Oracle BPMモデリングおよび実装ガイドのシグナル・イベントを使用したプロセス間の通信の概要を参照してください。

図A-7は、シグナル開始イベントのデフォルトの表記を示しています。

図A-7 シグナル開始イベント

「図A-7 シグナル開始イベント」の説明

A.2.5.1 コンテキスト内のシグナル開始イベント

シグナル開始イベントおよびシグナル・スロー・イベントは、プロセス開発者によってプロセスに追加され、実装されます。

A.2.6 タイマー開始イベントの概要

タイマー開始イベントは、特定の時間条件に基づいてプロセス・インスタンスの作成をトリガーします。タイマー開始イベントは、次の内容に基づいてプロセス・インスタンスをトリガーするように構成できます。

- 特定の日付および時刻。たとえば、12月31日の午後11時59分にプロセスをトリガーできます。

- 繰返し間隔。たとえば、10時間ごと、5分ごと、32秒ごとにプロセスをトリガーできます。

図A-8は、タイマー開始イベントのデフォルトの表記を示しています。

図A-8 タイマー開始イベント

「図A-8 タイマー開始イベント」の説明

A.2.7 エラー開始イベントの概要

エラー開始イベントは、インライン・ハンドラの開始イベントとして使用されます。インライン・ハンドラを使用して、プロセス内で発生するエラーに対応する個別のプロセス・フローを定義できます。

図A-9は、None終了イベントのデフォルトの表記を示しています。

図A-9 エラー開始イベント

「図A-9 エラー開始イベント」の説明

注意:

注意: エラー開始イベントを使用できるのは、インライン・ハンドラ内のみです。通常のプロセス・フロー内では使用できません。

複数のインライン・ハンドラを指定して、エラーの状況に対応できます。ただし、同じ例外を使用するインライン・ハンドラを複数定義することはできません。

A.2.8 None終了イベントの概要

None終了イベントは、プロセス・パスの終わりを示すために使用します。トークンは、None終了イベントに到達すると消費されます。プロセス・インスタンス内に他のトークンがない場合は、インスタンスが完了します。

None終了イベントは、プロセス完了後にアクションを実行する必要がない場合に使用します。また、このイベントは、後で実装時にプロセス開発者が変更するためのプレースホルダとして、プロセス・アナリストが使用することもできます。

図A-10は、None終了イベントのデフォルトの表記を示しています。

図A-10 None終了イベント

「図A-10 None終了イベント」の説明

None終了イベントは、サブプロセスおよびイベント・サブプロセスの終わりを示すときに常に使用されます。

A.2.8.1 コンテキスト内のNone終了イベント

図A-11は、営業見積サンプル内のNone終了イベントの例を示しています。この例では、営業見積サービス・タスクを使用して、営業見積に関する情報をデータベースに保存しています。

図A-11 営業見積サンプル内のNone終了イベント

「図A-11 営業見積サンプル内のNone終了イベント」の説明

トークンがプロセスの終わりに到達した場合は、他の作業を実行できないため、None終了イベントが使用されています。プロセス・トークンがすべてNone終了イベントに到達すると、プロセス・インスタンスが完了します。

A.2.9 エラー終了イベントの概要

エラー終了イベントは、エラー状態が原因でプロセスを終了する場合に使用します。

通常、エラー終了イベントは、エラー境界イベントとともに使用します。エラー境界イベントは、特定のエラーに基づいてプロセス・フローを変更するために使用します。通常、エラー境界イベントを使用したフローは、エラー終了イベントを使用して終了します。エラー中間イベントの使用方法の詳細は、A.8.3項「エラー・キャッチ・イベントの概要」を参照してください。

図A-12は、エラー終了イベントのデフォルトの表記を示しています。

図A-12 エラー終了イベント

「図A-12 エラー終了イベント」の説明

エラー終了イベントの実装の詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

A.2.10 メッセージ終了イベントの概要

メッセージ終了イベントは、プロセス完了時に他のプロセスやサービスにメッセージを送信するために使用します。メッセージ終了イベントは、常にメッセージ開始イベントまたはメッセージ・キャッチ・イベントとともに使用します。

注意:

複数の終了イベントを持つプロセスを作成する場合は、メッセージ終了イベントに到達するすべてのトークンがメッセージ開始イベントによって作成されることを確認する必要があります。たとえば、タイマー開始イベントによって開始されたプロセス・インスタンスを終了するためにメッセージ終了イベントを使用することはできません。

図A-13は、メッセージ終了イベントのデフォルトの表記を示しています。

図A-13 メッセージ終了イベント

「図A-13 メッセージ終了イベント」の説明

メッセージ終了イベントを使用してプロセスの出力引数を構成する方法については、14.1項「プロセスの入力および出力の定義」を参照してください。

A.2.11 強制終了イベントの概要

強制終了イベントは、即時にプロセスを停止するために使用します。強制終了イベントに到達すると、プロセスは即時に停止します。エラー処理や、追加のクリーン・アップは行われません。

A.3 プロセスへのユーザー相互作用の追加

多くのビジネス・アプリケーションでは、組織内のプロセス参加者からの相互作用が必要です。相互作用は、フォームに情報を入力するなどの単純な操作の場合や、複数のワークフローおよび複数のユーザーが関与する場合があります。

この項では、プロセス参加者がビジネス・プロセスと相互作用する方法をモデリングするために使用されるBPMNフロー・オブジェクトについて説明します。この項の内容は次のとおりです。

- A.3.1項「ヒューマン・ワークフローの概要」

- A.3.2項「ユーザー・タスクの概要」

- A.3.3項「手動タスクの概要」

A.3.1 ヒューマン・ワークフローの概要

多くのエンドツーエンドのビジネス・プロセスでは、プロセスとの手動による相互作用が必要です。承認、例外管理、ビジネス・プロセスを進めるために必要なアクティビティの実行などにユーザーの相互作用が必要となります。

Oracle Human Workflowでは、次の機能によってユーザーの参加が包括的にサポートされます。

- 適切なユーザーまたはグループに対するタスクの割当ておよびルーティングを含む、プロセスとの手動による相互作用

- タスクが適切なタイミングで実行されることを保証するために必要な期限、エスカレーション、通知およびその他の機能。

- プロセス参加者が各自のタスクを実行するときの生産性を向上するために必要な組織、フィルタ、優先順位付けおよびその他の機能。

- スーパーバイザおよびビジネス所有者がタスクのパフォーマンスを管理するために必要なレポート、再割当て、ロード・バランシングおよびその他の機能。

詳細は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドのヒューマン・ワークフローの概要を参照してください。

A.3.1.1 ヒューマン・タスクの概要

ヒューマン・タスクは、Oracle Human Workflowのコンポーネントの1つです。ヒューマン・タスクを使用すると、エンドツーエンドのプロセス・フロー内のシステムおよびサービスとの接続を使用して、手動による相互作用をインタリーブできます。ヒューマン・タスクの役割は、ビジネス・プロセスに参加しているユーザーおよびグループのすべての相互作用を処理することです。これを行うために、組織内で該当するユーザーのタスクを作成して追跡しています。ユーザーは通常、ワークリスト・アプリケーション、電子メール、ポータル、カスタム・アプリケーションなどの各種クライアントを通じてタスクにアクセスします。

プロセス開発者は、ヒューマン・タスクを使用して、Oracle BPM SuiteおよびOracle SOA Suiteを使用して作成されたプロセスベースのアプリケーションとプロセス参加者との相互作用の方法を定義できます。

プロセス開発者はヒューマン・タスクを使用して次の要素を作成することで、エンド・ユーザー相互作用のインタフェースとワークフローを定義できます。

- ロールと割当て

- 期限とエスカレーション

- プレゼンテーション

ヒューマン・タスクは、同じUIを使用する他のプロセス内で使用できる再使用可能なサービスです。ヒューマン・タスクは、Oracle BPM Studioを使用して作成されます。

A.3.2 ユーザー・タスクの概要

ユーザー・タスクは、プロセス内で、プロセス参加者が作業を実行する必要がある部分を表します。ユーザー・タスクは、フォームへの入力などの単純な相互作用である場合もあれば、複数のプロセス参加者からの入力を必要とする複雑なワークフローの一部である場合もあります。

図A-14は、ユーザー・タスクのデフォルトの表記を示しています。

図A-14 ユーザー・タスク

「図A-14 ユーザー・タスク」の説明

Oracle BPM Suiteでは、プロセス参加者はプロセス・ワークスペースを使用してビジネス・アプリケーションと相互作用を行います。プロセス参加者に対して表示される画面やパネルなどの具体的なユーザー・インタフェース要素は、ヒューマン・タスクを使用して作成します。

プロセスの設計時には、多くの場合、プロセス・アナリストがユーザー・タスクをプロセス図に追加します。その後、プロセス開発者が必要なヒューマン・タスクを作成し、プロセスベースのビジネス・アプリケーション作成の構成要素として実装します。

トークンがユーザー・タスクに到達すると、対応するヒューマン・タスクが実行されます。トークンは、ヒューマン・タスクが完了するまで待機してから、次のフロー・オブジェクトに移動します。

ビジネス・カタログの要素をユーザー・タスクに割り当てる手順については、5.5.1項「ビジネス・カタログ・コンポーネントをフロー・オブジェクトに割り当てる方法」を参照してください。

ユーザー・タスクの実装方法の詳細は、Oracle BPMモデリングおよび実装ガイドのヒューマン・タスクの使用を参照してください。

他のフロー・オブジェクトと同様、ユーザー・タスクには受信および送信データ・アソシエーションを含めることができます。

また、ユーザー・タスクには、受信シーケンス・フローおよびデフォルトの送信シーケンス・フローを含めることもできます。

A.3.2.1 コンテキスト内のユーザー・タスク

営業見積サンプルでは、見積入力タスク(図A-15を参照)は見積情報を入力する作業を表します。

図A-15 見積入力ユーザー・タスク

「図A-15 見積入力ユーザー・タスク」の説明

ユーザーが営業見積に関する情報を入力すると、プロセス・フローは送信シーケンス・フローに従ってプロセス内の次のフロー・オブジェクトに移動します。

A.3.2.2 対話型アクティビティの使用

Oracle BPM Studioを使用すると、対話型アクティビティをコンポーネント・パレットからプロセスに直接追加できます。対話型アクティビティは、Oracle Human Workflowのタスク・ルーティング機能および承認機能に基づくショートカットです。詳細は、Oracle Fusion Middleware Oracle SOA Suite開発者ガイドのヒューマン・ワークフローの概要を参照してください。

表A-2は、Business Process Composerのコンポーネント・パレットで利用できる対話型アクティビティを示しています。

表A-2 対話型アクティビティ

パターン

説明

複合

ヒューマン・タスク内に定義されている複雑なルーティング・フローを使用します。

管理

スイムレーンに割り当てられたグループまたはロールに属するプロセス参加者の管理チェーン・パターンに割当て先を設定する管理チェーン・パターンを使用します。

FYI

割当てはスイムレーンに定義された参加者、ロールまたはグループに基づきます。FYIアクティビティはユーザー対話型アクティビティに類似していますが、完了を待機せずに処理を続行する点が異なります。

グループ

グループ投票パターンを使用します。タスクの割当て先はレーンに関連付けられたロールまたはグループに自動的に設定されます。この対話型アクティビティはロールまたはグループに関連付けられたスイムレーンにのみ追加できます。

イニシエータ

イニシエータ・パターンは、プロセス・インスタンスを作成するために使用します。

A.3.2.3 プロジェクト・テンプレートでのユーザー・タスクの使用

Oracle BPM Studioを使用して、ヒューマン・タスクをビジネス・カタログに追加できます。プロセス・アナリストは、プロジェクト・テンプレートから作成されたプロジェクトを使用するときに、Business Process Composerでこれらのヒューマン・タスクを使用できます。

ユーザー・タスクをプロジェクト・テンプレートに追加してBusiness Process Composer内で使用する場合は、次のガイドラインに従ってください。

- プロセス開発者は、Business Process Composerでテンプレートを使用する前に、必要なすべてのヒューマン・タスク・サービスをOracle BPM Studioで作成する必要があります。ヒューマン・タスクは、ユーザー・タスク内に実装することも、プロジェクト・テンプレートに基づいてプロジェクトを編集するときに実装することもできます。

- ただし、プロジェクト・テンプレート内でシールされたユーザー・タスクに対してヒューマン・タスク・サービスを実装する場合は、Business Process Composerでプロジェクト・テンプレートを使用する前にも実装を行う必要があります。

A.3.3 手動タスクの概要

手動タスクは、Oracle BPMのスコープ外のプロセス参加者が実行するタスクを表します。手動タスクはプロセス内のプレースホルダとして使用され、ランタイム時にBPMNサービス・エンジンによって管理されない作業を示します。また、手動タスクはプロセス・ワークスペース・アプリケーションには表示されません。

注意:

手動タスクはOracle BPMによって管理されません。Oracle BPMランタイムでは、手動タスクの開始および完了は追跡されません。

図A-16は、手動タスクのデフォルトの表記を示しています。

図A-16 手動タスク

「図A-16 手動タスク」の説明

手動タスクでは、デフォルト受信シーケンス・フローとデフォルト送信シーケンス・フローをそれぞれ1つのみ使用できます。

多くのBPMNフロー・オブジェクトと異なり、手動タスクではデータ・オブジェクトを操作できません。以前のフロー要素に関連付けられたデータ・オブジェクトはそのままの状態で次のフロー要素に渡されます。

A.3.3.1 コンテキスト内の手動タスク

営業見積サンプルのコンテキストでは、図A-17に示すように正式な契約書を印刷して署名するための手動タスクを追加できます。

図A-17 手動タスクの例

「図A-17 手動タスクの例」の説明

この例では、正式な契約書への署名をビジネス・プロセスの一部として明示的に示す必要がありますが、署名はBPMNサービス・エンジンによって管理されないため、手動タスクが使用されています。

A.3.4 更新タスクの概要

更新タスクは、1つ以上のヒューマン・タスクに対して操作を実行する場合に使用します。たとえば、更新タスクを使用して、別のユーザーへのタスクの再割当てなどのアクションを実行できます。

図A-18は、更新タスクのデフォルトの表記を示しています。

図A-18 更新タスク

「図A-18 更新タスク」の説明

更新タスクの使用方法の詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

A.4 他のプロセスおよびサービスとの通信

Oracle BPMでは、プロセス指向アプリケーション内のビジネス・プロセス間の相互作用を定義できます。以降の項では、プロセス間の通信のモデリングに使用されるBPMNフロー・オブジェクトについて説明します。

この項では、Business Process Composerを使用してプロセス・モデルを作成する場合のこれらのフロー・オブジェクトの使用方法について説明します。プロセスベースのアプリケーションにおけるこれらのフロー・オブジェクトの実装方法の詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

A.4.1 サービス・タスクの概要

サービス・タスクを使用すると、他のプロセスおよびサービスと通信できます。プロセス・アナリストは、プロセスで外部サービスまたは外部プロセスを呼び出す必要がある場合、サービス・タスクを追加できます。

その後、プロセス開発者は必要なサービスを実装できます。サービス・タスクを使用して、次を呼び出すことができます。

- 他のBPMNプロセス

- BPELプロセス

- SOAサービス・アダプタ

- サービスとして公開されているメディエータ

ビジネス・カタログの要素をサービス・タスクに割り当てる手順については、5.5.1項「ビジネス・カタログ・コンポーネントをフロー・オブジェクトに割り当てる方法」を参照してください。

サービス・タスクの動作は、送信タスクと受信タスクのペアの動作、およびメッセージ・スロー・イベントとメッセージ・キャッチ・イベントのペアの動作と似ています。主な違いは、サービス・タスクがプロセスおよびサービスを同期的に起動するために使用される点です。サービス・タスクがプロセスやサービスを起動すると、レスポンスが返されるまで、トークンはサービス・タスクで待機します。レスポンスを受信した後、トークンはプロセス内の次のシーケンス・フローに移動します。

サービスおよびBPMNプロセスを使用したサービス・タスクの実装方法の詳細は、Oracle BPMモデリングおよび実装ガイドのサービス・タスクを使用した、サービスおよびBPMNプロセスの同期操作の起動を参照してください。

図A-19は、サービス・タスクのデフォルトの表記を示しています。

図A-19 サービス・タスク

「図A-19 サービス・タスク」の説明

A.4.1.1 コンテキスト内のサービス・タスク

図A-20は、完成した営業見積をデータベースに保存するために使用されるサービス・タスクの例を示しています。

図A-20 営業見積サンプル・プロセス内のサービス・タスク

「図A-20 営業見積サンプル・プロセス内のサービス・タスク」の説明

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

Oracle BPMを使用すると、プロジェクト・テンプレートに再使用可能なサービスを統合できます。これらのサービスは、ビジネス・カタログのコンポーネントです。

A.4.2 通知タスクの概要

通知タスクはサービス・タスクに類似しています。通知タスクは、事前定義されたサービスを使用して、様々なタイプの通知を実行します。さらに、式を使用して、通知タスクで生成された通知を受信するユーザーまたはグループを決定できます。

通知タスクの実装方法の詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

次のようなタイプの通知があります:

- IM: インスタント・メッセージをユーザーまたはグループに送信します。図A-21は、IM通知タスクのデフォルトの表記を示しています。

図A-21 インスタント・メッセージ通知タスク

「図A-21 インスタント・メッセージ通知タスク」の説明

- 電子メール: 電子メールをユーザーまたはグループに送信します。電子メールには添付ファイルを含めることもできます。図A-22は、電子メール通知タスクのデフォルトの表記を示しています。

図A-22 電子メール通知タスク

「図A-22 電子メール通知タスク」の説明

- SMS: SMSメッセージをユーザーに送信します。図A-23は、SMS通知タスクのデフォルトの表記を示しています。

図A-23 SMS通知タスク

「図A-23 SMS通知タスク」の説明

- 音声: ボイスメールをユーザーに送信します。図A-24は、ボイス・メール通知タスクのデフォルトの表記を示しています。

図A-24 ボイスメール通知タスク

「図A-24 ボイスメール通知タスク」の説明

- ユーザー: 使用可能な通知タイプに基づいて、通知をユーザーに送信します。たとえば、ユーザーがボイスメールと電子メールの両方を構成している場合、通知タスクでは両方とも送信します。図A-25は、ユーザー通知タスクのデフォルトの表記を示しています。

図A-25 ユーザー通知タスク

「図A-25 ユーザー通知タスク」の説明

A.4.3 コール・アクティビティの概要

コール・アクティビティを使用すると、再使用可能なプロセスを現在のプロセス内からコールできます。被コール側プロセスは、コール側プロセスの子プロセスになります。再使用可能なプロセスをコールしている場合、親プロセスのコール・アクティビティは、子プロセスが完了するまで待機してから処理を続行します。

図A-26は、コール・アクティビティのデフォルトの表記を示しています。

図A-26 コール・アクティビティ

「図A-26 コール・アクティビティ」の説明

詳細は、A.9.1項「再使用可能なプロセス(再使用可能なサブプロセス)の概要」を参照してください。

親プロセスのデータ・オブジェクトは、再使用可能なプロセスに対して自動的に使用可能になりません。データ・オブジェクトは、コール・アクティビティの引数マッピングを使用して、子プロセスとの間で受け渡す必要があります。

A.4.4 送信タスクの概要

送信タスクでは、現在のプロセス外部のシステムまたはプロセスにメッセージが送信されます。このメッセージが送信されると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

多くの場合、送信タスクは受信タスクと組み合せて使用され、プロセスまたはサービスを起動してレスポンスを受信します。送信タスクおよび受信タスクは非同期的にプロセスおよびサービスを起動するために使用します。プロセスおよびサービスを同期的に起動する場合は、サービス・タスクを使用します。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ開始イベントによって開始されるプロセスは、送信タスクを使用して起動できません。

図A-27は、送信タスクのデフォルトの表記を示しています。

図A-27 送信タスク

「図A-27 送信タスク」の説明

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、Oracle BPMモデリングおよび実装ガイドの送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義を参照してください。

A.4.4.1 コンテキスト内の送信タスク

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、第A章にある「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

A.4.5 受信タスクの概要

送信タスクとは対照的に、受信タスクでは、現在のプロセス外部のシステムまたはプロセスからのメッセージを待機します。このメッセージを受信すると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

図A-28は、受信タスクのデフォルトの表記を示しています。

図A-28 受信タスク

「図A-28 受信タスク」の説明

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、Oracle BPMモデリングおよび実装ガイドの送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義を参照してください。

A.4.5.1 コンテキスト内の受信タスク

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、A.4.6項「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

A.4.5.2 受信タスクによるプロセスの開始

受信タスクを使用して、プロセスの開始をトリガーできます。これは、他のプロセスから送信タスクを使用してプロセスを起動する場合に役立ちます。

受信タスクを使用してプロセスを開始する場合は、次の条件を満たしている必要があります。

- 受信タスクの前にNone開始イベントがあること。

- プロセスに他の開始イベントが含まれていないこと。

- 「インスタンスの作成」プロパティが有効であること。

次の項では、プロセス間の通信で送信タスクおよび受信タスクを使用する方法について説明します。

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

送信タスクおよび受信タスクを使用すると、他のBPMNプロセスを起動して、起動したプロセスからメッセージを受信できます。受信タスクによって開始され、送信タスクを含むプロセスは、Oracle BPMアプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

図A-29は、送信タスクおよび受信タスクを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作の概要を示しています。

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

「図A-29 送信タスクおよび受信タスクを使用した、プロセス間の通信」の説明

次の手順は、送信タスクおよび受信タスクを使用してプロセス間で通信する場合のシナリオの例を示しています。

1. プロセスAが起動されます。

2. プロセスAのトークンが送信タスクに到達します。

3. 送信タスクによって、プロセスBが起動されます。
この動作は、送信タスクの実装によって定義されます。

4. プロセスAのトークンは、プロセスの次のフロー・オブジェクトに進みます。

5. 受信タスクによって、プロセスBのプロセス・インスタンスが開始されます。
受信タスクには、「インスタンスの作成」プロパティが定義されている必要があります。A.4.5.2項「受信タスクによるプロセスの開始」を参照してください。

6. 新しく作成されたトークンがプロセスBに沿って進みます。

7. プロセスの具体的な動作に応じて、次のシナリオが発生する場合があります。

1. プロセスAのトークンが、プロセスBからの送信タスクとペアになっている受信タスクに到達すると、プロセスAのトークンはレスポンスを受信するまで待機します。レスポンスを受信した後、プロセスAのトークンは次のフロー・オブジェクトに移動します。

2. プロセスBのトークンが、プロセスA内の受信タスクとペアになっている送信タスクに到達すると、プロセスBはプロセスAにレスポンスを送信します。プロセスBのトークンは、次のフロー・オブジェクトに移動します。

8. 両方のプロセスが引き続き実行されます。この後に、さらに送信タスクと受信タスクのペアを使用して、2つのプロセス間での通信を定義できます。

A.4.7 メッセージ・スロー・イベントの概要

メッセージ・スロー・イベントを使用すると、他のプロセスまたはサービスにメッセージを送信できます。

図A-30は、メッセージ・スロー・イベントのデフォルトの表記を示しています。

図A-30 メッセージ・スロー・イベント

「図A-30 メッセージ・スロー・イベント」の説明

メッセージ・スロー・イベントを使用すると、次のタイプのプロセスおよびサービスを起動できます。

- 他のBPMNプロセス

- BPELプロセス

- SOAサービス・アダプタ

- サービスとして公開されているメディエータ

プロセス・アナリストは、プロセスにメッセージ・スロー・イベントを追加して、プロセスから他のプロセスやサービスを呼び出す必要がある位置を定義できます。ただし、他のプロセスとの接続の実装は、通常はプロセス開発者が担当します。また、メッセージ・スロー・イベントによって起動されるサービスの作成および実装も、通常はプロセス開発者が担当します。

メッセージ・スロー・イベントの実装方法の詳細は、Oracle BPMモデリングおよび実装ガイドのメッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信を参照してください。

多くの場合、メッセージ・スロー・イベントは、他のプロセスのメッセージ開始イベントを呼び出すことによって他のBPMNプロセスを起動するために使用します。詳細は、A.2.4項「メッセージ開始イベントの概要」を参照してください。

また、多くの場合、メッセージ・スロー・イベントは、起動したプロセスまたはサービスからレスポンスを受信するメッセージ・キャッチ・イベントとともに使用します。ただし、メッセージ・スロー・イベントは常に非同期的に使用されます。メッセージ・スロー・イベントから他のプロセスまたはサービスにメッセージが送信された後、トークンは即時にプロセスの次のフロー・オブジェクトに移動します。

プロセスで同期的にレスポンスを受信する場合は、サービス・タスクを使用してプロセスまたはサービスを起動します。詳細は、A.4.1項「サービス・タスクの概要」を参照してください。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ受信タスクによって開始されるプロセスをメッセージ・スロー・イベントを使用して起動することはできません。

A.4.8 メッセージ・キャッチ・イベントの概要

メッセージ・キャッチ中間イベントでは、別のプロセスまたはサービスからのメッセージを受信できます。

図A-31は、メッセージ・キャッチ・イベントのデフォルトの表記を示しています。

図A-31 メッセージ・キャッチ・イベント

「図A-31 メッセージ・キャッチ・イベント」の説明

多くの場合、メッセージ・キャッチ・イベントは、他のBPMNプロセスと通信するためのメッセージ・スロー・イベントとともに使用されます。メッセージ・スロー・イベントとメッセージ・キャッチ・イベントを組み合せて使用する方法の詳細は、A.4.9項「メッセージのスロー・イベントおよびキャッチ・イベントを使用した、プロセス間の通信」を参照してください。

メッセージ・スロー・イベントの実装方法の詳細は、Oracle BPMモデリングおよび実装ガイドのメッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信を参照してください。

A.4.9 メッセージのスロー・イベントおよびキャッチ・イベントを使用した、プロセス間の通信

スロー・イベントとキャッチ・イベントを組み合せて使用することによって、他のBPMNプロセスを起動したり、他のBPMNプロセスと通信できます。スロー・イベントを使用して他のプロセスを起動する場合は、次の条件を満たしている必要があります。

- 起動されるプロセスは、非同期プロセスである必要があります。メッセージ・スロー・イベントを使用して同期プロセスを起動することもできますが、起動したプロセスから同期的にメッセージをキャッチするメカニズムは用意されていません。
同期プロセスを起動する場合は、サービス・タスクを使用します。詳細は、A.4.1項「サービス・タスクの概要」を参照してください。

- 最初にメッセージ・スロー・イベントを使用する場合は、他のプロセスのメッセージ開始イベントとペアにする必要があります。これは、プロセス・インスタンスをトリガーするために必要となります。インスタンスがトリガーされた後は、2つ目のプロセスによってキャッチされる後続のメッセージ・スロー・イベントを使用できます。

メッセージ開始イベントで開始し、メッセージ終了イベントで終了するプロセスは、Oracle BPMアプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

他のプロセスから起動されたプロセスは、子プロセスであるとはみなされません。このことは、強制終了イベントをプロセスの終了点として使用するプロセスを設計する場合に重要となります。たとえば、コール側プロセスの終了イベントでは、メッセージ・スロー・イベントによって起動されたプロセスは停止しません。

図A-32は、メッセージ・スロー・イベントおよびキャッチ・イベントを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作を示しています。

図A-32 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用

「図A-32 プロセス間でのメッセージのスロー・イベントおよびキャッチ・イベントの使用」の説明

次の手順は、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントを使用してプロセス間で通信を行う場合のシナリオの例を示しています。

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つのプロセス間での通信を定義できます。

A.5 Oracle Business Rulesを使用したビジネス・ロジックの追加

この項では、ビジネス・ルール・タスクを使用してビジネス・プロセス内にOracle Business Rulesを取り込む方法について説明します。Business Process ComposerによるOracle Business Rulesの使用方法の詳細は、第13章「Oracle Business Rulesの使用」を参照してください。

A.5.1 Oracle Business Rulesの概要

ビジネス・ルールは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。

A.5.2 ビジネス・ルール・タスクの概要

ビジネス・ルール・タスクを使用すると、プロセス内にOracle Business Rulesを取り込むことができます。

図A-33は、ビジネス・ルール・タスクのデフォルトの表記を示しています。

図A-33 ビジネス・ルール・タスク

「図A-33 ビジネス・ルール・タスク」の説明

ビジネス・プロセス内にOracle Business Rulesを取り込むユースケースは、主に2つあります。

- 構造ルールの使用
構造ルールを使用すると、ビジネス・プロセス内で使用される計算を実行できます。たとえば、信用度を計算するためにビジネス・ルールを使用できます。

- 運用ルールの使用
運用ルールは、プロセスのフローを変更するために使用します。運用ルールの典型的な使用方法として、ルール・カタログ内のルール条件のチェックの実行があります。その後、出力データ・アソシエーションの一部として、式を使用してデータ・オブジェクトに値を割り当てます。

このシナリオでは、ビジネス・ルール・タスクの直後にゲートウェイが配置されます。このゲートウェイは、データ・オブジェクトの値に従ってプロセス・パスを分岐するために使用されます。

営業見積サンプル内での操作ルールの使用方法の詳細は、A.5.2.1項「コンテキスト内のビジネス・ルール・タスク」を参照してください。

ビジネス・カタログの要素をビジネス・ルール・タスクに割り当てる手順については、5.5.1項「ビジネス・カタログ・コンポーネントをフロー・オブジェクトに割り当てる方法」を参照してください。

A.5.2.1 コンテキスト内のビジネス・ルール・タスク

図A-34は、営業見積サンプル・プロセス内のビジネス・ルール・タスクの例を示しています。

図A-34 営業見積サンプル・プロセス内のビジネス・ルール・タスク

「図A-34 営業見積サンプル・プロセス内のビジネス・ルール・タスク」の説明

A.6 シーケンス・フローを使用したプロセス・フローの制御

この項では、シーケンス・フローを使用してビジネス・プロセスの動作を定義する方法を説明します。

A.6.1 シーケンス・フローの概要

シーケンス・フローでは、プロセス内で作業が実行される順序(シーケンス)が定義されます。シーケンス・フローによって、プロセス内のフロー・オブジェクトが接続され、プロセス内でプロセス・トークンが移動するパスが特定されます。

受信シーケンス・フローは、フロー・オブジェクト内に移動するシーケンス・フローです。送信シーケンス・フローは、フロー・オブジェクトから外部に移動するプロセス・パスを特定するシーケンス・フローです。

多くのフロー・オブジェクトには、受信シーケンス・フローと送信シーケンス・フローの両方が含まれています。ただし、開始イベントと終了イベントは例外です。開始イベントには送信シーケンス・フローのみを含めることができます。終了イベントには受信シーケンス・フローのみ含めることができます。また、イベント・サブプロセスには、受信シーケンス・フローも送信シーケンス・フローも含まれません。

A.6.2 無条件シーケンス・フローの概要

無条件シーケンス・フローは2つのフロー・オブジェクト間の典型的なパスです。デフォルトのシーケンス・フローは図A-35のように矢印線として表示されます。

図A-35 無条件シーケンス・フロー

「図A-35 無条件シーケンス・フロー」の説明

ほとんどのフロー・オブジェクトでは、デフォルト送信シーケンス・フローを1つのみ使用できます。プロセスのパラレル・パスを表す複数の無条件シーケンス・フローを使用できるのは、パラレル・ゲートウェイのみです。

排他ゲートウェイ、包含ゲートウェイおよびConditional Gatewayには、無条件送信シーケンス・フローを使用できません。これらのゲートウェイでは、条件シーケンス・フローおよびデフォルト・シーケンス・フローを使用して、プロセスのフローを決定します。

A.6.3 条件シーケンス・フローの概要

条件シーケンス・フローは、特定の条件に基づいてプロセスのフローを制御するために使用します。無条件シーケンス・フローと同様に、条件シーケンス・フローは、矢印線として表示されます。

図A-36は、2つの送信条件シーケンス・フローと1つのデフォルト・シーケンス・フローを示しています。

図A-36 条件シーケンス・フローとデフォルト・シーケンス・フロー

「図A-36 条件シーケンス・フローとデフォルト・シーケンス・フロー」の説明

送信条件シーケンス・フローを使用できないフロー・オブジェクトもあります。送信条件シーケンス・フローを使用できるのは、次のタイプのゲートウェイのみです。

- 排他ゲートウェイ

- 包含ゲートウェイ(分割)

条件シーケンス・フロー内で使用される条件は、式を使用して定義されます。式エディタを使用して式を定義する方法は、12.7項「式の概要」を参照してください。

A.6.4 デフォルト・シーケンス・フローの概要

条件シーケンス・フローと同様に、デフォルト・シーケンス・フローは排他ゲートウェイ、包含ゲートウェイおよびConditional Gatewayへの送信シーケンス・フローとして使用されます。デフォルト・シーケンス・フローは、いずれの条件もtrueと評価されない場合に、プロセスがこれらのゲートウェイから脱出するパスを表します。

デフォルト・シーケンス・フローは、図A-36のように一方の端にチック・マークが付いた矢印として表示されます。

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

この項では、ゲートウェイを使用してプロセスのフローおよび動作を制御する方法を説明します。

A.7.1 ゲートウェイの概要

ゲートウェイはプロセスのフローを定義するフロー要素です。ゲートウェイはトークンがプロセスを辿るパスを指定します。ゲートウェイはパスの分割とマージによってプロセス内の制御ポイントを定義します。

プロセスのデフォルト・パスに対する例外または逸脱となるパスには、可能なかぎりゲートウェイを使用します。

A.7.1.1 スプリットとマージのペア

次のゲートウェイには分割とマージのペアが必要です。

- パラレル・ゲートウェイ

- 包含ゲートウェイ

- 複合ゲートウェイ

これらのゲートウェイのいずれかをBPMNプロセスに追加すると、Oracle BPM Studioは分割とマージのフロー・オブジェクトを自動的に作成します。

ゲートウェイのマージ部分は常に必要となりますが、必ずしも分割されたすべてのパスをマージ部分に戻す必要はありません。

ゲートウェイで分割されたプロセス・パスのうち、ゲートウェイでマージされないものがあってもかまいませんが、通常はお薦めしません。ゲートウェイのマージ動作の詳細は、後述の各ゲートウェイ・タイプの項を参照してください。

注意:

プロセスからマージ・ゲートウェイを削除すると、対応する分割ゲートウェイも削除されます。

A.7.2 排他ゲートウェイの概要

排他ゲートウェイを使用すると、プロセスを複数のパスに分割できます。ただし、複数の送信シーケンス・フローが存在する場合でも、プロセスが経由するパスは、これらのパスのうちの1つのみです。排他ゲートウェイでは、条件送信シーケンス・フローを使用でき、少なくとも1つのデフォルト送信シーケンス・フローが必要です。

プロセスが条件シーケンス・フローを経由するかどうかを決定するために使用される式を定義できます。詳細は、12.7項「式の概要」を参照してください。

プロセスに排他ゲートウェイに対する複数の送信シーケンス・フローがある場合は、それらが評価される順序を定義できます。評価の順序は、排他ゲートウェイのプロパティで構成します。

複数の条件がtrueに評価される排他ゲートウェイがある場合は、この順序に従って判断された最初の条件シーケンス・フローに移動します。

排他ゲートウェイは、他のゲートウェイとは異なり、分割後、対応するマージをプロセス内に明示的に定義する必要はありません。

図A-37は、排他ゲートウェイのデフォルトの表記を示しています。

図A-37 排他ゲートウェイ

「図A-37 排他ゲートウェイ」の説明

A.7.2.1 コンテキスト内の排他ゲートウェイ

図A-38は、営業見積サンプル内で使用されている排他ゲートウェイの例を示しています。ここでは、排他ゲートウェイは、ビジネス実行のレビューが必要であるかどうかを評価するために使用されます。

図A-38 営業見積サンプル・プロセス内の排他ゲートウェイ

「図A-38 営業見積サンプル・プロセス内の排他ゲートウェイ」の説明

この評価は、送信条件シーケンス・フローに定義された式によって決定されます。評価がtrueである場合、プロセス・フローは「はい」のパスを進みます。評価がfalseである場合、プロセス・フローは、デフォルト送信シーケンス・フローのパスを進みます。

A.7.2.2 排他ゲートウェイのスプリットとマージ

トークンが排他ゲートウェイに到達すると、送信条件シーケンス・フローの1つがtrueに評価されるまで、送信条件シーケンス・フローが評価されます。排他ゲートウェイのプロパティを構成することによって、送信条件シーケンス・フローが評価される順序を定義できます。この構成に基づいて、最初の条件シーケンス・フローの評価がtrueである場合、トークンはこの送信シーケンス・フローに従って次のフロー・オブジェクトに移動します。複数の送信条件シーケンス・フローがある場合は、それらの評価順序を決定できます。trueと評価される送信条件シーケンス・フローが存在しない場合、トークンはデフォルト送信シーケンス・フローに従って移動します。したがって、排他ゲートウェイには、デフォルト送信シーケンス・フローを定義する必要があります。

排他ゲートウェイでは受信シーケンス・フローもマージできます。ただし、プロセス・フロー内の他のパスから受信する可能性がある他のトークンと同期されません。

注意:

他のトークンが排他ゲートウェイのマージに到達した場合、そのトークンもそのまま次のフロー・オブジェクトに渡されます。トークンを同期する場合や、受信シーケンス・フローで評価を実行する場合は、別のタイプのゲートウェイを使用する必要があります。

A.7.3 包含ゲートウェイの概要

包含ゲートウェイを使用すると、プロセスを複数のパスに分割できます。ただし、排他ゲートウェイとは異なり、送信条件シーケンス・フローの評価結果に応じて、トークンは1つ以上のパスに移動する場合があります。

包含ゲートウェイの分割には、少なくとも1つのデフォルト・シーケンス・フローを定義する必要があります。包含ゲートウェイのスプリットには、複数の送信条件シーケンス・フローを指定できます。トークンは、trueと評価されたシーケンス・フローのみに沿って進みます。いずれのシーケンス・フローもtrueと評価されていない場合、トークンはデフォルト・シーケンス・フローに沿って進みます。

図A-39は、包含ゲートウェイのスプリットのデフォルトの表記を示しています。

図A-39 包含ゲートウェイ(スプリット)

「図A-39 包含ゲートウェイ(スプリット)」の説明

図A-40は、包含ゲートウェイのマージのデフォルトの表記を示しています。

図A-40 包含ゲートウェイ(マージ)

「図A-40 包含ゲートウェイ(マージ)」の説明

A.7.3.1 包含ゲートウェイのスプリットとマージ

包含ゲートウェイでは、排他ゲートウェイと同様にプロセスが分割されますが、トークンが複数の送信シーケンス・フローを進むことができる点が異なります。トークンが包含ゲートウェイに到達すると、包含ゲートウェイの条件シーケンス・フローの式が評価されます。

次に、trueと評価された各条件シーケンス・フローに対してトークンが生成されます。trueと評価された条件シーケンス・フローがない場合のみ、デフォルトのシーケンス・フローに対してトークンが生成されます。

これらのトークンは、包含ゲートウェイのマージで結合されます。トークンがマージ・ゲートウェイに到達すると、分割によって生成されたすべてのトークンがマージに到達するまで待機します。すべてのトークンが包含ゲートウェイのマージに到達すると、マージが完了して、トークンはゲートウェイに続く次のシーケンス・フローに移動します。

A.7.4 パラレル・ゲートウェイの概要

パラレル・ゲートウェイを使用して、プロセスを複数のパスに分割すると、プロセス・フローがすべてのパス上を同時に進むようにできます。パラレル・ゲートウェイは、プロセスで複数のタスクをパラレルに実行する必要がある場合に便利です。

図A-41は、パラレル・ゲートウェイのスプリットのデフォルトの表記を示しています。

図A-41 パラレル・ゲートウェイ(スプリット)

「図A-41 パラレル・ゲートウェイ(スプリット)」の説明

図A-42は、パラレル・ゲートウェイのマージのデフォルトの表記を示しています。

図A-42 パラレル・ゲートウェイ(マージ)

「図A-42 パラレル・ゲートウェイ(マージ)」の説明

A.7.4.1 コンテキスト内のパラレル・ゲートウェイ

営業見積のサンプルでは、プロセスの承認ステージでパラレル・ゲートウェイを使用しています。図A-43に、パラレル・ゲートウェイを使用して2つのプロセス・パスを同時に実行する方法を示します。

図A-43 パラレル・ゲートウェイの例

「図A-43 パラレル・ゲートウェイの例」の説明

この例では、2つの異なるプロセス・パスが同時に実行されます。

A.7.4.2 パラレル・ゲートウェイのスプリットとマージ

トークンがパラレル・ゲートウェイに到達すると、パラレル・ゲートウェイでは各送信シーケンス・フローのトークンが作成されます。パラレル・ゲートウェイの分割では、送信シーケンス・フローは評価されません。

パラレル・ゲートウェイを使用して、パラレル・ゲートウェイによって分割されたプロセス・パスをマージすることもできます。パラレル・ゲートウェイのマージでは、各受信シーケンス・フローからのトークンの到着が待機されます。すべてのトークンが到着すると、1つのトークンのみが送信シーケンス・フローに渡されます。

注意:

パラレル・ゲートウェイのマージの各受信シーケンス・フローにトークンが到着するようにプロセスを設計してください。このように設計しないと、到着しないトークンをマージで待機し続け、プロセスがフリーズする可能性があります。

A.7.5 複合ゲートウェイの概要

複合ゲートウェイでは、包含ゲートウェイと同様にプロセスが分割されます。ただし、複合ゲートウェイのマージにすべてのトークンが到着しない場合でもインスタンスを続行できるアクティブ化条件を定義できます。

たとえば、2つ以上のトークンが到着した後に続行する、複合ゲートウェイを構成できます。包含ゲートウェイの条件のうち2つのみがtrueと評価されると、プロセス・インスタンスは次のアクティビティに進みます。ただし、包含ゲートウェイではすべての条件シーケンス・フローが即時に評価されるため、これらのプロセス・パスのすべてのフロー・オブジェクトもすべて実行されます。

図A-44は、複合ゲートウェイのスプリットのデフォルトの表記を示しています。

図A-44 複合ゲートウェイ(スプリット)

「図A-44 複合ゲートウェイ(スプリット)」の説明

図A-45は、複合ゲートウェイのマージのデフォルトの表記を示しています。

図A-45 複合ゲートウェイ(マージ)

「図A-45 複合ゲートウェイ(マージ)」の説明

A.7.6 イベント・ベース・ゲートウェイの概要

イベント・ベース・ゲートウェイを使用すると、イベントが発生する可能性に基づいてプロセス・フローを分岐できます。これは、コンテキストに応じて、様々なイベント・タイプの1つになります。

イベント・ベース・ゲートウェイでは、様々なタイプのイベントがプロセス内の特定の位置で発生する可能性を予想できます。これは排他ゲートウェイに類似していますが、式に基づいてパスを選択するのではなく、イベント・ベース・ゲートウェイではプロセス内でのイベントの発生に基づいてパスを選択します。

たとえば、注文処理プロセスでは、現在使用可能な在庫がない場合にプロセス内のある位置に移動できます。プロセスは、在庫が使用可能になるまで待機する必要がありますが、無限に待機することはできません。イベント・ベース・ゲートウェイを使用すると、プロセスは、(メッセージ・キャッチ・イベントを使用して)新しい在庫の到着を知らせるメッセージを待機したり、(タイマー・イベントを使用して)一定時間の経過後にメッセージを受信しない場合に処理を続行することができます。

図A-46は、イベント・ベース・ゲートウェイのデフォルトの表記を示しています。

図A-46 イベント・ベース・ゲートウェイ

「図A-46 イベント・ベース・ゲートウェイ」の説明

イベント・ベース・ゲートウェイは、プロセス・フローに関する決定がデータ固有の条件ではなく、イベントに基づいている点が他のゲートウェイと異なります。

イベント・ベース・ゲートウェイは、次の要素から構成されます。

- イベント・ベース・ゲートウェイ

- 2つ以上のターゲット・イベント。これらのイベントには、次のタイプがあります。

- メッセージ・キャッチ・イベント
メッセージ・キャッチ・イベントを使用してプロセスを開始する場合は、メッセージ・スロー・イベントを使用してプロセスを起動する必要があります。

- タイマー・キャッチ・イベント
一般に、イベント・ベース・ゲートウェイに付随して単一のタイマー・イベントのみが使用されます。

- 受信タスク
イベント・ベース・ゲートウェイに付随して受信タスクを使用し、プロセス・インスタンスを開始できます。ただし、プロセスは、コール側プロセス内の送信タスクから起動する必要があります。

注意:

同じイベント・ベース・ゲートウェイ内にメッセージ・イベントと受信タスクを混在させることはできません。

ターゲット要素には、イベント・ベース・ゲートウェイからの受信シーケンス・フローのみを含めることができます。プロセスの他の部分からのシーケンス・フローを含めることはできません。イベント・ベース・ゲートウェイでは、プロセスにおいて発生する可能性のあるイベントを複数設定できますが、プロセス・インスタンス内でトリガーされるのは1つのイベントのみです。イベント・ベース・ゲートウェイで最初のイベントがトリガーされると、そのイベントに続くパスが使用されます。

デフォルトで、プロセスにイベント・ベース・ゲートウェイを追加すると、タイマー・キャッチ・イベントおよびメッセージ・キャッチ・イベントも作成されます。

注意:

イベント・ベース・ゲートウェイを削除すると、すべての送信シーケンス・フローも削除されます。関連付けられたイベントは削除されません。

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

プロセスの最初でイベント・ベース・ゲートウェイを使用して新しいプロセス・インスタンスを作成することもできます。これはプロセス内に複数の開始イベントを保持するのと同じです。

イベント・ベース・ゲートウェイを使用可能にして新しいプロセス・インスタンスを作成するには、次のことを確認する必要があります。

- イベント・ベース・ゲートウェイのInitiateプロパティが有効であること。

- イベント・ベース・ゲートウェイへの受信シーケンス・フローがないこと。

イベント・ベース・ゲートウェイは、新しいプロセス・インスタンスの作成に使用できますが、別のプロセスからのデータ入力は受け入れません。プロセス・インスタンスに渡す必要があるデータは、ターゲット・イベントを使用して構成する必要があります。

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

この項では、中間イベント、および中間イベントを使用してプロセスのフローおよび動作を制御する方法について説明します。

A.8.1 中間イベントの概要

開始イベントおよび停止イベントとは異なり、中間イベントはプロセス・フローの最中に発生します。

中間イベントには次の2つのタイプがあります。

- 標準フロー・イベント
標準フロー・イベントは、プロセスの一般的なフローで発生します。

- 境界イベント
境界イベントは、プロセスの中断をトリガーします。境界イベントはフロー・オブジェクトに関連付けられており、これらのオブジェクトの通常の動作を中断するように構成できます。

境界イベントは、プロセスが経由するフロー・オブジェクトのパスを特定するために使用されるという点で、シーケンス・フローと同様に動作します。

境界イベントは、連続しないタイプおよび連続するタイプの2つのタイプに分類されます。

A.8.2 タイマー・キャッチ・イベントの概要

タイマー・キャッチ・イベントを使用すると、時間条件を使用してプロセスのフローを制御できます。次に、タイマー・キャッチ・イベントの使用例を示します。

- アクティビティ実行の前に遅延を作成する

- アクティビティの期限を構成する

- プロセスの期限を構成する

- 一定時間経過後に追加のアクティビティをトリガーする

図A-47は、タイマー・キャッチ・イベントのデフォルトの表記を示しています。

図A-47 タイマー・キャッチ・イベント

「図A-47 タイマー・キャッチ・イベント」の説明

タイマー・イベントは、アクティビティの境界イベントとして使用できます。タイマー・イベントは、連続しない境界イベントまたは連続する境界イベントとして定義できます。

連続しないタイマー・イベントが発生した場合、トークンはメイン・プロセス・フローを離れて、タイマー・イベントによって定義されたフローを進みます。連続しないタイマー・イベントによって定義されたフローは、メイン・プロセス・フローに直接戻ることができます。

連続するイベントが発生した場合は、トークンのコピーが作成され、タイマー・イベントによって定義されたフローに渡されます。連続するイベントによって定義されたフローからメイン・プロセス・フローに戻ることはできません。

A.8.3 エラー・キャッチ・イベントの概要

エラー・キャッチ・イベントは、プロセス・フロー内で発生したエラーを処理するために使用される中間イベントです。

注意:

インライン・ハンドラを使用して、プロセス内で発生するエラー状態に対応することもできます。

エラー・キャッチ・イベントは、常に境界イベントとして使用され、次のタスクやサブプロセスに添付できます。

- サービス・タスク

- コール・アクティビティ

- ユーザー・タスク

- 送信タスク

- 受信タスク

- スクリプト・タスク

- ルール・タスク

- サブプロセス

エラー・キャッチ・イベントは常に割込みを実行します。つまり、このイベントによって、プロセスの通常のフローが中断されます。

図A-48は、サービス・タスクに境界イベントとしてアタッチされたエラー・キャッチ・イベントのデフォルトの表記を示しています。

図A-48 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント

「図A-48 サービス・タスクにおける境界イベントとしてのエラー・キャッチ・イベント」の説明

サービスまたはプロセスでエラーが発生すると、エラー・キャッチ・イベントがトリガーされます。これにより、プロセス・フローはエラー・キャッチ・イベントの送信シーケンス・フローのパスに進みます。

このフローを使用して、エラーの処理方法を定義できます。エラーは、次の2通りの方法のいずれかで処理されます。

- プロセス・フローが、メイン・プロセス・フローに戻ります。実行する必要があるすべての作業は、メイン・フローに戻る前にエラー・プロセス・フロー内で処理されます。

注意:

連続する境界イベントの場合、境界フローはメイン・フローに戻ることはできません。

- プロセス・フローは終了イベントに移動します。プロセスは即時に停止されます。プロセスの制御は、そのプロセスを開始したサービスまたはプロセスに戻ります。

A.9 Oracle BPMでのサブプロセスの使用

サブプロセスを使用して、ビジネス・プロセスを整理できます。サブプロセスによって、プロセスの機能領域をグループ化してプロセスをさらにわかりやすくできます。

Oracle BPMでは、次のタイプのサブプロセスがサポートされています。

- 再使用可能なプロセス

- 埋込み(インラインとも呼ばれる)サブプロセス

- イベント・サブプロセス(インライン・ハンドラとも呼ばれる)

A.9.1 再使用可能なプロセス(再使用可能なサブプロセス)の概要

Oracle BPMでは、再使用可能なプロセスというプロセス・タイプをサポートしています。BPMN用語では、再使用可能なサブプロセスと呼ばれることもあります。再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。

再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。たとえば、すべてのプロセスにクレジット・カード払いが必要な場合は、再使用可能なクレジット・カード払いのサブプロセスを作成できます。

再使用可能なプロセスには、次の特性があります。

- 単一のNone開始イベントで開始する必要があります。

- 複数の終了イベントを含めることができます。

- コールできるのは、別のBPMNプロセスのみです。

A.9.2 埋込みサブプロセス(インライン・サブプロセス)の概要

埋込みサブプロセスを使用すると、BPMNフロー・オブジェクトをグループ化して、プロセスをさらにわかりやすくできます。Oracle BPMでは、サブプロセスは埋込みのサブプロセスとなります。サブプロセスは、親サブプロセスの一部として包含されます。埋込みサブプロセスは、Noneイベントの開始で始まり、None終了イベントで終わる必要があります。

埋込みサブプロセスは拡張または縮小できます。図A-49は、プロセス内の縮小されたサブプロセスの表示を示しています。

図A-49 縮小された埋込みサブプロセスの例

「図A-49 縮小された埋込みサブプロセスの例」の説明

図A-50は、プロセス内の拡張された埋込みサブプロセスの表示を示しています。埋込みサブプロセスを拡張すると、サブプロセス内のフロー・オブジェクトを編集できます。また、埋込みサブプロセス・ウィンドウの端をクリックしてドラッグすると、ウィンドウのサイズを変更できます。

図A-50 拡張された埋込みサブプロセスの例

「図A-50 拡張された埋込みサブプロセスの例」の説明

他のタイプのプロセスと同様に、埋込みサブプロセスには開始イベントと終了イベントがあり、個別のプロセス・フローが含まれています。埋込みサブプロセスは、None開始イベントで始まり、None終了イベントで終わる必要があります。埋込みサブプロセスにスイムレーンを含めることはできません。

また、埋込みサブプロセスはアクティビティと同様に動作します。受信シーケンス・フローおよび送信シーケンス・フローを使用できます。また、埋込みサブプロセス内で使用されるデータ・オブジェクトを定義するデータ・アソシエーションが含まれています。

埋込みサブプロセスには、タイマー境界イベント、メッセージ境界イベントおよびエラー境界イベントを含めることもできます。

必要に応じて、プロセスにはネストした埋込みサブプロセスを含めることができます。ただし、ネストした埋込みサブプロセスは、プロセスをわかりやすくするために必要な場合にのみ使用してください。

A.9.2.1 埋込みサブプロセスとシーケンス・フロー

埋込みサブプロセス内のフロー・オブジェクトには、サブプロセス外部のフロー・オブジェクトに接続するシーケンス・フローを含めることができません。

他のフロー・オブジェクトと同様に、埋込みサブプロセスには、受信シーケンス・フローおよび送信シーケンス・フローがあります。

A.9.2.2 コンテキスト内の埋込みサブプロセス

図A-51は、埋込みサブプロセスの例を示しています。この例では、埋込みサブプロセスは、営業見積の処理に使用されるサービス・タスクをグループ化するために使用されています。

図A-51 埋込みサブプロセスの例

「図A-51 埋込みサブプロセスの例」の説明

A.9.2.3 ループ埋込みサブプロセス

プロセス・フローのコンテキスト内で、複数回繰り返すようにサブプロセスを構成できます。ループは、プロセスの設計時にプロセス・アナリストが検討する必要がありますが、実装はプロセス開発者が行います。

注意:

Oracle Business Process Composerではループを構成できません。埋込みサブプロセスのループ・プロパティを構成するには、Oracle BPM Studioを使用する必要があります。詳細は、Oracle BPMモデリングおよび実装ガイドを参照してください。

A.9.3 イベント・サブプロセス(イベント・ハンドラ)の概要

イベント・サブプロセスはサブプロセスの1タイプで、通常のプロセス・フローの外部で発生しうる条件をモデル化できます。イベント・サブプロセスは、イベント・ハンドラとも呼ばれます。

イベント・サブプロセスは、次の開始イベントがあります。

- エラー開始

- タイマー開始

- メッセージ開始

インライン・ハンドラをプロセスに追加すると、デフォルトでは、メッセージ開始イベントで作成されます。開始イベントのタイプは、必要に応じて変更できます。

注意:

一連のインライン・ハンドラには、1つの開始イベントのみを使用できます。ただし、プロセス内では複数のインライン・ハンドラを使用できます。

A.10 プロセス内のデータ・オブジェクトの値の変更

この項では、スクリプト・タスクを使用してプロセス内のデータ・オブジェクトの値を変更する方法について説明します。データ・オブジェクトの一般的な情報は、第12章「ビジネス・プロセスでのデータの処理」を参照してください。

A.10.1 スクリプト・タスクの概要

スクリプト・タスクは、プロセス内のデータ・オブジェクトの値を変更するために使用します。スクリプト・タスクは、値の変更をビジネス・プロセス内で明示的に表示する場合、または別のフロー・オブジェクトの外部でデータ・オブジェクトの値を変更する場合に使用します。多くの場合、スクリプト・タスクは、プロセス開始時にデータ・オブジェクトの初期値を設定するために使用します。

図A-52は、スクリプト・タスクのデフォルトの表記を示しています。

図A-52 スクリプト・タスク

「図A-52 スクリプト・タスク」の説明

スクリプト・タスクは、プロセスおよびプロセスベースのアプリケーション内におけるデータ・オブジェクトの動作の定義を担当する、プロセス開発者がプロセスに追加します。

A.10.1.1 コンテキスト内のスクリプト・タスク

図A-53は、営業見積サンプルの開始時に使用される2つのスクリプト・タスクの例を示しています。営業見積サンプルでは、プロセス・インスタンスの作成時にデータ・オブジェクトに対して初期値を設定し、いくつかのビジネス・インジケータに値を設定するスクリプト・タスクが使用されています。

図A-53 営業見積サンプル内のスクリプト・タスク

「図A-53 営業見積サンプル内のスクリプト・タスク」の説明

プロジェクト・データ・オブジェクトは、プロジェクト内に定義するデータ・オブジェクトです。プロジェクト内のすべてのプロセスは、定義されているデータ・オブジェクトにアクセスしますが、実際の値はオブジェクトを使用するプロセスに応じて変化します。また、プロジェクトがビジネス・インジケータを使用するように構成されている場合には、ビジネス・インジケータとしてマークされたデータ・オブジェクトの値が、エンジンによってプロセス分析データベースに保存されます。

図A-54は、ビジネス・インジケータの初期値を設定するために使用されるデータ・アソシエーションを示しています。

図A-54 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション

「図A-54 ビジネス・インジケータの設定スクリプト・タスクによって使用されるデータ・アソシエーション」の説明

データ・アソシエーションを受け入れる他のフロー・オブジェクトと同様に、式を使用してデータ・オブジェクトの値を変更できます。図A-55は、割引プロジェクト変数の値を変更する場合の式の使用方法を示しています。

図A-55 割引プロジェクト変数の値の変更に使用される式

「図A-55 割引プロジェクト変数の値の変更に使用される式」の説明

注意:

BPM Studioを使用した変換を使用してスクリプト・タスクを実装した場合、それらのスクリプト・タスクは、Business Process ComposerでBPMプロジェクトを開く際には表示されません。

B BPMNフロー・オブジェクト・プロパティのリファレンス

この付録では、BPMNフロー・オブジェクトの各プロパティについて説明します。内容は次のとおりです。

- B.1項「共通プロパティ」

- B.2項「対話型プロパティ」

- B.3項「アクティビティのプロパティ」

- B.4項「ゲートウェイのプロパティ」

- B.5項「イベントのプロパティ」

- B.6項「測定マーク・プロパティ」

- B.7項「シーケンス・フローのプロパティ」

B.1 共通プロパティ

この項では、複数のBPMNフロー・オブジェクトで共有する共有プロパティについて説明します。

B.1.1 基本プロパティ

表B-1は、すべてのアクティビティおよびゲートウェイで共有するプロパティの一覧を示しています。これらのプロパティは、プロパティのポップアップに表示されます。

表B-1 アクティビティおよびゲートウェイの基本プロパティ

プロパティ

説明

名前

このフロー・オブジェクトの名前を定義します。これは、プロセス内のフロー・オブジェクトの名前になります。

説明

このフロー・オブジェクトの説明を入力します(オプション)。説明を追加すると、プロセスがわかりやすくなります。

タイプ:

フロー・オブジェクトのタイプを決定します。プロジェクトを編集する際、ドロップダウン・メニューから選択してフロー・オブジェクトのタイプを変更できます。

アイコン:

このフロー・オブジェクトに使用されるアイコンを表示します。別のアイコンを選択するには、「変更」をクリックします。

B.1.2 実装プロパティ

表B-2は、複数のBPMNフロー・オブジェクトで共有する実装プロパティの一覧を示しています。

表B-2 実装プロパティ

プロパティ

説明

ドラフト

選択した場合、フロー・オブジェクトがドラフトであることを指定します。

サンプリング・ポイント

このフロー・オブジェクトに対してサンプリング・ポイントを構成する場合に使用します。

- プロセスのデフォルトの継承: プロセス・レベルで定義されているデフォルトのサンプリング構成を使用する場合に選択します。

- 生成: 該当のアクティビティに対するサンプリング・ポイント・データを生成する場合に選択します。これによって、プロセス・レベルまたはプロジェクト・レベルで定義されているデフォルトの構成が上書きされます。

- 生成しない: サンプリング・ポイント・データを生成しない場合に選択します。この設定は、主にパフォーマンス上の理由で使用されます。

サンプリング・ポイントを使用すると、実行中のプロセス内のフロー・オブジェクトのパフォーマンスに関する情報を生成できます。この構成に基づいて生成されたデータは、プロセス分析データベースに格納されます。

プロジェクト・レベルで指定したサンプリング・ポイントの生成は、プロジェクト内のすべてのプロセスに適用されます。プロジェクトのサンプリング・ポイントの設定手順については、4.4.12項「プロジェクト・プロパティの表示および編集方法」を参照してください。

ただし、プロジェクト・レベルの設定は、各プロセス内で上書きできます。同様に、プロセス・レベルで指定したサンプリング・ポイントの生成は、プロセス内のすべてのフロー・オブジェクトに適用されます。プロセス・レベルの設定も各フロー・オブジェクト内で上書きできます。

プロジェクトまたはプロセス・レベルでのサンプリング・ポイント生成のオーバーライドは、通常、パフォーマンスの向上を目的に実行されます。たとえば、プロジェクトに、多くのアクティビティを含むプロセスが含まれるが、このプロセスのプロセス・メトリックを取得したくない場合、プロセスがサンプリング・ポイントを生成しないように、サンプリング・ポイント構成を設定できます。

同様に、プロジェクト内の1つのプロセスのみを測定したい場合は、サンプリング・ポイントを生成しないようにプロジェクトを設定し、特定のプロセスでサンプリング・ポイントを生成するよう構成することもできます。

プロジェクトのサンプリング構成は、デフォルトでは、対話型アクティビティに対するサンプリング・ポイントのみが生成されるように設定されています。

B.2 対話型プロパティ

このセクションでは、対話型アクティビティのプロパティについて説明します。

B.2.1 対話型アクティビティ

対話型アクティビティは、プロセス参加者が作業を実行する必要があるプロセスの部分を表します。詳細は、A.3.2項「ユーザー・タスクの概要」を参照してください。このセクションでは、次の対話型アクティビティのプロパティを表示します。

- ユーザー・タスク

- FYI

- 管理

- グループ

- 複合

- イニシエータ

対話型アクティビティのプロパティのポップアップには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

表B-3では、「実装」エディタから編集できるプロパティについて説明します。

表B-3 対話型アクティビティ - 共通プロパティ

プロパティ

説明

ヒューマン・タスク

このユーザー・タスクに割り当てるヒューマン・タスクの名前を定義します。ビジネス・カタログでヒューマン・タスクのリストを選択できます。

パターン

このヒューマン・タスクで使用するパターンを表示します。

再開

承認プロセスを最初から開始します。

B.2.2 手動タスク

手動タスクは、Oracle BPMのスコープ外のプロセス参加者が実行する、プロセス内のタスクを表します。

詳細は、A.3.3項「手動タスクの概要」を参照してください。

手動タスクのプロパティのポップアップには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3 アクティビティのプロパティ

次の項では、Oracle BPM Suiteでサポートされている各BPMNアクティビティのプロパティについて説明します。

B.3.1 サービス・タスク

サービス・タスクを使用すると、他のプロセスおよびサービスと通信できます。

詳細は、A.4.1項「サービス・タスクの概要」を参照してください。

サービス・タスクには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3.1.1 実装プロパティ

表B-4では、「サービス」オプションを選択した場合に「実装」プロパティから編集できるプロパティについて説明します。

表B-4 サービス・タスクのプロパティ(「プロセス・コール」を選択した場合)

プロパティ

説明

会話

会話のタイプを決定します。

会話のタイプを決定します。

- デフォルト: プロセスおよびターゲット・ノードのみを使用して、サービス会話を構成できます。

- 拡張: 特定のインタフェースを定義することによって、会話を構成できます。

名前

会話のインタフェースを定義できます。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

プロセス

サービス・タスクによってコールされるBPMNプロセスを決定します。このプロセスは同じBPMプロジェクト内の別のプロセスである必要があります。

操作

このサービス・タスクによってコールされるBPMNプロセス内の特定のノード(フロー・オブジェクト)を決定します。

表B-5 サービス・タスクのプロパティ(「サービス・コール」を選択した場合)

プロパティ

説明

会話

会話のタイプを決定します。

- デフォルト: プロセスおよびターゲット・ノードのみを使用して、サービス会話を構成できます。

- 拡張: 特定のインタフェースを定義することによって、会話を構成できます。

名前

会話のインタフェースを定義できます。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

サービス

このサービス・タスクによってコールされるサービスを決定します。このサービスは、BPMプロジェクトのビジネス・カタログに定義されている必要があります。

操作

サービス・タスクによってコールされる操作を決定します。

B.3.2 送信タスク

送信タスクでは、現在のプロセス外部のシステムまたはプロセスにメッセージが送信されます。

詳細は、A.4.4項「送信タスクの概要」を参照してください。

送信タスクには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3.2.1 実装プロパティ

表B-6では、「インタフェースの定義」を選択した場合の送信タスクの実装プロパティについて説明しています。

表B-6 送信タスクのプロパティ(「インタフェースの定義」を選択した場合)

プロパティ

説明

デフォルト

サービス・タスクからコールされているサービスに渡される引数定義のみを使用してインタフェースを定義します。「追加」ボタンをクリックして、必要な引数を設定できます。

引数定義に有効な値は、次のとおりです。

- 名前: 引数の名前を定義します。

- タイプ: 引数のデータ型を定義します。

拡張

引数定義を定義するほかに、操作名を選択できます。

- 操作名:

非同期

インタフェースが非同期的に呼び出されることを示します。

同期

インタフェースが同期的に呼び出されることを示します。次のプロパティも定義できます。

- 返信先:

- エラーのスロー: 送信タスクで問題が発生した場合に、エラー・ハンドラが使用されることを示します。

- エラー: 問題が発生した場合に呼び出すエラーを決定します。このエラーはビジネス・カタログに定義されている必要があります。

表B-7では、「開始」を選択すると使用できる実装プロパティについて説明しています。

表B-7 送信タスクのプロパティ(「インタフェースの使用」を選択した場合)

プロパティ

説明

名前

使用するインタフェースの名前を決定します。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

参照

操作

送信タスクによって起動する操作を決定します。

エラー

問題が発生した場合に呼び出すエラーを決定します。このエラーはビジネス・カタログに定義されている必要があります。

表B-8では、「続行」を選択した場合の実装プロパティについて説明しています。

表B-8 送信タスクのプロパティ(「プロセス・コール」を選択した場合)

プロパティ

説明

名前

使用するインタフェースの名前を決定します。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

プロセス

この送信タスクによって起動するBPMNプロセスを定義します。

ターゲット・ノード

サービス・タスクによってコールされるBPMNプロセス内のフロー・オブジェクトを決定します。

表B-9では、「続行」を選択した場合の実装プロパティについて説明しています。

表B-9 送信タスクのプロパティ(「サービス・コール」を選択した場合)

プロパティ

説明

名前

使用するインタフェースの名前を決定します。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

サービス

この送信タスクによって起動するサービスを決定します。

操作

送信タスクによって起動する操作を決定します。

B.3.3 受信タスク

受信タスクでは、現在のプロセス外部のシステムまたはプロセスからのメッセージを待機します。

詳細は、A.4.5項「受信タスクの概要」を参照してください。

受信タスクには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3.3.1 実装プロパティ

表B-10では、「インタフェースの定義」を選択した場合の受信タスクのプロパティについて説明しています。

表B-10 受信タスク(「インタフェースの定義」を選択した場合)

プロパティ

説明

名前

使用するインタフェースの名前を決定します。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

引数の定義

受信タスクで公開される操作の起動に必要な引数を定義します。これらの引数は、呼び出し側のプロセスまたはサービスからプロセスに渡されます。

操作名

受信タスクによって起動する操作を定義します。

表B-11では、「インタフェースの使用」を選択した場合の実装プロパティについて説明しています。

表B-11 受信タスクのプロパティ(「インタフェースの使用」を選択した場合)

プロパティ

説明

名前

使用するインタフェースの名前を決定します。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

参照

操作

受信タスクによって起動する操作を定義します。

表B-12では、「サービス・コール」を選択した場合の実装プロパティについて説明しています。

表B-12 受信タスクのプロパティ(「サービス・コール」を選択した場合)

プロパティ

説明

名前

使用するインタフェースの名前を決定します。(このオプションは、「拡張」が選択されている場合にのみ使用可能です。)

サービス

この受信タスクによって起動するサービスを表示します。

操作

この受信タスクによって起動する操作の名前を決定します。

B.3.4 ビジネス・ルール・タスク

ビジネス・ルール・タスクを使用すると、プロセス内にOracle Business Rulesを取り込むことができます。

詳細は、A.5.2項「ビジネス・ルール・タスクの概要」を参照してください。

ビジネス・ルール・タスクには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3.4.1 実装プロパティ

表B-13では、「実装」エディタから編集できるプロパティについて説明します。

表B-13 ビジネス・ルール・タスクのプロパティ

プロパティ

説明

ルール

このビジネス・ルール・タスクに割り当てるビジネス・ルールを決定します。

操作

指定したルール(前述)のデシジョン関数を指定します。

B.3.5 スクリプト・タスク

スクリプト・タスクは、プロセス内のデータ・オブジェクトの値を変更するために使用します。

詳細は、A.10.1項「スクリプト・タスクの概要」を参照してください。

スクリプト・タスクには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3.6 コール・アクティビティ

コール・アクティビティを使用すると、再使用可能なプロセスを現在のプロセス内からコールできます。

詳細は、A.4.3項「コール・アクティビティの概要」を参照してください。

コール・アクティビティには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3.6.1 実装プロパティ

表B-14では、「実装」プロパティから編集できるプロパティについて説明します。

表B-14 コール・アクティビティのプロパティ

プロパティ

説明

プロセス

コール・アクティビティによって起動するBPMNプロセスを指定します。

B.3.7 サブプロセス

サブプロセスを使用すると、BPMNフロー・オブジェクトをグループ化して、プロセスをさらにわかりやすくできます。

詳細は、A.9.2項「埋込みサブプロセス(インライン・サブプロセス)の概要」を参照してください。

サブプロセスには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.3.7.1 実装プロパティ

表B-15では、「実装」エディタから編集できるプロパティについて説明します。

表B-15 サブプロセスのプロパティ

プロパティ

説明

ループ特性

サブプロセスが繰り返される回数を定義します。Oracle Business Process Composerでは、このプロパティは読取り専用です。

B.3.8 インライン・ハンドラ

インライン・ハンドラはサブプロセスのタイプで、通常のプロセス・フローの外部で発生する条件をモデル化できます。

詳細は、A.9.3項「イベント・サブプロセス(イベント・ハンドラ)の概要」を参照してください。

インライン・ハンドラには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.4 ゲートウェイのプロパティ

次の項では、各BPMNゲートウェイのプロパティについて説明します。

B.4.1 排他ゲートウェイ

排他ゲートウェイを使用すると、プロセスを複数のパスに分割できます。

詳細は、A.7.2項「排他ゲートウェイの概要」を参照してください。

排他ゲートウェイには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

表B-16では、「アウトフロー順序」から編集できるプロパティについて説明します。

表B-16 排他ゲートウェイのプロパティ

プロパティ

説明

順序

送信シーケンス・フローの評価順序を決定できます。trueと評価された最初の条件によって、プロセスが進むパスが決定します。

B.4.2 包含ゲートウェイ

包含ゲートウェイを使用すると、プロセスを複数のパスに分割できます。

詳細は、A.7.3項「包含ゲートウェイの概要」を参照してください。

包含ゲートウェイには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.4.3 パラレル・ゲートウェイ

パラレル・ゲートウェイを使用して、プロセスを複数のパスに分割すると、プロセス・フローがすべてのパス上を同時に進むようにできます。

詳細は、A.7.4項「パラレル・ゲートウェイの概要」を参照してください。

パラレル・ゲートウェイには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.4.4 複合ゲートウェイ

複合ゲートウェイでは、包含ゲートウェイと同様にプロセスが分割されます。ただし、複合ゲートウェイのマージにすべてのトークンが到着しない場合でもインスタンスを続行できる条件を定義できます。

詳細は、A.7.5項「複合ゲートウェイの概要」を参照してください。

複合ゲートウェイには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

表B-17では、「実装」エディタから編集できるプロパティについて説明します。

表B-17 複合ゲートウェイのプロパティ

プロパティ

説明

アクティブ化条件

到着したトークンをゲートウェイが解放する時期を指定する条件を定義できます。新規トークンが複合ゲートウェイに到着するたびに、BPMNサービス・エンジンはこの条件を評価します。

条件がtrueと評価されると、複合ゲートウェイはtrueと評価されるまでに到着したすべてのトークンを解放します。

B.4.5 イベント・ベース・ゲートウェイ

イベント・ベース・ゲートウェイを使用すると、イベントが発生する可能性に基づいてプロセス・フローを分岐できます。

詳細は、A.7.6項「イベント・ベース・ゲートウェイの概要」を参照してください。

イベント・ベース・ゲートウェイには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

表B-18では、イベント・ベース・ゲートウェイのプロパティについて説明します。

表B-18 イベント・ベース・ゲートウェイのプロパティ

プロパティ

説明

インスタンス化

イベント・ベース・ゲートウェイで新規のプロセス・インスタンスを作成します。

B.5 イベントのプロパティ

次の項では、Oracle BPMでサポートされている各タイプのイベントのプロパティについて説明します。

B.5.1 None開始イベント

None開始イベントは、インスタンス・トリガーが明確に定義されていないときに使用します。詳細は、A.2.3項「None開始イベントの概要」を参照してください。

B.5.2 メッセージ開始イベント

メッセージ開始イベントは、メッセージを受信するとプロセス・インスタンスをトリガーします。

詳細は、A.2.4項「メッセージ開始イベントの概要」を参照してください。

B.5.2.1 実装プロパティ

表B-19では、「実装」エディタから編集できる基本プロパティについて説明します。

表B-19 メッセージ開始のプロパティ

プロパティ

説明

タイプ

これは、メッセージ開始イベントの読取り専用プロパティです。メッセージ開始イベントは、2つのプロセス間でのみ会話を開始できます。

実装

受信タスクで、その受信タスクを起動する送信タスクとの会話を定義する方法を決定できます。

- 実装なし: 実装を指定しません。

- インタフェースの定義: 他のBPMNプロセスおよびサービスにプロセスをサービスとして公開する方法を定義できます。
引数の定義: 受信タスクで必要な引数を定義します。これらの引数は、呼び出し側のプロセスまたはサービスからプロセスに渡されます。

タイプ: プロセスを同期的に起動するか、または非同期的に起動するかを定義します。

操作名: この受信タスクの操作の名前を定義します。この操作名は、この受信タスクを起動する他のプロセスやサービスで使用されます。

- カタログから使用: ビジネス・カタログに定義されているインタフェースを選択できます。
名前: インタフェースの名前を定義します。

操作: 受信タスクで使用するインタフェース内の操作を決定します。

B.5.3 タイマー開始イベント

タイマー開始イベントは、特定の時間条件に基づいてプロセス・インスタンスの作成をトリガーします。詳細は、A.2.6項「タイマー開始イベントの概要」を参照してください。

B.5.3.1 実装プロパティ

表B-20では、「実装」エディタから編集できるプロパティについて説明します。

表B-20 タイマー開始イベントのプロパティ

プロパティ

説明

期限タイプ

タイマー開始イベントで、指定日または指定した間隔に基づいてプロセス・インスタンスを作成するかどうかを決定します。

- 日付: タイマー開始イベントで新しいプロセス・インスタンスを作成する日時を指定できます。日時は次の書式に従って指定します。
day/month/year hour:minute PM/AM

- 間隔: タイマー・イベントで新しいプロセス・インスタンスの作成を待機する間隔を指定できます。次の書式に従って、月、日、時間、秒を指定します。
<number>M,<number>d,<number>h,<number>s

式モード

式を使用して日付または間隔を定義できます。

B.5.4 シグナル開始イベント

シグナル開始イベントは、別のプロセスまたはサービスからの通信に基づくという点でメッセージ開始イベントに似ています。

詳細は、A.2.5項「シグナル開始イベントの概要」を参照してください。

B.5.4.1 実装プロパティ

表B-21では、「実装」エディタから編集できるプロパティについて説明します。

表B-21 シグナル開始イベントのプロパティ

プロパティ

説明

イベント

シグナル開始イベントをトリガーするのに使用するイベントを定義します。イベントは、ビジネス・カタログに定義されます。

B.5.5 エラー開始イベント

エラー開始イベントは、インライン・ハンドラの開始イベントとして使用されます。

詳細は、A.2.7項「エラー開始イベントの概要」を参照してください。

B.5.5.1 実装プロパティ

表B-22では、「実装」エディタから編集できるプロパティについて説明します。

表B-22 エラー開始イベントのプロパティ

プロパティ

説明

例外

エラー開始イベントで実装されるエラー例外を定義します。これはビジネス・カタログに格納されます。

すべてのビジネス例外の捕捉

キャッチ・イベントですべてのビジネス例外を捕捉する場合に選択します。

すべてのシステム例外の捕捉

キャッチ・イベントですべてのシステム例外を捕捉する場合に選択します。

B.5.6 Noneキャッチ・イベント

Noneキャッチ・イベントは、プロセス内のプレースホルダとして使用されます。

Noneキャッチ・イベントには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.5.7 メッセージ・キャッチ・イベント

メッセージ・キャッチ・イベントを使用すると、別のプロセスまたはサービスからメッセージを受信できます。

詳細は、A.4.8項「メッセージ・キャッチ・イベントの概要」を参照してください。

メッセージ・キャッチ・イベントには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.5.7.1 実装プロパティ

表B-23では、受信タスクの基本実装プロパティについて説明します。

表B-23 メッセージ・キャッチのプロパティ

プロパティ

説明

タイプ

メッセージ・キャッチ・イベントの会話を実装する方法を決定します。会話によって、他のプロセスまたはサービスと通信するメッセージ・イベントのグループの順序を定義します。メッセージ・イベントは、別のプロセスまたはサービスとの会話を開始したり、前のメッセージ・イベントで開始された会話を続行できます。

可能な値は次のとおりです。

- 開始: 別のBPMNプロセスまたはサービスを起動します。

- 続行: 前に起動したプロセスの会話を続行します。

表B-24では、「開始」を選択した場合の実装プロパティについて説明しています。

表B-24 メッセージ・キャッチのプロパティ(「開始」を選択した場合)

プロパティ

説明

実装

メッセージ・キャッチ・イベントで、イベントを起動するプロセスまたはサービスとの会話を定義する方法を決定できます。

- 実装なし: 実装を指定しません。

- インタフェースの定義: 他のBPMNプロセスおよびサービスにプロセスをサービスとして公開する方法を定義できます。
引数の定義: メッセージ・キャッチ・イベントで必要な引数を定義します。これらの引数は、呼び出し側のプロセスまたはサービスからプロセスに渡されます。

タイプ: プロセスを同期的に起動するか、または非同期的に起動するかを定義します。

操作名: このメッセージ・キャッチ・イベントの操作の名前を定義します。この操作名は、このメッセージ・キャッチを起動する他のプロセスやサービスで使用されます。

- カタログから使用: ビジネス・カタログに定義されているインタフェースを選択できます。
名前: インタフェースの名前を定義します。

操作: メッセージ・キャッチ・イベントで使用するインタフェース内の操作を決定します。

表B-25では、「続行」を選択した場合の実装プロパティについて説明しています。

表B-25 メッセージ・キャッチのプロパティ(「続行」を選択した場合)

プロパティ

説明

イニシエータ・ノード

このメッセージ・キャッチ・イベントに先行する、現在のプロセス内のメッセージ・イベントを選択できます。

B.5.8 タイマー・キャッチ・イベント

タイマー・キャッチ・イベントを使用すると、時間条件を使用してプロセスのフローを制御できます。

詳細は、A.8.2項「タイマー・キャッチ・イベントの概要」を参照してください。

タイマー・キャッチ・イベントには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.5.8.1 実装プロパティ

表B-26では、「実装」エディタから編集できるプロパティについて説明します。

表B-26 タイマー・キャッチ・イベントのプロパティ

プロパティ

説明

期限タイプ

タイマー・キャッチ・イベントで、指定日または指定した間隔に基づいてプロセス・インスタンスを作成するかどうかを決定します。

- 日付: タイマー・キャッチ・イベントがトリガーされる日時を指定できます。日時は次の書式に従って指定します。
day/month/year hour:minute PM/AM

- 間隔: タイマー・イベントでイベントのトリガーを待機する間隔を指定できます。次の書式に従って、月、日、時間、秒を指定します。
<number>M,<number>d,<number>h,<number>s

式モード

式を使用して日付または間隔を定義できます。

B.5.9 エラー・キャッチ・イベント

エラー・キャッチ・イベントは、プロセス・フロー内で発生したエラーを処理するために使用される中間イベントです。

エラー境界キャッチ・イベントには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.5.9.1 実装プロパティ

表B-27では、「実装」エディタから編集できるプロパティについて説明します。

表B-27 エラー・キャッチ・イベントのプロパティ

プロパティ

説明

例外

エラー・キャッチ・イベントで実装されるエラー例外を定義します。これはビジネス・カタログに格納されます。

すべてのビジネス例外の捕捉

エラー・キャッチ・イベントですべてのビジネス例外を捕捉する場合に選択します。

すべてのシステム例外の捕捉

エラー・キャッチ・イベントですべてのシステム例外を捕捉する場合に選択します。

B.5.10 メッセージ・スロー・イベント

メッセージ・スロー・イベントを使用すると、他のプロセスまたはサービスにメッセージを送信できます。

メッセージ・スロー・イベントには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.5.10.1 実装プロパティ

表B-28では、送信タスクの基本実装プロパティについて説明します。

表B-28 メッセージ・スロー・イベントのプロパティ

プロパティ

説明

タイプ

メッセージ・スロー・イベントの会話を実装する方法を定義します。会話によって、他のプロセスまたはサービスと通信するメッセージ・イベントのグループの順序を定義します。メッセージ・スロー・イベントは、別のプロセスまたはサービスとの会話を開始したり、前のメッセージ・イベントで開始された会話を続行できます。

可能な値は次のとおりです。

- 開始: 別のBPMNプロセスまたはサービスを起動します。

- 続行: 前に起動したプロセスの会話を続行します。

表B-29では、「開始」を選択すると使用できる実装プロパティについて説明しています。

表B-29 メッセージ・スロー・イベントのプロパティ(「開始」を選択した場合)

プロパティ

説明

実装

「実装」ドロップダウン・メニューを使用すると、送信タスクの実装方法を決定できます。

- 実装なし: 実装を指定しません。

- サービス・コール: ビジネス・カタログに含まれるサービスを起動するようにメッセージ・スロー・イベントを構成します。
名前: メッセージ・スロー・イベントによって起動するサービスを決定します。

操作: 起動するサービス内の操作を定義します。

- プロセス・コール: 別のBPMNプロセスを起動するようにメッセージ・スロー・イベントを構成します。
プロセス: メッセージ・スロー・イベントによってコールされるBPMNプロセスを決定します。

ノード: メッセージ・スロー・イベントによってコールされるフロー・オブジェクトを決定します。

表B-30では、「続行」を選択した場合の実装プロパティについて説明しています。

表B-30 メッセージ・スロー・イベントのプロパティ(「続行」を選択した場合)

プロパティ

説明

イニシエータ・ノード

会話内のこの送信タスクに先行するメッセージ・イベントを決定します。

入力

メッセージ開始イベントで公開される操作の起動に必要な引数を定義します。

タイプ

イニシエータに定義されているプロセス・タイプが表示されます。このプロパティは読取り専用です。

操作名

このメッセージ・キャッチ・イベントの操作の名前を定義します。この操作名は、このメッセージ・キャッチを起動する他のプロセスやサービスで使用されます。

B.5.11 シグナル・スロー・イベント

シグナル・イベントを使用すると、メッセージと、そのメッセージを待機するように構成されたすべてのプロセスの間で通信できます。

シグナル・スロー・イベントには、複数のBPMNフロー・オブジェクトで共有するプロパティが表示されます。これらのプロパティのリストについては、B.1項「共有プロパティ」を参照してください。

B.5.11.1 実装プロパティ

表B-31では、「実装」エディタから編集できるプロパティについて説明します。

表B-31 シグナル・スロー・イベントのプロパティ

プロパティ

説明

イベント

シグナル開始イベントをトリガーするのに使用するイベントを定義します。イベントは、ビジネス・カタログに定義されます。

B.5.12 None終了イベント

None終了イベントは、プロセス内のプレースホルダとして使用されます。

None終了イベントの使用方法の詳細は、A.2.8項「None終了イベントの概要」を参照してください。

B.5.13 メッセージ終了イベント

メッセージ終了イベントは、プロセス完了時に他のプロセスやサービスにメッセージを送信するために使用します。

詳細は、A.2.10項「メッセージ終了イベントの概要」を参照してください。

B.5.13.1 実装プロパティ

表B-32では、「実装」エディタから編集できるプロパティについて説明します。

表B-32 メッセージ終了のプロパティ

プロパティ

説明

タイプ

会話の実装方法を定義します。メッセージ終了イベントは会話を続行するようにのみ構成できるため、このプロパティは読取り専用です。

イニシエータ・ノード

会話内のこの送信タスクに先行するメッセージ・イベントを決定します。

入力

同期のプロセスの場合、このプロパティは、開始またはキャッチ・メッセージ・イベントによって定義される操作を起動するために使用される出力引数を定義します。

非同期の場合、このプロパティは、この終了イベントによって定義されるコールバック操作で必要なとる入力引数と出力引数を定義します。

タイプ

イニシエータに定義されているプロセス・タイプが表示されます。このプロパティは読取り専用です。

操作名

非同期プロセスの場合、このプロパティは、このメッセージ・キャッチ・イベントの操作の名前を定義します。この操作名は、このメッセージ・キャッチを起動する他のプロセスやサービスで使用されます。

同期プロセスの場合、このプロパティは、この終了イベントに先行するイベントの操作を定義します。開始イベントまたはキャッチ・イベントが該当します。

B.5.14 シグナル終了イベント

シグナル終了イベントを使用すると、メッセージと、そのメッセージを待機するように構成されたすべてのプロセスの間で通信できます。このメッセージは、現在のプロセスが終了したプロセスと通信します。

B.5.14.1 実装プロパティ

表B-33では、「実装」エディタから編集できるプロパティについて説明します。

表B-33 シグナル終了イベントのプロパティ

プロパティ

説明

イベント

シグナル開始イベントをトリガーするのに使用するイベントを定義します。イベントは、ビジネス・カタログに定義されます。

B.5.15 エラー終了イベント

エラー終了イベントは、エラー状態が原因でプロセスを終了する場合に使用します。

詳細は、A.2.9項「エラー終了イベントの概要」を参照してください。

B.5.15.1 実装プロパティ

表B-34では、「実装」エディタから編集できるプロパティについて説明します。

表B-34 エラー終了イベントのプロパティ

プロパティ

説明

例外

エラー・キャッチ・イベントで実装されるエラー例外を定義します。これはビジネス・カタログに格納されます。

B.5.16 強制終了イベント

強制終了イベントは、即時にプロセスを停止するために使用します。強制終了イベントに到達すると、プロセスは即時に停止します。

詳細は、A.2.11項「強制終了イベントの概要」を参照してください。

B.6 測定マーク・プロパティ

測定マークを使用すると、プロセス内の特定の位置、またはプロセスの特定のセクションにおいて、タイプが測定のビジネス・インジケータを測定できます。次のタイプの測定マークがサポートされています。

- 「測定の開始」マーク

- 「測定の終了」マーク

- スナップショット

表B-35 測定マーク・プロパティ

プロパティ

説明

名前

この測定マークの名前を定義します。

説明

この測定マークの説明をオプションで指定します。

タイプ

測定マークのタイプが表示されます。このプロパティは読取り専用です。

ビジネス・インジケータ

この測定マークに割り当てるビジネス・インジケータを定義します。

詳細は、12.9項「ビジネス・インジケータおよびカウンタ・マークの使用」を参照してください。

.

B.7 シーケンス・フローのプロパティ

シーケンス・フローでは、プロセス内で作業が実行される順序(シーケンス)が定義されます。次の項では、Oracle Business Process Composerを使用して編集できるシーケンス・フロー・プロパティについて説明します。

B.7.1 デフォルト・シーケンス・フロー

表B-36では、デフォルト・シーケンス・フローのプロパティについて説明します。

表B-36 デフォルト・シーケンス・フローのプロパティ

プロパティ

説明

名前

このシーケンス・フローの名前を定義します。この名前は、プロセス図のシーケンス・フローの横に表示されます。

説明

このシーケンス・フローの説明を指定します(オプション)。説明を追加すると、プロセスがわかりやすくなります。

B.7.2 標準シーケンス・フロー

表B-37では、デフォルト・シーケンス・フローのプロパティについて説明します。

表B-37 標準シーケンス・フローのプロパティ

プロパティ

説明

名前

このシーケンス・フローの名前を定義します。この名前は、プロセス図のシーケンス・フローの横に表示されます。

説明

このシーケンス・フローの説明を指定します(オプション)。説明を追加すると、プロセスがわかりやすくなります。

B.7.3 条件シーケンス・フロー

表B-38では、デフォルト・シーケンス・フローのプロパティについて説明します。

表B-38 条件シーケンス・フローのプロパティ

プロパティ

説明

名前

このシーケンス・フローの名前を定義します。この名前は、プロセス図のシーケンス・フローの横に表示されます。

説明

このシーケンス・フローの説明を指定します(オプション)。説明を追加すると、プロセスがわかりやすくなります。

条件

この条件シーケンス・フローの評価に使用する式を指定します。式を定義するには、「編集」をクリックして式エディタを起動します。

条件シーケンス・フローの評価順序を構成する方法の詳細は、B.4.1項「排他ゲートウェイ」を参照してください。

C WebフォームとWebフォーム・コントロール・プロパティのリファレンス

この付録では、WebフォームとWebフォーム・コントロールで使用可能なプロパティを説明します。

この付録には次の項が含まれます:

- C.1項「Webフォームのプロパティ」

- C.2項「Webフォーム・コントロールのプロパティ」

C.1 Webフォームのプロパティ

Webフォームの動作および外観を制御するには、そのプロパティを変更します。プロパティの編集には、機能別にWebフォーム・プロパティをグループ化するタブ付きペインが含まれるプロパティ・エディタを使用します。

C.1.1 「設定」タブ

プロパティ

説明

フォーム名

フォームの名前を定義します。

説明

Webフォームの説明を示します。デフォルトでは、すべてのフォームで、「この説明を変更するにはフォームを編集してください。」という記述が使用されます。この説明を、フォーム固有の内容に変更します。

フォーム・エディタで、フォームの共有アイコンの右側の領域にカーソルを重ねると、説明がツール・チップとして表示されます。また、個々の送信ドキュメントを表示した場合にも説明が表示されます。

印刷可能

フォームの上部に印刷アイコンが表示されます。ユーザーにフォームを印刷する機能を提供しない場合は、このチェック・ボックスを無効にします。フォームの各Webフォーム・コントロールの印刷可能プロパティを使用して、PDF印刷ビューに表示されるフォーム・フィールドを制御できます。

保存

このフォームのすべての送信内容がフォームの送信リポジトリに格納されます。このプロパティはデフォルトで有効になっています。

このチェック・ボックスの選択を解除した場合、フォーム送信は引き続き送信リポジトリに記録され、送信に関するメタデータ(送信日時、成功/失敗の条件)を表示できますが、フォーム・フィールドのデータは保存されません。

PDF保存

ユーザーはファイルをPDF形式で保存できます。このプロパティは、保存プロパティを有効にしている場合のみ有効化できます。

選択すると、ファイルのPDFイメージもフォーム送信リポジトリに保存されます。

C.1.2 「スタイル」タブ

プロパティ

説明

幅

フォームの幅を指定します。デフォルトの「標準」の幅は600pxですが、ドロップダウンには細い(400px)および広い(800px)もあります。カスタム・オプションも選択できます。これにより、「幅」ドロップダウンの右側のボックスが有効になり、独自の幅を指定できます。

高さ

フォームがブラウザにロードされる際の最初の高さを指定します。これにより実際の高さが決まることはありません。一般に、フォームのサイズは動的に変更されるため、フォームの「高さ」プロパティを編集する必要はありません。ただし、フォームが非常に小さい場合、フォームの実際の高さに設定しておけば、フォームがロードされた際に外観を改善できます。

コントロール

チェック・ボックスおよびラジオの各コントロールに対して定義したオプションを垂直または水平のどちらの方向に表示するかを決定します。

テーマ

フォームの外観の変更先となるテーマを定義できます。Oracle BPMでは、2つのグローバル・テーマ(「クリア」またはプロフェッショナル・ブルー)が用意されています。「クリア」テーマではフォームの背景がクリア(白)となり、プロフェッショナル・ブルーでは落ち着いた青となります。

デフォルトのテーマを使用するかわりにカスタム・テーマを作成できます。カスタマイズされたテーマを追加すると、事前定義済オプションとともにドロップダウン・リストに表示されます。

フォント名、フォント・サイズおよびフォントの色

フォームのすべてのラベルおよびテキストに適用されるフォント名、サイズおよび色のプロパティを定義します。特定のコントロールについてこれらのプロパティを上書きするには、各コントロールのプロパティを編集します。

フォームをゼロから作成すると、これらのプロパティは空白となります。フォームのラベルおよびテキストの特定のフォント、サイズおよび色は、選択したテーマまたはフォーム作成時に使用したテンプレートによって異なります。

C.2 Webフォーム・コントロールのプロパティ

各Webフォーム・コントロールの動作および外観を制御するには、そのプロパティを変更します。プロパティの編集には、機能別にプロパティをグループ化するタブ付きペインが含まれるプロパティ・エディタを使用します。

C.2.1 Webフォーム・コントロールのプロパティ - 「設定」タブ

「設定」タブでは、コントロールの一般的なプロパティを定義します。次の表では、「設定」タブに表示されるすべてのコントロール・プロパティのアルファベット順リストを示します。

注意:

「設定」タブのすべてのプロパティがすべてのWebフォーム・コントロールで使用されるわけではありません。

プロパティ

説明

コントロール・タイプ

このWebフォーム・コントロールのタイプを定義します。ドロップダウン・リストからタイプを選択することで、Webフォーム・コントロールのタイプを変更できます。

このプロパティは次のWebフォーム・コントロールに適用されます。

- 選択コントロール(ドロップダウン・リスト、ラジオ、チェック・ボックス)。

- 大部分の入力コントロール(テキスト、テキスト領域、電子メール、電話番号、数量、数値)。

- 日付コントロール(日付、時間、日付/時間)。

初めてWebフォームにコントロールを追加すると、このプロパティが自動的に移入されます。フォーム内のコントロールを別のタイプのコントロールに切り替える場合は、このプロパティを変更できます。これにより、元のコントロールを削除せずに新規コントロールを内側にドラッグできます。

いくつかの制限事項があります。選択コントロールを入力コントロールに変更することはできません(逆も同様)。チェック・ボックスをドロップダウン・リストに切り替えることはできますが、このプロパティを使用してチェック・ボックスをテキスト・コントロールに変更することはできません。

また、このプロパティはフォーム内のコントロールの種類を検証するのに役立ちます。コントロールを内側にドラッグした後に新しいラベルをコントロールに割り当てるため、たとえば、テキスト・コントロールと電話コントロールのどちらを処理しているのか忘れることがあります。このプロパティにより、ラベルの記載に関係なく、フォーム内のコントロールの種類を把握できます。

スキーマ要素から生成されたコントロールには、コントロール・タイププロパティのかわりに表示形式プロパティが設定されます。

CSSクラス

フォームのXHTMLマークアップに追加されたコントロールのクラス名を定義します。このCSSクラスを使用して、テーマをカスタマイズする際に任意のCSSでコントロールを参照できます。

あるビルトインCSSクラス名はf-page-breakです。フォームのPDF、TIFFの印刷ビューに改ページを追加する場合、新規ページの先頭で起動するコントロールにf-page-breakを追加します。

日付書式

フォームで使用する日付書式を定義します。

このプロパティは、日付コントロール、および日付/時間コントロールの日付部分にのみ適用されます。ヨーロッパの日付書式がサポートされています。このプロパティを使用することで、フォームに入力された日付は選択した書式に従って変換され、選択した書式に合せて再度書式設定されます。

- フォーム・フィールドに入力した日付は、選択した日付書式に合せて再度書式設定されます。

- フォーム・フィールドに入力した日付は、選択した書式に従って変換されます。たとえば、ヨーロッパの書式であるDD-MM-YYYYを選択し、10-05-2009と入力した場合、日付値はMay 10, 2009に変換されます。米国の書式であるMM-DD-YYYを選択した場合、日付値はOctober 5, 2009に変換されます。

- "-"、"/"または"."のいずれかをセパレータとして使用したMM-DD-YYYYを選択した場合、どれもその書式には有効ですが、選択したセパレータに変換されます。

- ユーザーは引き続き、Feb 3, 2001のような日付を入力できます。これは指定した書式に変換されます。

表示形式

フォームでのコントロールの外観を変更できます(たとえば、テキスト・コントロールをドロップダウンに変更するには、許容されたコントロールのリストからドロップダウンを選択します)。これにより、コントロールの外観は変更されますが、コントロールによるデータの処理方法には影響しません。コントロールの検証の動作を変更する必要がある場合は、スキーマを更新する必要があります。表示形式プロパティは、次のスキーマ・コントロールには使用できません: メッセージ、アップロード、イメージ、ビデオ、リンク、繰返し、日付、時間、日付/時間。

このプロパティは、XSDスキーマ要素から生成されたコントロールにのみ適用されます。(コントロールがパレットからドラッグされた場合、コントロール・タイプ・プロパティが設定されています)。

有効な場合に許可

すべてのデータが検証済でない場合でも、ユーザーはフォームを送信できます。

デフォルトでは、すべての必須フィールドが入力され有効なデータが含まれるまで、フォームの「送信」ボタンは使用できません。ただし、フォームのデフォルトの動作を上書きし、フォームが無効でもユーザーによるフォームの送信を許可する必要がある場合があります。これを行うには、このプロパティの選択を解除します。

このプロパティは送信コントロールにのみ適用されます。

有効

ユーザーが最初にフォームにアクセスしたときにコントロールを有効または無効のどちらにするかを決定します。無効チェック・ボックスを選択した場合、コントロールが有効になるまでユーザーはコントロールに値を入力できません。(ルールを使用してコントロールを有効にできます。)

たとえば、結婚式の招待状のフォームを作成しており、フォームに入力する人がゲストを同伴するかどうかを知る必要があるとします。フォームにはゲストの氏名を入力するテキスト・コントロールが含まれ、ユーザーが実際に結婚式に参列することを(別のコントロールで)表明した後にのみ有効になります。

コントロールのグループ化を無効にすることはできません。

エラー・メッセージ

ユーザーがコントロールで有効な値を指定しない場合、特定のエラー・メッセージを表示できます。このプロパティを空白にすると、ユーザーが不正な値を指定した場合、ユーザーは汎用フィードバック(無効な値メッセージなど)を受け取りますが、このプロパティを使用すれば、エラー・メッセージをより役立つ情報にすることができます。

たとえば、ユーザーが電話コントロールに市外局番203または860を入力する必要があるパターンを使用している場合、エラー・メッセージ・プロパティを使用することで、ユーザーが異なる市外局番を入力しようとしたときにこれを明示的に知らせることができます。

ヘルプ

特定のコントロールに関する詳細なヘルプをユーザーに提供できます。ここにテキストを入力すると、フォーム上のコントロールの横にアイコンが表示されます。ユーザーがクリックすると、「ヘルプ」プロパティで指定したヘルプ・テキストがフローティング・ボックスに表示されます。

ラベルの非表示

コントロールのラベルをフォームに表示するかどうかを決定します。フォームのラベルを非表示にするにはチェック・ボックスを選択し、コントロールのラベルを表示するには選択を解除します。

ヒント

ユーザーがコントロールにカーソルを重ねたときにフォームに表示されるツール・チップを作成できます。ツール・チップのテキストをヒント・フィールドに入力します。

ラベル

このWebフォーム・コントロールのラベルを定義します。このラベルは、コントロールの横または上にあるフォームに表示されます。ラベルの非表示プロパティを有効にすることで、フォームのラベルを非表示にできます。

初めてWebフォームにコントロールを追加する際に、任意かつ一意の名前が割り当てられます。コントロールの作成後、これをWebフォームのエンド・ユーザーに対して表示するテキストに変更できます。

コントロールをクリックしてラベルを選択するか、プロパティ・ラベル・フィールドで任意の名前を重ねることで、フォーム自体でラベルをコントロールできます。

メッセージ・コントロールはラベルのない唯一のコントロールであり、静的テキストに使用されるためラベルも不要です。

ラベルではプレーン・テキストに制限されていません。ラベル名を入力する際には、任意のXHTMLを使用できます。

ラベル

コントロール・ラベルを変更できますが、スキーマ内のコントロールのXSD値は変更されません。つまり、フォームの表示内容は変更できますが、基礎となる値は変更できません(要素値を変更する際にパレット・コントロールに使用する[value=label]構文は使用できません)。

このプロパティは、スキーマ要素から生成されたコントロールにのみ適用されます。(コントロールをパレットからドラッグした場合、「オプション」プロパティが設定され、コントロールがスキーマ要素から生成された場合、かわりに「ラベル」プロパティが設定されます。)

最大長

コントロールでユーザーが指定できる文字数を制限するために使用します。最大長フィールドに数値(正の整数)を入力します。テキスト領域コントロールでは、HTML制限のためこのプロパティはサポートしていません。ただし、ビジネス・ルールを使用してテキスト領域コントロールTextareaMaxLengthにこの機能を追加することは非常に簡単です。

このプロパティは、テキスト・コントロールおよび他の入力コントロールに使用できます。

メッセージ

フォームにメッセージを組み込むことができます。このプロパティ・フィールドには、通常のテキストに加えて、ブラウザによって書式設定および表示される任意のXHTMLマークアップを含めることができます。このプロパティはメッセージ・コントロールにのみ適用され、フォームに表示される静的テキストを入力します。

最小値と最大値

ユーザーがコントロールに入力できる最小値と最大値を定義できます。

これらのプロパティは、表コントロールの一部として、またはフォームの繰返しコントロールの中に入力コントロールが含まれる場合に表示され、その入力コントロールに適用されます。2つのプロパティ・フィールドに数値(正の整数)を入力します。最小値1および最大値10を指定した場合、ユーザーは少なくとも1つの入力コントロールに値を入力する必要があり、入力しない場合はフォームを送信できなくなりますが、10個まで入力できます。

表コントロールの最小値と最大値のプロパティにより、ユーザーは必要に応じてフォーム内の表の行を追加/削除できます。

アップロードされたスキーマから生成されたコントロールでは、最小値/最大値のプロパティは編集できません。これは、スキーマでminOccursおよびmaxOccurs属性によりすでにこれらが指定されているためです。

名前

このコントロールの名前を定義します。この名前は自動生成され、コントロールのラベルから空白および特殊文字を除いた名前にデフォルト設定されます。ルールで使用できる有効な名前にするために空白および特殊文字は削除され、XMLユーザー向けに、XSDスキーマ要素名として名前が有効になります。トリガーおよびパネルを除くすべてのコントロールについて、コントロール名は32文字に切り捨てられます。

同一ラベルを持ちレベルが同じである2つのコントロールがある場合、コントロールの名前は自動的に一意となります。名前が一意にならなくなるような編集を試みると、Oracle Web Formsにより編集が妨げられます。ルールでコントロールを使用するには、名前がフォーム内で一意である必要があります。コントロールがセクション・コントロール内にドロップされた場合、セクションの外側にドロップされたコントロールとは別のネスト・レベルとなります。

また、2つのコントロール、たとえば車と呼ばれるセクション内のコントロールおよびボートと呼ばれるセクション内のコントロールは、異なるネスト・レベルとなります。どちらの場合も、フォーム・デザイナによりコントロールに同じ名前を付けることができます。たとえば、車およびボートのどちらにもVINというコントロールを含めることができます。

「名前」プロパティは、Oracle BPMの異なるいくつかのコンテキストで使用されています。

- フォーム・ルール内でのコントロールの参照方法を決定します。

- パレットから追加されたコントロールについて、Web_Forms_data URLパラメータによってフォーム・フィールドを初期化する際に使用します。注意: XSDスキーマから追加されたコントロールの場合、_dataによってコントロールを初期化するには、基礎となる要素名を使用する必要があります。

- ドキュメントURIからフォーム・フィールドを参照する方法を決定します。

- フォーム・アクションのメッセージを表示してURLテンプレートに移動で使用します。

- ドキュメント・アクションの電子メール・アドレス・テンプレートで使用します。

- パレットからフォームにドラッグするコントロールに対応したXML要素に指定された名前です。

スキーマからコントロールの名前を変更できますが、スキーマ・コントロールにより基礎となるXSD要素名が保持されます。たとえば、フォーム内の2つのスキーマのコントロールを使用しており、どちらにもFNameというコントロールが含まれるとします。これらのコントロールのいずれかの名前をFirstNameに変更し、フォーム内で一意にすることができます。これは、フォームにルールを追加している場合、またはフォームをテンプレートとして使用する場合に役立ちます。

_dataを除き、XSDに基づくコントロールでは、パレットに基づくコントロールと同じルール(前述)が使用されます。

オプション

これらのコントロールでユーザーに表示される選択肢の移入方法を定義します。このプロパティは、ドロップダウン、ラジオおよびチェック・ボックス・コントロールに対して表示されます。

オプション値と異なるオプション・ラベルがある場合があります。オプションの構文は、<value>=<label>です。<label>はフォームに表示される内容であり、<value>はユーザーがフォームを送信する際に選択した値として保存される内容です。

これらのコントロールのいずれかをフォームに最初にドラッグしたとき、汎用的な値: オプション1、オプション2およびオプション3が割り当てられます。これは、「プロパティ」領域に表示される汎用テキストと一致します。独自の値を指定するには、「オプション」プロパティの値を目的の値で上書きし、必要に応じて追加(または削除)します。

<value>=<label>構文を使用して<value>および<label>の両方を入力しない場合、値はデフォルトでラベルに設定されます。「オプション」プロパティのタブを非表示にするとすぐに、値のないオプションは自動的に構文に変換されます。

ここでは、値なしでオプションを入力します。この場合、Oracle Web Formsによりデフォルトで値がラベルに設定されます。

コントロールでの選択肢の順序は、「プロパティ」領域での順序と一致します。論理的な順序を必要とする選択肢がある場合(米国の各州のドロップダウンは多くの場合アルファベット順にソートする必要があります)、「プロパティ」領域で順序が正しいことを確認してください。(「オプション」プロパティ・フィールドに入力したテキストはソートできませんが、カット・アンド・ペーストは可能です。)

汎用オプション1、2および3の選択肢に加えて、ドロップダウン・コントロールにはデフォルトでリストの最初に表示される空白オプションも含まれます。この空白オプションは、「オプション」プロパティに指定したテキストに関係なく表示されます。空白オプションは削除できませんが、その他のオプションのいずれかをデフォルトに設定できます。デフォルトの設定を参照してください。

'='の文字をオプションで表示するにはどうすればよいでしょうか。1つ目の等号は値とラベルの間のデリミタであるため、等号は次のようにラベルに挿入できます。たとえば、ラベルを"good = gold"とするとします。これをオプションとして入力すると、ドロップダウンに表示されるのは"gold"というラベルです。これを解決するには、オプション文字列: "a=good = gold"を使用します。これでラベルは希望どおりになります。

アップロードされたスキーマから生成された選択肢は変更できません。これは、スキーマにより選択肢が指定されるためです。スキーマから生成されたコントロールでは、「プロパティ」領域の「オプション」プロパティは表示されません。ただし、オプション・ラベルは変更できます。ラベルを参照してください。

パスワード

このフィールドに入力したテキストがブロック・アウトされます。

このプロパティは、テキスト・コントロールおよび他の入力コントロールにのみ適用されます。「パスワード」チェック・ボックスを選択した場合、ユーザーが入力したテキストがアスタリスクでフォームに表示されます(ただし、通常のテキストとして送信されます)。

パターン

ユーザーがコントロールに入力するデータのタイプについて、追加の制限事項を定義できます。

多くのコントロールでは、ユーザーが正しいデータ型を指定したことが自動的に確認されますが、パターンでは、ユーザーが特定のコントロールに入力する内容に対して柔軟に追加の制限を課すことができます。

「プロパティ」領域の「パターン」フィールドに、XMLスキーマの正規表現を使用してパターンを入力します。単純な例として、米国郵便番号として書式設定された文字列のみを許可するよう、テキスト・コントロールを制限するパターンがあります: \d{5}|\d{5}-\d{4}。この表現を「パターン」プロパティに入力した場合、フォームではこのフィールドに入力した値が、5桁、または5桁の後に'-'の文字、さらに4桁が続く場合にかぎり許可されます。

パターンを定義する場合、コントロールで自動処理される対象は制限する必要がありません。番号コントロールにはパターン[a-z]を入力する必要はありません。これは、ユーザーが数値フィールドに文字を入力できないためです。基本的にはコントロールで使用可能なデータ型を展開しようとしているため、Oracle Web Formsはこのパターンを入力した場合に無視します。

パターンを有効にするには、まずフォームを保存する必要があります。パターンはフォーム・デザイナではテストできず、使用モードでのみとなります。

印刷可能

このフォーム・フィールドをフォームのPDFドキュメント・ビューに表示するかどうかを決定します。未選択の場合、フィールドはどちらのビューにも表示されません。

このプロパティはセクション・コントロールに設定でき、このプロパティはセクション・コントロール内のすべてのコントロールに自動適用されます。多くの場合、これはWebフォーム・ルールで使用されます。

必須

フォームを送信する前にコントロールに有効な値を入力するようユーザーに強制する場合は、コントロールが必須であることを定義します。これを行うには、「プロパティ」領域の「必須」チェック・ボックスを選択します。データがオプションの場合は、チェック・ボックスの選択を解除します。

コントロール必須とマークすると、すぐにフォームのコントロールの横に赤いアスタリスクが表示されます。ユーザーがすべての必須コントロールに有効なデータを移入するまで、「送信」ボタンが無効となるためユーザーはフォームを送信できません。

グループ・コントロール(タブ、セクション、パネルおよび繰返し)を必須とマークすることはできません。繰返しコントロールの直接の子である(すぐ内側にある)入力コントロールも必須とマークできず、最小値と最大値のプロパティがこれを定義しているためその必要もありません。ただし、コントロールがセクション、タブおよびパネル内にある場合は必須に設定できます。

アップロードされたスキーマから生成されたコントロールでは、必須のプロパティは編集できません。これは、スキーマでminOccurs属性によりすでにこれが指定されているためです。スキーマからのコントロールが必要に応じて表示され、必須にする必要がない場合は、XSDを編集し、minOccurs=0を設定します。XSDを再アップロードします。その結果、コントロールは必須表示されなくなります。

フォーム内の他の要素に応じてセクションを表示/非表示するルールを使用している場合、このプロパティは非常に役立ちます。セクションを非表示にした場合、必須プロパティをfalseに設定する必要があることがあります。

機密

送信リポジトリに保存された値をフォームのWeb送信ユーザー・インタフェースで表示したときに非表示にするかどうかを決定します。この値は現在、データベースで暗号化されていません。このフィールドにユーザーが入力するデータに、ユーザー・インタフェースで表示する際に表示してはならない機密データが含まれる場合、チェック・ボックスをクリックします。

時間書式

コントロールで使用される時間書式を定義します。

このプロパティは、日付コントロール・ドロップダウンから時間または日付/時間オプションを選択して作成される時間コントロールにのみ適用されます。これは標準および軍用時間書式をサポートしています。このプロパティを使用することで、フォームに入力された時間エントリは選択した書式に従って変換され、選択した書式に合せて再度書式設定されます。

- フォーム・フィールドに入力した時間エントリは、選択した時間書式に合せて再度書式設定されます。

- フォーム・フィールドに入力した時間は、選択した書式に従って変換されます。たとえば、軍用時間書式hh:mm:ssを選択し、2:00 PMと入力した場合、時間値は14:00:00に変換されます。

表示可能

ユーザーが最初にフォームにアクセスしたときにコントロールを表示または非表示のどちらにするかを決定します。「有効」プロパティとほぼ同じですが、コントロールを無効にするかわりに非表示にし、ユーザーによる別のコントロールへの入力内容に基づいて表示可能にするルールを記述します。

行数

テキスト領域の初期サイズを定義します。このプロパティはテキスト領域コントロールにのみ適用されます。指定した行数にユーザーが到達すると、スクロール・バーが自動表示されます。

C.2.2 Webフォーム・コントロールのプロパティ - 「スタイル」タブ

テキスト・コントロールの表示固有のプロパティを定義するには、「スタイル」タブを使用します。次の表では、「スタイル」タブで使用できるすべてのプロパティのアルファベット順リストを示します。

注意:

下にリストしたすべてのプロパティがすべてのWebフォーム・コントロールで使用できるわけではありません。

プロパティ

説明

背景色

コントロールの背景に表示される色を指定できます。任意の有効なCSSカラー名またはそれに相当する16進RGBを入力します。たとえば、赤い背景を希望する場合、REDまたは#aa2211という語を入力できます。

太字

コントロールのラベルが太字になります。

境界線の色

コントロールの境界線の色を定義します。

境界線の幅

コントロールを囲む境界線の太さ、書式および色を指定できます。セクションおよび繰返しを除き、境界線はユーザーがデータを入力した領域にのみ適用され、コントロールのラベルは囲みません。

タブ・コントロールでは、境界線プロパティにアクセスするには一番右のタブの右側にあるラベル付けされていない領域をクリックします。境界線プロパティは、タブ・グループ内の個々のタブに一様に適用されます。パネルには境界線を適用できませんが、パネルの内側にドラッグしたコントロールの周囲に境界線を作成できます。

境界線の色プロパティはフォームの背景色とは異なる色にしてください。さもないとユーザーが境界線を認識できません。色を指定するには、色の名前またはそれに相当する16進数の入力に関する標準CSS規則を使用します。境界線の幅プロパティを指定する場合、ピクセル(5pxなど)を使用すると最適な動作となります。

境界線スタイル

コントロールの境界線のスタイルを定義します。

斜体

コントロール・ラベルが斜体で表示されます。

アイテムの幅

オプションのレイアウトを縦(1つのラジオ/チェック・ボックスのボタンの下に次)から横に変更する際に使用します。これは長いフォームで縦のスペースを節約する場合に役立ちます。また、それぞれに同じオプション・セットが用意された質問を含むフォームについて、使いやすさを向上させる場合に役立ちます。

このプロパティは、ラジオおよびチェック・ボックス・コントロールで使用されます。

ラベルの色

フォームの特定のコントロールについて、フォント・サイズおよび色を変更できます。色を指定するには、有効なCSSカラー名またはそれに対応する16進数を入力します。

ラベル全体のサイズおよび色を同じにする場合はこれらのプロパティが便利ですが、より洗練されたラベルにするには、コントロールのラベル・プロパティ・フィールドにXHMTLを入力できます。たとえば、同じラベル内で異なる2つのフォント色を適用する場合は、XHMTLを使用します。また、ラベル・サイズのプロパティで選択できるのは汎用フォント・サイズ(小、中など)のみであるため、XMHTLを入力すると、フォントをより細かく指定できます。たとえば、ドロップダウンで小および中のオプションの間のフォント・サイズを必要とするコントロールが存在する場合があります。

ラベル・サイズ

ラベルのサイズ(ピクセル単位)を定義します。

余白

コントロールの外側を囲む余分なスペースを追加できますが、パディングはコントロールの境界線の内側に余分なスペースを追加できます。

標準CSS構文を使用して、余白およびパディングのプロパティを入力します。5%などの単一の値を入力すると、5%の余白またはパディングは、コントロールの4つの辺すべてに均一に適用されます。

また、コントロールの様々な辺に異なる余白またはパディングを指定できます。たとえば、余白プロパティを5px 10px 15px 20pxにすると、上辺の余白5ピクセル、右辺の余白10ピクセル、下辺の余白15ピクセルおよび左辺の余白20ピクセルとして管理できます。

オプション幅

オプション値が単一線より長い場合に使用します。特定のブラウザでは、ラジオまたはチェック・ボックスの下からオプション値が開始する場合があります。80%などの小さいオプション幅を選択することでこれを修正できます。

このプロパティは、ラジオおよびチェック・ボックス・コントロールで使用されます。

パディング

余白プロパティを参照してください。

幅

コントロールの幅を指定するために使用します。

入力コントロールでは、このプロパティによってユーザーがデータを入力する領域の幅を指定します。たとえば、郵便番号を入力する際に使用するコントロールを狭くしたり、名、ミドル・ネームおよび姓を含めたフルネームのコントロールを広げることができます。一般的な例では、パネル内部のテキスト・コントロールを2列レイアウトの一部として使用する場合に、番地用にテキスト・コントロールの幅を90%に設定します。(コントロールがパネルまたは他のグループ・コントロールの内側にある場合、幅のパーセンテージはグループ・コントロールに対して相対的です。コントロールがグループ・コントロールの内側にない場合、幅のパーセンテージはフォーム全体に対して相対的です。)

列が並べて配置される前にパネルの幅を調整する必要があるため、パネル・コントロールに対してこのプロパティは重要です。タブ・コントロールでは、タブ・グループで最後のタブの右側にあるラベル付けされていない領域をクリックすると、幅プロパティにアクセスします。指定した幅はグループ内の各タブに均一に適用されます。(詳細は、パネルおよびタブを参照してください。)

セクションまたは繰返しコントロールには幅プロパティはありません。ただし、これらのコントロールの内側にドラッグしたコントロールの幅プロパティを編集できます。あるいは、セクションまたは繰返しを他のグループ・コントロールの内側にドラッグすると、Oracle Web Formsでは幅が常識的なサイズに自動調整されます。

コントロールの幅プロパティを設定する際には、標準CSS相対値、たとえば5%、5em、5exまたは5pxを使用できます。

D Webフォーム・ルールの例

この付録では、WebフォームでWebフォーム・ルールを使用するための例とユース・ケースを提供します。フォーム・ルールに関する一般的な情報については、第10章「Webフォーム・ルールの使用」を参照してください。

D.1 合計の計算

次の例では、3つのコントロールを持つフォームがあり、それぞれにN1、N2、Tという名前が割り当てられていると仮定します。ユーザーがN1またはN2に値を入力したとき、Tの値をN1とN2の合計に設定するとします。

このルールは次のように記述できます:

if (N1.value > 0 || N2.value > 0) {
T.value = N1.value + N2.value;
}

このルールは、N1またはN2に値を入力すると自動的にその値をTに設定します。式には、減算や乗算など有効なJavaScript演算子を使用できます。ただし、計算された値は必ずTのタイプのコンテキストで有効であることが重要です。たとえばTのタイプが整数で、式の計算値が少数(1.5など)の場合、このルールはTに無効な値を設定しようとすることになります。これによりエラーが生成されます。このルールで指定された値は設定されますが、フィールドは無効とマークされ、送信ボタンを無効にしたりコントロールの背景を赤で表示したりするなど適切なアクションが実行されます。

また、パレットからフォームにコントロールを追加する場合は、タイプが適切かどうかを確認することが重要です。たとえば、前述したような数値計算の場合、コントロールのタイプは数値である必要があります。

D.2 請求先住所の表示/非表示

次の例では、2つのコントロールを持つフォームがあり、それぞれにBおよびSという名前が割り当てられていると仮定します。Bはチェック・ボックスで、1つのオプションがあり、その値はYesです。Sに別の請求先住所を入力したいとユーザーがチェックした場合、Sが表示されます。

フォーム・ルールは次のように記述されます。

if (B[0].value == 'Yes') {
S.visible = true;
} else {
S.visible = false;
}

このフォーム・ルールは、ユーザーがBのチェック・ボックスを選択または解除すると自動的に実行され、請求先住所セクションSの表示と非表示を切り替えます。ブール値のtrueまたはfalse値に評価されるものであれば、Sの表示プロパティを計算する任意の有効なJavaScript式を使用できます。この例では、チェック・ボックスBのデフォルトを選択解除の状態にし、セクションSのデフォルトを非表示にするのが一般的です。

D.3 メッセージの表示/非表示

次の例では、フォームにFacilityという名前のラジオ・コントロールがあり、選択したオプションに応じてメッセージを表示します。

if (Facility.value == 'Boston' ||
CompanyFacility.value == 'New York')
{
Msg.visible = true;
} else {
Msg.visible = false;
}

D.4 質問の有効化/無効化

この例では、2つのコントロールを持つフォームがあり、それぞれにBおよびQという名前が割り当てられていると仮定します。Bはチェック・ボックスで、1つのオプションはYesです。チェック・ボックスを選択したユーザーは喫煙者であり、Qで追加質問がたずねられます。このルールは次のように記述できます:

if (B[0].value == 'Yes') {
Q.enabled = true;
} else {
Q.enabled = false;
}

このルールは、ユーザーがBのチェック・ボックスを選択または選択解除すると自動的に実行され、Qの質問の有効/無効を切り替えます。ここでも、ブール値のtrueまたはfalse値に評価されるものであれば、Qの有効なプロパティを計算する任意の有効なJavaScript式を使用できます。

この例では、チェック・ボックスBのデフォルトを選択解除の状態にし、コントロールQのデフォルトを無効にするのが一般的です。

D.5 繰返しアイテムの小計の計算

次のフォーム・ルールは、繰返しアイテムを処理する例です。たとえば、ユーザーが購入できるアイテムを表す繰返しセクションのあるフォームがあります。各セクションは、価格(名前はP)、数量(名前はQ)、そして小計(名前はS)です。ページ上には複数のアイテムがあり、ページごとのアイテムの数は不明です。価格フィールドは、自動的に入力されます。いずれかのアイテムの数量フィールドに値を入力して、小計を計算します。

このルールは次のように記述されます:

for (var i = 0; i < S.value.length; i++) {
if (Q[i].value > 0) {
S[i].value = Q[i].value * P[i].value;
} else {
S[i].value = 0;
}
}

このルールは、いずれかのアイテムの数量フィールドにユーザーが値を入力すると常に自動的に実行されます。数量が0より大きい各アイテムの小計が計算され、そのアイテムの小計フィールドに計算された値が入力されます。特定のアイテムに数量がない場合、小計は計算されません。

D.6 請求合計の計算

次のフォーム・ルールは、繰返しアイテムを処理する例です。ここでは、Tという名前で合計のコントロールがあると仮定します。合計の値を、前述の小計をすべて計算した合計の請求金額に設定するとします。このルールは、次のように記述されます。

var tot = 0;
for (var i = 0; i < S.value.length; i++) {
tot = tot + S[i].value;
}
T.value = tot;

このルールは、前述のルールによって更新されたときなど小計が更新されるたびに実行されます。請求合計に到達するまですべての小計の値が加算されます。合計の計算には、一時変数を使用する必要があります。

このルールを次のように記述します:

T.value = 0;
for (var i = 0; i < S.value.length; i++) {
T.value = T.value + S[i].value;
}

これは正常に動作しません。これは、ルールの評価に関する内部制限が理由です。このルールは繰返しコントロールの内部のコントロールで動作しています。アイテムを繰返しから削除するように処理するには、繰返しコントロールがExpenseRepeatという名前であると想定して、次の追加をする必要があります。表コントロールは、レイアウトの異なる繰返しです。したがって、表コントロールにも同じことが適用されます。表の名前がExpenseである場合、繰返しは自動的にExpenseRepeatという名前になります。

if (ExpenseRepeat.itemRemoved) {;}

D.7 テキスト領域の最大長

このフォーム例では、Descという名前のテキスト領域コントロールがあり、そこにユーザーが最大500文字までの説明を入力できます。HTMLでは、テキスト領域コントロールのmaxLengthを設定する方法はありません。この制限のため、テキスト領域コントロールには、テキスト・コントロールのようなmaxlengthプロパティがありません。

フォーム・ルールを使用すればこれを実現できます。このコントロールで、ErrorMsgプロパティに「You must limit your description to 500 characters」という文字列も設定します。次のビジネス・ルールによって説明コントロールが無効に設定されると、このメッセージが自動的に表示されます。

if (Desc.value.length > 500) {
Desc.valid = false;
} else {
Desc.valid = true;
}

エラー・メッセージをカスタマイズするには、次の行をルールに追加します。

Desc.status = 'Invalid. Max 20 chars allowed and you have ' + Desc.value.length;

ユーザーに許可される最大を超える文字数を示すエラー・メッセージです。

D.8 テキスト領域の改行とブレーク

テキスト領域コントロールには、複数行のテキストを入力するのが普通です。WebページやHTML形式の電子メールなどのHTMLコンテキスト、またはフォームのフォーム・アクション表示メッセージでそのテキストを表示する場合は、改行文字をHTMLブレークに置き換える必要があります。これは改行の違いが原因で、Webフォームのテキスト領域に入力される改行は1つの改行文字\nで表されますが、HTMLコンテキストでの改行はHTMLブレーク文字で表されます。

次の例では、Descriptionという名前のテキスト領域コントロールと、DFという名前の非表示のコントロールがあります。表示されているDescriptionというコントロールにユーザーがテキストを入力すると、ビジネス・ルールによって改行文字\nがHTMLブレーク文字に変換されます。

var x = Description.value;
x = x.replace(/\\n/g,"<br/>");
DF.value = x;

D.9 ドロップダウン・オプション

次の例では、1つのドロップダウンで選択されるオプションを、別で選択したオプションに基づいて自動的に設定します。これは、動的に移入される選択肢を持つフォームが存在する場合に便利です。たとえば、製品選択が説明的なテキストである場合を考えます。ユーザーが製品を選択したとき、説明的な製品テキストではなく製品IDに基づいてアクションを実行するフォームである必要があります。これは、製品選択ドロップダウンを動的に移入するルールによって、フォームの非表示のままの製品IDドロップダウンもまた移入されるようにすると簡単です。製品の選択肢のドロップダウン・コントロールはPという名前で、製品IDのドロップダウン・コントロールはIDという名前です。

1番目のルール「Load Products」で、表示されるドロップダウンと非表示のドロップダウンの両方に、データベースからのオプションが移入されます。

Load Products:
--------------
if (form.load) {
eval('x=' + http.get('http://localhost:8082/database/products'));

var opts1 = [];
var opts2 = [];

for (var i=0; i < x.resultSet.length; i++) {
if (x.resultSet[i]) {
opts1[i] = x.resultSet[i].description;
opts2[i] = x.resultSet[i].productId;
}
}

Products.options = opts1;
PID.options = opts2;
Products.value = opts1[0]; // default to 1st product option
PID.value = opts2[0];
}

D.10 選択したオプションの索引の検索

2番目のルールSelect Product IDは、非表示のPIDドロップダウンと、表示されている製品説明のドロップダウンとの同期を保ちます。

Select Product ID Rule:
-----------------------
if (Products.value.length > 0)
{
var i;
for (x in Products.options) {
if (Products.value == Products.options[x])
i = Products.options.indexOf(Products.options[x]);
}

PID.value = PID.options[i] + '';
}

v4のルールで非表示のドロップダウンを使用して説明オプションのラベルを表示する一方で、暗号化されたデータベース値を非表示のままにするのは多くの場合不要になります。ドロップダウンのオプションは、ユーザーに見えるオプション・ラベルとは別の値を持ちます。上記は単一の簡単なルールで実行することが可能です。

for (var i=0; i < x.resultSet.length; i++) {
if (x.resultSet[i]) {
opts1[i] = x.resultSet[i].productId+ '=' + x.resultSet[i].description;
}
}
Rdocnum.options = opts1;

製品選択と製品IDドロップダウン両方に動的に移入するルールをもう1つ示します。このルールは、上で示されているデータベース・コネクタによって返される結果セットではなくオブジェクトを返すRESTというサービスを呼び出します。詳細は、動的コンテンツに関する項を参照してください。

if (S.value.length > 0) {
eval('x=' + http.get('http://localhost:8182/products/?category=' + S.value));
P.options = x.products;
ID.options = x.ids;
}

D.11 選択の同期化

前述の製品検索の例は、多くの場合、非表示の選択コントロールと組み合せて使用されます。データベース表に製品のリストがあると仮定します。製品ごとに、製品の説明と一意の製品IDがあります。ユーザーは、フォーム上のドロップダウンから製品を選択する必要があります。ドロップダウンには、製品の説明を移入します。ユーザーは製品IDを知らなくてもかまいませんが、他を選択するために、データベースに対するキーとしてIDを使用する必要があります。これを行うには非表示のドロップダウンを別のフォームに追加し、IDを移入します。この例には、Productsという名前で表示されるドロップダウンと、PIDという名前の非表示のドロップダウンがあります。データベースから動的にこれらのドロップダウンに移入する前述のルールを参照してください。

このルールは、選択するPIDオプションと、選択する製品との同期を保ちます。

var i;
for (x in Products.options) {
// Determine the index of the selected product in the Products dropdown options
if (Products.value == Products.options[x])
i = Products.options.indexOf(Products.options[x]);
}

// Changed the selected PID to match the selected Product
PID.value = PID.options[i] + '';

D.12 ドロップダウン・オプションのクリア

このサンプルは、ドロップダウン・オプションを自動的に追加される空白のオプションにリセットします。パレット・コントロールおよびスキーマから追加するドロップダウンの場合は、Oracle Web Formsによって自動的に空白のオプションが追加されるので、デフォルトでは始めはドロップダウンに何の選択も表示されません。ドロップダウンをリセットするには、ドロップダウン・コントロールの値を空の文字列ではなくnullに設定します。空の文字列は有効なオプションではないため、空の文字列は機能しません。このフォームは、製品オプションの値が変更されるたびに、サイズという名前のドロップダウンをリセットします。

if (product.value.length > 0) {
size.value = null;
}

D.13 デフォルト・オプション

次に示すように、ビジネス・ルールでオプションが動的に設定される場合、フォーム・デザイナ上でデフォルトを設定することはできません。ルールでデフォルトを設定する必要があります。オプションに<value>=<label>があって、valueがlabelと異なる場合には、<label>でも<value>=<label>でもなく、<value>に<control>.valueを設定してください。

if (form.load) {
var cc = ['R=Red', 'B=Blue', 'G=Green'];
Colors.options = cc;
Colors.value = 'B';
}

D.14 チェック・ボックス・オプション - チェック・ボックスの選択肢への色の割当て

チェック・ボックス・コントロールがOracle Web Formsの他のパレットと異なるのは、複数選択できるという点です。したがって、チェック・ボックス・コントロールを使用するルールを作成する方法は、多くの点が繰返しコントロールと似ています。このルールには、colorPaletteという名前のチェック・ボックス・コントロールがあり、オプションはpurple、green、blue、yellow、orangeの各色です。フォームには、colorChoiceという名前のテキスト・コントロールもあります。このルールは、colorPaletteから選択した選択肢をcolorChoiceに割り当てます。

var choices = '';
for (var i = 0; i < colorPalette.value.length; i++)
{
choices = choices + colorPalette[i].value;
}
colorChoice.value = choices;

繰返しコントロールと同じように、内部評価制限があるため、forループ内部の変数でオプションを取得する必要があります。その後、そのコントロールのName.valueをforループの外側の変数に割り当てます。

このルールは、チェック・ボックスで配列タイプを制御する方法を示したもう1つの例です。

if (colorPalette.value.length > 0)
{
colorChoice.value = 'Thank you for choosing colors';
}
else
{
colorChoice.value = 'Please choose colors...';
}

D.15 チェック・ボックス・オプション - チェック・ボックスの選択肢に基づいてコントロールの表示/非表示を切替え

このルールは、ユーザーが選択したチェック・ボックスの選択肢に基づいてコントロールの表示/非表示を切り替えます。このフォームには、Structuresという名前の複数選択チェック・ボックスがあります。ユーザーが「Detached Garage」または「House」オプションを選択した場合に、Detailsという名前のテキスト・フィールドを表示します。

ここでも同様に、チェック・ボックスは複数選択なので、配列として扱われます。配列には選択した(チェックした)すべてのオプションが含まれます。

チェック・ボックスをパレットから追加する際に、オプションが空白を含む複数の単語である場合、オプションの配列で空白文字が'_'の文字に変換されます。次のように比較する必要があります。スキーマからのチェック・ボックス・コントロールは、空白が'_'に置換されません。

var found = false;
for (var i = 0; i < Structures.value.length; i++)
{
if (Structures[i].value == 'Detached_Garage' ||
Structures[i].value == 'House') {
found = true;
break;
}
}
if (found == true) {
Details.visible = true;
} else {
Details.visible = false;
Details.value = null;
}

Detailsを非表示にするときはその値もクリアします。これは、ユーザーがStructuresのチェック・ボックスでDetailsを表示するオプションのいずれかを選択しており、かつDetailsに値を入力した可能性があるからです。そして、ユーザーが考えを変え、Detailsを表示するオプションの選択を解除した可能性があるからです。Detailsに入力された値をフォーム送信時に含めたくない場合には、それを非表示にするときに値をクリアします。

D.16 チェック・ボックスの初期化

チェック・ボックス・オプションは複数選択できるので、ルールを介して複数オプションを選択するには、次の構文を使用する必要があります。この例ではCBという名前のチェック・ボックス・コントロールがあり、そのオプションがred、green、blueです。このルールは、オプションをすべて選択します。

CB.value = ['red', 'green', 'blue'];

CBという名前のコントロールで、チェックされたオプションをすべてクリアするには:

CB.value = [];

D.17 選択したチェック・ボックスのラベルの表示

この例のルールは、ユーザーが選択したチェック・ボックスのラベルを表示します。

var selectedcolors = '';

for (var i = 0; i < RGB.value.length; i++)
{
var v = RGB[i].value;
for (x in RGB.options) {

var opt = RGB.options[x];
var val= opt.split('=')[0];
var lab= opt.split('=')[1];
if (v == val) {
selectedcolors = selectedcolors + ' ' + lab;
}
}
}

D.18 チェック・ボックスの繰返し

繰返しコントロールの内部のチェック・ボックスは、他の配列(繰返しチェック・ボックス・コントロール自体)の内部にあるチェック・ボックス・オプション値の配列(各チェック・ボックス・コントロールの値)として扱う必要があります。このフォーム例では、繰返しセクションに2つのコントロールがあります。テキスト・コントロールであるMessageと、AreYouAttendingは1つのオプションYesを持つチェック・ボックス・コントロールです。選択したオプションにアクセスする構文は、次のとおりです:

AreYouAttending[i].value[0] == 'yes'

for (var i = 0; i < AreYouAttending.value.length; i++)
{
if (AreYouAttending[i].value[0] == 'yes') {
Message[i].value = Name.value +
' is attending event #' + i;
}
}

D.19 繰返しコントロール内部のメッセージ・コントロールの表示

繰返しコントロールの内部にメッセージ・コントロールを配置する場合は、ユーザーがクリックして新しい繰返しアイテムを追加したときにメッセージを繰返すルールを、メッセージ・コントロールに追加する必要があります。次の例で、1番目のアイテムではメッセージが正しく表示されますが、ユーザーが追加した2番目、3番目、それ以降のアイテムを表示するにはルールが必要です。

この場合、1番目のメッセージ・コントロールにある動的テキスト(Contest Nomination For: [Name])と、2番目のメッセージ・コントロールにある静的テキスト(By signing this consent form...)の両方をルールによって繰り返します。

if (ConsentRepeat.itemAdded)
{
var index = ConsentRepeat.itemIndex;
ConsentNominationForMsg[index].value = 'Contest Nomination For: ' + ClubName.value + ' by ' + NominatorSName.value;

ConsentMsg[index].value = 'By signing this consent form you hereby agree that
it is ok to use a photo or video with your image. Blah, Blah, Blah By signing
this consent form you hereby agree that it is ok to use a photo or video
with you in it. By signing this consent form you hereby agree that it is ok to
use a photo or video with you in it.';
}

D.20 文字列の連結

ビジネス・ルールでメッセージ・コントロールを使用して、それより前のフォーム・フィールドで入力された値から、フォーム上のサマリー情報を作成することができます。このルールでは、JavaScriptの変数を使用してフォーム・フィールドの値とテキスト文字列、およびサマリー・ページを見やすくするHTMLを連結しています。

var totalAssets = TotalAutoValue.value + TotalBankValue.value + TotalRealEstateValue.value;

BasicSummaryMsg.value =
"<b>Name:</b> " + FirstName.value + " " + LastName.value + "<br/>" +
"<b>Phone:</b> " + Phone.value + "<br/>" +
"<b>Email:</b> " + EmailAddress.value;

if (MilitaryOrCivilian.value == 'Military') {
//Military
DetailedSummaryMsg.value =
"<b>Military Info:</b><br/>" +  "Military ID: " + MilitaryID.value + "<br/>" +
"Rank: " + Rank.value + "<br/>" +
"CurrentTitle: " + CurrentTitle.value + "<br/>" +
"Years of Service: " + YearsOfService.value + "<br/>";
} else if (MilitaryOrCivilian.value == 'Civilian') {
//Civilian
DetailedSummaryMsg.value =
"<b>Civilian Info:</b><br/>" +
"SSN: " + SSN.value + "<br/>" +
"Current Employer: " + CurrentEmployer.value + "<br/>" +
"Current Title: " + CurrentTitle2.value + "<br/>" +
"Start Date: " + StartDate.value + "<br/>";
}

FinancialSummaryMsg.value =
"<b>Total Assets:</b> $" + totalAssets +
"<br/>" + "Total Bank Assets: $" + TotalBankValue.value + "<br/>" +
"Total Real Estate Value: $" + TotalRealEstateValue.value + "<br/>" +
"Total Auto Value: $" + TotalAutoValue.value + "<br/>";

繰返しコントロールのフィールド値を使用する場合は、JavaScriptのvarを使用して連結結果をvarに割り当て、さらにそのvarをOracle Web Formsメッセージ・コントロール値に割り当てる必要があります。たとえば、Summaryという名前のメッセージ・コントロールと、Accountという名前の繰返しコントロールがあるとします:

var acctSummary;
for (var i = 0; i < Account.value.length; i++) {
if (Q[i].value > 0) {
acctSummary = acctSummary + 'Account #' + i + ': ' + Account[i].value + '<br/>';
}
}
Summary.value = acctSummary;

D.21 動的なラベル、ヘルプ、ヒント

コントロールのラベル、ヘルプおよびヒントの値をルールで動的に設定することができます。たとえば、設計時には不明なラベル、ヘルプまたはヒントを、ユーザーがフォームを開いたときに動的に設定すると仮定します。

if (form.load) { Text99.label = 'New Label'; Text99.hint = 'New Hint'; Text99.help = 'New Help'; }

上の例では、ラベル、ヘルプ、ヒントがまだハードコードされています。フォーム・デザイナ・コントロールのプロパティではなく、ルールから設定されています。これをさらに有用にするために、_dataパラメータからこれらのプロパティを初期化します。

if (form.load) { Text99.label = _data.getParameter('label'); Text99.hint = _data.getParameter('hint'); Text99.help = _data.getParameter('help'); }

_data.getParameterを使用すると、実際のコントロールにバインドされていないフォームに渡される値にアクセスできるため、これは多くの場面で便利なパターンです。

D.22 表示/非表示

このルールは、ユーザーがnickName入力テキスト・コントロールに値を入力したとき、メッセージ・コントロールnickNameThankYouを表示します。次に、ユーザーがnickNameで値を削除した場合にはメッセージ・コントロールを非表示にします。

if (nickName.value.length > 0 )
{
nickNameThankYou.visible = true;
}
else
{
nickNameThankYou.visible = false;
}

D.23 セクションの表示/非表示

多くの場合、セクション・コントロールには多くの内部コントロールがあります。たとえば、患者の病歴を記入するフォームがあるとします。このフォームには、患者が補聴器を使用しているかどうかを確認する質問があります。答えがYesの場合は、補聴器の使用状況について、左耳のみ、右耳のみ、両耳、または補聴器のブランドなどの詳細な質問を続ける必要があります。答えがNoの場合は、補聴器に関する質問をすべて非表示にします。また、答えがYesの場合は補聴器の詳細に関する質問をすべて必須にする必要があります。

非表示にしたい他のコントロールを含むセクションの内部で、メッセージ・コントロールは使用しないようにしてください。メッセージ・コントロールには常に値が含まれるため、セクション、またはセクション内の他のコントロールが必須になり、フォームの送信ボタンが無効になることがあるためです。メッセージ・コントロールを含める必要がある場合には、セクションの外部に配置してください。その他、セクション内の個々のコントロールに対してルールを作成し、表示/非表示や必須/任意をそれぞれに設定する方法もあります。

この例のフォームに、HearingAidというセクションがあるとします。フォーム・デザイナで、HearingAid.visibleのデフォルトはfalseに設定されます。

答えがYesの場合には、HearingAid.visible=trueに設定し、セクション内部の必須フィールドはそれぞれfield.required = trueに設定する必要があります。答えがNoに変わったら、もう1つのルールでHearingAid.visible=falseに設定し、すべてのフィールドをfield.required=trueに設定する必要があります。HearingAidのセクションに多数の子コントロールがある場合、このルールはきわめて長くなり、記述する負担が大きくなります。

これを簡単にするには、セクションにrequiredプロパティを使用します。デザイナで、HearingAidの内部にあって回答が必要なコントロールをすべて必須にデフォルト設定します。HearingAidセクションを任意と非表示にデフォルト設定します。ルールはさらにシンプルにすることができます。HearingAid.required=falseに設定すると、内部コントロールはすべて再帰的にrequired=falseとなります。

if (useAid.value == 'no') {
// Hide
HearingAid.visible = false;
HearingAid.required = false;
} else {
// Show
HearingAid.visible = true;
HearingAid.required = true;
}

D.24 「Select」タブ

このルールは、ラジオ・コントロールの選択に基づいて、特定のタブを選択済タブにします。ラジオ・ボタンはSelectTabという名前で、person、auto、homeの3つのオプションがあります。タブには、personTab、autoTab、homeTabという名前が付いています。タブは、同じ方法でトリガー・コントロールまたはその他の入力コントロールに基づいて選択することもできます。

if (SelectTab.value.length > 0)
{
autoTab.selected = false;
homeTab.selected = false;
personTab.selected = false;

if (SelectTab.value == 'Auto')
autoTab.selected = true;
else if (SelectTab.value == 'Home')
homeTab.selected = true; else personTab.selected = true;
}

D.25 「Next」タブ

このフォームには、各タブの下部に「Next」というラベルの付いたトリガー・コントロールがあります。「Next」をクリックするとトリガー・ルールが実行され、次のタブが選択済タブになります。これは、ユーザーがフォーム間を移動するときに役立ちます。タブには、T1、T2、T3、T4という名前が付けられます。トリガー・コントロールの名前はC1、C2、C3です。

// Navigate Tabs
if (C1.clicked) {
T2.selected = true;
} else if (C2.clicked) {
T3.selected = true;
} else if (C3.clicked) {
T4.selected = true;
}

D.26 セクションの拡張/縮小

このフォームには3つのセクションがあります。最初のセクションは拡張され、2番目と3番目のセクションは縮小されています。ユーザーが1番目のセクションで提出し、「Next」トリガー・コントロールをクリックすると、そのセクションは縮小され、次のセクションが展開されます。トリガー・コントロールはnext1、next2という名前です。各セクションの名前はstep1、step2、step3です。このメンバーシップ・フォームで、ルールが機能するか試してみてください。

if(next1.clicked)
{
step1.expanded = false;
step2.expanded = true;
}

if(next2.clicked)
{
step2.expanded = false;
step3.expanded = true;
}

D.27 セキュリティ・サブジェクト情報

form.loadルールを使用すると、現在ログインしているユーザーに関する情報を使用してフォーム内のフィールドを事前に設定できます。たとえば、フォームにId、FirstName、LastName、EmailおよびRolesという名前のコントロールがある場合、次のルールでは、次に示すように各フィールドに事前に入力されます。

if (form.load) {
// User Information
Id.value = _data.getParameter('subject.id'); // Username
FirstName.value = _data.getParameter('subject.first.name');
LastName.value = _data.getParameter('subject.last.name');
Email.value = _data.getParameter('subject.email');

var roles = _data.getParameter ("subject.roles");
if (roles) {
eval ('x=' + roles);
Roles.options = x;
}
}

このルールは、Reviewという名前のタブを、Manager Reviewという名前のワークフロー・アクティビティにのみ表示できるようにするワークフローで使用すると便利です。

if (form.load) {
if (_data.getParameter('flow.activity.name') == 'Manager Review')  {
Review.visible = true;
}
}

D.28 複数選択

このルールは、searchChoiceというラジオ・オプション・コントロールでのユーザーの選択に応じて、適切な入力テキスト・コントロールを表示します。

if (searchChoice.value == 'Organizations')
{
orgname.visible = true;
firstname.visible = false;
lastname.visible = false;
clientId.visible = false;
}
else if (searchChoice.value == 'Individuals')
{
orgname.visible = false;
firstname.visible = true;
lastname.visible = true;
clientId.visible = false;
} else if (searchChoice.value == 'Client ID')
{
orgname.visible = false;
firstname.visible = false;
lastname.visible = false;
clientId.visible = true;
}

D.29 動的オプション

選択コントロール・オプション(ラジオ、チェック・ボックス、ドロップダウン、T/F)は、コントロールのオプション・プロパティを介して静的にするかわりに、ルールを介して動的に設定することができます。ただし、コントロールが標準のパレット・コントロールではなくXSDスキーマ・データ・ソースに由来する場合、デザイナはオプションがそのスキーマ要素で有効な範囲から外れないように注意する必要があります。たとえば、XSDに文字列の列挙があり、red、green、blueという有効なリスト・オプションがある場合、ルールを使用してオプションを動的にsmall、medium、largeに設定しないでください。これを行うと、使用モードでフォームが正しく機能しません。ユーザーがsmallオプションを選択すると、フォームで検証エラーが発生します。これは、smallが基礎となるXSDスキーマで許可されているオプションではないためです。

D.30 トリガーと動的オプション

このルールは、searchという名前のトリガー・コントロールをユーザーがクリックすると実行されます。次に、coffeeShopListという名前のドロップダウン・リスト・コントロールでオプションを動的に設定します。

if (search.clicked)
{
coffeeShopList.options = ['Koffee', 'Starbucks', 'Willoughbys', 'Dunkin Donuts']; }

ここで、ハードコードされたコーヒー・ショップのリストを、http.getを呼び出すルールに置き換えます。これは、JSONオブジェクトを含むX-JSONヘッダーを返す必要があります。オブジェクトが評価され、変数xに割り当てられます。この場合、JSONオブジェクトには配列タイプのオプション・フィールドが含まれます。

if (search.clicked)
{
eval('x=' + http.get('http://<webhost>/getCoffeeShopList'));
coffeeShopList.options = x.options;
}

注意:

トリガーは、繰返しアイテムでは機能しません。

D.31 値の変更と動的なオプション

このルールは、別のフォーム・フィールドで選択された値に基づいて、ドロップダウン・リストのオプションを動的に設定します。このフォームには、Products、Series、Modelという3つのフィールドがあります。シリーズのオプションは、製品の選択に基づいて動的に設定されます。また、新しい製品が選択されたらシリーズのドロップダウンを有効にし、モデルのドロップダウンをクリアして無効にします。このフォームには、選択したシリーズに基づいてモデルを設定する他のルールも含まれています。Oracle Web Formsのギャラリで、動的フォーム・キーワードの下位にあるHP Support - 2という名前のフォームを検索します。

if (product.value == 'Laserjet Printers')
{
series.options = [' ', 'Laserjet5 series', 'Laserjet6 series'];
series.enabled = true;
model.options = [];
model.enabled = false;
}

D.32 動的コントロールの初期化

このルールは、1つのドロップダウン・コントロールの選択に基づいて複数のコントロール値を設定する場合を処理します。if/elseの長い構文を使用するより適切に処理されます。まず、SalesRepという名前のドロップダウンに<value>=<label>の形式でオプションを追加します。<value>は、各担当者に関する詳細の配列に対する索引キーとして使用されます。

Megan=Megan Smith
Jim=Jim Brown
Nancy=Nancy Jones
Brian=Brian Jones

次に、各担当者の連絡先情報を利用してJavaScriptの配列を設定するルールを記述します。次に、contantInfo配列に対する索引としてドロップダウン値を使用し、選択した担当者の詳細を他の4つのフォーム・コントロールに設定します。

var contactInfo = {
"" : {
name : "",
email : "",
phone : "",
cell : ""
},
"Megan" : {
name : "Megan Smith",
email : MSmith@mycompany.com,
phone : "(203) 694-2439 Ext. 516",
cell : "(203) 337-3242"
},
"Jim" : {
name : "Jim Brown",
email : jim@comcast.net,
phone : "203-208-2999",
cell : ""
},
"Nancy" : {
name : "Nancy Jones",
email : nancy@snet.net,
phone : "203-208-2991",
cell : ""
},
"Brian" : {
name : "Brian Jones",
email : BJones@mycompany.com,
phone : "203-748-6502",
cell : ""
}
};

var repId = SalesRep.value;
SalesRepName.value = contactInfo[repId].name;
SalesRepEmail.value = contactInfo[repId].email;
SalesRepPhone.value = contactInfo[repId].phone;
SalesRepCell.value = contactInfo[repId].cell;

D.33 ユーザーの検証

このルールは、Usernameテキスト・フィールドにユーザーが値を入力したときに実行されます。JSONオブジェクトを返すURLを呼び出し、そのJSONオブジェクトのexistsという名前のフィールドは、ユーザーがすでに存在する場合にtrueに設定されます。ユーザーがすでに存在する場合、このルールはメッセージ・コントロールの値を設定し、そのメッセージ・コントロールをフォーム上で表示します。また、Usernameフィールドを無効として表示し、ユーザーに修正を求めるために、Usernameのvalidプロパティをfalseに設定します。

if (U.value.length > 0) {
eval('x=' + http.get('http://<webhost>/uniqueUser?username=' + U.value));
if (x.exists) {
M.value = 'User: ' + U.value + ' already exists';
M.visible = true;
U.valid = false;
} else {
M.visible = false;
}
}

D.34 純資産の計算

このフォームには2つのルールがあります。1番目は、資産の列に入力された値と、負債の列に入力された値を加算して純資産を計算するルールです。2番目のルールは、純資産の値をチェックし、負債が資産を超えている場合にはエラー・メッセージを表示して純資産を無効にします。その状態ではフォームが送信されないようにするためです。

if (netWorth.value < 0)
{
assetsExceedLiabilitiesMsg.visible = true;
netWorth.valid = false;
}
else
{
assetsExceedLiabilitiesMsg.visible = false;
netWorth.valid = true;
}

ルールで<control>.invalidに設定されると、ユーザーが電話コントロールに無効な値を入力した場合と同様に、コントロールの背景が赤くなり、送信ボタンがグレー表示されます。Oracle Web Formsは、これを同じように扱います。これは、フォームの有効状態を動的に制御する際に適した方法です。

D.35 日付と時間

日付と時間の処理は、ほとんどのフォームでほぼ共通しています。次のサンプルでは、日付と時間を作成する最も一般的なビジネス・ロジックを作成する方法を示しています。

Oracle Web Formsの日付は、frevvo.currentDateTime(form)のような組込みの日付、時間および日付/時間メソッドを使用して、ユーザーのローカル・タイムゾーンに設定することができます。次のサンプルの一部では、JavaScriptのDate()オブジェクトを使用しています。ビジネス・ルールはフォーム・サーバー上で実行されるので、これらの日付も、フォーム・サーバーがインストールされている環境のタイムゾーンになります。必要な場合に異なるタイムゾーンに変換する方法も、次に示します。

日付/時間コントロールは、ビジネス・ルールの配列構文を利用して初期化する必要があります。たとえば、DtTmという日付/時間コントロールを2012年1月1日午前4:20に初期化するには、次のようにします。

DtTm.value = ['5/15/2012', '4:20']

_formTz URLパラメータを使用してフォームのUrlでタイムゾーンを指定しないかぎり、日付と時間を初期化するルールはform.loadルールでは機能しません。これは、フォーム・サーバーが日時を返すタイムゾーンを認識する必要があるためです。_formTzを指定しない場合、メソッドはnullを返し、コントロール値は空白のままになります。たとえば、東部標準時を指定するには、&_formTz=America/NewYorkとします。

D.35.1 期間

このフォームは、ルールを使用して病院の退院日を初期化し、ユーザーが入院日を入力したとき2番目のルールで患者が入院していた日数を計算します。

// Calculate Hospital Stay Duration
if (A.value != '' && D.value != '') {
var da = A.value.split('-');
var Ams = new Date(da[2],da[0]-1,da[1]);
da = D.value.split('-');
var Dms = new Date(da[2],da[0]-1,da[1]);

if (Ams > Dms) {
Days.value = 'Discharge date must be after Admission Date';
} else {
Days.value = (Dms - Ams) / (1000*60*60*24) + ' days';
}
}

D.35.2 今日の日付と時間

Oracle Web Formsの組込みの日付および時間メソッドを使用して、日付、時間および日付/時間コントロールを、ユーザーのローカル・タイムゾーンにおける現在の日時に設定します。

if (form.load) {
Tm.value = frevvo.currentTime(form);
Dt.value = frevvo.currentDate(form);
DtTm.value = frevvo.currentDateTime(form);
}

_formTz Urlパラメータを使用してフォームのUrlでタイムゾーンを指定しないかぎり、currentTime()、currentDate()およびcurrentDateTime()はform.loadルールでは機能しません。これは、フォーム・サーバーが日時を返すタイムゾーンを認識する必要があるためです。formTzを指定しない場合、メソッドはnullを返し、コントロール値は空白のままになります。たとえば、&formTz=America/New_Yorkとすると、コントロール値は東部タイムゾーンの現在の日時に設定されます。

D.35.3 日付/時間スタンプ

このルールは、Signatureという名前のコントロールを、Nameという名前のコントロールに日付/時間スタンプを加えた値に設定します。日付をユーザーのローカル・タイムゾーンに設定する場合は、Oracle Web Forms組込みの日付および時間メソッドを使用した方が適切です。次のメソッドは、日付をフォーム・サーバーのタイムゾーンに設定します。

var today=new Date()
var m = today.getMonth() + 1;
var d = today.getDate();
var y = today.getFullYear();
var h = today.getHours(); var min = today.getMinutes(); var todayStr = m + '-' + d + '-' + y + ' ' + h + ':' + min; Signature.value = 'Signed by ' + Name.value + ' on ' + todayStr;

D.35.4 今日の日付より前の場合は無効

このルールは、入力された日付が今日の日付より前でない場合に日付コントロールを無効にします。

var today = new Date();
var bd = DOB.value.split('-');
var bd_date = new Date(bd[0],bd[1]-1,bd[2]);

if (bd_date.getTime() > today.getTime()) {
MyMsg.value = 'Birth Date must be earlier than today!!!!';
DOB.valid = false;
} else {
MyMsg.value = 'This is a good Birth Date: ' + DOB.value;
DOB.valid = true;
}

D.35.5 今日から14日以内の日付

このルールは、AppointmentDateという名前のコントロールに入力された値が、今日の日付から14日後を過ぎていないかどうかをチェックします。

var date1 = DateUtil.today();
var date2 = Appointment.value;
date1 = date1.split("-");
date2 = date2.split("-");
var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
var DaysApart = Math.round((eDate-sDate)/86400000);

if (DaysApart > 14) {
Appointment.status = "Date should be within 14 days from today's date.";
} else if (DaysApart < 0) {
Appointment.status = "Date should not be earlier to today's date.";
}

D.35.6 30日前以内の日付

このルールは、EventStartDateという名前のコントロールに入力された値が、30日より前になっていないかどうかをチェックします。

if (EventStartDate.value != "") {
var date1 = DateUtil.today();
var date2 = EventStartDate.value;
date1 = date1.split("-");
date2 = date2.split("-");
var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
var days = Math.round((eDate-sDate)/86400000);

if (!eval(parseInt(days) > parseInt(-30))) {
EventStartDate.valid = false;
EventStartDate.status = "The date entered can only go back a maximum of 30 days from the current date. Please try again.";
} else {
EventStartDate.valid = true;
}

D.35.7 夏時間に調整した中部タイムゾーン

このルールは、UTCタイムゾーンでの今日の日付を中央タイムゾーンに調整し、夏時間にも合せます。Oracleユーザーは、この追加の変換を頻繁に行う必要があります。JavaScriptのDate()とOracle Web FormsのDateUtil.today()はともに、UTCタイムゾーンで今日の日付を返すからです。

// Converts UTC to either CST or CDT
if (form.load)
{
var today = new Date();
var DST = 1; // If today falls outside DST period, 1 extra hr offset
var Central = 5; // Minimum 5 hr offset from UTC
// Is it Daylight Savings Time?
//
var yr = today.getFullYear();
// 2nd Sunday in March can't occur after the 14th
var dst_start = new Date("March 14, "+yr+" 02:00:00");
// 1st Sunday in November can't occur after the 7th
var dst_end = new Date("November 07, "+yr+" 02:00:00");
var day = dst_start.getDay(); // day of week of 14th
// Calculate 2nd Sunday in March of this year
dst_start.setDate(14-day); day = dst_end.getDay(); // day of the week of 7th
// Calculate first Sunday in November of this year dst_end.setDate(7-day);
// Does today fall inside of DST period?
if (today >= dst_start && today < dst_end) { DST = 0;
}

// Adjust Date for Central Timezone
today.set Hours(today.getHours() - Central - DST);

var m = today.getMonth() + 1;
var d = today.getDate();
var da = today.getDay();
var y = today.getFullYear();
var h = today.getHours();
var min = today.getMinutes();
if (min < 10) { min = '0' + min;}
var timezone = ['CDT', 'CST'];
var dom = ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday'];
var todayStr = dom[da] + ' ' + m + '-' + d + '-' + y + ' ' + h + ':' + min + ' ' + timezone[DST];

DateTime.value = todayStr;
}

D.35.8 時間の差が4時間以上6時間以下

このルールでは、終了時間が、開始時間より少なくとも4時間後であるが、開始時間の6時間後以前であることを確認します。また、開始時間は1:00以降である必要があります。時間は軍事単位で入力します。TSは開始時間コントロールの名前、TEは終了時間コントロールの名前です。

- 開始時間と終了時間にはテキスト・コントロールを使用します。

- 有効な軍事時間が1:00以降であることを確認するには、コントロールで([1-9]|1[0-9]|2[0-4]):([0-5][0-9])というパターンを使用します。

if (TS.value.length > 0 && TE.value.length > 0) {
var sTime = TS.value.split(':');
var sHour = sTime[0];
var sMin = sTime[1];
var sMins = sHour * 60 + parseInt(sMin);

var eTime = TE.value.split(':');
var eHour = eTime [0];
var eMin = eTime [1];
var eMins = eHour * 60 + parseInt(eMin);

if ((eMins - sMins) < 4*60 || (eMins - sMins) > 6*60)
{
TE.valid = false;
} else {
TE.valid = true;
}
}

D.35.9 時間

日付コントロールは、日付のみ、時間のみ、日付と時間のいずれかに設定できます。Tmという名前の時間コントロールを初期化するいくつかの例を示します。

// Both set the control name Tm to the same time
Tm.value = '8:30 pm'; // uses am/pm notation
Tm.vallue = ' 20:00'; // uses military time

// Initialize a date/time requires an array syntax
DtTm.value = ["Aug 1, 2001", "10.00"];

// Copying values
Tm2.value = Tm.value;
Dt2.value = Dt.value;
DtTm2.value = DtTm.value;

D.36 テナント、ロール、ユーザー

Oracle Web Formsには、テナントのリスト、テナントにおけるユーザー、テナントにおけるロールなどフォーム・サーバーに関する情報にアクセスできるメソッドが組み込まれています。メソッドの一部は、ブール値のtrueまたはfalseを返します。それ以外はJSON文字列を返します。これらのメソッドを使用する方法のサンプルを次に示します。

if(form.load)
{
eval('x=' + frevvo.listTenants());
Tenants.options = x.tenants; // Init a dropdown list of all tenants on this form server
}

if(tenant.value.length > 0)

// Check if a tenant already exists
if (frevvo.isUniqueRoleId(role.value, tenant.value) == true) {
ErrMsg.value = 'The role ' + role.value + ' already exists in tenant ' + tenant.value;
}
// Init dropdown with all tehant users
eval('x=' + frevvo.listUsers(tenant.value));
Users.options = x.users;
// Init dropdown with all tenant roles
eval('x=' + frevvo.listRoles(tenant.value));
Roles.options = x.roles;
// Init dropdown will all tenant roles except admin roles
eval('x=' + frevvo.listRoles(tenant.value, false));
RolesNA.options = x.roles;
}

// Verify that a role already exists in the tenant
if(role.value.length > 0)
{
t.value = frevvo.isUniqueRoleId(role.value, tenant.value);
if (frevvo.isUniqueRoleId(role.value, tenant.value) == false) {
ErrMsg.value = 'The role ' + role.value + ' already exists in tenant ' + tenant.value;
}
}

D.37 繰返しアイテムの追加

このルールは、新しいアイテムが繰返しに追加されたときに実行されます。フォームにEmployeeという名前の繰返しセクションがあり、そこにErepeatという名前があると仮定します。Erepeatの名前は、セクション・コントロール上ではなく繰返しコントロール上で設定されることに注意してください。Employeeセクション・コントロールには、Name、Phoneなど多くのコントロールと、ManagerというラベルでMという名前が付いたドロップダウン・コントロールがあります。また、Employee Shift (名前はES)というラベルのラジオ・コントロールもあり、そのオプションはDayおよびEveningに設定されています。

ユーザーが「+」をクリックするたびに、Oracle Web Formsは繰返しに対してこのルールを実行し、新しいアイテムを追加します。ここでは、Employee Shift ESのデフォルト値をDayに設定し、ManagerドロップダウンにはOracle Web Formsデータベース・コネクタからの値を動的に移入します。

通常は、フォーム上で1番目の繰返しをデフォルトで表示するために、form.loadルールでドロップダウン・オプションを初期化します。

if (form.load)
{
var baseURL = 'http://www.myhost.com:8080/database/';

// Manager Dropdown
eval('x=' + http.get(baseURL + 'Manager'));
var opts = ['']; // default 1st option to blank
for (var i=0; i < x.resultSet.length; i++) {
if (x.resultSet[i]) {
opts[i+1] = x.resultSet[i].lastname+ ", " + x.resultSet[i].firstname;
}
}

// Repeat item index 0 is on the form by default
M[0].options = opts;
ES[0].value = 'Day'; // default the employee shift to day
}

次に、ユーザーが「+」アイコンをクリックして新しいアイテムが追加されると、データベースに戻って動的なオプションを取得する際のオーバーヘッドが軽減されます。

if (Erepeat.itemAdded)
{
var index = Erepeat.itemIndex; // which item is this in the list

// No need to go back to the database for options.
// We already retrieved them in form.load rule for repeat item index 0 M[index].options = M[0].options; ES[index].value = 'Day'; // default the employee shift to day }

表は繰返しです。したがって、表コントロールにも同じルールを記述することができます。表の繰返しの名前は、常に<TableName>Repeatです。たとえば、表の名前をChildrenとします。この場合、繰返しはChildrenRepeatという名前になります。

D.38 繰返しアイテムの追加 - 他のアイテムの縮小

このルールは、新しいアイテムが繰返しに追加されたときに実行されます。このフォームには、テンプレート化されたラベルを持つ繰返しセクションがあります。新しいアイテムを追加するときには、繰返しリストが小さいグリッドに表示されるように、他のアイテムを縮小することをお薦めします。Medrepeatは繰返しコントロールの名前です。Medicationは、繰返しの内部にあるセクション・コントロールの名前です。

if (Medrepeat.itemAdded)
{
var index = Medrepeat.itemIndex;
for (var i = 0; i < Medication.value.length; i++) {
if (i != index)
Medication[i].expanded = false;
else
Medication[i].expanded = true;
}
}

D.39 表

ビジネス・ルールで参照されるとき、表は繰返しコントロールと同じです。表は、繰返しアイテムのグリッド・レイアウトです。この章で繰返しについて説明しているルールの例はすべて、表にも適用されます。1つ注意しなければならないのは、表の内部では繰返しコントロールに明示的に名前を付けることができないということです。表の内部の繰返しコントロールは、自動的に<TableName>Repeatという名前が付けられるからです。たとえば、表の名前がExpenseであれば、繰返しの名前は自動的にExpenseRepeatとなります。ExpenseRepeat.itemIndexとExpenseRepeat.itemAddedのルールは、表に追加されたアイテムと、そのアイテムの索引をそれぞれ参照します。

D.40 form.load

ルールを使用してフィールド値を初期化することができます。これは、データベースからドロップダウン・オプションに動的に移入するとき非常に便利な機能で、多用されます。form.loadを使用するルールは、フォームが最初にロードされたときと、ワークフローがタスク・リストからロードされたときにトリガーされます。

itemAddedのみを使用するルールは、ユーザーが「+」をクリックして追加された繰返しアイテムと、初期インスタンス・ドキュメント(ドキュメントURIを参照)から追加されたアイテムに対して実行されます。フォーム・デザイナで追加したアイテムに対しては実行"されません"。フォーム・デザイナを介してデフォルトを直接追加することも、次のように2番目のルールをフォームに追加することもできます。

これらの2つのルールは、フォーム・デザイナを介してフォームにすでに存在している繰返しの内部にあるドロップダウン・フィールドを初期化し、ユーザーが繰返しの「+」をクリックして、新しいアイテムを追加するたびにアイテムも初期化します。これらのコントロールは、別のフィールドで設定された値に基づいて初期化されます。

'''1st Rule - Default Items'''
if (form.load)
{
// The form contains two repeat items by default.

if (department.value == 'Marketing') {
Managers[0].options = ['Joe', 'Mary', 'Stan', 'Cindy'];
Managers[1].options = ['Joe', 'Mary', 'Stan', 'Cindy'];
}
if (department.value == 'Sales') {
Managers[0].options = ['Lou', 'George', 'Wendy'];
Managers[1].options = ['Lou', 'George', 'Wendy'];
}
}

'''2nd Rule - Items Added'''
if (Erepeat.itemAdded)
{
var index = Erepeat.itemIndex; // which item is this in the list
ES[index].value = 'Day'; // default the employee shift to day

// Use options already selected in form.load rule
Managers[index].options = Manager[0].options;
}

このルールは、Reviewという名前のタブを、Manager Reviewという名前のワークフロー・アクティビティにのみ表示できるようにするワークフローで使用すると便利です。

if (form.load) {
if (_data.getParameter('flow.activity.name') == 'Manager Review') {
Review.visible = true;
}
}

D.41 form.unload

ルールを使用して、ユーザーがフォームの送信ボタンを押してから、フォームおよびドキュメント・アクションが実行されるまでの間に、フィールド値を初期化することができます。form.unloadを使用するルールは、フォーム・ユーザーが送信ボタンをクリックしたときにトリガーされます。また、ワークフローの場合にはユーザーが続行をクリックして次のアクティビティに進むか、完了をクリックしてフローを完了したときにトリガーされます。

代表的な例として、注文フォームの注文番号があります。注文を送信するたびに、一意の連番を注文番号として割り当てるとします。フォームの注文番号は、form.loadを使用してフォームがロードされたときに初期化することも可能です。しかし、別のユーザーが注文フォームの入力を開始したまま送信していない場合、連続する次の注文番号は、それが使用されないのであれば消費しないようにと考えます。form.unloadを使用すれば、送信ボタンがクリックされてから、フォーム・データが送信されるまでの間に番号を割り当てることができます。

ここで、OrderNumは非表示のコントロールの名前です。

if (form.unload)
{
eval('x=' + http.get('http://<webhost>/json/getNextOrdernum'));
OrderNum.value = x.num;
}

D.42 一意のID

請求書、納品書などのフォームは、一意のIDの記入が必要になることがあります。連番の例もその方法の1つですが、これには制限が伴います。まず、同時にフォームを入力するのは必ず1人であることを保証する必要があります。

一意のIDが連続していなくてもいい場合の簡単なメソッドを次に示します。form.idという名前のデータは、新しいフォーム・インスタンスごとに一意であることが保証されています。次のようにこれを使用するのみです。

if (form.load)
{
InvoiceNum.value = _data.getParameter('form.id');
}

D.43 繰返しアイテムの初期化

上のルールでは、新しく追加された繰返しコントロールを、デフォルトのオプション・リストで初期化する例を紹介しました。繰返しコントロールの値を初期化する場合にも、これと同じコンセプトが役に立ちます。フォーム・デザイナで繰返しをフォームに追加するとき、デザイナに表示されている繰返しコントロールについてはデフォルト値を設定できます。しかし、ユーザーがフォームを使用中に「+」をクリックしてアイテムを追加する場合、フォーム・デザイナで指定されたデフォルト値はこの新しいアイテムで自動的に使用されません。これを行うために、次のような単純なルールを追加する方法があります。

このルールは、繰返しのフィールドの値をデフォルトの0に初期化します。RepeatTrackは繰返しコントロールの名前で、albumOnlyという名前の入力コントロールが含まれます。このルールは、ユーザーが「+」をクリックして新しいRepeatTrackアイテムが追加されるたびに実行されます。

注意:

ItemAddedとitemIndexは、繰返しコントロールのプロパティです。

if (RepeatTrack.itemAdded)
{
var index = RepeatTrack.itemIndex;
albumOnly[index].value = 0;
}

ここでも同じように、フォーム・デザイナにデフォルトで存在していた繰返しアイテムを初期化するには、フォーム・デザイナに初期デフォルト値を直接入力するか、このルールを追加します。

if (form.load)
{
for (var i=0; i < albumOnly.value.length; i++) {
albumOnly[i].value = 0;
}
}

このルールは、min > 1の場合に繰返しを考慮します。minが0または1の場合はもっと単純になり、fromループを削除して、if (form.load)の内部にalbumOnly[0].value = 0 inside the if (form.load)を指定するのみです。

D.44 初期ドキュメントでItemAddedを繰り返す

ItemAddedは、初期ドキュメントで見つかったアイテムをOracle Web Formsが追加するときにも実行されます。ユーザーがフォーム上で「+」をクリックしたときのみアイテムを初期化したい場合も考えられます。アイテムが初期ドキュメントから追加される場合には初期化しません。このフォームには、繰返しであるMailing Labelというフィールドがあります。ラベルごとに、一意のIDを割り当てる必要があります。ただし、フォームの送信後には、割り当てられたIDはフォームのドキュメントURIを介してデータベースに保存されます。フォームのロード時には、データベースの行から自動的にアイテムが追加されます。これにはすでにIDが割り当てられています。新しいIDを連続して割り当てる必要があるのは、ユーザーがフォーム上で「+」ボタンをクリックして手動で新しいMailing Labelを追加するときです。MLrepeatは、Mailing Labelの繰返しの名前です。MLmidは、繰返しにおけるIDフィールドの名前です。

if (MLrepeat.itemAdded)
{
var index = MLrepeat.itemIndex;
// This rule is fired both when the user clicks "+"
// and when frevvo adds items found in the init doc.
// Need to assign new mid only when user clicks "+"

// New items added via "+" will have a zero length value.
if (MLmid[index].value.length == 0) {
// Assign unique ID to label so it can be referenced
// in RI Mailing Labels field
// Count the number of existing mailing labels on the form
var maxId = 0;
for (var i=0; i < MLmid.value.length; i++)
{
if (MLmid[i].value > maxId) {
maxId = MLmid[i].value;
}
}
var next = parseInt(maxId) + 1;
MLmid[index].value = next.toFixed(0);
}
}

D.45 検索ポップアップ

Oracle Web Formsのフォームは、バックエンド・システムからの動的な初期化も可能です。共通のフォーム・デザイン・パターンは、マスター/ディテールです。マスター/ディテールの例として、注文番号または従業員IDを含むフォームがあります。ユーザーがフォームのフィールドに既存のIDを入力したときは、他のフィールドにデータベースの値が動的に移入されるようにします。これには、データベース・コネクタによって生成されるXSDデータ・ソースから作成したフォームを使用します。マスター/ディテールのフォーム・デザイン・パターンで、この部分にビジネス・ルールは必要ありません。ドキュメント・アクションに手動で設定されているドキュメントURIを使用して自動的に行われます。

このフォームは、Oracle Web Formsデータベース・コネクタによって生成されるemployee.xsdから作成しました。マスターIDは、racfidという名前のXSDからのコントロールです。このデザイン・パターンの鍵は、フォームのドキュメント・アクション・ドキュメントURIでマスターIDを使用している点にあります。この例で、従業員ドキュメントに対するフォームのドキュメント・アクション・ドキュメントURIは、http://localhost:8082/database/myqset/employee?racfid={racfid}に設定されています。

マスターIDは多くの場合、フォームを使用する人間が簡単には覚えられないように、暗号化された数字です。ルックアップ検索を使用してマスターIDを移入するには、これは共通で便利なフォーム・デザイン・パターンです。

次に、ユーザーが既存の従業員レコードを表示し、その情報を更新するフォームの例を示します。

従業員のRACF IDがわかっている場合は、それをフィールドに入力するのみです。RACF IDがデータベースで見つかった場合、フォームは他のフィールドすべてにデータベースのデータを自動的に移入します(ドキュメント・アクション・ドキュメントURIの設定により)。一方、従業員のRACF IDがわかっていない場合には、Find Employeeトリガーをクリックすることができます。

このトリガー・コントロールはFindEmployeeという名前で、次のルールを実行して検索条件のセクション・コントロールを表示します。

//Show Employee Search Criteria
if (FindEmployee.clicked)
{
EmployeeSearch_s1.visible = true;
EmployeeSearch_s1.expanded = true;
}

このセクション・コントロールには、名前、タイプ、電子メール・アドレスなど従業員についてわかっている他の情報に基づいてRACF IDを検索するための、検索条件となるコントロールがあります。検索条件に入力する値は、部分的な値でもかまいません。たとえば、「Smith」という名前を入力すると、「Smith」という文字を含む名前の従業員がすべて検索されます。電子メールも選択した場合、名前に「Smith」を含み、電子メール・アドレスには「frevvo」を含む従業員がすべて検索されます。

これは、Searchという名前のトリガー・コントロールをクリックしたときに実行されるルールです。

//Search Employee database using criteria
if (Search.clicked) {
eval('x=' + http.get('database/myqset/findEmployee?name={name_s1}&type={type_s1}
&racfid={id_s1}&email={email_s1}'));

var opts= [];
for (var i=0; i < x.resultSet.length; i++) {
if (x.resultSet[i]) {
opts[i] = x.resultSet[i].racfid + "=" +
x.resultSet[i].name + ", " +
x.resultSet[i].type;
}
}
SearchMsg.value = x.resultSet.length +
' Matches Found. Change your criteria and click "search" to try again.';
SearchMsg.visible = true;
SearchResults.options = opts;
SearchResults.visible = true;
}

Searchは1つ以上の一致結果を返し、SearchResultsという名前のドロップダウン・コントロールに動的に移入します。検索基準を変更して、検索範囲を絞り込んだり広げたりすることができます。SearchResultsドロップダウンから一致結果のいずれかを選択すると、3番目のルールが実行され、選択内容がRACF IDコントロールにコピーされます。

//Select from Search results
if (SearchResults.value.length > 0)
{
racfid.value = SearchResults.value;

// Hide Employee Search and clear values
EmployeeSearch.visible = false;
SearchMsg.visible = false;
SearchResults.visible = false;
SearchResults.options = [];
}

この値がRACF IDにコピーされると、フォームは自動的に他のすべての値をデータベースからフォームにロードします。これは、フォーム・アクション・ドキュメントURIがこのように設定されているためです。

これで、フォームにロードされた従業員の値は編集可能になりました。ユーザーがフォームの送信ボタンをクリックすると、データベース・レコードで値が自動的に更新されます。これは、フォーム・アクション・ドキュメントURIがこのように設定されているためです。

E BPMNにインポートするためのプロセスの準備

この付録では、Microsoft VisioおよびXPDLプロセスを変更してBPMNに変換しやすくする方法について説明します。

この付録には次の項が含まれます:

- E.1項「BPMNプロセスとしてインポートするためのVisioファイルの準備」

- E.2項「XSL文書を使用したXPDLのインポートのカスタマイズ方法」

- E.3項「XPDLファイルをBPMNプロセスとしてインポートするための準備」

E.1 BPMNプロセスとしてインポートするためのVisioファイルの準備

VisioファイルをBusiness Process Composerにインポートできます。Business Process Composerは、VisioMasterMap.xmlというマップファイルを使用して、Visioの要素をBPMNフロー・オブジェクトにマップします。

このマップ・ファイルでは、Visioの各要素がBPMNフロー・オブジェクトにどのようにマップされるかを定義します。このマップ・ファイルは、Oracle JDeveloperホーム・ディレクトリの次のディレクトリにあります。

.../jdeveloper/jdev/extensions/tutor/xml.

注意:

このファイルは編集しないでください。このファイル内のマッピングをオーバーライドするには、VisioUserMap.xmlというファイルを作成して編集します。

ユーザー・マップは、マスター・マップを拡張したりオーバーライドするために使用します。VisioMasterMap.xmlの解析後、Business Process ComposerはVisioUserMap.xmlが存在するかどうかを調べます。その後、ルールを適宜変更します。

Visioインポート・モジュールは、拡張性を提供できるように設計されています。別のVisioステンシルをサポートするXMLファイルを追加して、追加のVisioマスター・シェイプとBPMNオブジェクトのマッピングを指定できます。このファイルはVisioUserMap.xmlという名前で、VisioMasterMap.xmlファイルと同じディレクトリに置く必要があります。

このファイルには、VisioMasterMap.xmlファイルで定義されているデフォルトと同じルート要素(VisioMasterMap.xsdへの参照など)が含まれている必要があります。VisioUserMap.xmlは、参照用として使用可能なマスター・マップと同じ形式である必要があります。

ユーザー・マップに追加されたエントリでは、新規マッピングを追加したり、メイン・マップの既存エントリのオーバーライドを行います。VisioUserMap.xmlには、拡張されるエントリまたはオーバーライドされるエントリのみが含まれている必要があり、元のすべてのエントリを繰り返すことはできません。

例E-1 VisioUserMap.xmlへのサンプル・エントリ

<?xml version = '1.0' encoding = 'UTF-8'?>
<Masters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://www.oracle.com/oracle/tutor/visio/masterMapElements VisioMasterMap.xsd"
xmlns="http://www.oracle.com/oracle/tutor/visio/masterMapElements">
<!— custom <Master/> elements go here -- >
</Masters>

E.1.1 VisioUserMap.xmlの更新方法

この項では、VisioファイルをBPMNプロセスにインポートする場合に考えられるシナリオについて説明します。

VisioUserMap.xmlを更新するには:

この例では、元のVisioファイルには「Report」という名前の形状が含まれており、この形状をデータ・オブジェクトにマップします。デフォルトでは、VisioMasterMap.xmlは、この形状を送信タスクにマップします。それを入力オブジェクトまたは出力オブジェクトとして厳密に使用すると、それをより正確にデータ・オブジェクトにマップできます。

1. VisioMasterMap.xmlファイルで、次のように表示されるDataObjectのマスター定義を検索します。

<Master Name="data object">
<BPMNObject>DataObject</BPMNObject>
</Master>

この定義の後に、Like属性を使用して最初の定義をクローニングし追加のVisioオブジェクトをマップする、一連の追加のマスター要素が続きます。

<Master Name="sequential data" Like="data object"/>
<Master Name="data" Like="data object"/>

2. VisioのReport要素のマッピングを追加または変更するには、VisioUserMap.xmlファイルに次のコードを追加します。

<Master Name=”Report” Like=”data object”/>

例E-2は、Extends属性を使用して、追加または異なる属性とともに既存のBPMNオブジェクトにオブジェクトがどのようにマップされるかを示しています。

例E-2 Extends属性を使用したBPMNオブジェクトへのVisioオブジェクトのマッピング

<Master Name="flow">
<BPMNObject>SequenceFlow</BPMNObject>
</Master>

<Master Name="conditional flow" Extends="flow">
<Attributes>
<Attribute Name="ConditionType" Value="Expression"/>
</Attributes>
</Master>

上の例では、Visioオブジェクトのconditional flowがBPMNフロー・オブジェクトのSequenceFlowにマップされますが、属性ConditionTypeが値Expressionで追加されています。

E.1.2 BPMN要素の有効な値

<BPMNObject>要素の有効な値は次のとおりです。

- タスク

- サブプロセス

- イベント

- ゲートウェイ

- DataObject

- グループ

- 注釈

- レーン

- プール

- MessageFlow

- SequenceFlow

- アソシエーション

- Null

注意:

Null値をVisioの要素に割り当てると、BPMNフロー・オブジェクトは作成されません。

E.1.3 BPMN要素の属性

次の表は、BPMNフロー・オブジェクトの基本的なBPMNタイプに基づいた、BPMN属性の有効な値を示しています。

タスクの属性と値

表E-1はBPMNタスクの有効な属性と値を示しています。

表E-1 タスクの属性と値

属性

値

TaskType

None、Script、Reference、Service、User、Manual、Send、Receive

LoopType

Standard、MultiInstance

isForCompensation

true、false

サブプロセスの属性と値

表E-2はBPMNサブプロセスの有効な属性と値を示しています。

表E-2 サブプロセスの属性と値

属性

値

isExpanded

true、false

isATransaction

true、false

LoopType

Standard、MultiInstance

isForCompensation

true、false

AdHoc

true、false

イベントの属性と値

表E-3はBPMNイベントの有効な属性と値を示しています。

表E-3 イベントの属性と値

属性

値

EventType

Start、Intermediate、End

Trigger

Trigger None、Message、Timer、Conditional、Signal、Multiple、Error、Cancel、Compensation、Link、Terminate

ゲートウェイの属性と値

表E-4はBPMNゲートウェイの有効な属性と値を示しています。

表E-4 ゲートウェイの属性と値

属性

値

GatewayType

Parallel、Inclusive、Exclusive、Complex

ExclusiveType

Event、Data

MarkerVisible

true、false

シーケンス・フローの属性と値

表E-5はBPMNシーケンス・フローの有効な属性と値を示しています。

表E-5 シーケンス・フローの属性と値

属性

値

ConditionType

None、Expression、Default

アソシエーションの属性と値

表E-6はBPMNデータ・オブジェクトの有効な属性と値を示しています。

表E-6 アソシエーションの属性と値

属性

値

Direction

None、One

プールの属性と値

表E-7はBPMNプールの有効な属性と値を示しています。

表E-7 プールの属性と値

属性

値

BoundaryVisible

true、false

E.2 XSL文書を使用したXPDLのインポートのカスタマイズ方法

多くの場合、ソースからターゲットへのモデルの変換は一般的な変換ルールに従い、ガイドラインと制約があります。XPDL文書をインポートして望ましくない結果が生じた場合、Business Process Composerが期待している形式とXPDL文書の形式が一致していない可能性があります。このような場合は、XSLT変換を使用すると元のXPDLダイアグラムと変換後のBPMNプロセスの間の一致を向上させることができます。

次の項では、Oracle BPM変換の出力を変更するためのXSLスタイルシートを組み込む場合に推奨される手順について説明します。Oracle BPMには、XSLT開発者への例として役立ついくつかのXSLTファイルが同梱されています。

XSL文書を使用してXPDLのインポートをカスタマイズするには:

Business Process Composerでは、データがBPMNに渡される前に、XSLT変換を使用してXPDLファイルを解析し、一致する形式を生成します。この変換を行うとき、Business Process ComposerはXPDLドキュメントに関連する変換ファイルを検索します。

通常、XPDLファイルにはベンダー名を提供する<Vendor/>要素が含まれています。ベンダーの名前とXSLファイルへのパスをXSLFilePaths.xmlに追加することで、ベンダー名が検索され、関連する変換ファイルのパスが特定されます。

ファイル・パスが索引ファイルから取得され、Business Process ComposerはXSLT変換をXPDLファイルに適用します。

1. カスタムのXSLTファイルを作成します。
XMLエディタを使用して、新しいXSLTファイルを作成します。XSLTファイルは、XSLFilePaths.xmlを含むXMLディレクトリに置く必要があります。

2. インポートしているXPDLを開き、<PackageHeader/>要素の下で<Vendor/>要素を探して、その値を書き留めます。
たとえば、XPDLが次のような場合:

<Package xmlns="http://www.wfmc.org/2004/XPDL2.0alpha" Id="6" Name="Untitled Document 6">
<PackageHeader>
<Vendor>Global 360</Vendor>
…
</PackageHeader>
…
</Package>

Vendor要素の値は“Global 360”になります。

3. XSLFilePaths.xmlファイルを探します。
このファイルは、JDeveloperインストール・ディレクトリの下で次のようにネストされているXMLという名前のフォルダにあります。

<JDeveloper_Home>\jdeveloper\jdev\extensions\tutor\xml

4. 新しい<XSLFilePath/>要素と、ベンダーの名前を含むVendor属性を追加し、XSLTファイルの相対パスを次の例のように指定します。

<XSLFilePaths xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="filesPaths PatchFilesPaths.xsd" xmlns="filesPaths">
…
<XSLFilePath Vendor=”Global 360”>Global360Patch.xsl</XSLFilePath>
</XSLFilePaths>

注意:

この例では、ファイル名のGlobal360Patch.xslに追加のパス情報がありません。Business Process Composerは、XSLFilePaths.xmlファイルが含まれるフォルダと同じフォルダ内でこのファイルを検索します。追加のパス情報がある場合には、Business Process Composerは\xmlフォルダからの相対パスでファイルを検索します。

5. XPDLファイルをOracle BPMにインポートします。ファイルはカスタムXSLTファイルで指定したルールに従って変換および処理されます。

E.3 XPDLファイルをBPMNプロセスとしてインポートするための準備

インポートしているXDPLファイルがXPDL 2.1に準拠していなかったりOracle BPMで必要とされる要素が欠落している可能性がある場合は、XSLTを使用して変換をカスタマイズできます。カスタムXSLTを組み込んで最適な結果を得る方法については、E.1項「BPMNプロセスとしてインポートするためのVisioファイルの準備」を参照してください。

この項では、XPDLファイルをインポートするときに発生する一般的な状況に対処するための様々なXSLTテンプレートのサンプルを示します。

この付録で説明しているファイルは、Oracle Tutorインストール・ディレクトリのXMLという名前のディレクトリにあります。これらは、JDeveloperインストール・ディレクトリの次の場所にあります。

<Jdeveloper_Home>/jdeveloper/jdev/extensions/tutor/xml.

ビジネス・プロセスをOracle BPMにインポートするときに適用する要件を次に示します。

- Oracle BPMで、XPDL 2.1ファイルのインポートがサポートされている。次のネームスペースがXPDLソース・ドキュメントのルート要素にデフォルト・ネームスペースとして存在する必要があります。
http://www.wfmc.org/2008/XPDL2.1

- インポートの対象となるXPDLソース・ファイルがXPDL 2.1に準拠していない場合は、XSLT変換を実行してOracle BPMにインポートするための正しいXPDL形式を生成する必要があります。次の項で、これらの変換を作成するための情報について説明します。

E.3.1 ネームスペースの処理

XPDLをインポートするときは、XSLTにおけるネームスペースの処理について理解している必要があります。Oracle BPMで使用されるデフォルト・ネームスペースは次のとおりです。

http://www.wfmc.org/2008/XPDL2.1

場合によっては、ソース・ファイルがXPDL 2.1に準拠していても、Oracle BPMが必要とする要素が欠落している場合があります。この場合、XSLTを使用してそうした要素を追加することができます。

XPDLドキュメントに異なるデフォルト・ネームスペースが含まれている場合、インポート時に要素と属性はXPLD 2.1に準拠しているものとして扱われます。これでは不十分な結果となる可能性が高くなります。XPDL 2.1に準拠しないXPDLソース・ドキュメントは、XSLを介して有効なXPDL 2.1形式に変換する必要があります。

次のようなシナリオが考えられます:

- ソースXPDLの要素はデフォルト・ネームスペースを使用し、XPDL 2.1に準拠しています。

- ソースXPDLの要素はデフォルト・ネームスペースに存在しますが、XPDL 2.1に準拠していません。

- ソースXPDLの要素はデフォルト・ネームスペースに存在せず、XPDL 2.1に準拠していない。

- ソースXPDLの要素はデフォルト・ネームスペースに存在しませんが、XPDL 2.1に準拠しています。

例E-3は、ソース文書のローカル・ネームスペースを使用して記述された要素を、結果文書のデフォルト・ネームスペースにコピーするXSLを示しています。

注意:

ローカル・ネームスペースはスタイルシートのルート要素に追加されています。ソースXPDL文書の要素と一致する場合は、ローカル・ネームスペースの接頭辞が一致している必要があります。この例ではANY_LOCAL_NAMESPACEを使用しています。

例E-3 ローカル・ネームスペースの要素のデフォルト・ネームスペースへのコピー

<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns:ANY_LOCAL_NAMESPACE = "http://www.someURI" >
<xsl:output method = "xml" indent = "yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match = “ANY_LOCAL_NAMESPACE:Activity”>
…………
</xsl:template>
</xsl:stylesheet>

E.3.2 相対座標の処理

XPDL文書には、相対または絶対として定義されるオブジェクト座標が含まれる場合があります。絶対座標を使用したXPDL文書では、すべての座標が絶対座標としてインポートされます。

相関座標を使用してXPDL文書をOracle BPMにインポートする場合、次の条件に注意する必要があります。

- プール座標は絶対座標である

- レーン座標は親プールに対する相対座標である

- サブプロセスに含まれないノード座標は、絶対座標である

- 埋込みサブプロセス(拡張または縮小)に含まれるノード座標は、サブプロセスの左上隅に対する相対座標である

- サブプロセスに含まれるノードを接続するシーケンス・フロー・パス座標は、サブプロセスの左上隅に対する相対座標である

- その他すべてのフローは絶対座標である

相関座標を含むXPDL文書は、上述の条件を満たすために変換する必要があります。次の情報は、必要に応じて座標を相関から絶対に、またはその逆に変換する場合に役立ちます。

- プール座標
プール座標は絶対座標である必要があります。プールに指定された座標が相対座標の場合、Business Process Composerはそれぞれ互いに重複するすべてのプールをレンダリングします。Business Process Composerは、プールが絶対座標で構成されるものと想定します。これをオーバーライドするには、プール座標を絶対座標に変換します。

- レーン座標
レーン座標は親プールに対する相対座標である必要があります。場合によっては、レーンに絶対座標が含まれていて、モデルには相対座標が含まれていることがあります。この場合、レーン座標は次のように変換することができます。レーンのX座標は、レーンのX座標と親プールのX座標との差異とみなされます。同じロジックがY座標にも適用されます。

次のXSLの例は、この変換の実行方法について示しています。

<xsl:template match = "xpdl2:Lane/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates">

<xsl:copy>
<xsl:copy-of select = "@*[name() != 'XCoordinate' and name() != 'YCoordinate']"/>
<xsl:attribute name = "XCoordinate">
<xsl:value-of select = “ancestor::xpdl2:Pool/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@XCoordinate - @XCoordinate"/>
</xsl:attribute>
<xsl:attribute name = "YCoordinate">
<xsl:value-of select = "ancestor::xpdl2:Pool/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@YCoordinate - @YCoordinate"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

- サブプロセスに含まれないノード座標
サブプロセスに含まれないノード座標は、絶対座標である必要があります。ノード座標が親レーンまたはプールを基準とした相対座標である場合は、これらのノード座標を絶対座標に変換します。親プールを基準とした相対座標であるアクティビティの座標は、そのプール座標をアクティビティ座標に追加することによって絶対座標に変換できます。親レーンを基準とした相対座標であり、親プールを基準とした相対座標であるアクティビティの座標は、アクティビティ、親レーンおよび親プールの座標の合計をアクティビティ座標に割り当てることによって、絶対座標に変換できます。

次の例は、アクティビティ座標が親レーンに対する相対座標で、レーン座標が、プール座標が絶対座標である親プールに対する相対座標である場合の、アクティビティ座標の計算方法について示しています。

<xsl:template match="xpdl2:Activity/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates">
<xsl:copy>
<xsl:copy-of select="@*[name()!='YCoordinate' and name()!='XCoordinate']"/>
<xsl:variable name="LaneId">
<xsl:value-of select="ancestor::xpdl2:NodeGraphicsInfo/@LaneId"/>
</xsl:variable>
<xsl:variable name="PoolId">
<xsl:value-of select="//xpdl2:Lane[@Id=$LaneId]/ancestor::xpdl2:Pool/@Id"/>
</xsl:variable>
<xsl:attribute name="YCoordinate">
<xsl:value-of select="//xpdl2:Pool[@Id=$PoolId]/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@YCoordinate
+ //xpdl2:Lane[@Id=$LaneId]//xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@YCoordinate
+
@YCoordinate"/>
</xsl:attribute>
<xsl:attribute name="XCoordinate">
<xsl:value-of select="//xpdl2:Pool[@Id=$PoolId]/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@XCoordinate
+ //xpdl2:Lane[@Id=$LaneId]//xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@XCoordinate
+
@XCoordinate"/>
</xsl:attribute>
</xsl:copy>
</xsl:template>

- 埋込みサブプロセスに含まれるノード座標
(拡張または縮小する)埋込みサブプロセス内のノード座標は、そのサブプロセスの左上隅を基準とした相対座標である必要があります。サブプロセスの子ノードでは、座標は親サブプロセスを基準とした相対座標です。サブプロセスの子ノードの座標が親サブプロセスを基準とした相対座標でない場合は、座標が親レーンを基準とした相対座標なのか、それとも親プールを基準とした相対座標なのか特定する必要があります。ノード座標をサブプロセスを基準とした相対座標にするには、適切なサブプロセス座標をノード座標から減算して、結果となる値をノード座標に割り当てます。サブプロセスの子ノードの座標を計算するサンプルのスタイルシート・テンプレートを下に示します。このテンプレートは、子ノード座標がサブプロセスを基準とした相対座標ではない場合に機能します。

<xsl:template match = "xpdl2:ActivitySet/xpdl2:Activities/xpdl2:Activity/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates">
<xsl:variable name = "ActivitySetId">
<xsl:value-of select = "ancestor::xpdl2:ActivitySet/@Id"/>
</xsl:variable>
<xsl:copy>
<xsl:copy-of select = "@*[name() != 'XCoordinate' and name() != 'YCoordinate']"/>
<xsl:attribute name = "XCoordinate">
<xsl:value-of select = "@XCoordinate  –
//xpdl2:Activity[@Id = $ActivitySetId]/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@XCoordinate"/>
</xsl:attribute>
<xsl:attribute name = "YCoordinate">
<xsl:value-of select = "@YCoordinate –
//xpdl2:Activity[@Id = $ActivitySetId]/xpdl2:NodeGraphicsInfos/xpdl2:NodeGraphicsInfo/xpdl2:Coordinates/@YCoordinate"/>
</xsl:attribute>
</xsl:copy>
</xsl:template>

- シーケンス・フロー・パス座標
サブプロセスに含まれるノードを接続するシーケンス・フロー・パス座標は、サブプロセスの左上隅に対する相対座標である必要があります。

XSL変換では、シーケンス・フロー・パス座標がサブプロセスを基準とした相対座標であるかどうかを調べる必要があります。そうでない場合は、サブプロセスの左上隅に対する相対座標に変換します。

単純なプログラム論理を使用して、相対座標に変換することができます。このようなロジックは、シーケンス・フロー・パス座標からサブプロセス座標を減算します。その他すべてのフローは絶対座標である必要があります。

またXSLコードで、座標が相対座標であるか絶対座標であるかを確認する必要があります。絶対座標でない場合には、変換します。変換するには、親プール座標をフロー座標に追加するロジックを含んでおり、これらの値をフロー座標に割り当てるスタイルシートのテンプレートをインクルードします。座標が親プールまたは親レーンを基準とした相対座標である場合は、次について注意することが重要です。

- シーケンス・フローが親プールに対する相対座標である場合は、プール座標をフロー座標に追加します。

- シーケンス・フローが親レーンを基準とした相対座標である場合は、親プール座標と親レーン座標をフロー座標に追加します。

E.3.3 拡張属性の処理

XPDLファイルを解析するために、Business Process Composerによって2つの拡張属性が使用されます。これらの拡張属性はオプションですが、フローに相対座標が使用されているXPDLドキュメントを操作する場合に非常に役立ちます。それらの属性は次のとおりです。

- redrawConnections

- isRelativeObjectCoordinates

これらの拡張属性は標準のXPDL要素ではありませんが、フロー座標を相対座標から絶対座標に、または絶対座標から相対座標に変換するのに必要な作業量を軽減するために使用することができます。<ExtendedAttributes>要素はXPDL文書の多くの要素内で見つかりますが、Oracle BPMは<Package/>要素の下で検索します。<ExtendedAttributes>要素は、Oracle BPMによって見つけられるように、<Package/>要素の下に配置してください。

E.3.4 redrawConnectionsの処理

この属性をtrueに設定すると、Oracle BPMは元の座標を使用するかわりにフロー接続を再描画できます。これは、フローの座標を相対座標または絶対座標に変換する必要がある場合に便利です。フローの座標を相対座標または絶対座標に変換することが難しい場合は、この属性をtrueに設定すると、Oracle BPMはフローの座標を再作成できます。

この属性がtrueに設定されていると、座標を絶対座標または相対座標に変換する必要がありません。Oracle BPMはフローの元の座標を考慮せず、フローに最適な座標を作成します。

ExtendedAttributeがXPDLファイルに含まれていない場合、またはfalseに設定されている場合には、Oracle BPMは元の座標を使用します。

したがって、この属性の使用は、元のモデルのレイアウトの保持が開発時間の短縮よりも重要でない場合に検討する必要があります。

例E-4はこの属性の設定方法について示しています。

例E-4 redrawConnectionsを処理する場合のExtendedAttributeの設定

<xsl:template match="xpdl:Package/xpdl:ExtendedAttributes">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xpdl:ExtendedAttribute Name="redrawConnections" Value="true"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="xpdl:Package">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:if test="not(child::xpdl:ExtendedAttributes)">
<xpdl:ExtendedAttributes>
<xpdl:ExtendedAttribute Name="redrawConnections" Value="true"/>
</xpdl:ExtendedAttributes>
</xsl:if>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

上のテンプレートでは、redrawConnectionsというExtendedAttributeが<ExtendedAttributes/>要素に< Package/>の子として追加されています。

E.3.5 isRelativeObjectCoordinatesの処理

拡張属性isRelativeObjectCoordinatesは、XPDLファイルのオブジェクト座標が相対座標であるか絶対座標であるかをOracle BPMに通知するために使用されます。

ソースXPDLファイルですべてのオブジェクト座標が絶対形式で示されている場合、すべての座標がダイアグラムの左上隅の(0,0)地点から測定されます。この属性を使用する必要があり、値はfalseに設定されます。

この拡張属性をtrueに設定すると、ソースXPDLファイルのすべての座標は相対座標であり、前述したOracle BPMの相対座標のルールに従っていることがOracle BPMに通知されます。

デフォルトでは、Oracle BPMは、入力ドキュメントのすべての座標が前述したOracle BPMの相対座標のルールに従っているものとみなします。この属性をtrueに設定したり省略する場合は、すべての座標が相対座標のルールを満たしていることを確認してください。それ以外の場合は、テンプレートをスタイルシートにインクルードして相対座標のルールに従うようにする必要があります。

例E-5は、次に示される<Package/>要素の子である<ExtendedAttributes/>要素に<ExtendedAttribute/>要素を含める方法について示しています。

例E-5 ExtendedAttributes要素にExtendedAttributeを含める

<xsl:template match="xpdl21:Package/xpdl21:ExtendedAttributes">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xpdl21:ExtendedAttribute Name="isRelativeObjectCoordinates" Value="false"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="xpdl21:Package">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:if test="not(child::xpdl21:ExtendedAttributes)">
<xpdl21:ExtendedAttributes>
<xpdl21:ExtendedAttribute Name="isRelativeObjectCoordinates" Value="false"/>
</xpdl21:ExtendedAttributes>
</xsl:if>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

E.3.6 非表示要素の削除

Oracle BPMでは、ソースXPDLファイルのすべてのグラフィカル要素は、その可視性がfalseに設定されている場合でも表示要素とみなされます。したがって、以前は非表示になっていた要素が変換後のBPMNプロセスでは表示されているという違いが見つかることがあります。

この問題を解決するには、これらの要素をXPDLから、例E-6で示すように、XSLスタイルシート・テンプレートを使用して削除する必要があります。

例E-6 非表示要素の削除

<xpdl:Activity Name="ProcessGroup" Id="ProcessGroup">
<xpdl:NodeGraphicsInfos>
<xpdl:NodeGraphicsInfo ToolId="XYZ" LaneId="PMCoE" IsVisible="false">
<xpdl:Coordinates XCoordinate="7740.0" YCoordinate="80.0"/>
</xpdl:NodeGraphicsInfo>
</xpdl:NodeGraphicsInfos>
…………………..
</xpdl:Activity>

この例では、アクティビティの可視性をfalseに設定しても、このモデルをOracle BPMにインポートすると、このアクティビティは依然として表示されます。非表示要素を削除するには、それらを削除するためのテンプレートをスタイルシートに追加してください。

例E-7は非表示アクティビティの削除方法について示しています。

例E-7 非表示アクティビティの削除

<xsl:template match="xpdl:Activity">
<xsl:variable name="isVisible">
<xsl:choose>
<xsl:when test="xpdl:NodeGraphicsInfos/xpdl:NodeGraphicsInfo/@IsVisible = 'false'">
<xsl:text>false</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>true</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$isVisible = 'true'">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:if>
</xsl:template>

E.3.7 方向属性の処理

方向は多くのXPDL文書で見つかる属性で、モデルの方向を指定します。この属性にはHORIZONTALまたはVERTICALの値を指定する必要があります。一部のツールで生成されたXPDL文書には、モデルが実際には垂直方向または水平方向であっても水平方向とみなす座標が含まれている場合があります。

モデルの方向に関して、モデルに適切な座標が含まれていることを確認してください。モデルに不適切な座標が含まれている場合には、座標を入れ替えるためのテンプレートをスタイルシートに追加してください。

モデルの方向属性は、Oracle BPMがプールやレーンのディメンションを計算する(このドキュメントの後半で説明)ためにも重要です。方向属性は、プール要素内で見つかることがあります。この属性がXPDLドキュメントに見つからない場合、Oracle BPMでは、モデルは水平方向であるとみなされます。

方向属性がツール固有のネームスペースに存在する場合は、方向属性をプール要素に作成して、それらの値をツール固有のネームスペースにある属性に設定することによって、Oracle BPMで利用できるようにする必要があります。

例E-8はプールの方向の設定方法について示しています。このテンプレートではプールの方向を見つけようとしています。見つからない場合は、方向属性はHORIZONTALに設定されます。

例E-8 プールの方向の設定

<xsl:template match="xpdl:Pool">
<xsl:variable name="orientation">
<xsl:choose>
<xsl:when test="not(@Orientation)">
<xsl:text>HORIZONTAL</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@Orientation"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:attribute name="Orientation">
<xsl:value-of select="$orientation"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

E.3.8 サブプロセスのビュー・タイプの指定

<BlockActivity/>要素および<Subflow/>要素のビュー属性は、サブプロセスが拡張サブプロセスか縮小サブプロセスかを指定します。Oracle BPMでは、サブプロセス要素のデフォルト・ビュー・タイプをCOLLAPSEDと想定しています。したがって、モデルに拡張サブプロセス要素が含まれていても、XPDLファイルでビュー・タイプが指定されていない場合には、Oracle BPMはこの要素を縮小サブプロセス要素とみなします。

注意:

XPDLファイルのサブフロー要素は子要素も一緒にOracle BPMにレンダリングすることはできないため、サブフロー要素のみがインポートされたモデルで見つかります。サブプロセスはビュー・タイプによって識別することができます。サブフローが拡張サブフローの場合には、Oracle BPMはこの要素を拡張サブフロー要素とみなします。

次の例では、ビュー・タイプが指定されていない<BlockActivity/>要素と<Subflow/>要素が示されています。Oracle BPMによる対応する解釈の結果、縮小サブプロセスとなります。

<xpdl2:BlockActivity ActivitySetId="_gJ5DQeE3Ed6tmt0cZVxmlA"/>
<xpdl2:SubFlow Id="_swKUEGyzEd6oxIP3ZfQL-g" PackageRef="ProcessPackage"/>

ビュー属性が<BlockActivity>要素に見つからない場合は、ツール固有のネームスペースに存在している可能性があります。その場合には、<BlockActivity>要素または<Subflow>要素にビュー属性を作成するためのテンプレートをXSLに含めてください。

例E-9は、ビュー属性を<Subflow>要素に追加するのに使用するスタイルシートを示しています。

例E-9 サブフロー要素へのビュー属性の追加

<xsl:template match="xpdl21:SubFlow">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:attribute name="View">
<xsl:choose>
<xsl:when test="ancestor::xpdl21:Activity/xpdl21:NodeGraphicsInfos/xpdl21:NodeGraphicsInfo/@Expanded='false'">
<xsl:text>COLLAPSED</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>EXPANDED</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:copy>
</xsl:template>

例E-10は、ビュー属性を<BlockActivity>要素に追加するスタイルシートのサンプル・テンプレートを示しています。このテンプレートは、Oracle Business Process Management Studioで生成されたXPDLファイルで機能します。また、このテンプレートでは、ツール固有のネームスペースからビュー属性の値にアクセスして、<BlockActivity>要素にビュー属性を作成する方法も示しています。

例E-10 BlockActivity要素へのビュー属性の追加

<xsl:template match="xpdl:Activity/xpdl:BlockActivity">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:choose>
<xsl:when test="ancestor::xpdl:Activity/xpdl:Extensions/albpm:ALBPMExtensions/albpm:FeatureSet/albpm:BooleanFeature[@ name='collapsed']/@value='true'">
<xsl:attribute name="View">
<xsl:text>COLLAPSED</xsl:text>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="View">
<xsl:text>EXPANDED</xsl:text>
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

E.3.9 オブジェクト・ピンの処理

一部のツールでは、アクティビティに提供される座標がアクティビティ・オブジェクトの左上隅に指定されているのに対し、他のツールでは、座標がアクティビティ・オブジェクトの中心に基づいています。これらの座標はオブジェクト・ピンとして機能します。

アクティビティの中心にオブジェクト・ピンを含むXPDL文書をOracle BPMにインポートする場合、期待する位置と異なる位置でアクティビティが発生する可能性があります。これは、アクティビティのオブジェクト・ピンが中心にあるのに対し、Oracle BPMではオブジェクト・ピンが左上隅にあることを期待しているためです。この矛盾を解決するには、アクティビティ座標を再計算する必要があります。

このような座標の計算は、アクティビティの幅の半分をX座標から減算し、アクティビティの高さの半分をY座標から減算するなどの単純な論理を使用して行うことができます。

例E-11は、この再計算を行うスタイルシートのテンプレートを示しています。このテンプレートは、アクティビティに幅、高さ、X座標およびY座標が指定されている場合にのみ有効であることに注意してください。

例E-11 オブジェクト・ピンの位置の再計算

<xsl:template match = "xpdl:Activity/xpdl:NodeGraphicsInfos/xpdl:NodeGraphicsInfo/xpdl:Coordinates">        <xsl:copy>
<xsl:copy-of select = "@*[name() != 'XCoordinate' and name() != 'YCoordinate']"/>
<xsl:attribute name = "XCoordinate">
<xsl:value-of select = "@XCoordinate - ancestor::xpdl:NodeGraphicsInfo/@Width div 2 "/>
</xsl:attribute>
<xsl:attribute name="YCoordinate">
<xsl:value-of select = "@YCoordinate - ancestor::xpdl:NodeGraphicsInfo/@Height div 2"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

E.3.10 アクティビティの高さと幅の変更

ツールの中には、XPDLファイルにアクティビティの高さと幅が提供されていないものがあります。ただし、XPDLファイルをOracle BPMにインポートするには、アクティビティの座標とディメンションが必要です。したがって、アクティビティおよびレーンの高さと幅を設定するテンプレートをXSLスタイルシートに追加してください。XPDLファイルにアクティビティの高さと幅が含まれていない場合は、いくつかのデフォルト・ディメンションを設定します。たとえば、タスクと縮小サブプロセスには幅が80で高さが40、イベントとゲートウェイには幅が30で高さが30を設定します。

<BlockActivity>拡張要素にも別の<BlockActivity>拡張要素が含まれている場合があるため、<BlockActivity>および<Subflow>拡張要素に高さと幅を設定することが特に難しいことがあります。ここで、最も内側のBlockActivityの高さと幅を最初に計算してから、親BlockActivityの計算を行う必要があります。この再帰は、最上位の<BlockActivity>までバブル・アップする必要があります。この再帰プロセスをXSLでコーディングすることは難しい場合があります。このため、Oracle BPMは拡張サブプロセスの高さと幅を計算する機能を備えています。この機能を使用するには、XSLテンプレートを使用して、<BlockActivities>の高さと幅をそれぞれ0と0に設定してください。

例E-12は、高さと幅が定義されていないイベント要素です。

例E-12 高さと幅が定義されていないイベント要素

<xpdl:Activity Name="Begin" Id="Begin">
<xpdl:Event>
<xpdl:StartEvent Trigger="None"/>
</xpdl:Event>
……………………………..
<xpdl:NodeGraphicsInfos>
<xpdl:NodeGraphicsInfo LaneId="Accounting" IsVisible="true">
<xpdl:Coordinates XCoordinate="36.0" YCoordinate="110.0"/>
</xpdl:NodeGraphicsInfo>
</xpdl:NodeGraphicsInfos>
</xpdl:Activity>

例E-13は、アクティビティの高さと幅を設定するのに使用するスタイルシートのサンプル・テンプレートを示しています。このテンプレートは、XPDL文書でアクティビティの高さと幅が指定されていない場合に使用できます。この例では、タスク要素と縮小BlockActivityにディメンション80(幅) x 40(高さ)、ルートとゲートウェイにディメンション30 x 30、拡張BlockActivityにディメンション0 x 0が設定され、Oracle BPMはこれらのBlockActivity拡張要素のディメンションを計算できるようになります。このテンプレートは、Oracle BPM Studio XPDLファイルの場合に機能します。

例E-13 アクティビティの高さと幅の設定

<xsl:template match = "xpdl:Activity/xpdl:NodeGraphicsInfos/xpdl:NodeGraphicsInfo">
<xsl:variable name = "activityType">
<xsl:choose>
<xsl:when test = "ancestor::xpdl:Activity/xpdl:Implementation/xpdl:SubFlow">
<xsl:text>SubFlow</xsl:text>
</xsl:when>
<xsl:when test = "ancestor::xpdl:Activity/xpdl:Implementation">
<xsl:text>Task</xsl:text>
</xsl:when>
<xsl:when test = "ancestor::xpdl:Activity/xpdl:Event">
<xsl:text>Event</xsl:text>
</xsl:when>
<xsl:when test = "ancestor::xpdl:Activity/xpdl:Route">
<xsl:text>Route</xsl:text>
</xsl:when>
<xsl:when test = "ancestor::xpdl:Activity/xpdl:BlockActivity">
<xsl:choose>
<xsl:when test = "ancestor::xpdl:Activity/xpdl:Extensions/albpm:ALBPMExtensions/albpm:FeatureSet/albpm:BooleanFeature[@ name = 'collapsed']/@value != 'true'">
<xsl:text>ExpandedBlockActivity</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>CollapsedBlockActivity</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:variable>

<xsl:copy>
<xsl:copy-of select = "@*"/>
<xsl:attribute name = "Width">
<xsl:choose>
<xsl:when test = "$activityType = 'Task' or $activityType = 'CollapsedBlockActivity' or $activityType = 'SubFlow'">
<xsl:text>80</xsl:text>
</xsl:when>
<xsl:when test = "$activityType = 'Route' or $activityType = 'Event'">
<xsl:text>30</xsl:text>
</xsl:when>
<xsl:when test = "$activityType = 'ExpandedBlockActivity'">
<xsl:text>0</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name = "Height">
<xsl:choose>
<xsl:when test = "$activityType = 'Task' or $activityType = 'CollapsedBlockActivity' or $activityType = 'SubFlow'">
<xsl:text>40</xsl:text>
</xsl:when>
<xsl:when test = "$activityType = 'Route' or $activityType = 'Event'">
<xsl:text>30</xsl:text>
</xsl:when>
<xsl:when test = "$activityType = 'ExpandedBlockActivity'">
<xsl:text>0</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

E.3.11 レーンの高さと幅の変更

多くのXPDL文書では、レーンのディメンション(高さや幅)は親プールの方向に応じて指定されます。たとえば、親プールの向きが水平方向の場合、XPDLドキュメントでレーンの幅は見つかっても、高さは見つからないことがあります。前述したように、Oracle BPMがグラフィカル要素のサイズを決定するには、レーンおよびアクティビティの高さと幅が必要です。XPDL文書にレーンの高さや幅が見つからない場合は、これらの属性が含まれているすべての要素を保持するのに十分な値に設定してください。

レーンの高さは指定されているが幅が指定されていない場合には、単純な論理を使用してレーンの幅を設定できます。X座標にアクティビティの幅を足した最大の合計を求め、この値をすべてのレーンの幅に設定します。レーンの幅がすべての要素を保持できる場合は、X座標と幅の最大合計を持つアクティビティの右境界線から引かれているレーン右境界線が見られることがあります。また、レーンをその他のオブジェクトのコンテナとして表示できるよう拡張するために、小さいパディング値を最大合計に追加することもできます。

上述の論理は、すべてのアクティビティに高さと幅の値が含まれている場合に有効です。ただし、アクティビティに高さと幅の値が含まれていない場合もあります。そのような場合、レーンの高さや幅を計算する前に各アクティビティの高さと幅を計算する必要があるため、上述の論理でXSLTを使用してレーンの幅を計算することは困難です。この問題を解決するために、Oracle BPMはレーンの高さや幅を設定する機能を備えています。

この機能を使用するには、XSLTを使用して欠落しているレーンのディメンションを0に設定してください。この機能では、レーンに1つのディメンションが指定されていると想定しています。

E.3.12 プールの高さと幅の変更

プールに高さと幅が指定されている場合、Oracle BPMはそれらのディメンションを使用します。これらの値が指定されていない場合は、Oracle BPMは計算を試みます。ディメンションが1つしか指定されていない場合でも、Oracle BPMは両方のディメンションを計算します。この機能を回避するには、ソースXPDL文書にプールの両方のディメンションが含まれている必要があります。

E.3.13 アクティビティの場所

XPDLファイルで座標とディメンションが指定されている場合、Oracle BPMはそれらの値を操作せずに使用します。レーンのディメンションやサブプロセスのディメンションなど、一部のディメンションが欠落している場合は、Oracle BPMはそうしたディメンションの計算を試みます。ディメンションの計算プロセスで、Oracle BPMはモデルをより良くするためにディメンションにいくつかのパディングを追加しますが、アクティビティの周りにスペースがある場合には、このモデルは問題ありません。そうでない場合は、インポートされたモデルに、他のアクティビティまたはレーンの上部に引かれているアクティビティまたはレーンの境界線が含まれていることがあります。この問題を回避するには、アクティビティの周りにスペースを持たせるように配置してください。

複数のレーンまたはアクティビティに重複するIDを含むモデルをOracle BPMにインポートする際に、問題が発生することがあります。Oracle BPMは同じ名前で複数のレーンまたはアクティビティを作成することはできません。ソースから1つのみのレーンまたはアクティビティが作成され、その結果は元のモデルに正しく反映されません。

この問題を回避するには、一意のIDでモデル要素を作成してください。

E.3.14 欠落要素を含める

XPDLソース文書に、Oracle BPMが適切に変換を行うのに必要な要素や属性が欠落している場合には、XSLTを使用してそうした要素や属性を追加します。

たとえば、XPDLに8つのタイプのタスクがあります。Oracle BPMがこれらのタスク・タイプを認識するためには、<Task>要素に、タスクがサービス・タスクであるか受信タスクであるかなどを指定する別の子要素が含まれている必要があります。これらの子要素が<Task>ソース要素に見つからない場合は、その<Task>要素はデフォルトの<Task>要素に変換されます。

たとえば、次に示す<Task>要素は<TaskUser>子要素を含んでいないユーザー・タスクです。したがって、Oracle BPMによってデフォルトのタスク要素とみなされます。

<Implementation>
<Task />
</Implementation>

アクティビティがOracle BPMにユーザー・タスクとして識別されるには、次のように、<TaskUser>要素をタスク要素の下に追加する必要があります。

<Implementation>
<Task>
<TaskUser>
....
</TaskUser>
</Task>
</Implementation>

前述のように、多くの属性がツール固有のネームスペースの下に指定されている可能性があります。タスク・タイプがXPDLネームスペースの下に見つからない場合は、ツール固有のネームスペースで検索して、それらの要素をタスク要素の下に含めるためのテンプレートをスタイルシートに追加してください。

例E-14では、自動タスク要素が検出された場合は常に、<TaskService>要素を<Task>要素の子として含める方法について説明しています。このテンプレートはOracle BPM Studioで生成されたXPDLソース・ファイルに役立ちます。

例E-14 TaskService要素をタスク要素の子として含める

<xsl:template match="xpdl:Activity/xpdl:Implementation/xpdl:Task">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:if test="ancestor::xpdl:Activity/xpdl:Extensions/albpm:ALBPMExtensions/albpm:FeatureSet/albpm:StringFeature[@name='type']/@value='AUTOMATIC'
and not(child::xpdl:TaskService)">
<xpdl:TaskService/>
</xsl:if>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

E.3.15 アクティビティの正確性の確認

アクティビティをソース・ツールからXPDLとしてエクスポートする場合に、ソースXPDLにアクティビティを表す適切な要素が含まれていることを確認してください。たとえば、イベント・アクティビティが含まれているモデルをXPDLにエクスポートする際に、ツールがそのイベント・アクティビティに<Route>要素や<Task>要素を作成した場合、この要素を正確にイベント・アクティビティを表す要素で置き換える必要があります。

次に示すXPDL要素について考えます。アクティビティは開始イベントで、<Activity>要素の下にイベント要素ではなく<Route>要素が置かれています。このモデルをOracle BPMにインポートすると、このアクティビティはイベント・アクティビティとしてではなく、ルート・アクティビティに変換されます。

例E-15 アクティビティの正確性の確認

<xpdl:Activity Name="Group$Begin" Id="Group$Begin">
<xpdl:Route GatewayType="XOR" MarkerVisible="true"/>
…………………..
</xpdl:Activitiy>
The correct notation for the above element should be:
<xpdl:Activity Name="Group$Begin" Id="Group$Begin">
<xpdl:Event>
<xpdl:StartEvent Trigger="None"/>
…………………..
</xpdl:Event>
……………………….
</xpdl:Activity>

ソースXPDLでこの問題が見つかった場合は、不適切な要素を適切な要素で置き換えるためのテンプレートをスタイルシートに追加してください。

F 営業見積サンプル・プロセス

この章ではビジネス・プロセス設計について説明します。この章にはBusiness Process Management Notation (BPMN)の基本的な概要を示します。この概要では、主に、このガイドで使用されるBPMN固有の用語について説明します。

OracleでのBPMN 2.0の実装の詳細は、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。

また、この章では、営業見積サンプル・プロジェクトについても説明します。このプロジェクトはOracle BPMドキュメント・セット内の例全体で使用されています。

この章の内容は次のとおりです。

- F.1項「Business Process Management Notation(BPMN)の概要」

- F.2項「営業見積サンプルの概要」

F.1 Business Process Management Notation(BPMN)の概要

この項では、Business Process Management Notation (BPMN)の概要について説明します。ここでは、主に、このガイド全体で使用されるBPMN用語について説明します。

F.1.1 Business Process Management Notation (BPMN)とは

Business Process Management Notation (BPMN)は、ビジネス・プロセスの定義に関する業界標準の表記です。Oracle BPMでは、BPMN 2.0がサポートされています。

BPMNに関する一般的な情報については、http://www.bpmn.orgを参照してください。Oracle BPMでサポートされているBPMN機能仕様については、http://www.omg.org/spec/BPMN/2.0/を参照してください。

F.1.2 ビジネス・プロセス

ビジネス・プロセスは一般に、実行後に明確な出力を生成する一連のタスクとして定義できます。ビジネス・プロセスという用語が示すように、通常、ビジネス・プロセスは会社または組織のコンテキスト内で実行される作業を表します。

営業見積プロジェクトは、ビジネス・プロセスの例を示しています。このプロジェクトにはタスクのシーケンスが含まれており、このシーケンスを実行すると、営業見積の承認または却下という結果が発生します。

また、Oracle BPMのコンテキストにおいては、ビジネス・プロセスはソフトウェアを使用して管理できる対象でもあります。Oracle BPMを使用すると、実際のビジネス・プロセスを営業見積サンプルのようにモデリングしてIT環境に統合できます。

F.1.2 プロセス・インスタンス

プロセス・インスタンスは、ビジネス・プロセスの特定のインスタンスを表します。通常、ビジネス・プロセスには組織における作業の実行方法を定義するのに対し、プロセス・インスタンスではその組織内の特定の担当者の作業を表します。Oracle BPMでは、この担当者はプロセス参加者と呼ばれます。

たとえば、営業見積サンプルでは、ビジネス・プロセスの全体的な定義またはモデルを示しています。ここには、作業の実行を担当するプロセス参加者のロールが含まれています。このサンプルでは、営業見積を作成および承認する方法、およびその作業を実行する担当者のタイプが定義されます。

対照的に、プロセス・インスタンスは、特定の営業見積およびその承認を担当する特定の担当者を表します。

Oracle BPMを使用すると、ビジネス・プロセスをモデリングして実行可能なビジネス・アプリケーションに変換し、これらのアプリケーション内で作成されたプロセス・インスタンスを管理できるため、プロセスとプロセス・インスタンスの間のこのような区別が重要になります。

F.1.2.2 プロセス・トークン

プロセス・トークンは、BPMNにおける抽象的な概念です。プロセス・トークンは、プロセスにおける現在の実行ポイントを表します。ビジネス・プロセスには複数のトークンが含まれている場合があります。このような場合は、そのプロセスが複数のパスを経由して実行されていることを示します。

たとえば、多くの場合、プロセスのパスをスプリットするのにゲートウェイが使用されます。プロセス・パスをスプリットすると、複数のプロセス・トークンが作成されます。

F.1.3 フロー・オブジェクト

フロー・オブジェクトは、プロセス内で実行される作業を表すBPMNコンポーネントです。次の各項では、BPMNで使用できるフロー・オブジェクトのタイプについて説明します。

- タスク: プロセスによって実行される作業を表します。

- イベント: プロセスにおいて発生する事柄を定義します。

- ゲートウェイ: プロセスのフローを決定します。

- シーケンス・フロー: フロー・オブジェクトを接続し、プロセスの論理フローを定義します。

F.1.4 データ・オブジェクト

フロー・オブジェクトがビジネス・プロセスの動作の定義に使用されるのに対し、データ・オブジェクトは、ビジネス・プロセスによって使用される情報の定義および格納に使用されます。データ・オブジェクトはモデリング中またはプロセスの実装中に定義される変数です。プロセス・インスタンスでは、これらの変数を使用して特定の情報を格納します。

たとえば、営業見積サンプルでは、営業見積に関する情報の格納に使用される、複数のデータ・オブジェクトが定義されています。プロセス・インスタンスでは、ランタイム時に、これらの変数について特定の値を生成および格納します。

F.2 営業見積サンプルの概要

営業見積プロジェクトでは、様々なOracle BPM機能の現実的な例を示します。このプロジェクトは、このドキュメントで説明されている機能の例を示すために、Oracle BPMドキュメント・セット内部で使用されています。

図F-1は、営業見積サンプルを示しています。

図F-1 営業見積サンプル

「図F-1 営業見積サンプル」の説明

F.2.1 営業見積サンプルの詳細

次の各項では、営業見積サンプル・プロセスがどのように動作するかについて説明します。この例は、次に示す、より高いレベルのタスクに細分化できます。

- 営業見積の開始

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

- 見積の承認

- 承認結果

これらの高いレベルのタスクについては、次の項で説明します。各項では、それぞれのタスクの実行に必要となる特定のフロー・オブジェクトの詳細が示されています。

F.2.1.1 営業見積の開始

営業見積プロジェクト内の最初のフロー・オブジェクトは、図F-2に示すように、データ・オブジェクトの初期値を設定し、プロセス・インスタンスを開始するために使用されます。

図F-2 営業見積の開始

「図F-2 営業見積の開始」の説明

営業見積の開始の部分では、次の処理を実行します。

1. プロセスの開始点の定義(None開始イベント)

2. データ・オブジェクトの開始(スクリプト・タスク)

3. プロセス・インスタンスの開始(イニシエータ・パターンを使用したユーザー・タスク)

4. ビジネス・インジケータ・データ・オブジェクトの値の設定(スクリプト・タスク)

F.2.1.2 ビジネス実行確認の決定

営業見積サンプルのフロー・オブジェクトの次のセットでは、企業のビジネス実行の確認が必要かどうかを決定します。確認が必要な場合、プロセスは、プロセス・フロー内の確認を実行する部分に進みます。確認が必要でない場合、プロセスは直接承認ステージに進みます。

図F-3は、ビジネス実行確認を実行するためのBPMNフロー・オブジェクトを示しています。

図F-3 ビジネス実行確認の決定

「図F-3 ビジネス実行確認の決定」の説明

プロセス・インスタンスは、次のようにビジネス実行確認を進みます。

1. 承認フローの決定(ビジネス・ルール・タスク)
このステージは、ビジネス・ルール・タスクで開始します。このタスクには、ビジネス実行確認が必要かどうかを決定するために、Oracle Business Rulesが実装されています。

2. 承認フローを確認します(排他ゲートウェイ)。

- はいの場合は、ビジネス実行確認(ユーザー・タスク)を実行します。

- いいえの場合は、プロセス・フローは直接見積承認ステージに進みます。

3. 承認(パラレル・ゲートウェイ)。

F.2.1.3 見積の承認

営業見積サンプルのフロー・オブジェクトの次のセットでは、営業見積の承認方法を定義します。図F-4に示すように、ビジネス実行確認が完了した後、見積は承認フェーズに移動します。

この例では、承認プロセスは、同時に実行される2つの個別のフロー によって定義されています。それらは次のとおりです。

- 営業見積を承認します。
また、このプロセス・パスも2つのパスにスプリットされています。この例では、見積が自動承認、つまり、一定の条件に従って承認される場合があります。それ以外の場合は、プロセス参加者が明示的に見積を承認することが必要となります。

- 営業見積に関連する契約条件を承認します。
このプロセス・パスでは、プロセス参加者が売買契約の条件を承認する必要があります。

これらのパラレル・プロセス・パスは、完了後にマージされます。次に、プロセス・パスは承認結果ステージに進みます。

図F-4 見積の承認

「図F-4 見積の承認」の説明

プロセス・インスタンスは、次のようにプロセスの見積承認セクションを進みます。

1. 承認(パラレル・ゲートウェイ-スプリット)

1. 自動承認の確認(ゲートウェイ)
見積の承認

見積の承認結果の設定

2. 条件の承認

2. 見積の承認のマージ(パラレル・ゲートウェイ-マージ)

F.2.1.4 承認結果

承認結果ステージは、営業見積サンプルの最終ステージを表します。このステージの最初に、営業見積が承認されたかどうかを確認します。

営業見積が承認されている場合は、プロセスは最終プロセス・フローに進みます。最終プロセス・フローは終了イベントに進みます。

営業見積が承認されていない場合は、プロセスは見積入力タスクに戻ります。このタスクでは見積を再度入力する必要があり、プロセスが繰り返されます。

図F-5 承認結果

「図F-5 承認結果」の説明

プロセス・インスタンスは、次のようにプロセスの承認結果セクションを進みます。

1. 承認結果(排他ゲートウェイ)
承認結果は排他ゲートウェイを使用して実装されています。このゲートウェイには2つの送信シーケンス・フローが含まれており、これらのフローによってプロセスが排他ゲートウェイから外に出るパスが決定されます。

1. 承認
この処理はデフォルト・シーケンス・フローを使用して実装されています。

見積の完成

見積の保存

終了イベント

2. 却下: プロセス・フローが見積入力に戻ります。
この処理は、条件シーケンス・フローを使用して実装されています。この条件シーケンス・フローに使用される式によって、プロセス・パスが続行するかどうかが決定されます。

Copyright © 2001, 2013, Oracle and/or its affiliates. All rights reserved.