Oracle® Fusion Middleware

Oracle Business Process Composerによるビジネス・プロセスの開発

12c (12.1.3)

E56243-04(原本部品番号:E39996-04)

2016年11月

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

Oracle Fusion Middleware Oracle Business Process Composerによるビジネス・プロセスの開発, 12c (12.1.3)

E56243-04

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

原本著者:  Oracle Corporation

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

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

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

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 Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

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

はじめに

- 対象読者

- 関連ドキュメント

- 表記規則

このガイドで説明する新機能

- 12c リリース1 (12.1.3)の新機能と変更された機能

- 12cリリース1 (12.1.3)に関する、このガイドのその他の重要な変更

第I部 Oracle Business Process Composerの概要

1 Oracle Business Process Composerの概要

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

- 1.2 Oracle Business Process Composerアプリケーションのようこそページの概要

- 1.2.1 Oracle Business Process Composerツールバーの概要

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

- 1.2.2 スペース・ブラウザの概要

- 1.2.2.1 Oracle Business Process Composerスペースを新しく作成する方法

- 1.2.2.2 他のユーザーまたはグループとスペースを共有する方法

- 1.2.2.3 Oracle Business Process Composerスペースを削除する方法

- 1.2.3 プロジェクト・リストの概要

- 1.3 プロジェクト・パネルの概要

- 1.3.1 「BAプロジェクト」パネルを使用した新しい空のプロジェクトの作成

- 1.3.2 「BAプロジェクト」パネルを使用した新しい移入プロジェクトの作成

- 1.3.3 「BPMプロジェクト」パネルを使用した新しい空のプロジェクトの作成

- 1.3.4 「BPMプロジェクト」パネルを使用した新しい移入プロジェクトの作成

- 1.3.5 「最近のプロジェクト」パネル

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

2 管理タスクの実行

- 2.1 Oracle Business Process Composerの管理者ビューへのアクセス

- 2.1.1 Business Process Composerユーザーに管理者権限を付与する方法

- 2.1.2 「管理」ビューにアクセスする方法

- 2.2 Business Process Composerスペースの管理

- 2.2.1 BPMスペースへのアクセスの構成

- 2.2.2 BPMスペースからのユーザーの削除

- 2.2.3 BPMスペースとその内容を削除する方法

- 2.3 プロジェクトの管理

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

- 2.3.2 プロジェクトを削除する方法

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

- 2.4 プロセス・プレーヤを有効にするためのSOA管理者資格証明の定義

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

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

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

- 2.5 ビジネス・アーキテクチャ・レポートの管理

- 2.5.1 レポートを表示する方法

- 2.5.2 レポートを削除する方法

第III部 BAプロジェクトおよびBPMプロジェクトの作成および使用

3 BAおよびBPMプロジェクトの作成および管理

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

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

- 3.1.2 編集モード

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

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

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

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

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

- 3.2.3 プロジェクト変更の管理

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

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

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

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

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

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

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

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

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

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

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

- 3.4.2 アプリケーションのようこそページからプロジェクトをエクスポートする方法

- 3.4.3 プロジェクトのようこそページからプロジェクトまたはプロジェクト・スナップショットをエクスポートする方法

4 ビジネス・アーキテクチャによるプロセス分析および検出の実行

- 4.1 ビジネス・アーキテクチャの概要

- 4.1.1 エンタープライズ・マップの概要

- 4.1.2 バリュー・チェーン・モデルの概要

- 4.1.3 戦略モデルの概要

- 4.1.4 KPIを使用した実績の分析

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

- 4.2.1 プロジェクト・ツールバーの概要

- 4.2.2 「プロジェクト情報」パネルの概要

- 4.2.3 「最近のアクティビティ」パネルの概要

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

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

- 4.2.6 エンタープライズ・マップの使用

- 4.2.6.1 既存BAプロジェクトのエンタープライズ・マップの作成

- 4.2.6.2 新規BAプロジェクトのエンタープライズ・マップの作成

- 4.2.6.3 エンタープライズ・マップにレーンとプロセス領域を追加する方法

- 4.2.6.4 組織単位をレーンまたはプロセス領域に割り当てる方法

- 4.2.6.5 バリュー・チェーン・モデルをプロセス領域に割り当てる方法

- 4.2.7 バリュー・チェーン・モデルの使用

- 4.2.7.1 バリュー・チェーン・モデルを作成する方法

- 4.2.7.2 BPMプロジェクトまたはバリュー・チェーン・モデルをチェーン内のステップに割り当てる方法

- 4.2.7.3 バリュー・チェーン・モデルのステップのプロパティを編集する方法

- 4.2.8 戦略モデルの使用

- 4.2.8.1 ビジネス・アーキテクチャのようこそページからの戦略モデルの作成

- 4.2.8.2 アプリケーションのようこそページからの戦略モデルの作成

- 4.2.8.3 戦略モデルを編集する方法

- 4.2.8.4 バリュー・チェーンの参照の作成

- 4.2.9 キー・パフォーマンス・インジケータ(KPI)の使用

- 4.2.9.1 KPIを作成する方法

- 4.2.9.2 KPIのプロパティを編集する方法

- 4.3 ビジネス・アーキテクチャ・レポートの使用

- 4.3.1 レポート・データを公開する方法

- 4.3.2 BAレポートを生成する方法

- 4.3.2.1 影響分析レポートとプロセス重大性レポートの分析

5 BPMプロジェクトの作成および使用

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

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

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

- 5.1.1.2 ビジネス・カタログ

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

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

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

- 5.2.1 プロジェクト・ツールバーの概要

- 5.2.2 「プロジェクト情報」パネルの概要

- 5.2.3 「最近のアクティビティ」パネルの概要

- 5.2.4 プロジェクト・コンポーネント・パネルの概要

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

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

- 5.2.6.1 プロセス・エディタ

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

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

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

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

- 5.2.6.6 式エディタ

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

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

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

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

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

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

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

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

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

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

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

- 5.4.2 アクティビティ・ガイドの構成方法

- 5.4.3 プロジェクト・マイルストンの作成

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

- 5.5 プロジェクト・ロール、ビジネス・パラメータおよび組織単位の定義

- 5.5.1 プロジェクト・ロールの定義

- 5.5.2 ビジネス・パラメータの定義

- 5.5.3 組織単位の定義

- 5.6 プロジェクトのプロセス・レポートの生成

6 BPMプロジェクトのドキュメント化

- 6.1 プロジェクト・レベルのドキュメントの理解

- 6.1.1 プロジェクトの説明

- 6.1.2 ロールの説明

- 6.2 プロセス・レベルのドキュメントの理解

- 6.2.1 プロセスの説明

- 6.2.2 プロセス・ドキュメント

- 6.2.3 プロセス・リンク

- 6.2.4 要件

- 6.2.5 プロセス・ノート

- 6.3 アクティビティ・レベルのドキュメントの理解

- 6.3.1 アクティビティの説明

- 6.3.2 アクティビティ・リンク

- 6.3.3 アクティビティ・ドキュメント

- 6.3.4 アクティビティ・コメント

- 6.3.5 アクティビティ・ノート

- 6.3.6 一般

- 6.3.7 アクティビティの問題

- 6.3.8 RACI

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

7 ビジネス・プロセスの作成および使用

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

- 7.2 プロジェクト・ツールバーの概要

- 7.3 ナレーティブ・ビューの概要

- 7.4 ナレーティブ・ビューの使用

- 7.4.1 アクティビティの移動

- 7.4.2 ナレーティブ・ビュー・オプション

- 7.5 プロセス・エディタのグラフィカル・ビューの概要

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

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

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

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

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

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

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

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

- 7.6.3.1 ビジネス・プロセスの削除に関する必知事項

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

- 7.7.1 ロールの概要

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

- 7.7.2 スイムレーンの概要

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

- 7.7.3 プロセスへのスイムレーンの追加

- 7.7.4 プロセスへのスイムレーンおよびフロー・オブジェクトの追加

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

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

- 7.8 フロー要素の使用

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

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

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

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

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

- 7.8.5.1 シーケンス・フローの削除に関する必知事項

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 8.3.4 シミュレーション・モデルをシミュレーション定義に関連付ける方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10 Webフォームの使用

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

- 10.1.1 Webフォームの概要

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

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

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

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

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

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

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

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

- 10.3.1 入力コントロール

- 10.3.1.1 テキスト

- 10.3.1.2 テキスト領域

- 10.3.1.3 日付、時間、日付/時間

- 10.3.1.3.1 日付コントロール

- 10.3.1.3.2 時間コントロール

- 10.3.1.3.3 日付/時間コントロール

- 10.3.1.4 電子メール

- 10.3.1.5 金額

- 10.3.1.6 電話

- 10.3.1.7 数量

- 10.3.1.8 数値

- 10.3.2 選択コントロール

- 10.3.2.1 ドロップダウン

- 10.3.2.2 ラジオ

- 10.3.2.3 チェック・ボックス

- 10.3.2.4 ブール・チェック・ボックス

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

- 10.3.3.1 セクション

- 10.3.3.2 オプションのセクション

- 10.3.3.3 タブ

- 10.3.3.4 パネル

- 10.3.3.5 表

- 10.3.3.6 繰返し

- 10.3.3.7 繰返しコントロールを表に変更する

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

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

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

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

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

- 10.3.4.5 トリガー・コントロール

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

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

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

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

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

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

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

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

- 10.7 Webフォームの使用

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

- 10.7.2 複数列フォームの作成

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

- 10.7.3.1 ペイロード内のすべてのデータ要素に対するフォーム・コントロールの生成

- 10.7.3.2 個々のデータ要素に対するフォーム・コントロールの生成

- 10.7.4 Webフォームへのビジネス・オブジェクトの追加

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

- 10.7.6 Webフォームのプロパティの編集方法

- 10.7.7 Webフォーム・コントロールのプロパティの編集方法

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

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

- 10.7.9.1 コントロールの削除

- 10.7.9.2 Webフォームからの組織コントロールの削除

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

- 10.7.11 Webフォームでのローカライゼーションについて

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

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

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

- 11.1.1.1 コントロール名

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

- 11.1.1.3 文字列と数値

- 11.1.1.4 日付と時間

- 11.1.1.5 条件の作成

- 11.1.1.6 選択コントロール

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

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

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

- 11.1.2.1 動的コンテンツ

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

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

- 11.1.3.1 ビルトイン・データ

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

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

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

- 11.1.4.2 無限ループ

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

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

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

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

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

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

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

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

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

- 12.1.1.1 参加者タイプ

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

- 12.1.1.3 結果

- 12.1.2 参加者割当ての概要

- 12.1.3 期間の概要

- 12.2 ヒューマン・タスク・エディタの概要

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

- 12.3.1 ウォークスルー: ヒューマン・タスクの作成と構成

- 12.3.2 新しいヒューマン・タスクの作成方法

- 12.3.3 ヒューマン・タスクを開く方法

- 12.3.4 基本タスク・プロパティの構成方法

- 12.3.5 ヒューマン・タスクの期限(期間)の構成方法

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

- 12.3.6.1 ADFタスク・フォームを使用したヒューマン・タスクのプレゼンテーションの指定

- 12.3.6.2 Webフォームを使用したヒューマン・タスクのプレゼンテーションの指定

- 12.3.7 デフォルト参加者の変更方法

- 12.3.8 ヒューマン・タスクへの参加者とルーティングの追加方法

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

- 12.3.9.1 名前と式を使用した参加者の選択

- 12.3.9.2 レーン参加者を使用した参加者の選択

- 12.3.9.3 パラメータ・ロールを使用した参加者の選択

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

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

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

第VI部 ビジネス・アプリケーションで使用されるデータの処理

13 データ・オブジェクトおよびデータ・アソシエーションの使用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

14 複合データ型を使用したデータ構造の定義

- 14.1 複合データ型の概要

- 14.2 複合データ型の使用

- 14.2.1 複合データ型を手動で作成する方法

- 14.2.1.1 新規ビジネス・オブジェクトの作成

- 14.2.1.2 新規例外の作成

- 14.2.1.3 新規列挙オブジェクトの作成

- 14.2.2 複合データ型作成時の処理

- 14.2.3 複合データ型の編集方法

- 14.2.4 複合データ型、モジュールまたは属性の削除方法

15 式を使用したデータのコントロール

- 15.1 式の概要

- 15.1.1 式エディタの概要

- 15.1.2 式のタイプ

- 15.1.3 単純式

- 15.1.3.1 演算子タイプ

- 15.1.3.2 演算子の優先順位

- 15.2 式の使用

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

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

16 アプリケーションでのビジネス・データの追跡

- 16.1 キー・パフォーマンス・インジケータ(KPI)の使用

- 16.1.1 キー・パフォーマンス・インジケータの概要

- 16.1.1.1 KPIのライフサイクル

- 16.1.1.2 キー・パフォーマンス・インジケータのタイプ

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

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

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

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

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

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

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

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

17 Oracle Business Rulesの使用

- 17.1 Oracle Business Rulesの概要

- 17.2 Oracle Business Process Composerルール・エディタの使用

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

- 17.3 ビジネス・ルール・ディクショナリの使用

- 17.3.1 新規ビジネス・ルール・ディクショナリの作成方法

- 17.3.2 ディクショナリ設定の表示および編集

- 17.3.3 ビジネス・オブジェクトの同期

- 17.3.4 Oracle Business Rulesディクショナリの比較およびマージ

- 17.4 ディクショナリ・リンクの使用

- 17.5 ルールセットの使用

- 17.5.1 ルールセットの追加および編集方法

- 17.5.2 ルールセットへの一般ルールおよび動詞ルールの追加方法

- 17.5.2.1 ルールセットへのルールの追加

- 17.5.2.2 一般ルールの追加

- 17.5.2.3 動詞ルールの追加

- 17.6 デシジョン表の使用

- 17.6.1 デシジョン表をルールセットに追加する方法

- 17.6.2 Microsoft Excelとの間のデシジョン表のエクスポートとインポート

- 17.6.2.1 デシジョン表のMicrosoft Excelへのエクスポート

- 17.6.2.2 デシジョン表のMicrosoft Excelからのインポート

- 17.7 ファクトの使用

- 17.8 値セットの使用

- 17.8.1 値セットの追加方法

- 17.8.2 既存の値セットの編集方法

- 17.9 グローバル変数の使用

- 17.9.1 グローバル変数の追加方法

- 17.9.1.1 finalおよび定数オプションについて

- 17.9.2 グローバルの編集方法

- 17.10 動詞ルールおよびビジネス・フレーズの使用

- 17.10.1 ビジネス・フレーズの作成方法

- 17.10.2 ドラフトのビジネス・フレーズと動詞ルール

- 17.10.3 動詞ルールにおけるビジネス・フレーズの選択または追加

- 17.10.3.1 動詞ルール作成時の新規ビジネス・フレーズのインスタンス化

- 17.10.3.2 動詞ルール作成時のビジネス・フレーズの選択

- 17.11 デシジョン関数の使用

- 17.12 テストの使用

- 17.12.1 テスト・スイートおよびテスト・ケースの作成および管理

- 17.12.2 テスト・テンプレートの作成

- 17.12.3 テスト・スイートおよびテスト・ケースの実行方法

- 17.13 エクスプローラの使用

- 17.14 翻訳の使用

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

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

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

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

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

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

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

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

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

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

- 18.4 会話の定義

- 18.4.1 会話の概要

- 18.4.2 会話の使用

- 18.4.2.1 会話の定義方法

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

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

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

- 18.5 サービスの使用

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

- 18.5.1.1 新しいサービスの作成

- 18.5.1.2 プロセス・エディタでの新しいサービスの作成

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

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

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

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

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

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

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

第VIII部 付録

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- A.4.1 Oracle Business Rulesの概要

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- B.1.1 「設定」タブ

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

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

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

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

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

- C.1 合計の計算

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

- C.3 メッセージの表示/非表示

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

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

- C.6 請求合計の計算

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

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

- C.9 ドロップダウンのオプション

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

- C.11 選択の同期化

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

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

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

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

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

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

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

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

- C.20 文字列の連結

- C.21 表示/非表示

- C.22 セクションの表示/非表示

- C.23 タブの選択

- C.24 「Next」タブ

- C.25 セクションの拡張/縮小

- C.26 複数選択

- C.27 動的オプション

- C.28 トリガーと動的オプション

- C.29 値の変更と動的オプション

- C.30 動的コントロールの初期化

- C.31 ユーザーの検証

- C.32 純資産の計算

- C.33 日付と時間

- C.33.1 期間

- C.33.2 今日の日付と時間

- C.33.3 日付/時間スタンプ

- C.33.4 今日の日付より前の場合は無効

- C.33.5 今日から14日未満の日付

- C.33.6 30日前未満の日付

- C.33.7 夏時間に調整した中部タイムゾーン

- C.33.8 時間が4時間以上6時間以下

- C.33.9 時間

- C.34 テナント、ロールおよびユーザー

- C.35 繰返しアイテムの追加

- C.36 繰返しアイテムの追加 - 他のアイテムの縮小

- C.37 表

- C.38 form.load

- C.39 form.unload

- C.40 一意のID

- C.41 繰返しアイテムの初期化

- C.42 初期ドキュメントによるItemAdded

D Oracle BPMにインポートするためのプロセスの準備

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

- D.1.1 Visio図形のマッピング作業

- D.1.1.1 条件付きマッピング

- D.1.2 Visioのモデリングに関するヒント

- D.1.3 VisioUserMap.XMLの更新

- D.1.4 BPMN要素の有効な値

- D.1.5 BPMN要素の属性

- D.1.6 外部テキストの処理

- D.2 XSLTを使用したXPDLインポートのカスタマイズ

- D.2.1 一般的な変換要件

- D.2.2 変換ロジックの概要

- D.2.3 特殊な属性

- D.2.3.1 オブジェクト座標

- D.2.3.2 アクティビティのローカル座標系

- D.2.3.3 非表示要素の削除

- D.2.3.4 独自の名前空間の処理

- D.2.3.5 複数のXPDLバージョンのサポート

- D.2.3.6 XSLTのテストとデバッグ

はじめに

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

対象読者

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

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

関連ドキュメント

詳細は、次のOracleドキュメントを参照してください。

Oracle Business Process Management

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

- Oracle Business Process Managementを使用したプロセスの管理とモニタリング

- Oracle Business Process Management Studioを使用したビジネス・プロセスの作成

- Oracle Business Process Managementを使用したビジネス・ルールの設計

- Oracle Business Process Management Rulesランゲージ・リファレンス

- Oracle Business Process Managementを使用したプロセスの管理とモニタリング

Oracle SOAおよびBPM Suite

- 『Oracle SOAスイートでのSOAアプリケーションの開発』

- 『Oracle SOAスイートでのSOAアプリケーションの開発』

表記規則

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

規則

意味

. . .

垂直の省略記号は、例に直接関連しない複数の行が省略されていることを示します。

. . .

文またはコマンドの中に、水平の省略記号がある場合は、例に直接関連しないコードの一部が省略されていることを示します。

太字

太字は、本文中で定義されている用語および用語集に記載されている用語を示します。

< >

山カッコは、ユーザーが入力する名前を示します。

[ ]

大カッコは、カッコ内の項目を任意に選択することを表します。

このガイドで説明する新機能

このトピックでは、Business Process Management 12c (12.1.3)のOracle Business Process Composerの新機能および変更された機能について説明し、追加情報の参照先を示します。

使用しているスキンによっては、このガイドで示される画面は実装状態と異なる場合があります。相違点は軽微なものです。

既知の問題のリスト(リリース・ノート)については、http://www.oracle.com/technetwork/middleware/soasuite/documentation/releasenotes121300-2124738.htmlを参照してください。

12c リリース1 (12.1.3)の新機能と変更された機能

このガイドは更新され、Oracle Business Process Composerリリース12cリリース1 (12.1.3)に関する次の新機能と変更された機能が追加されています。

- ビジネス・アーキテクチャ(BA)プロジェクト経由のBusiness Process Management (BPM)プロセスへのナビゲートのサポート。「バリュー・チェーン・モデルの使用」を参照してください。

- BAプロジェクト内のキー・パフォーマンス・インジケータ(KPI)の監視のサポート。「キー・パフォーマンス・インジケータ(KPI)の使用」を参照してください。

- BAプロジェクト内のバリュー・チェーン・モデルに基づくプロセス重大性レポートの生成のサポート。「ビジネス・アーキテクチャ・レポートの使用」を参照してください。

- 組織の企業目的および目標の定義と、それらを達成するための戦略の策定に役立つ、戦略マップのサポート。「戦略モデルの概要」を参照してください。

- ビジネス・プロセスのナレーティブ・ビューのサポート。ナレーティブ・ビューでは、グラフィカル・アイコンをパレットにドラッグするのではなく、テキストを入力して、ビジネス・プロセスを作成できます。「ナレーティブ・ビューの概要」を参照してください。

- プロセス・エディタ・ページの下側のペインにある新しい「ビジネス・プロパティ」タブを使用した、ビジネス・プロセスのプロパティのドキュメント化のサポート。「プロセス・レベルのドキュメントの理解」を参照してください。

- プロジェクト内の各プロセスのリストを表示し、各プロセスの詳細情報を表示する、多くの様々なレポートの生成のサポート。「プロジェクトのプロセス・レポートの生成」を参照してください。

12cリリース1 (12.1.3)に関する、このガイドのその他の重要な変更

Oracle Business Process Composer 12cリリース1 (12.1.3)に関して、このガイドで更新された内容は次のとおりです。

- Oracle Business Process Composerでは、プロジェクト・レベル、プロセス・レベルおよびアクティビティ・レベルからドキュメントが処理されます。新しい章で、各機能を詳細に説明します。「BPMプロジェクトのドキュメント化」を参照してください。

- Oracle Business Process Composer 12cリリース1 (12.1.3)では、プロジェクト・テンプレートがサポートされていません。そのため、このバージョンのガイドでは、プロジェクト・テンプレートに対するすべての参照が削除されています。

- Oracle Business Process Composer UIが大幅に変更されています。そのため、様々なアクションやタスクを実行する手順も変更されています。

第I部 Oracle Business Process Composerの概要

この部では、Oracle Business Process Composerの概念について説明します。

この部には次の章が含まれます:

- Oracle Business Process Composerの概要

1 Oracle Business Process Composerの概要

この章では、Oracle Business Process Composerの概要を説明します。Oracle Business Process Composerを使用して、Oracle Business Process Management (Oracle BPM)プロジェクトを設計、実装およびデプロイし、プロセスベースのビジネス・アプリケーションを作成する、最も一般的なシナリオについて述べています。また、アプリケーションのユーザー・インタフェースの概要も説明します。

この章の内容は次のとおりです。

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

- Oracle Business Process Composerアプリケーションのようこそページの概要

- プロジェクト・パネルの概要

1.1 Oracle Business Process Composerへのサインオン

Oracle Business Process Composerにサインオンする前に、ビジネス管理者がURLおよびユーザー名とパスワードを指定する必要があります。

- URL: Oracle Business Process Composerがインストールされている場所。

- ユーザー名: Oracle Business Process Composerへのアクセスに使用するユーザー名。

- パスワード: Oracle Business Process Composerへのアクセスに使用するセキュリティ資格証明。

注意:

Oracle BPM Suiteでは、Oracle Application Server Single Sign-onがデフォルトで有効になっています。OracleAS Single Sign-Onを使用すると、1つのシングル・サインオン・セッションで複数のWebベース・アプリケーションにアクセスできます。OracleAS Single Sign-Onが有効化されており、他のアプリケーションにサインオン済の場合は、Oracle Business Process Composerのサインオン画面が表示されないことがあります。

Oracle Business Process Composerにサインオンするには

1. Oracle Business Process ComposerのURLに移動します。

2. ユーザー名とパスワードを入力し、「ログイン」をクリックして、アプリケーションのようこそページを表示します。

注意:

1つのブラウザ・セッションからのみOracle Business Process Composerにサインオンできます。同じユーザーの同時セッションはサポートされていません。

1.2 Oracle Business Process Composerアプリケーションのようこそページの概要

Oracle Business Process Composerアプリケーションは、BPMプロジェクトを簡単に作成、編集、管理できるように設計されています。BPMプロジェクトはOracle BPMアプリケーションの主要なコンポーネントであり、ビジネス・プロセスを含め、アプリケーションに必要なリソースをすべて含んでいます。

詳細は、「BPMプロジェクトの作成および使用」を参照してください。

図1-1に、Oracle Business Process Composerアプリケーションのようこそページを示します。

図1-1 Oracle Business Process Composerアプリケーションのようこそページ

Oracle Business Process Composerアプリケーションのようこそページを使用して、次のタスクを実行します。

- Oracle Business Process Composerスペースの作成および表示

- ビジネス・アーキテクチャ(BA)プロジェクトの作成および管理

- BPMプロジェクトの作成および管理

Oracle Business Process Composerアプリケーションのようこそページは、次のセクションにわかれています。

- Oracle Business Process Composerツールバー

- スペース・ブラウザ

- プロジェクト・リスト

- 「BAプロジェクト」パネル

- 「BPMプロジェクト」パネル

- 「最近のプロジェクト」パネル

1.2.1 Oracle Business Process Composerツールバーの概要

Oracle Business Process Composerツールバーは、ページの上部にあり、ツールバーからOracle Business Process Composerのメイン・メニューにアクセスできます。またツールバーを使用して、BPMおよびBAプロジェクトがプロジェクト・リストに表示される方法を設定することもできます。

ツールバーからは、次の要素にアクセスできます。

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

ツールバーの要素

説明

メイン・メニュー

Oracle Business Process Composerのメイン・メニューにアクセスする場合にクリックします。ここからメイン・メニューを使用して、次のタスクを実行できます。

- BPMプロジェクトのインポート

- BAプロジェクトのレポート・データの公開

- BAプロジェクトのレポートの生成

プロジェクトがプロジェクト・ブラウザに表示される方法を選択する場合にクリックします。「リスト」、「グリッド」または「表」のいずれかを選択します。

検索

名前でプロジェクトを検索する場合に使用します。プロジェクトの名前を入力して、「検索」ボタンをクリックします。検索できるのは、表示または編集のアクセス権を持つプロジェクトのみです。

プロジェクト・リストでBAプロジェクトを表示する場合にクリックします。

プロジェクト・リストでBPMプロジェクトを表示する場合にクリックします。

現在のユーザーが所有するプロジェクトを表示する場合にクリックします。

現在のユーザーが共有するプロジェクトを表示する場合にクリックします。

1.2.1.1 Oracle Business Process Composerのメイン・メニューの概要

アプリケーションのメイン・メニューからは、頻繁に使用するコマンドや機能にアクセスできます。図1-2に示すように、このメニューにはアプリケーションのようこそページからアクセスできます。

図1-2 アプリケーションのようこそページのメイン・メニュー

メイン・メニューからは、表1-2に示すメニュー・アイテムにアクセスできます。

表1-2 メイン・メニュー・アイテム

メニュー・アイテム

説明

開く

Oracle BPMリポジトリに格納されているプロジェクトを開くことができます。

インポート

Oracle Business Process Composerにプロジェクトおよびプロセス・モデルをインポートする機能を提供します。インポートしたプロジェクトはOracle BPMリポジトリに格納されます。詳細は、プロジェクト・スナップショットの使用を参照してください。

エクスポート

プロジェクトをローカル・ファイル・システムにエクスポートできます。詳細は、プロジェクトのインポートとエクスポートを参照してください。

レポート

BAプロジェクトのレポート・データの公開と、BAプロジェクトのレポートの生成を行う機能を提供します。詳細は、「ビジネス・アーキテクチャ・レポートの使用」を参照してください。

1.2.2 スペース・ブラウザの概要

Oracle Business Process Composerスペースによって、関連するBAおよびBPMプロジェクトがグループ化されます。Oracle Business Process Composerスペースには、プロセスベースのアプリケーションが必要とする、上位レベルの値チェーン・モデルから下位レベルの技術情報まで、組織用のプロジェクトとリソースがすべて含まれます。Oracle Business Process Composerスペースは、含まれるプロジェクトの権限の管理にも使用されます。このスペースに格納されるBAまたはBPMプロジェクトを表示または編集する権限を持つのは、どのユーザーまたはグループかを指定できます。

図1-3に示すように、スペース・ブラウザは、アプリケーションのようこそページの左側にあり、Oracle Business Process Composerスペースの作成、表示および編集に使用できます。表示または編集できるのは、自分が作成したか、表示権限を持つOracle Business Process Composerスペースのみです。

図1-3 スペース・ブラウザ

表1-3に、スペース・ブラウザを使用して実行できる様々なアクションを示します。

表1-3 スペース・ブラウザの要素

スペース・ブラウザの要素

説明

「新規スペース」ダイアログを開き、新規スペースを作成する場合にクリックします。詳細は、「Oracle Business Process Composerスペースを新しく作成する方法」を参照してください。

すべて

表示または編集権限を持つスペースに含まれる、プロジェクト・リスト内のすべてのプロジェクトを表示する場合に、クリックします。

プライベート・スペースを表示する場合にクリックします。

プライベート・スペースは、所有者のみが表示または編集できるスペースです。

自分が所有する共有スペースを表示する場合にクリックします。

他のユーザーが所有する共有スペースを表示する場合にクリックします。

「スペース」アイコン

プロジェクト・リスト内の、特定のスペースに含まれるプロジェクトのみを表示する場合は、図1-3に示すように、その特定のスペースをクリックします。

図1-3に示すように、スペースの上にカーソルを置き、「削除」アイコンまたは「編集」アイコンを表示します。詳細は、「他のユーザーまたはグループとスペースを共有する方法」および「Oracle Business Process Composerスペースを削除する方法」 を参照してください。

1.2.2.1 Oracle Business Process Composerスペースを新しく作成する方法

アプリケーションのようこそページから、Oracle Business Process Composerスペースを新しく作成できます。

Oracle Business Process Composerスペースを新しく作成するには:

1. アプリケーションのようこそページにアクセスします。

2. 図1-4に示すように、「新規スペース」 ボタンをクリックします。

図1-4「新規スペース」ダイアログ

3. 名前を入力して、「保存」をクリックします。

1.2.2.2 他のユーザーまたはグループとスペースを共有する方法

Oracle Business Process Composerスペースを作成したら、他のユーザーまたはグループとスペースを共有します。Oracle Business Process Composerスペースを共有すると、スペース内のすべてのビジネス・アーキテクチャ・プロジェクトとBPMプロジェクトも共有されます。

Oracle Business Process Composerスペースを共有するには:

1. アプリケーションのようこそページにアクセスします。

2. 共有するスペースの上にマウスを置いて、「スペースの編集」ボタンをクリックします。

3. 「参加者」をクリックします。

4. 「選択」をクリックします。

5. ドロップダウン・リストで、ユーザーまたはグループ、あるいはその両方のどれに対して検索を実行するかを選択します。

6. テキスト・フィールドにユーザーまたはグループの名前を入力して、「検索」をクリックします。

テキスト・フィールドに名前を入力せずに「検索」をクリックすると、すべてのユーザーまたはグループのリストが返されます。

7. 追加するユーザーまたはグループの名前の隣のチェック・ボックスをクリックします。「すべて選択」をクリックすると、検索結果内のすべてのユーザーを選択できます。

8. 「OK」をクリックします。

9. ドロップダウン・リストからロールを選択します。このロールで、ユーザーまたはグループが製品に加えることができる変更が決まります。

10. 「共有」をクリックします。

ユーザーまたはグループが、割り当てられたロールとともに表内に表示されます。

11. 「閉じる」をクリックします。

1.2.2.3 Oracle Business Process Composerスペースを削除する方法

管理者であるか、所有者ロールが割り当てられているユーザーであれば、スペースを削除できます。スペースを削除すると、スペースはOracle BPMリポジトリから削除され、スペースに含まれるすべてのプロジェクトも削除されます。

Oracle Business Process Composerスペースを削除するには:

1. アプリケーションのようこそページにアクセスします。

2. 削除するスペースの上にマウスを置いて、「削除」ボタンをクリックします。

3. 「はい」をクリックして確認します。

管理者がスペースを管理する方法の詳細は、「Business Process Composerスペースの管理」を参照してください。

1.2.3 プロジェクト・リストの概要

表示または編集権限を持つすべてのスペース、プライベートに所有されているスペース、自分が所有する共有スペース、他のユーザーが所有する共有スペースに含まれるプロジェクトを表示および使用するには、プロジェクト・リストを使用します。プロジェクト・リストに表示されるプロジェクトは、スペース・ブラウザで選択したオプションに基づいています。図1-1に示すように、デフォルトでは、表示または編集権限を持つすべてのスペースに含まれるプロジェクトが表示されます。

アプリケーションのようこそページのツールバーにある「ビュー」アイコンをクリックすると、Oracle Business Process Composerでプロジェクトが表示される方法(リスト、グリッドまたは表)を変更できます。表1-4では、図1-5に示す、デフォルトの「リスト」ビューに表示される要素を示します。

図1-5 プロジェクト・リスト - 「リスト・ビュー」内のプロジェクト

表1-4 プロジェクト・ビュー

プロジェクト・ビュー

説明

名前

プロジェクトの名前が表示されます。プロジェクトを開き、プロジェクトのようこそページに移動する場合にクリックします。

アプリケーションのようこそページに戻る場合は、プロジェクトのようこそページの上部にあるブレッドクラム内のスペース名をクリックします。

ローカル・ファイル・システムにプロジェクトをダウンロードする場合にクリックします。

プロジェクトを削除する場合にクリックします。

このアイコンをクリックすると、確認メッセージが表示されます。「はい」をクリックするとプロジェクトが削除され、「いいえ」をクリックするとアクションが取り消されます。

ロック済/ロック解除

「ロック」アイコンでは、プロジェクトが現在別のユーザーによってロックされているかどうかをユーザーに通知するために、共有プロジェクトに対して「ロック済」または「ロック解除」を表示します。

スペース

プロジェクトが格納されるスペースの名前を表示します。クリックすると、スペースの詳細情報がプロジェクト・リストの右側に表示されます。

作成日時

プロジェクトが作成された日時を表示します。

作成者

プロジェクトを作成したユーザーを表示します。

タイプ

プロジェクトのタイプを表示します。(BPMプロジェクトまたはBAプロジェクト)。

1.3 プロジェクト・パネルの概要

アプリケーションのようこそページに、3つのプロジェクト・パネル(「BAプロジェクト」パネル、「BPMプロジェクト」パネルおよび「最近のプロジェクト」パネル)が表示されます。

- 「BAプロジェクト」パネル: 新しいプロジェクトを作成できます。

- 「BPMプロジェクト」パネル: BPMの新しいプロジェクトを作成できます。

- 「最近のプロジェクト」パネル: アクセスしたプロジェクトがリストされます。

1.3.1 「BAプロジェクト」パネルを使用した新しい空のプロジェクトの作成

「BAプロジェクト」パネルを使用して、新しい空のプロジェクトを作成できます。

新しい空のプロジェクトを作成するには:

1. アプリケーションのようこそページにアクセスします。

2. パネルの右上にある+アイコンをクリックすると、次の情報を入力するポップアップが表示されます。

- 名前: (必須)プロジェクトの作成後は、名前を変更できません。

注意:
プロジェクト名に、# (ハッシュタグ)、] (閉じ大カッコ)、. (ピリオド)、[ (開き大カッコ)、% (パーセント記号)を使用しないでください。これらの特殊文字を名前に使用すると、コンポーザからエラーが返されます。

- 説明: (任意)説明は、タイトルを少し拡張したもので、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

- スペース: (必須)新しいプロジェクトが格納されるスペースを選択します。新しいスペースを作成するには、ドロップダウン・リストから「新規スペース」を選択します。

3. 「保存」をクリックします。

1.3.2 「BAプロジェクト」パネルを使用した新しい移入プロジェクトの作成

「BAプロジェクト」パネルを使用して、エンタープライズ・マップ、戦略モデル、またはバリュー・チェーン・モデルを含む新しいプロジェクトを作成できます。

エンタープライズ・マップ、戦略モデル、またはバリュー・チェーン・モデルのいずれかを含むプロジェクトを作成するには:

1. アプリケーションのようこそページにアクセスします。

2. パネルに表示されるエンタープライズ・マップ、戦略モデル、またはバリュー・チェーン・モデルのリンクのいずれかをクリックして、次の情報を入力するポップアップを表示します。

- モデル名: (必須)エンタープライズ・マップ、戦略モデル、またはバリュー・チェーン・モデルの名前を入力します。

- スペース: (必須)新しいプロジェクトが格納されるスペースを選択します。新しいスペースを作成するには、ドロップダウン・リストから「新規スペース」を選択します。

- 新規プロジェクト: (必須)プロジェクトの作成後は、その名前を変更できません。

注意:
プロジェクト名に、# (ハッシュタグ)、] (閉じ大カッコ)、. (ピリオド)、[ (開き大カッコ)、% (パーセント記号)を使用しないでください。これらの特殊文字を名前に使用すると、コンポーザからエラーが返されます。

- 説明: (任意)説明は、タイトルを少し拡張したもので、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

図1-6 アプリケーションのようこそページ - 「BPMプロジェクト」パネル

3. 「保存」をクリックします。

1.3.3 「BPMプロジェクト」パネルを使用した新しい空のプロジェクトの作成

「BPMプロジェクト」パネルを使用して、新しい空のプロジェクトを作成できます。

新しい空のプロジェクトを作成するには:

1. アプリケーションのようこそページにアクセスします。

2. パネルの右上にある+アイコンをクリックすると、次の情報を入力するポップアップが表示されます。

- 名前: (必須)プロジェクトの作成後は、名前を変更できません。

- 説明: (任意)説明は、タイトルを少し拡張したもので、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

- スペース: (必須)新しいプロジェクトが格納されるスペースを選択します。新しいスペースを作成するには、ドロップダウン・リストから「新規スペース」を選択します。

3. 「保存」をクリックします。

1.3.4 「BPMプロジェクト」パネルを使用した新しい移入プロジェクトの作成

「BPMプロジェクト」パネルを使用して、プロセスを含む新しいプロジェクトを作成できます。

プロセスを含むプロジェクトを作成するには:

1. アプリケーションのようこそページにアクセスします。

2. パネルに表示される「プロセス」リンクをクリックして、次の情報を入力するポップアップを表示します。

- プロセス名: (必須)プロセスの名前を入力します。

- スペース: (必須)新しいプロジェクトが格納されるスペースを選択します。新しいスペースを作成するには、ドロップダウン・リストから「新規スペース」を選択します。

- 新規プロジェクト: (必須)プロジェクトの作成後は、その名前を変更できません。

- 説明: (任意)説明は、タイトルを少し拡張したもので、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

3. 「保存」をクリックします。

1.3.5 「最近のプロジェクト」パネル

「最近のプロジェクト」パネルには、セッション中にアクセスしたプロジェクトのリストが表示されます。セッションを開始すると、メッセージ「最近のプロジェクトなし」がパネルに表示されます。

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

この部では、Oracle Business Process Composerを使用して管理タスクを実行する方法について説明します。

この部には次の章が含まれます:

- 管理タスクの実行

2 管理タスクの実行

この章では、Oracle Business Process Composerを使用して管理タスクを実行する方法について説明します。管理権限が割り当てられているユーザーは、Oracle Business Process Composerスペースの管理、プロジェクトの管理、プロセス・プレーヤ機能の有効化などの、管理タスクを実行できます。

注意:

この章で説明する手順を実行できるのは、プロジェクト管理者セキュリティ・ロールが付与されているユーザーのみです。詳細は、「Business Process Composerユーザーに管理者権限を付与する方法」を参照してください。

この章の内容は次のとおりです。

- Oracle Business Process Composerの管理者ビューへのアクセス

- Business Process Composerスペースの管理

- プロジェクトの管理

- プロセス・プレーヤを有効にするためのSOA管理者資格証明の定義

- ビジネス・アーキテクチャ・レポートの管理

2.1 Oracle Business Process Composerの管理者ビューへのアクセス

Oracle Business Process Composerを使用すると、ユーザーに管理者権限を割り当てることができます。

図2-1に示すように、管理者権限を持つユーザーは、Oracle Business Process Composerアプリケーションのようこそページからアクセス可能な「管理」ビューにアクセスできます。

図2-1 Oracle Business Process Composer - 「管理」ビュー

管理者は、次のタスクを実行できます:

- Business Process Composerスペースの構成および削除。

- プロジェクトの削除。

- プロジェクトでのロックの解放。

- プロセス・プレーヤ用管理者資格証明の構成。

- レポートの表示と削除。

2.1.1 Business Process Composerユーザーに管理者権限を付与する方法

管理者グループをOracle Business Process Composerユーザーに割り当てると、管理者権限が付与されます。

管理者権限を付与するには:

1. WebLogic管理者コンソールにログインします。

2. 「セキュリティ・レルム」に移動して、「myRealms」を選択します。

3. ユーザー/グループ・タブに移動して、管理権限を付与するユーザーを選択します。

4. 「管理者」グループを、「使用可能」グループのリストか ら「割当て済」グループの一覧に移動します。

5. 「保存」をクリックして変更を保存します。

Oracle Business Process Composerユーザーには、管理者権限が割り当てられました。

2.1.2 「管理」ビューにアクセスする方法

管理者権限が割り当てられたユーザーは、アプリケーションのようこそページから「管理」ビューにアクセスできます。

「管理」ビューにアクセスする方法:

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインインします。

2. アプリケーション・ウィンドウの右上で、「モデラー・ビュー」をクリックします。

3. ドロップダウン・リストから、「管理者ビュー」を選択します。

4. アクセスする管理機能のアイコンをクリックします。

2.2 Business Process Composerスペースの管理

スペースを使用して、ビジネス・アーキテクチャ(BA)プロジェクトとBusiness Process Management (BPM)プロジェクトの表示および編集権限を持つOracle Business Process Composerユーザーを定義できます。

図2-2。

図2-2 管理ビュー - スペース管理

スペース管理機能を使用して、次のタスクを実行します。

- BPMスペースのステータスの表示。

- BPMスペースの共有。

- BPMスペースの削除。

2.2.1 BPMスペースへのアクセスの構成

「スペース管理」ダイアログを使用すると、BPMスペースを表示または編集できるユーザーやユーザーのグループを定義できます。

ユーザーをBPMスペースに追加するには:

1. アプリケーションのようこそページから、1つ以上のBPMスペースの作成が完了していることを確認します。

2. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインインします。

3. 「管理」ビューにアクセスします。

4. 「スペース」をクリックします。

5. ユーザーを追加するスペースの「アクション」列にある「共有」アイコンをクリックします。

6. 「選択」をクリックし、ドロップダウン・メニューから「ユーザー」または「グループ」を選択します。

7. 検索するユーザーまたはグループの名前を入力して、「検索」をクリックします。

すべてのユーザーまたはグループのリストを表示するには、テキスト領域を空白にしたまま「検索」をクリックします。

8. BPMスペースに追加するユーザーまたはグループの横にあるチェック・ボックスをクリックします。

選択した各ユーザーまたはグループが、リストに表示されます。

9. 「OK」をクリックします。

選択した各ユーザーまたはグループが、テキスト領域に表示されます。

10. ドロップダウン・リストからロールを選択します。

ロールにより、ユーザーまたはグループがBPMスペースの内容に加えることができる変更が決まります。

11. 「共有」をクリックします。

12. 「閉じる」をクリックします。

2.2.2 BPMスペースからのユーザーの削除

「スペース管理」ダイアログを使用して、BPMスペースからユーザーを削除します。

ユーザーをBPMスペースから削除するには:

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインインします。

2. 「管理」ビューにアクセスします。

3. 「スペース」をクリックします。

4. ユーザーを削除するスペースの「アクション」列にある「共有」アイコンをクリックします。

5. リストからユーザーまたはグループを選択します。

6. 「削除」、「はい」の順にクリックします。

2.2.3 BPMスペースとその内容を削除する方法

「管理」ビューを使用して、Oracle BPMリポジトリからBPMスペースを削除します。

BPMスペースを削除するには:

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインインします。

2. 「管理」ビューにアクセスします。

3. 「スペース」をクリックします。

4. 削除するスペースの行にある「削除」アイコンをクリックします。

5. 「はい」をクリックして確認します。

注意:

BPMスペースを削除すると、スペースと、スペースに含まれるビジネス・アーキテクチャおよびBPMプロジェクトのすべてが削除されます。削除したBPMスペースの内容は復元できません。

2.3 プロジェクトの管理

Oracle Business Process Composerの「管理」ビューを使用して、プロジェクトを管理します。

図2-3 「管理」ビュー - プロジェクト管理者

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

管理者は、他のユーザーによってロックされていた共有プロジェクトのロックを解放することができます。

共有プロジェクトでロックを解放するには:

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインインします。

2. 「管理」ビューにアクセスします。

3. 「プロジェクト」を選択します。

4. 「アクション」列で、ロックを解除するプロジェクトの「プロジェクトのロック解除」をクリックします。

注意:

未公開の変更内容のあるプロジェクトのロックを解除すると、その変更は失われ復元できません。

5. 「はい」をクリックします。

2.3.2 プロジェクトを削除する方法

管理者はプロジェクトを削除できます。

注意:

管理者は、プライベート・プロジェクトでタスクを実行することはできません。プライベート・プロジェクトにアクセスできるのは、プロジェクト所有者のみです。

共有プロジェクトを削除するには:

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインインします。

2. 「管理」ビューにアクセスします。

3. 「プロジェクト」を選択します。

4. 「アクション」列の、削除するプロジェクトの行で「プロジェクトの削除」をクリックします。

注意:

管理者はロックされたプロジェクトを削除できません。プロジェクトを削除するには、プロジェクトのロックを解除してから削除する必要があります。

5. 「はい」をクリックして、プロジェクトを削除することを確認します。

プロジェクトを削除すると、プロジェクトはOracle BPMリポジトリから削除されます。

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

どのユーザーまたはグループがプロジェクトにアクセスできるかを構成するには、プロジェクトを含むOracle Business Process Composerスペースで共有を構成する必要があります。特定のプロジェクトで共有を構成することはできません。詳細は、「BPMスペースへのアクセスの構成」を参照してください。

2.4 プロセス・プレーヤを有効にするためのSOA管理者資格証明の定義

プロセス・プレーヤにより、Oracle Business Process Composerを使用して設計時にビジネス・プロセスの動作をテストできます。BPMプロジェクトをデプロイせずに別のユーザーIDとしてプロセスをテストしたり、Oracle Business Process Workspaceを使用してプロセスをテストしたりできます。

詳細は、プロセス・プレーヤの使用を参照してください。

ビジネス・プロセスのテスト時、プロセス・プレーヤは、特別なランタイム・パーティションを使用して、ランタイムにBPMプロジェクトの1つのバージョンをデプロイします。これにより、プロセス・プレーヤは、正常にデプロイされたBPMプロジェクトと同じ環境を使用してプロセスを実行できます。

Oracle Business Process Composerでプロセス・プレーヤ機能を有効にするには、最初に、サービス指向アーキテクチャ(SOA)の管理者資格証明を提供する必要があります。Oracle Business Process Composerでは、SOA管理者資格証明を使用して次を行うことができます。

- 実行時にプロジェクトの1つのバージョンをデプロイします。

- 別のユーザーとしてプロセス・インスタンス上でタスクを実行します。

SOA管理者資格証明を提供したら、プロジェクトに対して編集権限を持つすべてのユーザーがプロセス・プレーヤを実行できるようになります。

プロセス・プレーヤを起動すると、Oracle Business Process Composerが、これらの資格証明を使用してランタイムにプロジェクトをデプロイします。現在のユーザーが別のユーザーとしてアクティビティまたはタスクを実行する場合でも、Oracle Business Process Composerはこれらの資格証明を使用します。

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

図2-4に示すように、Oracle Business Process Composerユーザーがプロセス・プレーヤにアクセスする前に、SOA管理者資格証明を提供してプロセス・プレーヤを有効にする必要があります。

図2-4 「管理」ビュー - プレーヤ

プロセス・プレーヤを有効にするには:

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインインします。

2. アプリケーションのようこそページで、「管理」ビューを選択します。

3. 「プレーヤ」を選択します。

4. ユーザー名とパスワード、SOA管理者のパスワードを入力して、「保存」をクリックします。

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

プロセス・プレーヤを有効にすると、Oracle Business Process Composerユーザーは、プロセス・プレーヤを使用して、ビジネス・プロセスの動作をテストできます。詳細は、「プロセス・プレーヤを使用したビジネス・プロセスの動作のテスト」を参照してください。

プロセス・プレーヤを有効にすると、すべてのOracle Business Process Composerユーザーがプロセス・プレーヤを使用できるようになります。BPMプロジェクトでの編集権限があればどのユーザーでもプロセス・プレーヤを実行できます。

2.4.3 プロセス・プレーヤを無効にする方法

プロセス・プレーヤを有効にした後は、必要に応じて、プロセス・プレーヤを無効にできます。

プロセス・プレーヤを無効にするには:

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインオンします。

2. アプリケーションのようこそページで、「管理」ビューを選択します。

3. 「プレーヤ」を選択します。

4. 「クリア」をクリックします。

2.5 ビジネス・アーキテクチャ・レポートの管理

Oracle Business Process Composerのインストール内に作成された各レポートに関しては、「管理」ビューの情報を使用します。

「管理」ビューを使用して、レポートを作成することもできます。

2.5.1 レポートを表示する方法

「管理」ビューを使用して、レポートのリストを表示できます。

レポートを表示する手順は次のとおりです。

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインオンします。

2. 「管理」ビューにアクセスします。

3. 「レポート」を選択します。

Oracle Business Process Composerでは、各レポートに関する情報を含む表に、レポートのリストを表示します。表の各列に関する情報は、Oracle Business Process Composerのコンテキストに応じたオンライン・ヘルプを参照してください。

2.5.2 レポートを削除する方法

「管理」ビューを使用して、レポートを削除します。

レポートを削除する手順は、次のとおりです。

1. 管理者権限があるユーザーとして、Oracle Business Process Composerにサインオンします。

2. 「管理」ビューにアクセスします。

3. 「レポート」を選択します。

4. 削除するレポートの行にあるレポートの削除アイコンをクリックします。

第III部 BAプロジェクトおよびBPMプロジェクトの作成および使用

この部には、Oracle Business Process Composerでのビジネス・アーキテクチャ(BA)プロジェクトおよびBusiness Process Management (BPM)プロジェクトの作成および使用に関する情報が記載されています。

この部には次の章が含まれます:

- BAおよびBPMプロジェクトの作成および管理

- ビジネス・アーキテクチャによるプロセス分析および検出の実行

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

- BPMプロジェクトのドキュメント化

3 BAおよびBPMプロジェクトの作成および管理

この章では、プロジェクトの共有とコラボレーションの概要を説明し、ビジネス・アーキテクチャ(BA)およびBusiness Process Management (BPM)プロジェクトの作成および管理に利用できるいくつかの基本的な機能について述べます。

この章の内容は次のとおりです。

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

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

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

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

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

Oracle Business Process Composerでは、ユーザー間でBAおよびBPMプロジェクトを共有する機能が提供されます。

どのユーザーがプロジェクトを表示または編集できるのか制御できます。

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

BAおよびBPMプロジェクトは、プライベートまたはパブリックとして定義されます。プロジェクト所有者のみ、プライベート・プロジェクトを表示または編集することができます。プロジェクト所有者および適切な権限を持つ他のユーザーは、パブリック・プロジェクトを編集および表示できます。

プロジェクトの共有方法の詳細は、「他のユーザーとプロジェクトを共有する方法」を参照してください。

3.1.2 編集モード

共有プロジェクトの編集モードによって、プロジェクトを変更できるかどうかが決定します。プロジェクトの現在の編集モードは、「プロジェクト情報」ペインで確認できます。

読取り専用モードでは、プロジェクトは表示のみのために開かれ、一部のプロジェクト機能は使用できません。編集モードでは、プロジェクトに変更を加えることができます。変更できるのは自分だけで、他のユーザーは表示はできますが変更はできません。

3.1.3 プロジェクト・ロール

プロジェクト・ロールを使用して、どのユーザーにプロジェクトを表示および変更するためのアクセス権があるかを定義します。プロジェクト・ロールには、所有者、編集者、表示者という3つのタイプがあります。

- 所有者: ユーザーがプロジェクトを作成すると、そのユーザーがプロジェクトの所有者として定義されます。また、別のユーザーをプロジェクトの所有者として定義することもできます。プロジェクトの所有者は、次の操作を実行できます:

- プロジェクトの編集

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

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

- 他のユーザーとのプロジェクトの共有

- プロジェクトの削除

- エディタ: エディタはプロジェクトを変更できます。
エディタ・ロールを持つユーザーがプロジェクトを開くと、デフォルトではプロジェクトは読取りモードになります。他にプロジェクト編集中のユーザーがいなければ、プロジェクトを編集できる状態になります。

- 表示者: 表示者はプロジェクトを表示できますが、変更することはできません。

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

新しいBAおよびBPMプロジェクトは、アプリケーションのようこそページから作成されます。これらのプロジェクトには、プロセス・アナリストが作成した基本的な情報のみが含まれます。

新しいBAおよびBPMプロジェクトの作成方法の詳細は、「プロジェクト・パネルの概要」を参照してください。

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

プロジェクトをアプリケーションのようこそページから直接開くには、プロジェクト・リストで目的のプロジェクトを見つけて、プロジェクトの名前をクリックします。

アプリケーションのようこそページからBAプロジェクトを開くと、BAプロジェクトのようこそページがデフォルトで表示されます。プロジェクトのようこそページの詳細は、「BAプロジェクトのようこそページの概要」を参照してください。

アプリケーションのようこそページからBPMプロジェクトを開くと、BPMプロジェクトのようこそページがデフォルトで表示されます。BPMプロジェクトのようこそページの詳細は、「プロジェクトのようこそページの概要」を参照してください。

プロジェクト内のコンポーネントを編集しているときは、「プロジェクト・ホーム」タブをクリックしてプロジェクトのようこそページに戻ることができます。

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

スペース・レベルで、プロジェクトを他のOracle Business Process Composerユーザーと共有します。1つの特定のスペースに格納されているプロジェクトは、同じ権限を共有します。所有者のみが、プロジェクト・レベルで権限を変更できます。

プロジェクトの共有の詳細は、「他のユーザーまたはグループとスペースを共有する方法」を参照してください

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

デフォルトでは、共有プロジェクトは表示モードで開かれます。プロジェクトを編集する権限があり、そのプロジェクトが別のユーザーによってロックされていない場合は、プロジェクトを編集できます。

プロジェクトの編集を開始するには:

編集を開始するには、プロジェクトのようこそページの上部にある「編集」をクリックします。

プロジェクトを編集モードにすると、プロジェクトの変更を開始できます。

3.2.3 プロジェクト変更の管理

プロジェクトのコンポーネントを編集しているときは、プロジェクトへの変更を保存できます。変更するには、編集モードに切り替える必要があります。

プライベート・プロジェクトへの変更を保存するには:

プライベート・プロジェクトへの変更を保存するには、プロジェクト・ツールバーの「保存」をクリックします。プロジェクトが保存され、必要に応じて、引き続きプロジェクトを変更できます。

共有プロジェクトに変更を保存するには:

- 変更を保存して、プロジェクトの編集を続行する場合は、プロセス・エディタ・ツールバーで「保存」をクリックします。
各プロジェクト・コンポーネントの未保存の変更がすべて保存されます。プロジェクトは引き続きロックされており、編集を続行できます。

- プロジェクトのロックを解放するには、プロセス・エディタ・ツールバーの「保存して解放」をクリックします。
各プロジェクト・コンポーネントの未保存の変更がすべて保存されます。プロジェクトの共有が有効になっている場合は、権限を持つ他のOracle Business Process ComposerユーザーおよびOracle BPM Studioユーザーはプロジェクトの編集を開始できます。ただしこの変更は、公開されるまで、他の参加者は利用できません。

注意:

プロジェクトが、保存およびリリース前に公開されていない場合は、公開するかどうかを尋ねられます。リリース前に公開しない場合は、変更は失われます。

変更を公開する手順は次のとおりです。

他の参加者も変更内容を利用できるようにするには、その変更を公開する必要があります。これには、プロジェクト・ツールバーにある「公開」アイコンをクリックします。

公開された変更は、プロジェクトのようこそページの「最近のアクティビティ」ペインに記録されます。

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

プロジェクト要素の編集中に、変更を元に戻し、プロジェクトの最新の公開済バージョンに戻すことができます。

現在のプロジェクトに対して行った変更を破棄するには:

1. プロジェクト・ツールバーの「変更の破棄」アイコンをクリックします。

2. 「OK」をクリックして、現在のプロジェクトに対する変更の破棄を確認します。

注意:

破棄した変更は復元できません。

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

プロジェクトを閉じるには、プロジェクトのホーム・ページの右上隅の「プロジェクトを閉じる」をクリックします。プロジェクトを共有している場合は、「ロックの解放」チェック・ボックスを含む確認のポップアップが表示されます。このチェック・ボックスを選択してロックを解放し、他のプロジェクトの参加者がプロジェクトを編集できるようにします。あるいは、プロジェクトのようこそページの右上にあるスペース名を選択して、アプリケーションのようこそページに戻ることができます。

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

プロジェクト・スナップショットは、特定の時点におけるプロジェクトの読取り専用コピーです。スナップショットは読取り専用であるため、編集のために変更したり、開くことはできません。

プロジェクト・スナップショットの内容の表示、およびスナップショットに基づいたプロジェクトのエクスポートおよびデプロイは実行できます。

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

新規プロジェクト・スナップショットはプロジェクトのようこそページから作成できます。ただし、最後に公開されたプロジェクトからのみスナップショットを作成できます。

新規プロジェクト・スナップショットを作成するには:

プロジェクトで所有者または編集者権限のあるユーザーは、新規スナップショットを作成できます。

1. 図3-1に示すように、プロジェクトのようこそページの「最近のアクティビティ」パネルで、「スナップショット」をクリックして「スナップショット」ダイアログを開きます。

図3-1 「スナップショット」ダイアログ - 新規スナップショットの追加

2. 「新規」をクリックします。

3. スナップショットの名前を入力し、「スナップショットの作成」をクリックします。

スナップショットは、このプロジェクトに対して定義されているスナップショットのリストに表示され、スナップショットが作成された日付やスナップショット作成者のユーザーIDなどが示されます。

3.3.2 プロジェクト・スナップショットの内容を表示する方法

プロジェクト・スナップショットの内容を表示すると、プロジェクトの以前のバージョンを表示して、現在のバージョンと比較できます。

プロジェクト・スナップショットの内容を表示するには:

1. プロジェクトのようこそページの「最近のアクティビティ」パネルに移動します。

2. 「スナップショット」をクリックして、「スナップショット」ダイアログを開きます。

3. 表示するスナップショットの名前をクリックします。

スナップショット・ビュー内では、プロジェクトに関連付けられているプロセスの状態、ルールおよびヒューマン・タスクを表示できます。

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

プロジェクト・スナップショットからアクティブなバージョンのプロジェクトに戻るには、プロジェクトのようこそページ上部のブレッドクラムにあるアクティブなバージョンのプロジェクトの名前をクリックします。

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

プロジェクトの編集者ロールを付与されたユーザーは、Oracle Business Process Composerを使用して、作成したスナップショットを削除できます。プロジェクトの所有者または管理者ロールを付与されたユーザーは、任意のユーザーが作成したすべてのスナップショットを削除できます。

1. プロジェクトを開きます。

2. プロジェクトのようこそページの「最近のアクティビティ」パネルで、「スナップショット」をクリックします。

3. 削除するスナップショットをリストから選択し、「削除」をクリックします。

4. 「はい」をクリックして、プロジェクト・スナップショットを削除することを確認します。

削除したプロジェクト・スナップショットは復元できません。

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

Oracle Business Process Composerを使用して、プロジェクト・スナップショットをエクスポートできます。プロジェクト・スナップショットは、デプロイや他のユーザーとの共有などが可能な通常のBPMプロジェクトとしてエクスポートされます。

プロジェクト・スナップショットをエクスポートするには:

1. プロジェクトを開きます。

2. エクスポートするプロジェクト・スナップショットを表示します。

詳細は、「プロジェクト・スナップショットの内容を表示する方法」を参照してください。

3. メイン・メニューの「エクスポート」を選択し、「プロジェクトのエクスポート」を選択します。

4. ローカル・ファイル・システム上の場所を選択し、「保存」をクリックします。

エクスポートしたプロジェクト・スナップショットは、ファイル・システム上に.EXPファイルとして保存されます。

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

Oracle Business Process Composerを使用して、プロジェクト・スナップショットをランタイムに直接デプロイできます。これにより、プロジェクトをテストしたり、旧バージョンのプロジェクトに戻したりすることができます。

プロジェクト・スナップショットをデプロイするには:

1. プロジェクトを開きます。

2. デプロイするプロジェクト・スナップショットを表示します。

詳細は、「プロジェクト・スナップショットの内容を表示する方法」を参照してください。

3. メイン・メニューの「プロジェクトのデプロイ」を選択します。

4. 「プロジェクトをランタイムにデプロイする方法」に記載されている情報を指定します。

5. 「デプロイ」をクリックします。

あるいはプロジェクトを開いているユーザーは、「デプロイ」ポップアップからスナップショットを選択できます。デフォルトの選択肢は現在のプロジェクトです。ただしスナップショットがある場合は、ユーザーはスナップショットを選択できます。

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

Oracle Business Process Composerを使用すると、BPMプロジェクトを.EXPファイルとしてインポートおよびエクスポートできます。

この機能によって、Oracle BPMリポジトリを使用せずに、ファイル・システムを直接使用して、他のOracle Business Process ComposerユーザーおよびOracle BPM Studioユーザーとプロジェクトを直接共有できます。

注意:
12cより前のリリースからプロジェクトを移行する場合は、プロジェクトをBPM Studioにインポートします。その後は、コンポジットをデプロイしたり、Business Process Composerを使用してプロジェクトをエクスポートおよびインポートできます。

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

以前にエクスポートして.EXPファイルとして保存したBPM 12cプロジェクトをインポートできます。インポートしたプロジェクトは、Oracle BPMリポジトリに格納されます。

注意:
12cより前のリリースからプロジェクトを移行する場合は、プロジェクトをBPM Studioにインポートします。その後は、コンポジットをデプロイしたり、Business Process Composerを使用してプロジェクトをエクスポートおよびインポートできます。

プロジェクトをインポートするには:

1. アプリケーションのようこそページにアクセスします。

2. メイン・メニューの「インポート」を選択し、「プロジェクトのインポート」を選択します

図3-2に示すように、メイン・メニューには、Oracle Business Process Composerユーザー・インタフェースの左上からアクセスできます。

図3-2 アプリケーションのようこそページのメイン・メニュー

3. インポートしたプロジェクトを格納するスペースを選択します。

プロジェクトをインポートする前に、スペースを作成または選択する必要があります。

4. 「参照」をクリックして、インポートするプロジェクト・ファイルを選択します。

5. 「OK」をクリックして、プロジェクトをOracle BPMリポジトリにインポートします。

3.4.2 アプリケーションのようこそページからプロジェクトをエクスポートする方法

Oracle Business Process ComposerからエクスポートしたプロジェクトをOracle BPM Studioにインポートできます。プロジェクトをローカル・ファイル・システムにエクスポートすると、Oracle Process Asset Manager (PAM)を使用せずにプロジェクトを共有できます。

アプリケーションのようこそページのプロジェクト・リストからプロジェクトをエクスポートできます。

プロジェクトをEXPファイルとしてエクスポートするには:

1. 図3-3に示すように、プロジェクト・リストにあるプロジェクトのリストから、エクスポートするプロジェクトを見つけます。

図3-3 プロジェクト・リスト - リスト内のプロジェクト

2. 右上にある「ダウンロード」アイコン()をクリックします。

3. ローカル・ファイル・システム上の場所を選択し、「保存」をクリックします。

エクスポートしたプロジェクトは、ローカル・ファイル・システム上に.EXPファイルとして保存されます。

3.4.3 プロジェクトのようこそページからプロジェクトまたはプロジェクト・スナップショットをエクスポートする方法

プロジェクトまたはプロジェクト・スナップショットは、プロジェクトのようこそページで、Oracle Business Process Composerからローカル・ファイル・システムにエクスポートできます。プロジェクトまたはプロジェクト・スナップショットをローカル・ファイル・システムにエクスポートすると、Oracle Process Asset Manager (PAM)を使用せずにプロジェクトを共有できます。

プロジェクトをEXPファイルとしてエクスポートするには:

1. エクスポートするプロジェクトまたはプロジェクト・スナップショットを開きます。

2. 図3-4に示すように、メイン・メニューから「エクスポート」を選択し、現在のプロジェクトをエクスポートするか、最後に公開されたプロジェクトをエクスポートするかを選択します。

プロジェクト・スナップショットの場合は、「最終公開プロジェクト」オプションのみが利用できることに注意してください。

図3-4 プロジェクトのメイン・メニュー - エクスポート

3. ローカル・ファイル・システム上の場所を選択し、「保存」をクリックします。

エクスポートしたプロジェクトは、ローカル・ファイル・システム上に.EXPファイルとして保存されます。

4 ビジネス・アーキテクチャによるプロセス分析および検出の実行

Oracle Business Process Composerを使用すると、プロセスの分析と検出を実行して、組織内のプロセスの効率性を高める方法を確認できます。この章では、ビジネス・アーキテクチャ(BA)プロジェクトを使用する方法や、BAプロジェクトに基づいてレポートを生成する方法を説明します。

この章の内容は次のとおりです。

- ビジネス・アーキテクチャの概要

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

- ビジネス・アーキテクチャ・レポートの使用

4.1 ビジネス・アーキテクチャの概要

ビジネス・アーキテクチャは、組織内でビジネス・プロセスの高レベルの分析を実行する手法です。このようなプロセスとして、組織全体にわたる上位レベルのプロセス、特定のグループ内で実行されるの個別の下位レベルのプロセスがあります。

ビジネス・アーキテクチャでは、組織のプロセスを検出できるトップダウンのアプローチが使用されます。上位レベルの目標を設定および評価し、その目標を特定の戦略にマップして実現できます。ビジネス・アーキテクチャ・コンポーネントでレポートを実行して、実績を評価することもできます。

Oracle Business Process Composerには、ビジネス・プロセスの分析、 絞込み、最適化を実行するためのフル機能を備えたツールがあります。このツールを使用すると、要件を特定のBusiness Process Model and Notation (BPMN)プロセスに変換して、ビジネス・モデルでのIT開発プロセスを促進できます。

組織のプロセスの上位レベル・モデルを作成するために、Oracle Business Process Composerには、次を作成および編集する機能があります。

- エンタープライズ・マップ

- バリュー・チェーン・モデル

- 戦略モデル

これらのコンポーネントについては、後続の各項で説明します。

4.1.1 エンタープライズ・マップの概要

エンタープライズ・マップでは、組織を俯瞰的に把握できます。エンタープライズ・マップは、主要なプロセス領域を示すモデルで、主要なビジネス機能またはサービスを反映します。エンタープライズ・マップは、プロセスを分解する際のエントリ・ポイントです。通常、組織全体に対してエンタープライズ・マップは1つのみ存在します。このレベルでは、最上位レベルのビジネス機能や、マーケティング、販売、人事管理などのエンタープライズのプロセス領域が定義されます。図4-1に示すように、最上位レベルのビジネスはそれぞれ、バリュー・チェーン・モデルをたどって次のレベルに進みます。

図4-1 ビジネス・アーキテクチャ・プロジェクト - エンタープライズ・マップ

エンタープライズ・マップには、次の要素が含まれます。

- レーン: エンタープライズ・マップ内のプロセス領域をグループ化する方法を提供します。
各エンタープライズ・マップは、3つのデフォルト・レーンを使用して作成されます。このデフォルト・レーンは、組織内のプロセス領域の共通部分になります。デフォルト・レーンは次のとおりです。

- コア: コア・プロセス領域は、組織にとって不可欠な領域です。
たとえば、xを生産する会社は、購買、製造および販売のコア・プロセス領域を持つことがあります。

- 管理: 管理プロセス領域は、組織の管理に関連する領域です。

- サポート: サポート・プロセス領域は、組織内のコアまたは管理プロセス領域を支援または強化する領域です。

自分自身の組織にプロセス領域のモデルを生成するときは、デフォルト・レーンの名前を変更できます。必要に応じて、追加のレーンを作成することもできます。

- プロセス領域: プロセス領域は、サービスのビジネス機能に対応します。
1つのレーンに1つ以上のプロセス領域を追加できます。各プロセス領域は、各プロセス領域の特定の手順についての詳細情報を提供する、バリュー・チェーン・モデルにリンクできます。

組織単位をレーンとプロセス領域に割り当てることができます。

モデルに関する追加情報とプロセスを理解しやすくするコメントを提供する、添付ファイルを追加することもできます。

4.1.2 バリュー・チェーン・モデルの概要

バリュー・チェーン・モデルでは、プロセスの詳細情報を指定できます。バリュー・チェーン・モデルは、特定のタスクを実行する、組織内の一連のアクティビティです。図4-2に示すように、バリュー・チェーン・モデルには、プロセスの様々なステージを表す、一連のバリュー・チェーンのステップが含まれています。

図4-2 BAプロジェクト - バリュー・チェーン

各バリュー・チェーンのステップは、小さいグループによって実行される詳細なプロセスに相当します。各バリュー・チェーンのステップは、個別のバリュー・チェーン・モデルに分割でき、バリュー・チェーン・モデルの階層グループが生成されます。あるいは、サブステップをBPMNプロセスにリンクできます。BPMNプロセスでは、プロセスを実装するためのIT要件の概要を示す、プロセス・フローを定義します。

バリュー・チェーン・モデル内で、キー・パフォーマンス・インジケータ(KPI)を定義することもできます。KPIは、組織の重要なビジネス情報を追跡するためのメトリックです。KPIを使用したビジネス・データの追跡の詳細は、「アプリケーションでのビジネス・データの追跡」を参照してください。

バリュー・チェーン・モデルには、開始または終了ステップは必要ありません。つまり、どんなステップもまったく必要ありません(空白にすることができます)。

バリュー・チェーン・モデル内の各リンクは、次にリンクできます。

- 別のバリュー・チェーン・モデル。これは、現在のBAプロジェクト内のバリュー・チェーン・モデルのこともあります。

- BPMNプロセス。このプロセスは、編集権限を持つBusiness Process Management (BPM)プロジェクト内に存在している必要があります。

注意:

現在のプロジェクトを含むスペース内にあるBAまたはBPMプロジェクトにのみリンクできます。

4.1.3 戦略モデルの概要

戦略モデルは、組織の企業目的および目標の定義と、それらを達成するための戦略の策定に役立ちます。戦略モデルでは、目標を一連の実行可能なステップに分割できます。図4-3に示すように、これにより、上位レベルの目標を、IT組織が実行および実装する下位レベルのビジネス・プロセスとタスクにマップできます。

図4-3 BAプロジェクト - 戦略モデル

戦略モデルには、次のコンポーネントが含まれています。

- 目標: 戦略モデルで指定する、希望する最終結果を定義します。

- 目的: 目標は1つ以上の目的に分割できます。
たとえば、教育機関で教職員の卓越性を実現する目標を、教職員の数や質、教職員の報酬などのインパクトのある目的に分割できます。目的は階層的です。つまり、1つの目的を複数の子の目的に分割できます。

- 戦略: 目的を達成するための計画を定義します。
たとえば、経済的補償の目的は、教職員の給与や手当に対する戦略を使用して達成できます。戦略では目的を達成する方法を定義しますが、戦略はまだ上位レベルにあります。目的を達成するための具体的な詳細情報は、バリュー・チェーン・モデルにリンクすることで、さらに絞り込むことができます。

- バリュー・チェーン: このBAプロジェクトまたは別のBAプロジェクト内のバリュー・チェーンへの参照です。
この戦略の実現方法の詳細を定義するバリュー・チェーンを参照(またはリンク)します。バリュー・チェーンの参照は、BPMプロジェクト内のBPMNプロセスを参照することもできます。

4.1.4 KPIを使用した実績の分析

KPIは、組織の目標に対する実績の追跡方法を定義します。「キー・パフォーマンス・インジケータ(KPI)の使用」で、KPIの使用方法を説明します。

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

BAプロジェクトのようこそページからは、BAプロジェクトに関する情報、およびプロジェクト関連の共通機能にアクセスできます。図4-4は、教育用のビジネス・アーキテクチャ・プロジェクトのようこそページの例を示しています。

図4-4 ビジネス・アーキテクチャ・プロジェクトのようこそページ

Oracle Business Process ComposerのBAプロジェクトのようこそページを使用して、次のタスクを実行します。

- プロジェクトの一般情報の編集および表示

- プロジェクト・コンポーネントの作成および管理

- BAプロジェクトの編集および公開

- 「クイックスタート」メニューへのアクセス

プロジェクトの共有、プロジェクトの保存、変更の破棄、その他の一般的な機能の詳細は、「BAおよびBPMプロジェクトの作成および管理」を参照してください。

Oracle Business Process ComposerのBAプロジェクトのようこそページは、次のセクションにわかれています。

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

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

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

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

- 「クイックスタート」メニュー

4.2.1 プロジェクト・ツールバーの概要

Oracle Business Process ComposerのBAプロジェクトのツールバーは、ページ上部にあり、ツールバーからOracle Business Process ComposerのBAプロジェクトのメイン・メニューにアクセスできます。またツールバーを使用して、プロジェクトを保存および公開することもできます。

ツールバーからは、表4-1に示す機能にアクセスできます。

表4-1 Oracle Business Process ComposerのBAプロジェクトのようこそページ - ツールバー

ツールバーの要素

説明

メイン・メニュー

BAプロジェクトのようこそページのメイン・メニューにアクセスする場合にクリックします。ここからメイン・メニューを使用して、次のタスクを実行できます。

- プロジェクトのエクスポート

- レポート・データの公開

- BAプロジェクト・レポートの生成

- プロジェクトの変更の破棄

- プロジェクトの共有

- 現在のプロジェクトの終了

表示モード

--

編集

編集モードに切り替えるには、このアイコンをクリックします。

共有プロジェクトは、最初は表示モードで開きます。プロジェクトが別の参加者によってロックされていない場合、適切な権限を持っていれば、このアイコンをクリックして編集モードに切り替えることができます。

編集モード

--

保存

現在のプロジェクトを保存して、編集を続行する場合にクリックします。

公開

プロジェクト・データを公開する場合にクリックします。

プロジェクトを公開すると、最近行った変更を別の参加者が利用できるようになります。

破棄

前回の公開以降の、このプロジェクトへの変更を破棄する場合にクリックします。

参加者

プロジェクト・タイプを表示します。この場合、プロジェクト・タイプは「プライベート」です。

プロジェクトを閉じる

現在のプロジェクトを閉じて、Oracle Business Process Composerアプリケーションのようこそページに戻る場合にクリックします。

4.2.2 「プロジェクト情報」パネルの概要

図4-5に示すように、「プロジェクト情報」パネルには、プロジェクトに関する一般的な情報が表示されます。

図4-5 BAプロジェクトのようこそページ- 「情報」パネル

このペインには次の情報が表示されます:

- タイトル・バー: 名前、作成日、プロジェクトを作成したユーザーの名前が表示されます。
レポート・データを公開するには、ユーザー名の下にあるアイコンをクリックします。

- ロック: 時間と、プロジェクトをロックしたプロジェクトを編集中のユーザーの名前が表示されます。

- タイプ: プロジェクト・タイプが表示されます。
プロジェクトが共有されている場合は、チーム・メンバーのロールを変更できる「チーム」ダイアログへのリンクが表示されます。

- 詳細情報: 詳細な一般情報を表示する場合にクリックします。
詳細情報を非表示にする場合は、「詳細の非表示」 をクリックします。

- 説明: プロジェクトの説明が表示されます。
説明は、タイトルに1つまたは2つの文を拡張したもので、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

説明を編集する場合は、リンクをクリックします。

4.2.3 「最近のアクティビティ」パネルの概要

「最近のアクティビティ」ブラウザには、現在のBAプロジェクトの主要な変更履歴が表示されます。

スナップショット

スナップショットは、最新の公開済プロジェクトから作成されます。「スナップショット」リンクをクリックすると、このBPMプロジェクトのスナップショットを作成および表示できる「スナップショット」ダイアログが開きます。スナップショットを使用すると、プロジェクトのバックアップを作成したり、一定期間プロジェクトに加えた変更を表示したりできます。また、開発ライフサイクル内でプロジェクトに加えた変更の記録が提供されます。スナップショットの詳細は、「プロジェクト・スナップショットの使用」を参照してください。

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

プロジェクト・コンポーネント・ペインを使用して、次のプロジェクト・コンポーネントを表示および作成します。

- エンタープライズ・マップ

- 戦略モデル

- バリュー・チェーン・モデル

各プロジェクト・コンポーネントの右側には、このプロジェクトで作成されたコンポーネントの数が表示されます。プロジェクト・コンポーネントのリストの下には、すべてのコンポーネントの数が表示されます。

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

「クイックスタート」メニューを使用すると、Oracle Business Process Composer内の次の共通機能に簡単にアクセスできます。

- 組織単位: 「組織単位」ダイアログが開き、プロジェクトで定義されている組織単位の作成および参照に使用できます。

- ドキュメント:「プロジェクト・プロパティ」パネル内に「ドキュメント」タブが開き、プロジェクト・レベルのドキュメントの表示および編集に使用できます。
プロジェクトのドキュメントは、タイトルを1、2文拡張したもので、プロジェクトの把握に必要な情報です。

- 添付ファイル: 「プロジェクト・プロパティ」パネル内に「添付ファイル」タブが開き、BAプロジェクトにとって重要な補足ドキュメントの添付に使用できます。
「添付ファイル」タブから、添付ファイルを表示、追加、または削除できます。

- コメント: 「プロジェクト・プロパティ」パネル内に「コメント」タブが開き、簡単なコメントの追加に使用できます。
コメントは恒久的にプロジェクトに追加されるため、記録を残すことが重要な場合に使用してください。

4.2.6 エンタープライズ・マップの使用

エンタープライズ・マップは、プロジェクトのようこそページから作成および編集します。

次のエンタープライズ・マップを作成できます。

- 既存のBAプロジェクト用

- 新規プロジェクト用

4.2.6.1 既存BAプロジェクトのエンタープライズ・マップの作成

BAプロジェクトのようこそページの「エンタープライズ・マップ」リンクを使用して、既存プロジェクトのエンタープライズ・マップを作成します。

既存のBAプロジェクトにエンタープライズ・マップを作成するには:

1. BAプロジェクトを開きます。

2. BAプロジェクトのようこそページで、「エンタープライズ・マップ」リンクをクリックします。

3. 「新規」をクリックして、エンタープライズ・マップの名前と説明を入力します。

4. 「保存」をクリックします。

エンタープライズ・マップを開くには、ビジネス・アーキテクチャのようこそページで、エンタープライズ・マップの名前をクリックします。

4.2.6.2 新規BAプロジェクトのエンタープライズ・マップの作成

「エンタープライズ・マップ」ダイアログを使用して、新規プロジェクトのエンタープライズ・マップを作成します。

新規BAプロジェクトにエンタープライズ・マップを作成するには:

1. アプリケーションのようこそページにアクセスします。

2. 図4-6に示すように、「BAプロジェクト」パネルの「エンタープライズ・マップ」をクリックします。

図4-6 BAプロジェクト - 「エンタープライズ・マップ」ダイアログ

3. エンタープライズ・マップの名前を入力します。

4. エンタープライズ・マップを作成するOracle Business Process Composerスペースを選択します。

5. 新しいBAプロジェクトの名前を入力します。

6. 説明を入力します。

説明は、タイトルに1つまたは2つの文を拡張したもので、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

7. 「作成」をクリックします。

4.2.6.3 エンタープライズ・マップにレーンとプロセス領域を追加する方法

エンタープライズ・マップ・エディタを使用して、エンタープライズ・マップにレーンとプロセス領域を追加できます。

エンタープライズ・マップまたはプロセス領域にレーンを追加するには:

1. コンポーネント・パレットで、レーンまたはプロセス領域をクリックして、エンタープライズ・マップ・エディタ・キャンバス内の場所にドラッグします。

2. レーンまたはプロセス領域のサイズを変更するには、レーンまたはプロセス領域をクリックし、角の1つをクリックしてドラッグします。

3. レーンまたはプロセス領域を再配置するには、レーンまたはプロセス領域をクリックして、新しい場所にドラッグします。

4. レーンまたはプロセス領域の名前を変更するには、名前をダブルクリックして、新しい名前を入力します。

4.2.6.4 組織単位をレーンまたはプロセス領域に割り当てる方法

組織単位を使用すると、プロセス・モデルで定義された作業を実行する、組織内のグループを定義できます。組織単位をレーンまたはプロセス領域に割り当てることができます。

組織単位をレーンまたはプロセス領域に割り当てるには:

1. マウスをレーンまたはプロセス領域の上に置きます。

2. マウスを「編集」(鉛筆)アイコンの上に置き、「プロパティ」アイコンをクリックします。

アプリケーションの下部にプロパティ・エディタが表示されます。

3. プロパティ・エディタで、「組織単位」フィールドの横にある「検索」をクリックします。

4.2.6.5 バリュー・チェーン・モデルをプロセス領域に割り当てる方法

バリュー・チェーン・モデルをプロセス領域に割り当てることができます。

バリュー・チェーン・モデルをプロセス領域に割り当てるには:

1. マウスをプロセス領域の上に置きます。

2. マウスを「編集」(鉛筆)アイコンの上に置き、「プロパティ」アイコンをクリックします。

アプリケーションの下部にプロパティ・エディタが表示されます。

3. プロパティ・エディタで、「バリュー・チェーン」フィールドの横にある「検索」アイコンをクリックします。

4. リストからBAプロジェクトを選択します。

5. 「次へ」を選択します。

6. リストからバリュー・チェーン・モデルを選択します。

7. 「終了」をクリックします。

4.2.7 バリュー・チェーン・モデルの使用

バリュー・チェーン・エディタを使用して、バリュー・チェーン・モデルを作成および編集できます。

バリュー・チェーンを使用して戦略を実装する予定がある場合は、空のバリュー・チェーン・モデルを作成し、戦略モデルのバリュー・チェーンから空のバリュー・チェーン・モデルにリンクする必要があります。バリュー・チェーン・モデルを戦略にリンクすると、バリュー・チェーン・モデルは戦略分析レポートに表示されません。

4.2.7.1 バリュー・チェーン・モデルを作成する方法

バリュー・チェーン・モデルを作成するには:

1. BAプロジェクトを開きます。

2. 「バリュー・チェーン・モデル」タブを選択します。

3. 「新規」をクリックして、名前を入力します。

「バリュー・チェーン・モデル」タブに、新しいモデルが表示されます。デフォルトでは、各バリュー・チェーン・モデルのアイコンのあるリストが表示されます。

4. 別のビューを選択するには(任意)、「表示」ボタンをクリックして、「グリッド」を選択します。

5. バリュー・チェーン・モデルを開くには、その名前をクリックします。

4.2.7.2 BPMプロジェクトまたはバリュー・チェーン・モデルをチェーン内のステップに割り当てる方法

BPMプロジェクトまたはバリュー・チェーン・モデルをチェーン内のステップに割り当てるには:

1. バリュー・チェーン・モデルを開きます。

2. 該当するステップの上にマウスを移動します。

3. マウスを「編集」アイコンの上に置き、「編集」をクリックします。

4. プロパティ・エディタ・タブで、BPMまたはバリュー・チェーンの横の「参照」ボタンをクリックします。

5. リストからBPMまたはBAプロジェクトを選択して、「次」をクリックします。

6. 前の手順でBPMプロジェクトを選択した場合は、リストのビジネス・プロセスをクリックします。

前の手順でBAプロジェクトを選択した場合は、リストのバリュー・チェーン・モデルを選択します。

7. 「終了」をクリックします。

4.2.7.3 バリュー・チェーン・モデルのステップのプロパティを編集する方法

バリュー・チェーン・モデルのステップのプロパティを編集するには:

1. プロパティを編集するステップの上にマウスを置きます。

2. 「プロパティの編集」アイコンをクリックします。

画面の下部に「プロパティ」タブが表示されます。

3. 「プロパティの編集」をクリックします。

「プロパティ・エディタ」ダイアログが表示されます。

4. 必要に応じてプロパティを編集し、「OK」をクリックします。

4.2.8 戦略モデルの使用

新しい戦略モデルは、Oracle Business Process ComposerアプリケーションのようこそページまたはBAプロジェクトのようこそページから作成できます。戦略モデル・エディタを使用すると、戦略モデルを編集できます。

4.2.8.1 ビジネス・アーキテクチャのようこそページからの戦略モデルの作成

ビジネス・アーキテクチャのようこそページから戦略モデルを作成するには:

1. BAプロジェクトを開きます。

2. プロジェクト・コンポーネント・ペインに移動し、「戦略モデル」をクリックします。

3. 「新規」をクリックして、戦略モデルの名前を入力します。

4. 「保存」をクリックします。

4.2.8.2 アプリケーションのようこそページからの戦略モデルの作成

アプリケーションのようこそページから戦略モデルを作成するには:

1. アプリケーションのようこそページにアクセスします。

2. 「BAプロジェクト」パネルの「戦略モデル」をクリックします。

3. 戦略モデルの名前を入力します。

4. 戦略モデルを作成するOracle Business Process Composerスペースを選択します。

5. 新しいBAプロジェクトの名前を入力します。

6. 「作成」をクリックします。

4.2.8.3 戦略モデルを編集する方法

戦略モデルを編集するには:

1. BAプロジェクトのようこそページにアクセスします。

2. プロジェクト・コンポーネント・ペインに移動し、「戦略モデル」をクリックします。

3. 編集する戦略モデルの名前をクリックします。

選択した戦略モデルが、戦略モデル・エディタで開きます。

4. 図4-3に示すように、キャンバスに、目的、目標、戦略およびバリュー・チェーンの参照をドラッグ・アンド・ドロップします。

目標は1つ以上の目的にリンクでき、目的は1つ以上の戦略にリンクでき、戦略は1つ以上のバリュー・チェーンの参照にリンクできます。

4.2.8.4 バリュー・チェーンの参照の作成

バリュー・チェーンの参照を作成するには:

1. バリュー・チェーンの参照をキャンバスにドラッグ・アンド・ドロップします。

2. バリュー・チェーンの参照を右クリックして、「プロパティ」を選択します。

3. 「プロパティ」ダイアログには、「リンク」というフィールドがあります。「参照」ボタンをクリックして、作成済のバリュー・チェーン・モデルを選択します。

4.2.9 キー・パフォーマンス・インジケータ(KPI)の使用

Oracle Business Process Composerを使用して、KPIを作成、編集および削除します。KPIの使用の詳細は、「キー・パフォーマンス・インジケータ(KPI)の使用」を参照してください。

4.2.9.1 KPIを作成する方法

BAプロジェクト内に、次に関するKPIを作成できます。

- 戦略モデル: 目的、戦略またはバリュー・チェーン・モデル

- バリュー・チェーン・モデル: バリュー・チェーンのステップ

KPIを作成するには:

1. BAプロジェクトを開きます。

2. 戦略モデルまたはバリュー・チェーン・モデルを開きます。

3. 戦略モデル・オブジェクト(目的、戦略またはバリュー・チェーン)またはバリュー・チェーン・モデル・オブジェクト(バリュー・チェーンのステップ)を右クリックして、「KPI」を選択します。

4. 「KPI」タブで、「KPIの追加」をクリックして「新規KPI」ダイアログを表示します。

5. 次の情報を入力します。

- 名前: KPIの名前を入力します。この名前は変更できません。

- 表示名: 表示名を入力します。
これは、BAMダッシュボードでユーザーに表示される名前です。

説明: 説明を入力します。このフィールドはオプションです。

タイプ: KPIのタイプを指定します。「外部」、「手動」または「ロールアップ」を選択します。

KPIの作成の詳細は、「アプリケーションでのビジネス・データの追跡」を参照してください。

6. 「OK」をクリックして、KPIを作成します。

4.2.9.2 KPIのプロパティを編集する方法

KPIを作成したら、そのプロパティを編集できます。

KPIのプロパティを編集するには:

1. BAプロジェクトを開きます。

2. 戦略モデルまたはバリュー・チェーン・モデルを開きます。

3. KPIを含むオブジェクトを右クリックします。

4. KPIのリンクを選択します。

5. 図4-7に示すように、編集するKPIの「編集」アイコンをクリックして、KPIの編集ダイアログを表示します。

図4-7 KPIの編集ダイアログ

6. 必要に応じてKPIを編集して、「OK」をクリックします。

4.3 ビジネス・アーキテクチャ・レポートの使用

Oracle Business Process Composerを使用すると、BAプロジェクトでレポートを実行して、様々なコンポーネントがどのように連携しているかを表示することもできます。

ビジネス・アーキテクチャでは、エンタープライズ・マップ、バリュー・チェーン・モデル、戦略モデルを使用して、組織内のプロセスをモデル化できます。

4.3.1 レポート・データを公開する方法

ビジネス・アーキテクチャ・レポートを生成するには、BAプロジェクトのレポート・データを公開する必要があります。また、レポート・データを公開する前に、レポートに対する変更も公開する必要があります。

注意:
レポート・データを公開する前にBAM接続が稼働中であることを確認します。詳細は、Oracle SOA Suiteエンタープライズ・デプロイメント・ガイドのOracle Business Activity Monitoringを追加するためのSOAドメインの拡張を参照してください。

レポート・データを公開するには:

Oracle Business Process Composerアプリケーションの「ようこそページ」から、レポート・データを公開できます。

1. メイン・メニューから、レポート・データの公開を選択します。

2. プロジェクトを選択します。

所有しているか編集権限のあるプロジェクトを選択できます。選択したプロジェクトは、別のスペースに配置できます。

図4-8 BAレポート・データの公開ダイアログ

3. 「公開」をクリックします。

4.3.2 BAレポートを生成する方法

レポート・データを公開したら、Oracle Business Process Composerアプリケーションのようこそページからレポートを生成できます。利用できるレポート・タイプは次のとおりです。

- プロセス重大性レポート

- 影響分析レポート

BAレポートを生成するには:

1. Oracle Business Process Composerアプリケーションのようこそページに移動します。

2. 図4-9に示すように、メイン・メニューをクリックして、「プロセス重大性レポート」と「影響分析レポート」のどちらを生成するかを選択します。

図4-9 Oracle Business Process Composerアプリケーションの「ようこそページ」ページ - メイン・メニュー

影響分析レポートの生成を選択した場合は、レポートのベースを次のいずれかにする必要があります。

- 目標: 目標は何ですか。

- 目的: 目標と目的は戦略によってどのように実現されますか。

- 戦略: 目標、目的、戦略およびバリュー・チェーンはどのようにリンクしますか。

- バリュー・チェーン: 目標、目的、戦略、バリュー・チェーンおよびプロセスはどのようにリンクしますか。

3. ビジネス・アーキテクチャのレポートが、「レポート」ブラウザに表示されます。

4.3.2.1 影響分析レポートとプロセス重大性レポートの分析

影響分析レポート

図4-10に示すように、影響分析レポートは、戦略モデルに基づき、BAコンポーネントの様々なプロパティと階層を表示します。

図4-10 影響分析レポートの例

影響分析レポートでは、Oracle BPMリポジトリに格納されている公開データを使用します。

プロセス重大性レポート

プロセス重大性レポートは、プロジェクト内のバリュー・チェーン・モデルをベースにしています。図4-11に示すように、Oracle Business Process Composerには、バリュー・チェーン・モデルごとに行が表示されます。

図4-11 プロセス重大性レポートの例

ビジネス・アーキテクチャでは、プロセス重大性レポートの重要な機能であるOracle Business Activity Monitoring (Oracle BAM)を利用して、KPI評価を行います。したがって、プロセス重大性レポートでは、Oracle Business Activity Monitoring (Oracle BAM)リポジトリに格納されている公開データを使用します。

このレポートのデータを公開するには、Oracle BAMサーバーが動作している必要があります。Oracle BAMを有効にするには、processMetricsシステムBeanも有効になっている必要があります。

Oracle BAMのprocessMetricsシステムBeanの有効化の詳細は、『Oracle BAMでのビジネス・アクティビティのモニタリング』の「Oracle Business Process Managementとの統合」にあるプロセス・メトリックの有効化に関する項を参照してください。

5 BPMプロジェクトの作成および使用

この章では、Oracle Business Process Composerを使用してBusiness Process Management (BPM)プロジェクトを作成および使用する方法について説明します。

この章の内容は次のとおりです。

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

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

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

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

- プロジェクト・ロール、ビジネス・パラメータおよび組織単位の定義

- プロジェクトのプロセス・レポートの生成

5.1 Oracle BPMプロジェクトの概要

BPMプロジェクトは、Oracle BPMアプリケーションの中核的な要素です。BPMプロジェクトには、ビジネス・アプリケーションの作成とサポートに使用されるリソースが含まれます。これらのリソースには、ビジネス・プロセスと、データ・オブジェクト、サービス、ビジネス・ルール、ヒューマン・タスク、ロールなどのビジネス・カタログのコンポーネントが含まれます。

Oracle Business Process Composerで新しいプロジェクトを直接作成できます。

BPMプロジェクトは、プロセス・アナリストとプロセス開発者間のコラボレーションを推進します。Oracle Business Process ComposerとOracle BPM Studioのユーザーは、Oracle BPMリポジトリを使用してプロジェクトを共有できます。詳細は、Oracle BPMリポジトリの概要を参照してください。

Oracle Business Process Composerを使用して、BPMプロジェクトを検証し、ランタイムにデプロイすることができます。詳細は、BPMプロジェクトのデプロイを参照してください。

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

各プロジェクトには1つ以上のビジネス・プロセスが含まれています。ビジネス・プロセスやアプリケーションで使用される他のリソースが含まれることもあります。アプリケーションを他のアプリケーションおよびシステムに接続したり、アプリケーションのユーザー・インタフェースを定義するための再利用可能なリソースも含まれます。

Oracle Business Process Composerでは、完全に機能するBPMアプリケーションを作成、テストおよびデプロイできます。ただし、Oracle BPM Studioを使用しないと実行できない高度な機能もあります。これには次のものがあります。

- 詳細なヒューマン・タスク・パラメータの構成

- ADFフォームの作成と表示

- 外部参照の作成

- 例外の作成

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

Oracle Business Process Composerを使用して、次のプロジェクト・リソースを作成および編集できます。

- プロセス
ビジネス・プロセスは、ビジネス・アプリケーションの中核的な要素です。プロセスは、関連したタスクまたはアクティビティの集まりとして定義されます。Oracle BPMアプリケーションには1つ以上のプロセスを含めることができます。Oracle Business Process Composerでは、Business Process Model and Notation (BPMN)プロセスを作成および編集できます。

BPMプロジェクトのようこそページから、新しいプロセスを作成したり、既存のプロセスを編集できます。プロセスの作成および使用の詳細は、「ビジネス・プロセスの作成および使用」を参照してください。

- Oracle Business Rules
Oracle Business Rulesは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。Oracle Business Process Composerを使用して、ビジネス・ルールを作成および編集できます。ビジネス・ルールはプロジェクトの編集可能なコンポーネントですが、ビジネス・カタログの一部としても表示されます。

詳細は、Oracle Business Rulesの使用を参照してください。

- ヒューマン・タスク
Oracle Business Process Composerでは、ヒューマン・タスクを作成および編集できます。ヒューマン・タスクを使用して、ユーザーとプロセスベースのアプリケーションがどのように相互作用するかを定義します。

BPMプロジェクトのようこそページから、新しいヒューマン・タスクを作成したり、既存のヒューマン・タスクを編集できます。詳細は、ヒューマン・タスクの使用を参照してください。ヒューマン・タスクを作成すると、そのヒューマン・タスクはビジネス・カタログ内でアクセス可能になります。

- Webフォーム
Webフォームは、プロセス・ワークスペースでアプリケーション・ユーザーに対して表示されるインタフェースを定義します。Oracle Business Process Composerでは、このインタフェースを一から作成することも、ヒューマン・タスクの既存のデータ構造に基づいてWebフォームを作成することもできます。

詳細は、「Webフォームの使用」を参照してください。

注意:

WebフォームはBPMプロジェクトのリソースですが、Oracle Business Process Composerでしか作成および編集できません。Oracle BPM Studioでは表示することも編集することもできません。

- ビジネス・コンポーネント
ビジネス・コンポーネントは、チケット、リクエスト、従業員など、実際の概念やオブジェクトを表します。ビジネス・コンポーネントは、Oracle BPMアプリケーションで必要なデータ構造を作成するために使用する複合データ型です。Oracle Business Process Composerを使用すると、手動か、XMLスキーマに基づいて複合データ型を作成できます。

詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

- キー・パフォーマンス・インディケータ(KPI)
KPIは、ターゲットに対してビジネス上の尺度(製品の売上や運用コストなど)を評価した結果を表します。KPIは、プロセスまたはプロセス内の特定のアクティビティについて作成できます。

「アプリケーションでのビジネス・データの追跡」を参照してください。

- ビジネス・インジケータ
ビジネス・インジケータは、KPIの値を格納するために使用するプロジェクト・データ・オブジェクトです。ビジネス・インジケータは、属性、カウンタ、ディメンションまたはメジャーです。

「アプリケーションでのビジネス・データの追跡」を参照してください。

- シミュレーション定義とモデル
シミュレーションを使用して、ビジネス・プロセスのパフォーマンスをテストします。シミュレーション定義とモデルは、シミュレーションで使用され、BPMプロジェクトの一部として格納されるパラメータを定義します。

詳細は、「プロセス動作のシミュレート」を参照してください。

- アクティビティ・ガイド
アクティビティ・ガイドはガイド付きビジネス・プロセスの一部です。ガイド付きビジネス・プロセスを使用すると、プロジェクトのマイルストンを定義できます。各プロジェクトには、複数のプロジェクト・マイルストンを定義できる1つのアクティビティ・ガイドが含まれています。Oracle Business Process Composerでは、マイルストンを作成および構成できます。

プロジェクト・マイルストンの作成および使用の詳細は、「ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成」を参照してください。

5.1.1.2 ビジネス・カタログ

Oracle Business Process Composerを使用して、ビジネス・カタログ・コンポーネントを作成および編集できます。ビジネス・カタログは、BPMプロジェクト内のすべてのプロセスが共有し再利用することのできる、実装アセットのコンテナです。

これらの要素を作成した後、特定のBPMNアーティファクトに割り当てることができます。

ビジネス・カタログ・コンポーネントにはコンポーネント・パレットからアクセスできます。ビジネス・カタログで再利用可能なリソースは、次のとおりです。

- ヒューマン・タスク
ヒューマン・タスクでは、エンド・ユーザーとBPMNプロセスとの相互作用の方法を定義します。ヒューマン・タスクは、ユーザー・タスクを使用してビジネス・プロセスに追加できます。また、ビジネス・カタログのヒューマン・タスクを、ビジネス・プロセス内の各ユーザー・タスクに割り当てることができます。BPMNプロセス内のヒューマン・タスクの使用方法については、プロセスへのユーザー相互作用の追加を参照してください。

- Oracle Business Rules
Oracle Business Rulesは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。ビジネス・ルールは、ビジネス・ルール・タスクを使用してプロセスに統合されます。

Oracle Business Process Composerを使用したOracle Business Ruleの操作の詳細は、「Oracle Business Rulesの使用」を参照してください。BPMNプロセス内のビジネス・ルール・タスクの使用の詳細は、「ビジネス・ルール・タスクの概要」を参照してください。

- ビジネス・オブジェクト
ビジネス・オブジェクトでは、アプリケーション内で使用されるデータ構造を定義します。Oracle Business Process Composerを使用すると、単純なデータ・オブジェクトを使用して複雑なデータ・オブジェクトを定義できます。詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

- サービス
サービスでは、BPMNプロセスが他のプロセス、システムおよびサービス(BPELプロセスやデータベースを含む)にどのように接続するかを定義します。

Oracle Business Process Composerを使用して、Webサービスを基に新しいサービスを作成できます。詳細は、サービスの使用を参照してください。

サービスは、サービス・タスクに割り当てることによって、BPMNプロセス内に実装されます。詳細は、サービス・タスクの概要を参照してください。

- 外部参照
参照では、BPMNプロセスのインタフェースを定義します。参照によって、メッセージ・イベント、送信タスクおよび受信タスクが実装されます。詳細は、他のプロセスおよびサービスとの通信を参照してください。

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

表5-1に、ビジネス・カタログのコンポーネントをリストし、Oracle Business Process Composerを使用して作成または編集できるコンポーネントを示します。

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

ビジネス・カタログ・コンポーネント

作成可能であるか

編集可能であるか

ビジネス・ルール

はい

はい

ヒューマン・タスク

はい

はい

ビジネス・オブジェクト

はい

はい

サービス

はい

いいえ

外部参照

はい

いいえ

エラー

はい

はい

5.1.2 Oracle BPMリポジトリの概要

Oracle BPMリポジトリはプロセス・アセット・マネージャ(PAM)に基づいており、プロジェクトを保存してOracle Business Process ComposerとOracle Business Process Management Studioの間で共有するためのデザインタイム・リポジトリとして機能します。

システム管理者は、Oracle Business Process ComposerをインストールするときにOracle BPMリポジトリをインストールして構成します。

Oracle BPMリポジトリのプロジェクトを開く方法の詳細は、プロジェクトの作成および使用を参照してください。

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

プロジェクトのようこそページからは、BPMプロジェクトに関する情報、およびプロジェクトに関連する共通機能にアクセスできます。

図5-1は、Travel Request Applicationサンプル・プロジェクトのようこそページを示しています。

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

Oracle Business Process Composerのプロジェクトのようこそページを使用して、次のタイプのタスクを実行します。

- プロジェクトの一般情報の編集および表示

- プロジェクト・コンポーネントの作成および管理

- BPMプロジェクトの編集、検証および公開

- 「クイックスタート」メニューへのアクセス

プロジェクトの共有、プロジェクトの保存、変更の破棄、その他の一般的な機能の詳細は、「BAおよびBPMプロジェクトの作成および管理」を参照してください。

Oracle Business Process Composerのプロジェクトのようこそページは、次のセクションに分かれています。

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

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

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

- 「プロジェクト・コンポーネント」パネル

- 「クイックスタート」メニュー

5.2.1 プロジェクト・ツールバーの概要

Oracle Business Process Composerのプロジェクト・ツールバーはページの上部にあり、プロジェクトの保存、公開および検証を行えるほか、Oracle Business Process Composerプロジェクトのメイン・メニューへのアクセスを提供します。

ツールバーからは、次の要素にアクセスできます。

表5-2 Oracle Business Process Composerのプロジェクトのようこそページ - ツールバー

ツールバーの要素

説明

メイン・メニュー

プロジェクトのようこそページのメイン・メニューにアクセスする場合にクリックします。ここからメイン・メニューを使用して、次のタスクを実行できます。

- 新しいシミュレーションまたはサービスの作成

- プロジェクト・モデルのインポート

- プロジェクトのエクスポート

- プロセス・レポートの生成

- プロジェクトの保存

- プロジェクトの変更の破棄

- プロジェクトの検証

- 現在のプロジェクトの終了

表示モード

--

編集

編集モードに切り替えるには、このアイコンをクリックします。

共有プロジェクトは、最初は表示モードで開きます。プロジェクトが別の参加者によってロックされていなければ、このアイコンをクリックして編集モードに切り替えることができます。

編集モード

--

保存

現在のプロジェクトを保存して、編集を続行する場合にクリックします。

公開

プロジェクト・データを公開する場合にクリックします。

プロジェクトを公開すると、最近行った変更を別の参加者が利用できるようになります。

破棄

前回の公開以降の、このプロジェクトへの変更を破棄する場合にクリックします。

プレーヤ

プロセス・プレーヤを実行する場合にクリックします。

このアイコンが表示されるのは、プロセス・プレーヤが構成されている場合のみです。プロセス・プレーヤの詳細は、「プロセス・プレーヤの使用」を参照してください。

検証

プロジェクトを検証する場合にクリックします。

参加者

プロジェクト・タイプを表示します。この場合、プロジェクト・タイプは「プライベート」です。

プロジェクトを閉じる

現在のプロジェクトを閉じて、Oracle Business Process Composerアプリケーションのようこそページに戻る場合にクリックします。

5.2.2 「プロジェクト情報」パネルの概要

「プロジェクト情報」パネルには、プロジェクトに関する一般的な情報が表示されます。

このペインには次の情報が表示されます:

- タイトル・バー: 名前、作成日、プロジェクトを作成したユーザーの名前が表示されます。
ローカライズされた名前を変更するには、名前の右側にあるアイコンをクリックします。

- 作成: 作成日と、プロジェクトを作成したユーザーの名前が表示されます。

- タイプ: プロジェクト・タイプが表示されます。

- 言語: ドロップダウン・リストを使用してプロジェクトの言語を選択します。
ドロップダウン・リストに言語オプションを追加するには、「編集」をクリックします。Webフォーム国際化ダイアログで追加の言語を使用するには、まず、ここで言語を追加しておく必要があります。

- 詳細情報: 詳細な一般情報を表示する場合にクリックします。
詳細情報を非表示にする場合は、「詳細の非表示」 をクリックします。

- サンプリング・ポイント: 「変更」をクリックして、「すべてに対して生成」、「対話型に対して生成」、「生成しない」、「プロセスに対してのみ生成」のいずれかを選択します。

- 説明: プロジェクトの説明が表示されます。
図5-2に示すように、説明は、タイトルに1つまたは2つの文を拡張したもので、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

図5-2 プロジェクトの説明

説明を編集する場合は、リンクをクリックします。

5.2.3 「最近のアクティビティ」パネルの概要

「最近のアクティビティ」ブラウザには、現在のBPMプロジェクトに対する公開済の変更の履歴が表示されます。

最近のプロジェクト・アクティビティを表示する方法については、プロジェクトに対する変更履歴を表示する方法を参照してください。

スナップショット

スナップショットは、最新の公開済プロジェクトから作成されます。「スナップショット」リンクをクリックすると、このBPMプロジェクトのスナップショットを作成および表示できる「スナップショット」ダイアログが開きます。スナップショットを使用すると、プロジェクトのバックアップを作成したり、一定期間プロジェクトに加えた変更を表示したりできます。また、開発ライフサイクル内でプロジェクトに加えた変更の記録が提供されます。スナップショットの詳細は、「プロジェクト・スナップショットの使用」を参照してください。

5.2.4 プロジェクト・コンポーネント・パネルの概要

プロジェクト・コンポーネント・ペインを使用して、次のプロジェクト・コンポーネントを表示および作成します。

- プロセス

- ルール

- ヒューマン・タスク

- Webフォーム

- ビジネス・コンポーネント

- シミュレーション

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

- KPI

各プロジェクト・コンポーネントの右側には、このプロジェクトで作成されたコンポーネントの数が表示されます。プロジェクト・コンポーネントのリストの下には、すべてのコンポーネントの数が表示されます。

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

「クイックスタート」メニューを使用すると、Oracle Business Process Composer内の次の共通機能に簡単にアクセスできます。

- 組織: プロジェクトに定義されているロールやビジネス・パラメータを作成および参照できる組織エディタが開きます。
詳細は、「プロジェクト・ロール、ビジネス・パラメータおよび組織単位の定義」を参照してください。

- アクティビティ・ガイド: プロジェクト内のマイルストンを管理できるアクティビティ・ガイド・エディタが起動します。

5.2.6 Oracle Business Process Composerのエディタの概要

エディタを使用すると、ビジネス・カタログのプロセスやコンポーネントなど、BPMプロジェクトの様々な要素を使用できます。

次の各項では、Oracle Business Process Composerで使用できる様々なタイプのエディタについて説明します。

5.2.6.1 「プロセス」エディタ

「プロセス」エディタを使用して、ビジネス・プロセスを表示および編集できます。「プロセス」エディタにアクセスするには、プロジェクトのようこそページからプロセスを開きます。

エディタ・ウィンドウには、コンポーネント・パレットも含まれます。実際に使用可能なコンポーネントは、次のようにプロジェクトによって異なります。

- Oracle Business Process Composerで作成された新規プロジェクトのコンポーネント・パレットには、BPMNフロー・オブジェクトと作成したビジネス・カタログ・コンポーネントが表示されます。
サービスおよびヒューマン・タスクはOracle Business Process Composerで直接作成できます。

詳細は、「ビジネス・プロセスの作成および使用」を参照してください。

5.2.6.2 「アクティビティ・ガイド」エディタ

「アクティビティ・ガイド」エディタを使用して、アクティビティ・ガイドのマイルストンを表示、作成および編集します。「アクティビティ・ガイド」エディタにアクセスするには、「クイックスタート」メニューの「アクティビティ・ガイド」リンクをクリックします。ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成を参照してください。

5.2.6.3 「ヒューマン・タスク」エディタ

「ヒューマン・タスク」エディタを使用して、ビジネス・カタログの一部として含まれるヒューマン・タスクを編集します。詳細は、ヒューマン・タスクの使用を参照してください。

5.2.6.4 「ビジネス・ルール」エディタ

「ビジネス・ルール」エディタを使用して、ビジネス・ルールを作成、表示および編集します。「ビジネス・ルール」エディタにアクセスするには、プロジェクトのようこそページからビジネス・ルールを開きます。詳細は、Oracle Business Rulesの使用を参照してください。

5.2.6.5 「データ・アソシエーション」エディタ

「データ・アソシエーション」エディタを使用して、実装を含むフロー・オブジェクトの入力および出力を定義します。「データ・アソシエーション」エディタにアクセスするには、ビジネス・プロセス内のフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。

データ・アソシエーションの使用方法は、データ・オブジェクトの使用を参照してください。

5.2.6.6 式エディタ

式エディタを使用して、データ・アソシエーションおよび条件シーケンス・フロー内で使用する式を定義します。

式の使用と式エディタへのアクセスの詳細は、「式を使用したデータのコントロール」を参照してください。

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

Oracle Business Process Composerには、その他のプロジェクト・コンポーネントを表示および編集できる追加のエディタが用意されています。これらのエディタは、アプリケーション・ウィンドウの下部に表示されます。

注意:

これらのエディタはデフォルトでは表示されません。各ウィンドウに関連するアクションが実行された後に表示されます。手動で表示するには、Oracle Business Process Composerの右下隅にある「ペインのリストア」アイコンをクリックします。

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

プロジェクトおよびプロセスのブラウザには、個別のプロセスまたはプロジェクト全体の検証エラーが表示されます。プロジェクトの検証の詳細は、プロジェクトを検証する方法を参照してください。

5.2.7.2 「ドキュメント」エディタ

「ドキュメント」エディタを使用して、プロセスについてのドキュメントを作成および編集します。

詳細は、プロセスのドキュメント化を参照してください。

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

新規のプロジェクトの作成と検証、および変更履歴やプロジェクト・プロパティの表示ができます。

次の各項では、Oracle BPMプロジェクトの作成方法と使用方法について説明します。

プロジェクトの共有、プロジェクトの保存、変更の破棄、その他の一般的な機能の詳細は、「BAおよびBPMプロジェクトの作成および管理」を参照してください。

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

新しいBPMプロジェクトはアプリケーションのようこそページから作成します。これらのプロジェクトには、プロセス・アナリストが作成した基本的なビジネス・プロセスのみが含まれます。「BPMプロジェクト」パネルを使用して、新しい空のプロジェクトの作成や、プロセスを含む新しいプロジェクトの作成を行うことができます。

詳細は、「「BAプロジェクト」パネルを使用した新しい空のプロジェクトの作成」および「「BAプロジェクト」パネルを使用した新しい移入プロジェクトの作成」を参照してください。

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

プロジェクトを検証すると、プロジェクトやプロセスにエラーがないかどうかを確認できます。Oracle Business Process Composerでは、エラー・ブラウザにエラーが表示されます。Oracle Business Process Composerには、プロジェクトのエラー・ブラウザと各プロセスのエラー・ブラウザがあります。

図5-3は、プロジェクトのエラー・ブラウザに表示されるエラーのタイプの例を示しています。

図5-3 プロジェクト・エラー・ブラウザ

プロジェクトを検証するには:

1. プロジェクトを開きます。

2. プロジェクトの編集中であることを確認します。

3. メイン・メニューから「プロジェクトの検証」を選択します。

プロジェクトを検証した後は、検出されたエラーがプロジェクト用またはプロセス用のエラー・ブラウザに表示されます。

注意:

エラーがあるプロジェクトはデプロイできません。

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

プロジェクトに対する主要な変更履歴を表示するには、「最近のアクティビティ」ブラウザを使用します。このブラウザには、次の内容を含む、これらの変更が表示されます。

- プロジェクトの作成

- リソースの変更

- プロセスまたはヒューマン・タスクの作成

プロジェクトの履歴を表示するには:

1. プロジェクトのようこそページに移動します。

プロジェクトの変更が「最近のアクティビティ」ペインに表示されます。

2. 特定の変更の詳細を表示するには、隣にある展開アイコンをクリックします。

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

プロジェクト・プロパティを表示および編集するには、プロジェクトのようこそページの「プロジェクト情報」ペインを使用します。

このペインからは、プロジェクトの次のプロパティを編集できます:

- 説明: プロジェクトの説明(オプション)を追加します。これは、他のユーザーとプロジェクトを共有する場合に役立ちます。

- イベントの生成: プロジェクト全体に対してサンプリング・ポイントを生成する方法を構成します。
サンプリング・ポイントを使用すると、実行中のプロセス内のフロー・オブジェクトのパフォーマンスに関する情報を生成できます。この構成に基づいて生成されたデータは、プロセス分析データベースに格納されます。

サンプリングの詳細は、Oracle Business Process Managementによるプロセスの管理とモニタリングのプロセス・ワークスペースでのダッシュボードの使用を参照してください。

「プロジェクト情報」ペインからは、次のプロジェクト・プロパティを表示できます:

- 編集モード: プロジェクトの編集モードが表示されます。
プロジェクトの編集モードの変更方法については、共有プロジェクトを編集する方法を参照してください。

- 共有: プロジェクトの共有構成が表示されます。

- プロジェクト言語: プロジェクト言語が表示されます。

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

ガイド付きビジネス・プロセスは、プロセス・フローのガイド付き視覚表現を提供します。プロセス参加者にビジネス・プロセスのカプセル化された階層ビューを提供することによって、ユーザーの操作性を向上します。

次の各項では、ガイド付きビジネス・プロセスおよびプロジェクト・マイルストンの使用方法について説明します。

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

プロセス設計者は、ガイド付きビジネス・プロセスを使用して、プロセス参加者がプロセスに関連付けられた一連のガイド付き手順に従ってビジネス・プロセスを完了できるように設定できます。ガイド付きビジネス・プロセスには手順の概要が示されます。この手順に従うことによって、プロセス参加者はより少ないトレーニングでビジネス・プロセスを完了できるようになり、プロセスの結果もより予測可能になります。

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

ガイド付きビジネス・プロセスは、ビジネス・プロセスに基づいたアクティビティ・ガイドとしてモデリングされます。アクティビティ・ガイドには、一連のマイルストンが含まれています。マイルストンには、プロセス参加者が完了する必要がある一連のタスクが含まれています。マイルストンに含まれている一連のタスクをユーザーが正常に実行すると、マイルストンが完了します。

各マイルストンは、ヒューマン・ワークフロー・タスクの特定のセットです。各ヒューマン・ワークフロー・タスクは、それ自体が、様々なロールの複数の参加者のコラボレーションを必要とするタスク・フローである場合があります。タスク・フローの内容によっては、参加者は未完了のタスク・フローをいったん保存して、後でそのタスク・フローに戻ることもできます。

5.4.2 アクティビティ・ガイドの構成方法

Oracle Business Process Composerを使用して、ガイド付きビジネス・プロセスを構成し、それらにマイルストンを追加します。

プロジェクトのアクティビティ・ガイドを構成するには:

1. プロジェクトを開きます。

2. 「クイックスタート」メニューから「アクティビティ・ガイド」を選択します。

「アクティビティ・ガイド」エディタが表示されます。

3. アクティビティ・ガイドのタイトルを入力します。

4. 次のオプションのプロパティを構成します。

- 表示モード: ガイド付きビジネス・プロセス内のマイルストンおよびタスクにおけるリンクの表示方法を指定します。
マイルストンおよびタスクで他の構成が使用される場合は、ガイド付きビジネス・プロセスの構成は無視されます。

可能な値は次のとおりです。

- 常時: ガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンおよびタスクのリンクを常に表示します。

- インスタンス化時: ガイド付きビジネス・プロセスのすべてのマイルストンで、マイルストンの1つ以上のユーザー・タスクがインスタンス化されているときにのみ、マイルストンおよびタスクのリンクを表示します。

- タスク・アクセス: タスクが完了した後、ガイド付きビジネス・プロセスではこの構成を使用してリンクを表示します。
タスク・モードが「アクティブのみ」の場合は、タスクのリンクがグレー表示されます。タスク・モードが「任意の状態」の場合は、タスクのリンクは有効なままになり、タスクを実行するときにメッセージが表示されます。

可能な値は次のとおりです。

- アクティブのみ: タスクへのリンクは、タスクがアクティブであり、ユーザーが更新可能なときにのみ有効になります。
タスクを完了すると、タスクへのリンクはグレー表示されます。

- 任意の状態: タスクをインスタンス化すると、そのタスクへのリンクは常に有効になります(タスクを完了した後も有効です)。

- ルート・プロセス: このアクティビティ・ガイドに使用されるプロセスを指定します。
BPMプロジェクトごとに、1つのガイド付きビジネス・プロセスのみを定義できます。このプロセスが、ルート・プロセスです。

- 説明: アクティビティ・ガイドのオプションの説明を指定します。

5. プロジェクト・ツールバーで「保存」をクリックします。

5.4.3 プロジェクト・マイルストンの作成

Oracle Business Process Composerを使用して、マイルストンをガイド付きビジネス・プロセスに追加します。

新しいマイルストンを作成する手順は、次のとおりです。

1. 「新規マイルストン」をクリックします。

2. リストから、今作成したマイルストンを選択します。

3. 必要に応じて、マイルストンを構成します。

4. プロジェクト・ツールバーで「保存」をクリックします。

5.4.4 ユーザー・タスクへのマイルストンの追加

Oracle Business Process Composerを使用してマイルストンをガイド付きビジネス・プロセスのユーザー・タスクに追加します。

マイルストンにユーザー・タスクを追加するには:

1. マイルストンを追加するプロセスを開きます。

2. マイルストンを追加するユーザー・タスクを右クリックします。

3. リストからマイルストンを選択して、「OK」をクリックします。

5.5 プロジェクト・ロール、ビジネス・パラメータおよび組織単位の定義

プロジェクト・ロールを使用して、ビジネス・プロセスが表す作業を実行するユーザーまたはグループをモデリングします。ロールでは、組織内の職務や責任に対応する機能上のカテゴリを定義します。Oracle Business Process Composerを使用して、プロセス内で必要なロールを作成および編集し、それらをスイムレーンに割り当てます。

この項では、プロジェクト・ロールとビジネス・パラメータの作成および管理方法について説明します。

5.5.1 プロジェクト・ロールの定義

Oracle Business Process Composerを使用して、BPMプロジェクトで使用されるロールを定義します。ロールへのユーザーの割当てなど、プロジェクト・ロールのより高度なマッピングや構成を実行するには、Oracle BPM StudioまたはOracle Business Process Management Workspaceを使用します。プロジェクトをランタイムにデプロイすると、プロジェクト・ロールを実際の組織のユーザーやグループにマップできます。

プロジェクト・ロールはプロジェクト全体に対して定義されます。それらは、プロジェクト内のすべてのプロセスで共有できます。プロセス内では、ロールは水平スイムレーンに割り当てられます。

次の手順では、プロジェクト・ロールを作成および削除する方法を説明します。

プロジェクト・ロールを作成するには:

1. プロジェクトのようこそページにアクセスします。

2. 「組織」をクリックし、「追加」アイコンをクリックします。

3. 図5-4に示すように、新しいロールの名前を入力し、「ロールの追加」をクリックします。

図5-4 「組織」 - 「ロール」: 「ロールの追加」

プロジェクト・ロールを削除するには:

1. プロジェクトのようこそページにアクセスします。

2. 「組織」を展開します。

3. 削除するロールを選択し、「削除」アイコンをクリックします。

5.5.2 ビジネス・パラメータの定義

ビジネス・パラメータは、ビジネス固有の定数の設定に使用され、組織単位についてオーバーライドできます。組織単位のオーバーライド値がない場合、返される値はデフォルト値です。

ビジネス・パラメータを作成するには:

1. プロジェクトのようこそページにアクセスします。

2. 「組織」をクリックし、「ビジネス・パラメータ」タブを選択します。

3. 「追加」アイコンをクリックして新しいビジネス・パラメータを作成します。

4. 新しいビジネス・パラメータの「名前」を入力します。

この名前は、スペースを含めずに大文字で入力する必要があります。

5. 新しいビジネス・パラメータの「タイプ」を選択します。

図5-5に示すように、リストから選択してください。

図5-5 「組織」 - 「ビジネス・パラメータ」

6. 「デフォルト値」を指定します。

これは、他の値が定義されていない場合にビジネス・パラメータに使用される値です。

7. 「ビジネス・パラメータの追加」をクリックします。

5.5.3 組織単位の定義

組織単位は、組織内の部や課を表します。組織単位に子の組織単位を含め、自社組織に対応した階層を作成できます。

組織単位を作成するには:

1. プロジェクトのようこそページにアクセスします。

2. 「組織」をクリックし、「組織単位」タブを選択します。

3. 図5-6に示すように、「追加」アイコンをクリックして新しい組織単位を作成します。

図5-6 「組織」 - 「組織単位」

4. 新しい組織単位の「名前」を入力します。

5. 「説明」を入力します。このフィールドはオプションです。

6. 「作成」をクリックします。

5.6 プロジェクトのプロセス・レポートの生成

プロジェクト内の各プロセスをリストし、各プロセスに関する詳細情報を表示するレポートを生成できます。

- 詳細ビジネス・プロセス

- ビジネス要件

- 問題とコメント

- データ・オブジェクト

- プロセスvsデータ

- データvsプロセス

- ヒューマン・タスクvsプロセス

- サービスvsプロセス

- ユーザー・タスク

- プロセス・イメージ

- RACI (責任、説明責任あり、相談済および通知済)

プロセス・レポートを生成するには:

1. プロジェクトを開きます。

2. プロジェクト・メイン・メニューから、「プロセス・レポート」を選択します。

図5-7に示すように、「プロセス・レポート」ダイアログが表示されます。

図5-7 「プロセス・レポート」ダイアログ

3. 次のレポート詳細を選択し、「OK」をクリックします。

- レポート・タイプの選択

- ドキュメントを表示: 説明を表示する場合に選択します。

- ビジネス・プロパティの表示

- 出力ファイル・タイプの選択:

これらのレポートの詳細は、「BPMプロジェクトのドキュメント化」を参照してください。

6 BPMプロジェクトのドキュメント化

Oracle Business Process Composerでは、プロジェクト・レベル、プロセス・レベルおよびアクティビティ・レベルからドキュメントが処理されます。この章では、各機能について詳しく説明します。ドキュメント・フィールドはいずれも必須ではなく、ユーザーはすべてのフィールドまたは一部のフィールドを使用できます。また、どのフィールドも使用しなくても構いません。

この章の内容は次のとおりです。

- プロジェクト・レベルのドキュメントの理解

- プロセス・レベルのドキュメントの理解

- アクティビティ・レベルのドキュメントの理解

6.1 プロジェクト・レベルのドキュメントの理解

プロジェクト・レベルでは、プロジェクトとロールの両方の説明が使用可能です。

プロジェクトの説明は1つまたは2つの文で、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。ロールは、一般的に使用されない頭字語である場合があるため、詳細な説明を必要とすることがあります。

6.1.1 プロジェクトの説明

プロジェクトの説明は1つまたは2つの文で、類似または同一のタイトルのプロジェクトをユーザーが区別する場合に役立ちます。

説明の場所

- プロジェクトの作成時(図6-1を参照)。

図6-1 新規プロジェクトの説明

- プロジェクト内。「詳細情報」をクリックすると、説明を追加、編集または削除できます(図6-2を参照)。

図6-2 プロジェクト情報

使用される場合

ユーザーがすべてのスペースで使用可能なすべてのプロジェクトを表示すると、同じタイトルのプロジェクトが1つ以上表示されることがあります。多国籍企業では、国や部門ごとに複数の業務プロジェクトがある場合があります。プロジェクトの説明を使用すると、ユーザーは容易に適切なプロジェクトを選択して開くことができます。

使用される場所

詳細ビジネス・プロセス・レポート

また、プロジェクトの説明によって、プロジェクトに関するレポートの適切なコンテキストが提供されます。レポートは多くの場合、保存されて、Oracle Business Process Composerへのアクセス権を持たないユーザーに配信されるため、レポートが作成されたプロジェクトに関する詳細情報を提供することが重要です。

6.1.2 ロールの説明

ロールは、一般的に使用されない頭字語である場合があるため、詳細な説明を必要とすることがあります。

説明の場所

ナレーティブ・ビュー内のロールの下。説明を追加、編集または削除できます。

使用される場合

ロールの説明は、ロールに詳細な説明が必要な場合に使用されます。

使用される場所

「詳細ビジネス・プロセス・レポート」の「参加者」表(図6-3を参照)

図6-3 「詳細ビジネス・プロセス・レポート」 - 「参加者」

6.2 プロセス・レベルのドキュメントの理解

プロセス・レベルでは、説明、リンク、要件およびノートを含む複数の種類のドキュメントが使用可能です。

使用可能なプロセス・レベルのドキュメントは次のとおりです。

- プロセスの説明

- プロセス・ドキュメント

- プロセス・リンク

- 要件

- プロセス・ノート

6.2.1 プロセスの説明

プロジェクトの説明と同様に、プロセスの説明は、タイトルに1つまたは2つの文を拡張したものです。説明を使用すると、類似するタイトルのプロセスを明確に区別できます。

説明の場所

- プロセスの作成時(図6-4を参照)

図6-4 新規プロセスの説明

- 「ビジネス・プロパティ」ペインの「一般」タブ(図6-5を参照)

図6-5 「ビジネス・プロパティ」 - 「一般」

- ナレーティブ・ビューのプロセス名の下(図6-6を参照)

図6-6 プロセスのナレーティブ・ビュー

使用される場合

プロセスの説明は、プロセスの作成時、「ビジネス・プロパティ」プロパティ・パネル、ナレーティブ・ビューなど、様々な場面で追加または変更できます。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

- プロセス・プロパティ・レポート

多数のプロセスを含むレポートでは、プロセスの説明によって、読者が適切なプロセスにすばやく移動できます。説明には、プロセスに含まれるものを記載できるだけでなく、別のプロセスへのポインタとともに、プロセスに含まれないものを詳しく記載することもできます。

6.2.2 プロセス・ドキュメント

プロセス・ドキュメントは、ナレーティブ・ビューまたはドキュメント・パネルでプロセスに追加できるリッチ・テキスト・ドキュメントです。ドキュメントが他の場所に存在する場合、情報が重複しないように、ユーザーはリンクを追加する必要があります。アクティビティ・ドキュメントや説明フィールドでドキュメントが有用な場合、ユーザーに最も役立つフィールドに追加する必要があります。

図6-8に示すように、「ドキュメント」タブの右上に「ドキュメント・タイプ」オプションが表示されます。ドロップダウン・リストを使用して、外部(「エンド・ユーザー」)と「内部」のどちらで使用するドキュメントを作成するかを選択します。ナレーティブ・ビューまたはプロセス・レポートにドキュメントを表示するには、このオプションを「エンド・ユーザー」に設定する必要があります。「内部」に設定されていることをユーザーが認識していない場合、ドキュメントが表示されないときに混乱することがあります。

ドキュメントの場所

- ナレーティブ・ビューのプロセスの説明の下(図6-7を参照)

図6-7 ナレーティブ・ビューのドキュメント

- プロパティ・ペインの「ドキュメント」タブ(図6-8を参照)

図6-8 プロセス・プロパティ - 「ドキュメント」

使用される場合

プロセスを理解するためやプロセスに従うために情報が重要な場合、または情報が他の場所に存在しない場合、ドキュメントをプロセスに追加します。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

6.2.3 プロセス・リンク

リンクの名前が一般的な場合や、別のドキュメントに対して混乱する可能性がある場合、説明を使用して詳細情報を提供します。たとえば、販売組織で使用されるチェックリストが複数ある場合、適切なチェックリストへのリンクであるかどうかをユーザーが判断するときに説明が役立ちます。

リンクの場所

「ビジネス・プロパティ」内の「リンク」タブ(図6-9を参照)

図6-9 プロセス: 「ビジネス・プロパティ」 - 「リンク」

使用される場合

リンクは、アクティビティ、プロセス、要件、アクティビティ・ドキュメントおよびプロセス・ドキュメントに追加できます。適切なドキュメントがリンクに含まれているかどうかをユーザーが容易に判断できるように、説明は、タイトルを拡張した簡単なものにする必要があります。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

6.2.4 要件

要件は、「ビジネス・プロパティ」でプロセスに追加できます。詳細な説明を追加できる2つのプレーン・テキスト・フィールド(「ノート」と「ソリューション」)があります。既存のドキュメントへのリンクを追加することもできます。

説明の場所

「ビジネス・プロパティ」内の「要件」タブ(図6-10を参照)

図6-10 プロセス: 「ビジネス・プロパティ」 - 「要件」

使用される場合

要件機能では、プロセスの要件のステータス、優先度および難易度が追跡されます。複数の要件を1つのプロセスに追加できます。さらに、日付、ステータスなどの様々な要素でそれらの要件をソートできます。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

6.2.5 プロセス・ノート

プロセス・ノートは、一時的で、リマインダとして使用されることが多い、付箋のようなものです。情報が使用されるとすぐに削除されます。

ノートの場所

図6-11に示すように、グラフィカル・ビューでパレットからプロセスにノートをドラッグできます。

図6-11 プロセス・ノート

使用される場合

ノートは、他のユーザーとコラボレーションしながらプロセスを作成または編集する場合に便利です。ノートは非常に目立ち、追加や削除も簡単に行うことができます。

使用される場所

ナレーティブ・ビューやプロセス・レポートにはノートは表示されません。

6.3 アクティビティ・レベルのドキュメントの理解

アクティビティ・レベルで使用可能なドキュメントには、説明、リンク、コメントおよびノートがあります。

使用可能なアクティビティ・レベルのドキュメントは次のとおりです。

- アクティビティの説明

- アクティビティ・リンク

- アクティビティ・ドキュメント

- アクティビティ・コメント

- アクティビティ・ノート

- 一般情報

- 問題

- RACI (責任、説明責任あり、相談済および通知済)

6.3.1 アクティビティの説明

アクティビティの説明は、アクティビティ名の簡単な拡張である必要があります。

説明の場所

アクティビティの説明は次の領域にあります。

- アクティビティのプロパティのグラフィカル・ビュー(図6-12を参照)

図6-12 アクティビティの説明(グラフィカル・ビュー)

- ナレーティブ・ビューのアクティビティ名の下(図6-13を参照)

図6-13 アクティビティの説明(ナレーティブ・ビュー)

使用される場合

アクティビティの名前は、非常に短い傾向があります。説明は、理解しやすいように名前を拡張したものです。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

- ヒューマン・タスクvsプロセス・レポート

- サービスvsプロセス・レポート

6.3.2 アクティビティ・リンク

リンクは、アクティビティ、プロセス、要件、アクティビティ・ドキュメントおよびプロセス・ドキュメントに追加できます。適切なドキュメントがリンクに含まれているかどうかをユーザーが容易に判断できるように、説明は、タイトルを拡張した簡単なものにする必要があります。

リンクの場所

「ビジネス・プロパティ」内の「リンク」タブ(図6-14を参照)

図6-14 アクティビティ・リンク

使用される場合

お客様は多くの場合、プロセスから参照できる既存のドキュメントを多数保存しています。複数のリンクを1つのアクティビティに追加でき、これらのリンクはプロセス・レポートでアクティブになります。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

6.3.3 アクティビティ・ドキュメント

アクティビティ・ドキュメントは、ナレーティブ・ビューまたはドキュメント・パネルでアクティビティに追加できるリッチ・テキスト・ドキュメントです。ドキュメントが他の場所に存在する場合、情報が重複しないように、ユーザーはリンクを追加する必要があります。説明フィールドやコメントなど、他の場所でドキュメントが有用な場合、そこにドキュメントを追加する必要があります。つまり、ユーザーに最も役立つ場所に追加します。

図6-8に示すように、「ドキュメント」タブの右上に「ドキュメント・タイプ」オプションが表示されます。ドロップダウン・リストを使用して、外部(「エンド・ユーザー」)と「内部」のどちらで使用するドキュメントを作成するかを選択します。ナレーティブ・ビューまたはプロセス・レポートにドキュメントを表示するには、このオプションを「エンド・ユーザー」に設定する必要があります。「内部」に設定されていることをユーザーが認識していない場合、ドキュメントが表示されないときに混乱することがあります。

ドキュメントの場所

アクティビティ・ドキュメントは次の領域にあります。

- プロパティ・パネルの「ドキュメント」タブ(図6-15を参照)

図6-15 プロパティ・パネル: 「ドキュメント」 - アクティビティ・ドキュメント

- アクティビティにフォーカスがあるときのナレーティブ・ビュー(図6-16を参照)

図6-16 アクティビティ・ドキュメント(ナレーティブ・ビュー)

使用される場合

プロセスを理解するためやプロセスに従うために情報が重要な場合、または情報が他の場所に存在しない場合、ドキュメントをアクティビティに追加する必要があります。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

6.3.4 アクティビティ・コメント

アクティビティ・コメントは、「ビジネス・プロパティ」でアクティビティに追加できます。コメントを追加した後、編集したり削除することはできません。

コメントの場所

「ビジネス・プロパティ」パネル内の「コメント」タブ(図6-17を参照)

図6-17 アクティビティ・コメント

使用される場合

アクティビティ・コメントは、ノートと同様に簡単なものですが、ノートとは異なり、プロセスに永続的に関連付けられ、複数のプロセス・レポートに表示されます。記録を残しておくことが重要な場合にコメントを使用します。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

- 問題とコメント・レポート

6.3.5 アクティビティ・ノート

アクティビティ・ノートは、一時的で、リマインダとして使用されることが多い、付箋のようなものです。情報が使用されるとすぐに削除されます。

ノートの場所

図6-18に示すように、グラフィカル・ビューでパレットからアクティビティにノートをドラッグできます。

図6-18 アクティビティ・ノート

使用される場合

アクティビティ・ノートは、他のユーザーとコラボレーションしながらプロセスを作成または編集する場合に便利です。ノートは非常に目立ち、追加や削除も簡単に行うことができます。

使用される場所

ナレーティブ・ビューやプロセス・レポートにはノートは表示されません。

6.3.6 一般情報

「一般」タブでは、アクティビティの実行に関するコスト、組織単位、アプリケーション・システムおよび時間が追跡されます。

一般情報の場所

「ビジネス・プロパティ」パネル内の「一般」タブ(図6-19を参照)

図6-19 「ビジネス・プロパティ」 - 「一般」

使用される場合

一般情報は、プロセスの改善や検出に使用されます。アクティビティの実行コストや完了までの時間を追跡することが重要な場合があります。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

6.3.7 アクティビティの問題

重大度、優先度、解決ステータスなど、特定の問題を追跡するには、アクティビティの問題を使用する必要があります。

問題の場所

「ビジネス・プロパティ」パネル内の「問題」タブ(図6-20を参照)

図6-20 「ビジネス・プロパティ」 - 「問題」

使用される場合

問題は、プロセスの改善、テストおよび検出時に使用できます。検出された問題を追跡することが重要な場合があります。重大度、優先度、解決ステータスおよび日付で問題をソートできます。

使用される場所

- 詳細ビジネス・プロセス・レポート

- ビジネス要件レポート

- 問題とコメント・レポート

6.3.8 RACI

RACI機能では、アクティビティにおいて責任があるユーザー、説明責任があるユーザー、相談済のユーザーおよび通知済のユーザーが追跡されます。

RACIの場所

「ビジネス・プロパティ」パネル内の「RACI」タブ(図6-21を参照)

図6-21 「ビジネス・プロパティ」 - 「RACI」

使用される場合

RACIデータは、適切なロールが確実にアクティビティに含まれるように、プロセスの改善、テストおよび検出時に使用できます。

使用される場所

RACIレポート

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

この部では、Oracle Business Process Composerを使用してビジネス・プロセスをモデリングする方法について説明します。ここではアプリケーションの全般的な概要を示します。

この部は、次の章で構成されています。

- ビジネス・プロセスの作成および使用

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

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

7 ビジネス・プロセスの作成および使用

この章では、Oracle Business Process Management (Oracle BPM)でビジネス・プロセスを作成および使用する方法について説明します。ビジネス・プロセスの全般的な概要を紹介するとともに、プロセス・エディタ・ウィンドウと、プロセスを作成して使用する手順について説明します。

Business Process Model and Notation (BPMN) 2.0を使用したビジネス・プロセスの設計については、「BPMNフロー・オブジェクト・リファレンス」を参照してください。

この章の内容は次のとおりです。

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

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

- ナレーティブ・ビューの概要

- ナレーティブ・ビューの使用

- プロセス・エディタのグラフィカル・ビューの概要

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

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

- フロー要素の使用

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

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

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

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

7.1 ビジネス・プロセスの概要

ビジネス・プロセスとは、明確に定義された結果が実行後に発生するような一連のタスクです。ビジネス・プロセスは、Oracle BPM Suiteで作成されたプロセスベースのビジネス・アプリケーションのコア・コンポーネントです。

ビジネス・アプリケーションのすべてのリソースを含む上位レベルのラッパーがプロジェクトであり、アプリケーションの動作はプロジェクト内のプロセスによって決定されます。ビジネス・プロセス内では、BPMNフロー・オブジェクトでフローおよび動作を定義します。

ビジネス・プロセスは一般にプロセス・アナリストによって作成されます。プロセス・アナリストは、対処が必要なビジネス要件を特定して、対応するプロセス・フローを定義します。

表7-1では、プロセスが他のビジネス・プロセスと関連してどのように動作するかがプロセスのタイプによってどのように決まるのかを説明します。

注意:

デフォルトでは、新規ビジネス・プロセスは同期です。新規プロセスを作成した後は、そのプロセスを編集してタイプを変更できます。

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

プロセス・タイプ

説明

同期サービス

同期サービスは、別のプロセスまたはサービスから同期的に起動されるビジネス・プロセスのタイプです。同期サービスでは、コール側プロセスは、起動されたプロセスが完了するまで待ってから続行します。

非同期サービス

非同期サービスは、別のプロセスまたはサービスから非同期的に起動されるビジネス・プロセスのタイプです。非同期サービスでは、コール側プロセスは、起動されたプロセスが完了するまで待たずに続行します。

手動プロセス

手動プロセスは、ユーザー相互作用を必要とするプロセスです。手動プロセスは、None開始イベントで始まる必要があります。それらはNone終了イベントで終了する必要があります。

再使用可能なプロセス(再使用可能なサブプロセス)

再使用可能なプロセスは、BPMNプロセスがコール可能なプロセスです。BPMN用語では、多くの場合、再使用可能なプロセスは、再使用可能なサブプロセスと呼ばれます。Oracle BPMでサポートされている様々なサブプロセスのタイプの詳細は、Oracle BPMでのサブプロセスの使用を参照してください。

ビジネス・プロセス内で再使用可能なサブプロセスをコールするには、コール・アクティビティを使用します。再使用可能なプロセスのコールの詳細は、コール・アクティビティの概要を参照してください。

7.2 プロジェクト・ツールバーの概要

プロセス・エディタは、BPMプロジェクトのようこそページのタブとして開きます。そのため、プロセス・エディタがナレーティブ・ビューで開いたときもグラフィカル・ビューで開いたときも、プロジェクト・ツールバーは表示されたままです。

プロジェクト・ツールバーに表示される機能は、プロセスの編集時に使用できます。

プロジェクト・ツールバーの各オプションの詳細は、「プロジェクト・ツールバーの概要」を参照してください。

7.3 ナレーティブ・ビューの概要

ナレーティブ・ビューでは、グラフィカル・アイコンをパレットにドラッグするのではなく、テキストを入力することによってビジネス・プロセスを作成できます。これは、BPMNに精通していないプロセス設計者に便利です。

アイテムをテキストとしてプロセスに追加すると、Oracle Business Process Composerによって、基になる適切なBPMNに自動的に変換されます。グラフィカル・ビューの自動レイアウト機能によって、BPMNプロセスのフォーマットが自動的に設定されます。

どちらのビューにも同じ情報が表示されるため、必要に応じて両方のビューで同じプロセスを編集できます。一方のペインでプロセスを編集すると、他方のペインでも自動的に更新されます。

ナレーティブ・ビューは、ビジネス・プロセスを作成および編集する際の代替方法を提供します。ただし、グラフィカル・エディタに代わるものではありません。次のBPMN要素はナレーティブ・ビューに表示されますが、編集することはできません。

- スクリプト・タスク

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

次の要素はナレーティブ・ビューには表示されません。

- ノート

- 測定

7.4 ナレーティブ・ビューの使用

ナレーティブ・ビューを使用して、プロセスでアクティビティ、ロールおよびドキュメントを管理します。

図7-1に示すように、プロセス・エディタの下部にある「ナレーティブ」タブをクリックして、ビジネス・プロセスのナレーティブ・ビューにアクセスします。

図7-1 プロセス・エディタ - ナレーティブ・ビュー

ナレーティブ・ビューを使用して、次のタスクを実行できます。

- 新しいアクティビティを追加する場所のすぐ上にあるアクティビティ内の「追加」 (+)アイコンをクリックして、プロセスにアクティビティを追加。必要に応じて、アクティビティに関するドキュメントを追加できます。

- 「削除」アイコンをクリックして削除を確認することで、選択したアクティビティを削除します。

- プロセス・フロー内の別の位置へのアクティビティの移動

- 「ロールの変更」ドロップ・ダウンをクリックして、新しいロールを追加するか現在のロールを別のロールに変更することで、選択したアクティビティにロールを割当て。

- ドキュメントの表示および編集

7.4.1 アクティビティの移動

アクティビティを移動するには:

1. 移動するアクティビティを選択します。

2. 「移動」()アイコンをクリックします。

アクティビティの左側に「アクティビティをドロップ」()が表示されます。

3. 元のアクティビティを移動する場所にある「アクティビティをドロップ」アイコンをクリックします。

7.4.2 ナレーティブ・ビュー・オプション

ナレーティブ・ビューの表示方法をカスタマイズできます。

図7-2に示すように、ビューの右上隅にある「すべてのドキュメントの拡張」チェック・ボックスを選択して、すべてのドキュメントを表示します。

図7-2に示すように、ビューの右上隅にある「アイコンの表示」チェック・ボックスを選択して、アクティビティをアイコンで表示します。

図7-2 プロセス・エディタ: ナレーティブ・ビュー - オプション

7.5 プロセス・エディタのグラフィカル・ビューの概要

プロセス・エディタを使用すると、BPMNプロセスをすばやく作成および編集できます。

図7-3に示すように、プロセス・エディタはBusiness Process Composerアプリケーションにタブ付きペインとして表示され、4つの領域に分かれています。

図7-3 プロセス・エディタ - グラフィカル・ビュー

- プロセス・エディタ・ツールバー: プロセスの設計に関連するメニュー・アイテムにすばやくアクセスできます。
詳細は、プロセス・エディタ・ツールバーの概要を参照してください。

- プロセス・エディタ・キャンバス: プロセス・フローを作成するための作業領域を提供します。
詳細は、「プロセス・エディタ・キャンバスの概要」を参照してください。

- BPMNコンポーネント・パレット: BPMNプロセスを構成するフロー・オブジェクト、シーケンス・フローおよびその他の要素にすばやくアクセスできます。
これらの要素は、BPMNコンポーネント・パレットからプロセス・エディタ・キャンバスにドラッグ・アンド・ドロップできます。詳細は、BPMNコンポーネント・パレットの概要を参照してください。

- ビジネス・カタログ・パレット: BPMプロジェクト内で使用可能なビジネス・カタログ要素のリストを提供します。
詳細は、ビジネス・カタログの概要を参照してください。

Business Process Composerで同じプロジェクト内にある複数のプロセスを同時に開くことができます。各プロセスはエディタ・ウィンドウ内の専用タブで開きます。

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

プロセス・エディタ・ウィンドウにはツールバーがあり、このツールバーを使用してBusiness Process Composerの機能(表7-2を参照)にアクセスできます。

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

メニュー・アイテム

説明

元に戻す

プロセスに対して実行した直前の変更を元に戻します。

再実行

直前に実行した元に戻すアクションを再実行します。

切取り

選択したアイテムを切り取り、クリップボードにコピーします。

コピー

選択したアイテムをクリップボードにコピーします。

貼付け

現在クリップボードにあるアイテムを貼り付けます。

削除

選択した要素をプロセスから削除します。

自動レイアウト

プロセスのレイアウトを自動的に調整します。

グリッド表示の切替え

プロセス・エディタ・ウィンドウのグリッドを表示または非表示にします。

グリッドにスナップ

プロセス内のフロー・オブジェクトを最も近いグリッド軸に基づいて中央に配置します。既存のフロー・オブジェクトは、自動的に中央に配置されます。新しいフロー・オブジェクトは、追加されるときに自動的に中央に配置されます。

このメニュー・アイテムは、グリッド表示の切替えが有効になっている場合にのみアクティブになります。

印刷

ブラウザのプリンタの設定を使用してプロセスを印刷します。

会話の編集

会話エディタを開きます。このエディタを使用して、入力および出力データ・オブジェクトを決定するインタフェースを定義します。

プロセス使用方法の検索

現在のプロセスが、現在のプロジェクト内の他のどのプロセスによって呼び出されるかを確認します。

コラボレーションの表示

プロセス・エディタをコラボレーション・ビューに切り替えます。

データ・オブジェクト

データ・オブジェクト・エディタを開きます。詳細は、データ・オブジェクトの使用を参照してください。

ビジネス・インジケータ

ビジネス・インジケータ・エディタを開きます。

プレーヤ

プロセス・プレーヤを起動します。詳細は、プロセス・プレーヤの使用を参照してください。

ズーム・スライダ

プロセスにズーム・インおよびプロセスからズーム・アウトします。

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

プロセス・エディタ・キャンバスは、プロセス・エディタ・ウィンドウの中央の領域です。プロセス・エディタ・キャンバスを使用して、BPMNコンポーネント・パレットで使用可能な要素を使用してプロセスのグラフィカル表現を作成します。プロセス・エディタ・キャンバスにはプロセス・フロー以外にスイムレーンも表示されます。

スイムレーンの詳細は、「スイムレーンを使用したプロセスの整理」を参照してください。

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

BPMNコンポーネント・パレットを使用して、プロセスにフロー・オブジェクト、シーケンス・フローおよびビジネス・カタログの要素を追加します。図7-4は、コンポーネント・パレットを示しています。

図7-4 BPMプロセス・エディタ - コンポーネント・パレット

コンポーネント・パレットを使用して、アーティファクトをプロセス・エディタ・ウィンドウにドラッグ・アンド・ドロップします。

注意:

コンポーネント・パレットは、プロジェクト編集モードに切り替えるまでグレー表示されています。

コンポーネント・パレットを使用すると、BPMN要素を次のグループに分類できます:

- アクティビティ

- 対話型

- ゲートウェイ

- 捕捉イベント

- スロー・イベント

- ノート

- 測定

Business Process Composerには、フロー・オブジェクトをプロセスに追加するために、次の2つのモードが用意されています:

- 単一オブジェクト・モード: フロー・オブジェクトを一度に1つずつ追加できます。
このモードでは、図7-5に示すように、青い円内に「1」と表示されます。

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

- 複数オブジェクト・モード: 同じタイプの複数のフロー・オブジェクトをすばやく追加できます。
このモードでは、青い円内に「N」と表示されます。

図7-5に表示されている青い円をクリックすると、2つの入力モードを切り替えることができます。

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

このパネルを使用して、再使用可能なサービスをビジネス・カタログから選択します。図7-6は、ビジネス・カタログを示しています。

図7-6 BPMプロセス・エディタ - ビジネス・カタログ

これらのサービスは、次のようにグループ化されます。

- サービス

- 外部参照

- ヒューマン・タスク

- ビジネス・ルール

注意:

Oracle Business Process Composerを使用して外部参照を作成することはできません。外部参照を作成するには、Oracle BPM Studioを使用します。

参照を含むプロジェクトは、Oracle BPMリポジトリを使用して共有するか、プロジェクト・テンプレートの一部として含めます。

Oracle Business Process Composerを使用して、Webサービスに基づくサービスを作成できます。ただし、アダプタに基づくその他のサービスやその他のサービス指向アーキテクチャ(SOA)コンポーネントはOracle BPM Studioで作成する必要があります。

Oracle Business Process Composerを使用して、ビジネス・カタログから対応するフロー・オブジェクトに再利用可能なサービスを割り当てることができます。

詳細は、ビジネス・カタログを参照してください。

7.6 ビジネス・プロセスの使用

Oracle BPMプロジェクト内にビジネス・プロセスを作成します。1つ以上のプロセスをプロジェクトに追加できます。

次の各項では、ビジネス・プロセスを作成したり削除する方法、および開く方法について説明します。

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

新しいビジネス・プロセスを作成するには

1. プロジェクトのようこそページに移動します。

2. 共有プロジェクトを編集する場合は、現在そのプロジェクトを編集中であることを確認します。

3. 「プロセス」をクリックし、次に「新規プロセス」をクリックします。

4. プロセスの名前を入力し、「作成」をクリックします。

新規プロセスがプロセスのリストに表示されます。

新しいビジネス・プロセスを作成すると、そのプロセスには、デフォルト・シーケンス・フローで接続された開始イベントと終了イベントが含まれます。デフォルトでは、開始イベントと終了イベントはいずれもNoneイベントです。ビジネス・プロセスの要件にあわせてタイプを変更できます。

詳細は、プロセスの開始点および終了点の定義を参照してください。

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

Oracle BPMプロジェクトを開いた後、このプロジェクトに含まれる任意のプロセスを開くことができます。

ビジネス・プロセスを開くには

1. プロジェクトのようこそページに移動します。

2. 「プロセス」をクリックします。

3. 開くプロセスの名前をクリックします。

プロセス・エディタ・ウィンドウでプロセスが開きます。プロセスを編集する前に、編集モードであることを確認する必要があります。

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

プロジェクトからプロセスを削除できます。

プロジェクトのビジネス・プロセスを削除するには:

1. プロジェクトを開きます。

2. プロジェクトのようこそページに移動します。

3. 「プロセス」をクリックします。

4. 削除するプロセスの名前にカーソルを移動します。

5. 「削除」アイコンをクリックし、「OK」をクリックします。

7.6.3.1 ビジネス・プロセスの削除に関する必知事項

プロセスを削除するときは、削除するプロセスへの参照がプロジェクト内の他の部分に残っていないことを確認してください。たとえば、削除するプロセスが別のプロセスからメッセージ・スロー・イベントを通じて起動されていた場合は、削除するプロセスを参照しないように呼び出し側プロセスを再構成したことを確認する必要があります。削除するプロセスへの参照が残っている場合は、検証時にエラーが表示されます。

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

プロセスの整理にはスイムレーンが役立ちます。これはプロセス・エディタに水平方向に描かれた線です。すべてのフロー・オブジェクトは、スイムレーン内に配置する必要があります。

ロールはスイムレーンに割り当てられ、ロールによって、プロセスベースのアプリケーションの作業を実行するビジネス組織のメンバーが決まります。

7.7.1 ロールの概要

ビジネス・プロセスの設計においては、ユーザー相互作用を必要とする各タスクを完了させる責任を負うユーザーおよびロールを決定することが重要となります。プロセスにおいて、ロールは、ビジネス・プロセス内で実行される作業の実行責任者を決定するために使用されます。ロールを使用すると、組織内の職務や責任を表す機能上のカテゴリを定義できます。

また、プロセスに定義されたロールは、論理ロールとも呼ばれます。Oracle BPMプロジェクトがランタイム環境にデプロイされると、これらのロールは、実際の組織におけるユーザーに対応するLDAPロールにマップされます。

ロールは水平のスイムレーンに割り当てられます。スイムレーンには、プロセス内のアクティビティおよびタスクを完了する責任を負うロールが表示されます。Oracle Business Process Composerを使用すると、プロセス内で必要なロールを作成および編集して、それらをスイムレーンに割り当てることができます。

Oracle BPM StudioまたはOracle BPM Workspaceでは、LDAPを使用して特定のユーザーにロールをマップすることもできます。また、Oracle BPM Studioでは、組織単位、カレンダおよび休日を使用して、より堅牢な組織モデルを作成できます。

7.7.1.1 コンテキスト内のロール

プロセス・アナリストは、ビジネス・プロセスを設計するときにどのようなロールが必要となるかを決定します。

図7-7に示されているLoanProcessの例では、次のロールが定義されます。

図7-7 BPMプロセス・エディタ - スイムレーン

- ローン担当者: ローン担当者は、ローン申請を作成してローン・プロセッサに転送します。

- ローン・プロセッサ: ローン・プロセッサは、ローン申請を検討し、ローン申請の信用履歴を確認してから、承認のために引受者に申請を転送します。

- 引受者: このロールは、ローン申請を検討して承認するユーザーを表します。
さらに、ローンが承認された場合、そのローンの金額を支出します。

7.7.2 スイムレーンの概要

スイムレーンは、プロセス・エディタに水平方向に描かれた線です。すべてのフロー・オブジェクトは、スイムレーン内に配置する必要があります。

スイムレーンは、プロセス内に定義されたロールに基づいてフロー・オブジェクトをグループ化するためにも使用します。ユーザー・タスクを含むスイムレーンには、ロールが割り当てられている必要があります。スイムレーンには、プロセス内の各フロー・オブジェクトの実行を担当するロールが視覚的に表示されます。さらに、同じロールに複数のスイムレーンを割り当てることもできます。

同じプロセスの様々な部分で同一のロールを使用する必要がある場合は、スイムレーンを使用するとプロセスがわかりやすくなります。

新しいプロセスを作成すると、Oracle BPM StudioおよびOracle Business Process Composerによってデフォルトのスイムレーンが作成されます。必要に応じて、プロセスに追加のスイムレーンを追加できます。プロセスに対話型アクティビティや手動アクティビティを追加する場合は、スイムレーンにロールを割り当てる必要があります。

注意:

プロセスの開始イベントまたは終了イベントのみを含むスイムレーンは削除できません。

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

図7-8は、複数のスイムレーンにスプリットされた単純なプロセスを示しています。この例では、営業担当者ロールが最初のスイムレーンに割り当てられています。このスイムレーン内には見積入力ユーザー・タスクが表示されているため、営業担当者ロールに割り当てられているプロセス参加者は、このタスクの実行を担当します。

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

実際のビジネス・プロセスでは、スイムレーンの組合せ、およびスイムレーン内のフロー・オブジェクトが複雑になる場合があります。

7.7.3 プロセスへのスイムレーンの追加

BPMNプロセスにスイムレーンを追加できます。

プロセスに新しいスイムレーンを追加するには:

1. プロセス・エディタ・キャンバスの白い領域を右クリックします。

2. 「レーンの追加」を選択します。

新しいスイムレーンが作成されます。デフォルトでは、スイムレーンにロールは割り当てられていません。ロールを追加するには、スイムレーンのプロパティを編集します。

7.7.4 プロセスへのスイムレーンおよびフロー・オブジェクトの追加

BPMNプロセスに新しいスイムレーンおよびフロー・オブジェクトを追加できます。

新しいフロー・オブジェクトを追加してプロセスに新しいスイムレーンを追加するには:

1. スイムレーンを追加するプロセスを開きます。

2. コンポーネント・パレットからフロー・オブジェクトを選択し、それを既存のスイムレーンの下のプロセス・キャンバスにドラッグ・アンド・ドロップします。

新しいスイムレーンが作成されます。デフォルトでは、スイムレーンにロールは割り当てられていません。ロールを追加するには、スイムレーンのプロパティを編集します。

7.7.5 スイムレーンのプロパティを編集する方法

スイムレーンのプロパティはプロセス・エディタで編集できます。

スイムレーンのプロパティを編集するには:

1. スイムレーンのロール名にカーソルを移動します。

2. 「編集」アイコンをクリックします。

3. 既存のロールを使用するか、または新しいロールを作成するかを決定します:
既存のロールをスイムレーンに割り当てるには:

a. 「使用」ボタンをクリックします。

b. ドロップダウン・リストからロールを選択します。

新しいロールをスイムレーンに割り当てるには:

a. 「作成」ボタンをクリックします。

b. テキスト・フィールドに新しいロールの名前を入力します。

4. (オプション)カスタム・アイコンをスイムレーンに追加するには、「変更」をクリックし、使用するアイコンを選択します。

5. (オプション)スイムレーンの背景色を変更するには:

a. 「実装」をクリックします。

b. 実装プロパティ・エディタで、色のRGB値を入力するか、カラー・パレットから色を選択します。

c. 「変更の適用」をクリックします。

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

Oracle BPM Studioでは、組織単位、カレンダおよび休日に基づいて、複雑な組織モデル内にロールを統合できます。

Oracle Business Process Composerでプロジェクトを編集する際には、そのプロジェクト内に定義されたロールにアクセスできます。ただし、プロジェクト内に定義された組織情報は表示または編集できません。

また、Oracle Business Process Composerを使用して新しいロールを作成することもできます。これらのロールは、プロジェクトの全体的な組織情報の一部として統合されます。

7.8 フロー要素の使用

この項では、プロセス・エディタを使用してプロセスにフロー要素を追加する方法の基本メカニズムについて説明します。

BPMN 2.0を使用したビジネス・プロセス設計の詳細は、BPMNフロー・オブジェクト・リファレンスを参照してください。

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

プロセスにフロー・オブジェクトを追加するには、コンポーネント・パレットからプロセス・エディタ・キャンバスにフロー・オブジェクトをドラッグします。

コンポーネント・パレットからフロー要素を追加するには:

1. フロー要素を追加するプロセスを開きます。

2. 編集モードであることを確認します。

3. コンポーネント・パレットで、追加するフロー・オブジェクトのタイプをダブルクリックします。

4. 使用するオブジェクト入力モードを選択します。

単一のフロー・オブジェクトを入力するか、または同じタイプの複数のフロー・オブジェクトを入力するかを選択できます。詳細は、BPMNコンポーネント・パレットの概要を参照してください。

5. 追加するフロー・オブジェクトをクリックし、このフロー・オブジェクトを配置するプロセス・エディタ・キャンバス内の領域にドラッグします。

カーソルに、フロー・オブジェクトのタイプに関連付けられているアイコンが表示されます。

6. フロー・オブジェクトを追加するプロセス内のポイントにカーソルを置いてから、マウスをクリックします。

複数オブジェクト・モードで作業している場合は、引き続きプロセス・エディタ・キャンバス内をクリックして、同じタイプのフロー・オブジェクトを追加できます。

注意:

シーケンス・フローにカーソルを置くと、Oracle Business Process Composerによって、新しいフロー・オブジェクトの受信シーケンス・フローと送信シーケンス・フローが自動的に作成されます。

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

プロセス・エディタ・ウィンドウ内で、フロー・オブジェクトの切取り、コピーまたは削除を行うことができます。

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

1. 切取り、コピーまたは削除を行うフロー・オブジェクトまたはシーケンス・フローを選択します。

2. プロセス・エディタ・ツールバーから「切取り」、「コピー」または「削除」を選択します。

注意:

受信シーケンス・フローおよび送信シーケンス・フローを含むフロー・オブジェクトの切取りまたは削除を行うと、Oracle Business Process Composerによって、そのフロー・オブジェクトが送信シーケンス・フローに自動的に接続されます。ただし、周囲のフロー・オブジェクトを手動で再構成する必要が生じる場合があります。

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

事前に切取りまたはコピーしたフロー・オブジェクトを貼り付けることができます。

プロセスにフロー・オブジェクトを貼り付けるには:

1. フロー・オブジェクトを貼り付けるプロセス・エディタ・キャンバスの領域で右クリックします。

2. 「貼付け」を選択します。

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

シーケンス・フローは、プロセス内で処理が実行される順序(シーケンス)を定義します。詳細は、シーケンス・フローを使用したプロセスの制御を参照してください。

プロセスにシーケンス・フローを追加するには:

1. プロセスを開きます。

2. 送信シーケンス・フローを作成するフロー・オブジェクトにカーソルを移動します。

3. 「シーケンス・フローの追加」ボタンをクリックします。

このボタンは、フロー・オブジェクトに送信シーケンス・フローが含まれていない場合のみ表示されます。

4. 接続するフロー・オブジェクトにカーソルを移動してクリックします。

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

BPMNプロセスからシーケンス・フローを削除できます。

プロセスからシーケンス・フローを削除するには:

1. プロセス・エディタ・キャンバスで、削除するシーケンス・フローを右クリックします。

2. 「削除」を選択します。

7.8.5.1 シーケンス・フローの削除に関する必知事項

プロセスからシーケンス・フローを削除すると、そのシーケンス・フローに対して構成した実装の詳細はすべて失われます。

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

シーケンス・フローの基本プロパティを編集できます。

フロー・オブジェクトのプロパティを編集するには:

1. フロー・オブジェクトを右クリックします。

2. 「プロパティ」を選択します。

3. フロー・オブジェクトのプロパティを編集します。

4. プロパティの編集が終了したら、「プロパティ」ペインの右上隅にある下向き矢印をクリックします。

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

Oracle Business Process Composerを使用して、フロー・オブジェクトのデフォルトのBPMNアイコンと置き換えるカスタム・アイコンを選択します。Oracle BPMで提供されているカスタム・アイコンのリストから選択できます。

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

1. フロー・オブジェクトを右クリックして、「プロパティ」を選択します。

2. 「変更」をクリックし、使用するアイコンを選択します。

3. 「プロパティ」ウィンドウの外側をクリックすると、変更内容が適用されます。

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

次の各項では、Oracle Business Process Composerでのビジネス・カタログの使用方法について説明します。

ビジネス・カタログの詳細は、ビジネス・カタログを参照してください。

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

Oracle Business Process Composerを使用して、ビジネス・カタログのコンポーネントをフロー・オブジェクトに割り当てることにより、フロー・オブジェクトの実装の詳細を構成します。

ビジネス・カタログのコンポーネントは、次のフロー・オブジェクトに割り当てることができます。

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

- サービス・タスク

- ユーザー・タスク

- メッセージ・イベントと受信タスク

ビジネス・カタログのコンポーネントをフロー・オブジェクトに割り当てるには:

1. プロセスを開きます。

2. ビジネス・カタログのコンポーネントを追加するフロー・オブジェクトを右クリックします。

3. 「実装」を選択します。

4. 「参照」を選択し、リストからビジネス・カタログのコンポーネントを選択します。

5. 「OK」をクリックします。

6. 「変更の適用」をクリックします。

注意:

フロー・オブジェクトの実装に対する変更内容を保存するには、「変更の適用」をクリックする必要があります。プロジェクトを保存しても、「変更の適用」をクリックしないと実装の変更内容は保存されません。

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

ビジネス・カタログ内に新しいヒューマン・タスクを作成できます。詳細は、ヒューマン・タスクの使用を参照してください。

ヒューマン・タスクを作成した後は、そのヒューマン・タスクをプロセス内のユーザー・タスクに割り当てることができます。BPMNプロセス内のヒューマン・タスクの使用方法については、プロセスへのユーザー相互作用の追加を参照してください。

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

Oracle BPMを使用して、ドラフト・プロセスを作成およびデプロイできます。ドラフト・プロセスには、実装が定義されていないフロー・オブジェクトが1つ以上あります。ドラフト・プロセスをデプロイすると、プロセス内で完了している部分をテストできるため、すべてのフロー・オブジェクトが実装されるのを待機する必要がありません。

ドラフト・プロセスを作成するには、プロセス内の1つ以上のフロー・オブジェクトをドラフトとしてマークします。ただし、ドラフト・プロセスをデプロイするには、それらが有効である必要があります。

フロー・オブジェクトをドラフトとしてマークした場合、そのフロー・オブジェクトのデータ・アソシエーションは構成できません。すでにデータ・アソシエーションを構成済のフロー・オブジェクトをドラフトとしてマークすると、データ・アソシエーションは失われます。

ドラフト・フロー・オブジェクトの実装の詳細を定義できます。ただし、これは必須ではありません。ドラフトのフロー・オブジェクトに実装が定義されていなくても、プロジェクトの検証時にエラーは発生しません。

ドラフトのフロー・オブジェクトが含まれるプロジェクトをデプロイする場合、それらのフロー・オブジェクトの実装の詳細は無視されます。たとえば、ドラフトとしてマークされたユーザー・タスクがプロセスに含まれている場合、ランタイム・エンジンは関連付けられたヒューマン・タスクのインスタンスを作成しません。

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

フロー・オブジェクトをドラフトとしてマークするには、図7-9に示すように、実装プロパティを編集します。

図7-9 アクティビティのプロパティ - 「実装」

フロー・オブジェクトをドラフトとしてマークするには:

1. プロセスを開きます。

2. フロー・オブジェクトを右クリックし、「実装」を選択します。

3. 「ドラフト」の横のチェック・ボックスを選択します。

4. 「変更の適用」をクリックします。

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

ドキュメント・エディタを使用して、プロセスのドキュメントを作成できます。プロセス全体のドキュメント、およびプロセス内の個々のフロー・オブジェクトのドキュメントを追加できます。

Oracle BPMを使用して、2つの異なるタイプのドキュメントを作成できます。

- エンド・ユーザー: プロセス・ワークスペースを使用したプロセスベースのアプリケーションのエンド・ユーザーが表示可能なドキュメント。

- 内部(ユースケース): ビジネス・プロセスをコラボレーションしていたり、後で改訂を行う可能性があるプロセス・アナリストおよび開発者向けのドキュメント。
プロセス内のアクティビティ、イベントおよびゲートウェイごとにユースケース・ドキュメントを定義できます。

注意:

シーケンス・フローまたは測定マークのドキュメントは作成できません。

プロセスのドキュメント化の詳細は、「プロセス・レベルのドキュメントの理解」および「アクティビティ・レベルのドキュメントの理解」を参照してください。

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

Oracle Business Process Composerを使用して、他のプログラムで作成された外部プロセス・モデルをインポートおよびエクスポートします。

BPMプロセス・モデル・コンバータ・ウィザードを使用して外部プロセス・モデルをインポートし、BPMNに変換します。

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

BPMプロセス・モデル・コンバータ・ウィザードを使用して外部プロセス・モデルをインポートし、BPMNに変換します。図7-10に示すように、Oracle BPMでは、次のフォーマットのプロセス・モデルのインポートおよび変換がサポートされています。

- Oracle Tutor (docx)

- Visio (vdx)

- Oracle Workflow (wft)

- BPMN 2.0 (bpmn)

- XPDL (xpdl)

図7-10 BPMプロセス・モデル・コンバータ・ウィザード

VisioおよびXPDLのプロセスを正確に変換するには、変換前にこれらのプロセスの変更が必要な場合があります。詳細は、「Oracle BPMにインポートするためのプロセスの準備」を参照してください。

注意:

元のファイルにBPMNでサポートされていないプロパティおよびアーティファクトが含まれている場合は、サポートされていない要素は変換されず、BPMNの最終プロセスから省略されます。

たとえば、元のファイルの標準アクティビティにループ特性が含まれている場合、これはOracle BPMではサポートされていないため、変換後のBPMNプロセスにはループ特性が含まれません。

プロセス・モデルをインポートするには:

1. メイン・メニューから、「インポート」、「モデルのインポート」の順に選択して、BPMプロセス・モデル・コンバータ・ウィザードを開きます。

ウィザードのようこそページが表示されます。「次へ」をクリックします。

2. ローカル・ファイル・システムで、ファイルのフォーマット・タイプを強調表示し、インポートするファイルを参照します。「次へ」をクリックします。

3. VisioファイルまたはXPDLファイルをインポートする場合は、次のいずれかを選択します。

- 各プールから個別のモデルを作成

- プールを1つのモデルにマージ

このダイアログは、元のファイルに複数のプールが含まれていない場合でも表示されます。

4. 「終了」をクリックします。

新しく作成されたBPMNプロセスは、プロジェクトのようこそページから表示できます。

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

この章では、Oracle Business Process Composerを使用して、ビジネス・プロセスのパフォーマンスを向上するためのシミュレーションを実行する方法について説明します。シミュレーション・モデルおよびシミュレーション定義を作成する方法について説明します。また、シミュレーションを実行し、その結果を分析する方法についても説明します。

この章の内容は次のとおりです。

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

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

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

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

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

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

8.1 シミュレーションの概要

Oracle Business Process Management (Oracle BPM)には、Business Process Model and Notation (BPMN)プロセスの動作およびパフォーマンスをシミュレートするための機能が用意されています。プロセス設計者は、Oracle Business Process Composerを使用して、設計フェーズ中にシミュレーションを実行できます。

シミュレーションを作成して構成した後、Oracle Business Process Composerで実行し、定義したリソース割当てを使用してプロセスの効率を測定します。シミュレーションを使用して、次のことができます。

- 特定のプロセスに対して複数のシミュレーション・モデルを定義し、様々な条件を分析します。

- 複数プロセスのシミュレーションを実行して、個々のビジネス・プロセス内の動作が参加者などの共有リソースにどのような影響を及ぼす可能性があるかを把握します。

注意:

Oracle Business Process Composerでは、Oracle Business Process Composerを使用して定義したテスト・データに基づくシミュレーションのみを実行できます。実際のデータでのシミュレーションは、Oracle BPM Studioを使用して実行できます。

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

シミュレーションを実行する前に、プロジェクトのシミュレーション動作とシミュレーションに含めるプロセスを定義する必要があります。シミュレーションを定義するには、BPMプロジェクトに次のものを作成して構成する必要があります。

- シミュレーション定義
シミュレーション定義を使用して、特定のシナリオに対するプロセスとリソースを定義します。シミュレーション定義では、プロセスに関連付けるシミュレーション・モデルを選択することで、シミュレーションに含まれるプロセスを指定します。プロセスに対して、複数のシミュレーション・モデルを定義することができます。プロセスに複数のシミュレーション・モデルが定義されている場合は、それらのモデルのうちの1つを選択して、シミュレーション定義で使用する必要があります。

1つのBPMプロジェクトにおいて、それぞれが独自のパラメータ定義とシミュレーション・モデルを持つ複数のシミュレーション定義を定義できます。これにより、複数のシナリオを比較できます。

- シミュレーション・モデル
シミュレーション・モデルを使用して、個々のプロセス・モデルのシミュレーション動作を定義します。各ビジネス・プロセスに複数のシミュレーション・モデルを定義できるので、様々なシナリオをシミュレートできます。

シミュレーションは、プロセス内の個々のタスクをコールしません。たとえば、シミュレーションはサービス・タスクに関連付けられているサービスを実行せず、変数に値は割り当てられず、外部リソースは更新されません。

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

シミュレーション定義とシミュレーション・モデルに対して定義される一般的なパラメータに加えて、BPMNプロセス内の開始イベントとアクティビティに対するシミュレーション・パラメータも定義できます。

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

次のパラメータは、シミュレーション定義の一般的な動作を定義します。

- シミュレーション定義: シミュレーション定義の名前を定義します。

- 期間: シミュレーションの実行期間を定義します。
この間隔は、月単位、日単位、時間単位、分単位および秒単位で指定します。

- 開始時間: シミュレーションの開始時間を定義します。
この時間はロギングにのみ使用されます。スケジュール目的では使用されません。

- シミュレーションが終了する前に実行中のインスタンスを完了: 選択すると、シミュレーションは、指定した数のインスタンスが完了したときのみ終了します。
これを選択しない場合、シミュレーションはシミュレーション期間が経過すると停止します。その時点で完了していないインスタンスはすべて、「処理中」または「キュー」ステータスで表示されます。

シミュレーション定義を作成する際、これらのパラメータを定義する必要があります。ただし、必要に応じて、後で再定義できます。

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

次のパラメータは、シミュレーション・モデルの一般的な動作を定義します。

- モデル名: シミュレーション・モデルの名前を定義します。

- 作成するプロセス・インスタンスの数を指定してください: シミュレーション中に作成されるシミュレーション・インスタンスの数を指定します。

- 対話型タスク: 対話型タスクに使用される分布タイプを定義します。
次の分布タイプを使用できます。

- 定数

- 均一

- 指数

- 標準

これらは、プロセス内の特定のアクティビティに対して定義されている分布方法と同じになります。プロセス内の特定のアクティビティに対する分布タイプまたはその他のパラメータを変更すると、これらの値は、シミュレーション・モデルに対して定義されている一般的な値をオーバーライドします。詳細は、「アクティビティのパラメータ」を参照してください。

- 自動タスク: 自動タスクの実行時に使用可能なシミュレーション・スレッドの数を定義します。
このパラメータは、プロセス内の個々のアクティビティに対して定義できるスレッド・パラメータと同じです。詳細は、「アクティビティのパラメータ」を参照してください。

8.1.2.3 リソース・パラメータ

リソースは、組織内のシミュレーション・リソースを定義します。リソースはシミュレーション定義で定義され、含まれる各プロセス・モデル間で共有できます。これらリソースは、プロジェクト内の特定のロールと関連付けることができます。これらのパラメータを使用することにより、1人またはグループのコスト、時間および効率性を決定するリソース・プロファイルを作成できます。

次のリソース・パラメータがサポートされています。

- 名前: リソースの名前を定義します。

- 時間当たりのコスト: アクティビティの実行時における時間当たりのリソースのコストを指定します。

- 効率: アクティビティの実行時におけるリソースの効率を指定します。
このパラメータは、組織リソースの割当て方法を定義する際、最大効率ポリシーを選択した場合に使用されます。

詳細は、「アクティビティのパラメータ」を参照してください。

- 容量: 一度に実行可能なアクティビティの数を指定します。

- 可用性: リソースを利用可能な時間の割合を指定します。

- ロール: リソースに関連付けるロールを指定します。

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

開始イベントの動作とパフォーマンスをシミュレートするために、Oracle BPMは、特定の動作の可能性をシミュレートする統計モデルを使用します。Oracle BPMが使用する統計分布を選択する必要があります。

使用可能な分布タイプは、次のとおりです。

- 定数: 特定の間隔で開始イベントをトリガーします。
たとえば、1分15秒と指定すると、1分15秒ごとにイベントがトリガーされます。イベントがトリガーされるたびに、プロセスの新しいインスタンスが作成されます。

- 均一: 平均パラメータと差異パラメータによって指定される特定の範囲内の間隔で開始イベントをトリガーします。
たとえば、平均を30秒、差異を3秒と定義した場合、27秒から33秒の間隔で、等確率で開始イベントの新しいインスタンスが作成されます。

- 指数: 特定の間隔内で指定の回数、開始イベントをトリガーします。
たとえば、頻度を10とし、間隔を1時間と定義した場合、1時間当たり10回イベントがトリガーされます。イベントの分布は、指数分布に基づきます。

- 標準: 正規(ガウス)分布に基づいて開始イベントをトリガーします。
これは、ベル曲線に基づいた連続確率分布です。たとえば、平均を10分、標準偏差を2分と定義した場合、図8-1に示されている確率に従って、イベントがトリガーされます。

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

この例では、8分から12分の間隔で、62.8パーセントの確率でイベントがトリガーされます。

- 実数: 時間単位、日単位、週単位または月単位でのユーザー指定間隔に基づいて開始イベントをトリガーします。
各間隔について平均と標準偏差を定義できます。これらのパラメータを使用すると、開始イベントは正規分布で新しいプロセス・インスタンスを作成します。

たとえば、平日について平均を5分、標準偏差を1分とし、週末については平均を1時間、標準偏差を10分として、日単位で分布を指定できます。

8.1.2.5 アクティビティのパラメータ

開始イベントに加えて、シミュレーション動作またはプロセス内の対話型および自動アクティビティを決定するパラメータを定義できます。シミュレーション・エディタのタブ付きペインを使用して、これらのパラメータを定義します。図8-2は、対話型アクティビティのタブ付きペインの例を示しています。

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

アクティビティのシミュレーション・パラメータは次のとおりです。

- 期間: アクティビティの実行に必要な時間を測定するために使用する統計モデルを定義します。
使用される統計モデルは、開始イベントに対して定義される統計モデルと似ていますが、ここでは、イベントのトリガー頻度を定義するのではなく、特定のアクティビティの実行にかかる時間を定義します。

各分布タイプについては、「開始イベントのパラメータ」を参照してください。

- リソース(対話型アクティビティのみ): 同時に実行可能な対話型アクティビティの数を定義します。
シミュレーション・リソースがこのアクティビティにどのように割り当てられるかを定義できます。

- 組織リソース: シミュレーション定義内のすべてのプロセスで共有されるリソースです。
アクティビティを実行するためにシミュレーション対象リソースを選択する方法を決定するポリシーを指定する必要があります。

- 最小コスト: 低コストのリソースを最初に選択します。

- 最大効率: 最も効率的なリソースを最初に選択します。

- ランダム: 最小コストと最大効率の間でランダムに選択します。

シミュレーション定義での組織リソースの定義については、「リソースのパラメータ」を参照してください。

- 修正済リソース: 対話型アクティビティの実行に使用できるリソース数を明示的に定義します。

- スレッド(自動アクティビティにのみ使用可能): 自動アクティビティの実行に使用されるシミュレーション・スレッドの数を定義します。

- 時間当たりのコスト: アクティビティの実行に必要なコストを定義します。
このパラメータは、コストベースのレポートを作成するのに使用します。

- アクティビティ・コスト・タイプ: 基準コストとして定義するか、アクティビティを実行するために割り当てられたリソースのコストを基準コストに加算したものとして定義できます。

- アクティビティ修正済基準コスト: 修正済基準コストの金額(小数で指定)を定義します。

シミュレーション定義での組織リソースの定義については、「リソースのパラメータ」を参照してください。

- キュー情報: アクティビティのキューの最大サイズを指定します。
これは、このアクティビティで同時に待機するインスタンスの数です。この数が最大サイズに達すると、警告が発生します。

- 送信フロー: 各送信シーケンス・フローに沿ったプロセス・インスタンスの確率(小数で定義)を指定します。
定義されている送信シーケンス・フローが1つのみの場合、確率は1になり、変更できません。

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

シミュレーションを実行する前に、プロジェクトに対してシミュレーション・モデル、およびシミュレーションに含める各プロセスに対して少なくとも1つのシミュレーション定義を定義する必要があります。複数のシミュレーション定義を作成して、プロセスのパフォーマンスをテストおよび比較できます。

シミュレーションを作成して実行するには:

1. シミュレーションに含めるBPMNプロセスを作成します。

ビジネス・プロセスの作成および使用については、「ビジネス・プロセスの使用」を参照してください。

2. シミュレーション定義とシミュレーション・モデルを作成します。

プロセスの初期シミュレーション・モデルはシミュレーション定義エディタでのみ作成できます。プロセスに対して少なくとも1つのシミュレーション・モデルを作成した後、プロセスに対して追加シミュレーション・モデルを作成できます。

シミュレーション定義とシミュレーション・モデルを作成するためのシミュレーション・ウィザードの実行については、「シミュレーション定義を作成する方法」を参照してください。

3. プロセスのシミュレーション動作を定義するためのパラメータを構成します。

シミュレーション定義とシミュレーション・モデルに対して定義できる様々なパラメータについては、「シミュレーションのパラメータ」を参照してください。プロセス内のフロー・オブジェクトのパラメータを構成する方法については、「シミュレーション・モデルを編集する方法」を参照してください。

4. シミュレーションを実行します。

シミュレーション定義とシミュレーション・モデルを作成および構成した後、シミュレーションを実行できます。

詳細は、「シミュレーションの実行」を参照してください。

5. シミュレーションの結果を分析します。

シミュレーション実行後、シミュレーション結果を分析して、プロセスのパフォーマンスが向上するようにパラメータを調整できます。詳細は、「シミュレーションの結果の分析」を参照してください。

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

シミュレーション定義は、BPMプロセスのシミュレーション動作を全体的に定義します。

シミュレーション定義内で、組織リソースを含む一般的なパラメータを定義したり、シミュレーションに含めるシミュレーション・モデルを選択できます。複数のシミュレーション定義を作成して、パラメータとプロセスの様々な組合せをテストできます。

シミュレーション定義を作成したら、次の各項の説明に従って、リソースの編集やシミュレーション・モデルの追加などを行うことができます。

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

シミュレーション定義では、様々なパラメータの値を変更して、それがプロジェクトのパフォーマンスにどのように影響するかを確認できます。定義できるパラメータは次のとおりです。

- シミュレーションの開始時間と期間

- プロジェクト・シミュレーションに含めるプロセス・シミュレーション・モデル

- シミュレーションに含めるリソース

Oracle Business Process Composerには、新しいシミュレーション定義の作成と構成、新しいシミュレーション・モデルの作成と構成、および組織リソースの構成を行うためのウィザードが用意されています。

シミュレーション定義を作成および構成するには:

1. プロジェクトのようこそページから「シミュレーション」をクリックします。

2. 「新規」(+)アイコンをクリックして、シミュレーション・ウィザードを開始します。
図8-3に示すように、「新規シミュレーション」ダイアログが表示されます。

図8-3 「新規シミュレーション」ダイアログ

3. シミュレーション定義の名前、およびシミュレーション定義の期間と開始時間の値を入力します。
「シミュレーションが終了する前に実行中のインスタンスを完了」チェック・ボックスを選択します。

シミュレーション定義を作成する際、これらのパラメータを定義する必要があります。ただし、必要に応じて、後で再定義できます。

各パラメータの詳細は、「一般的なシミュレーション定義パラメータ」を参照してください。

4. 「次へ」をクリックします。

5. シミュレーション定義に含める各プロセスの新しいシミュレーション・モデルを作成します。
シミュレーション・モデルはシミュレーション定義間で共有できます。ただし、初めてシミュレーション定義を作成するときは、各プロセスに対して少なくとも1つのシミュレーション・モデルを作成する必要があります。

モデルとプロセス間の関連付けを追加するときに、シミュレーション定義エディタで新しいモデルを作成することもできます。詳細は、「シミュレーション・モデルをシミュレーション定義に関連付ける方法」を参照してください。

a. 「追加」(+)アイコンをクリックして、新しいシミュレーション・モデルを作成します。
シミュレーション・モデルでは、プロセスのシミュレーション動作を定義します。1つのプロセスに対して複数のシミュレーション・モデルを定義できますが、1つのシミュレーション・モデルのみがシミュレーション定義内の各プロセスに使用されます。

b. 図8-4に示すように、各フィールドに情報を入力します。

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

各パラメータの詳細は、「シミュレーション・モデルのパラメータ」を参照してください。

c. 「追加」をクリックします。

必要に応じて、追加のシミュレーション・モデルを作成します。シミュレーション定義に含めない場合でもプロジェクト内の各プロセスに対して少なくとも1つのシミュレーション・モデルを作成する必要があります。こうすると、後から追加のシミュレーション・モデルを作成して、他のシミュレーション定義に追加できます。

6. シミュレーション・モデルをシミュレーション定義に含める各プロセスの隣にあるチェック・ボックスを選択します。
プロセスのシミュレーション・モデルを作成していない場合は選択できません。

7. 「次へ」をクリックします。

8. 「リソースの追加」アイコンをクリックして、シミュレーション定義にリソースを追加します(オプション)。
定義できるリソース・パラメータについては、「リソースのパラメータ」を参照してください。

9. 「終了」をクリックします。

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

新しいシミュレーション定義とシミュレーション・モデルを作成すると、図8-5に示すようなシミュレーション・パネルが表示されます。

図8-5 プロジェクトのようこそページ - 「シミュレーション」: シミュレーション定義の作成後

このパネルには、プロジェクトで定義されているすべてのシミュレーション定義が表示されます。

このパネルから、シミュレーション定義を開いて次のタスクを実行できます。

- シミュレーション定義を編集します。
詳細は、「シミュレーション定義を編集する方法」を参照してください。

- シミュレーションを実行します。
詳細は、「シミュレーションを実行する方法」を参照してください。

- シミュレーション・モデルを編集します。
詳細は、「シミュレーション・モデルを編集する方法」を参照してください。

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

シミュレーション定義を作成した後、シミュレーション・パネルから編集できます。

シミュレーション定義を編集するには:

1. プロジェクトのようこそページから「シミュレーション」をクリックします。

「シミュレーション」をクリックすると、図8-5に示すようなシミュレーション・パネルが表示されます。

2. 編集するシミュレーション定義の名前をクリックします。

図8-6に示すように、シミュレーション定義エディタがタブ付きペインで表示されます。

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

このエディタから、シミュレーション定義のシミュレーション・モデルを追加または削除したり、リソースを追加したり、シミュレーションを実行できます。

3. 必要に応じて、開始時間、期間および終了時間を編集します。

各パラメータの詳細は、「一般的なシミュレーション定義パラメータ」を参照してください。

4. シミュレーション定義にリソースを追加するには、「リソースの追加」アイコンをクリックし、必要に応じて「リソース」表のフィールドを編集します。

リソースに対して定義できるパラメータの詳細は、「リソースのパラメータ」を参照してください。

8.3.4 シミュレーション・モデルをシミュレーション定義に関連付ける方法

新しいシミュレーション・モデルを作成する前に、少なくとも1つのシミュレーション定義を作成する必要があります。詳細は、「シミュレーション定義を作成する方法」を参照してください。

シミュレーション・モデルをシミュレーション定義に関連付けるには:

1. プロジェクトのようこそページから「シミュレーション」をクリックします。

2. シミュレーション・モデルを関連付けるシミュレーション定義の名前をクリックします。

新しいシミュレーション・モデルは、シミュレーション定義エディタから作成します。プロセスのシミュレーション・モデルを作成した後、複数のシミュレーション定義で共有できます。

3. 「モデル」ペインの「モデル・シミュレーションの関連付け」アイコンをクリックして、「モデルの関連付け」ダイアログを表示します。

4. 図8-7に示すように、ドロップダウン・リストからプロセスを選択し、シミュレーション・モデルを選択するか、「追加」アイコンをクリックして新しいモデルを作成します。

図8-7 シミュレーション定義へのシミュレーション・モデルの関連付け

5. 「OK」をクリックします。

6. シミュレーション・モデルがリストに表示されます。

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

シミュレーション・モデルを使用すると、個々のプロセスの動作をシミュレートできます。プロセスがどのように動作するかをシミュレーション定義の一部として定義できます。

各プロセスに複数のシミュレーション・モデルを定義し、リソース割当てとアクティビティ動作の様々な組合せに基づいて様々なシミュレーションを作成できます。

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

1つのプロセスに対して複数のシミュレーション・モデルを作成できます。シミュレーション定義ごとに異なるモデルを含めて、パラメータ設定に基づいてパフォーマンスを判断することができます。

注意:

プロセスの最初のシミュレーション・モデルを直接作成することはできません。プロセスの最初のシミュレーション・モデルは、シミュレーション定義エディタで作成する必要があります。初期シミュレーション・モデルを作成した後、次の手順で追加のモデルを作成できます。

シミュレーション定義作成時のシミュレーション・モデルの作成については、「シミュレーション定義を作成する方法」を参照してください。

プロセスに対して新しいシミュレーション・モデルを作成するには:

1. プロジェクトのようこそページのツールバーから「シミュレート」をクリックします。

2. 新しいシミュレーション・モデルを作成するプロセスを含むシミュレーション定義を選択します。

3. シミュレーション・モデルの横の編集アイコンをクリックします。

プロセスがシミュレーション・キャンバスに表示されます。このキャンバスは、プロセス・エディタ・キャンバスに似ています。プロセス・エディタ・ツールバーのドロップダウン・リストを使用して、プロセス・デザイナとシミュレーション・キャンバス間を切り替えることができます。

4. プロセス・エディタ・ツールバーで、「追加」アイコンをクリックします。

5. 名前を入力し、「作成」をクリックします。

新規シミュレーション・モデルが作成されます。新規シミュレーション定義の作成時または既存シミュレーション定義の編集時にこのモデルを使用できます。詳細は、「シミュレーション・モデルをシミュレーション定義に関連付ける方法」を参照してください。

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

シミュレーション・モデルを編集するには

1. プロジェクトのようこそページのツールバーから「シミュレート」をクリックします。

2. ドロップダウン・リストから、編集するシミュレーション・モデルが含まれているシミュレーション定義の名前を選択します。

3. 編集するシミュレーション・モデルの隣にある「編集」アイコンをクリックします。

プロセスがシミュレーション・キャンバスに表示されます。このキャンバスは、プロセス・エディタ・キャンバスに似ています。プロセス・エディタ・ツールバーのドロップダウン・リストを使用して、プロセス・デザイナとシミュレーション・キャンバスを切り替えることができます。

注意:

このドロップダウン・リストは、プロセスに対して少なくとも1つのシミュレーション・モデルが定義されている場合のみ表示されます。

4. 構成するシミュレーション情報が含まれるフロー・オブジェクトの上にマウスを重ねて、リソースを定義するフロー・オブジェクトの「編集」アイコンをクリックします。

図8-8に示すようなシミュレーション定義ペインが表示されます。

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

5. タブをクリックし、適切なシミュレーション・パラメータを編集して、フロー・オブジェクトのシミュレーション・パラメータを編集します。特定のフロー・オブジェクトに対して構成できるパラメータについては、「開始イベントのパラメータ」と「アクティビティのパラメータ」を参照してください。

6. パラメータを編集したら、ポップアップ・ウィンドウの外側をクリックして変更内容を保存します。

8.5 シミュレーションの実行

シミュレーション・モデルとシミュレーション定義を定義したら、シミュレーションを実行して、BPMプロジェクトのパフォーマンスを表示できます。

シミュレーションを実行するには、テストする各プロセスについてシミュレーション定義とシミュレーション・モデルを少なくとも1つ作成しておく必要があります。

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

シミュレーションを実行するには:

1. プロジェクトのようこそページから「シミュレーション」をクリックします。

2. 実行するシミュレーション定義の名前をクリックします。

図8-6に示すように、シミュレーション定義エディタがタブ付きペインで表示されます。

3. 右上隅に緑色の矢印として表示される「実行」アイコンをクリックします。

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

シミュレーションの結果は棒グラフで表示されます。

次のものを構成することによって、シミュレーションの結果を構成できます。

- アクティビティ

- インジケータ

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

棒グラフを使用してシミュレーションの結果を分析するには:

1. 「インジケータ」リストから、監視するインジケータのタイプを選択します。

インジケータの使用可能なタイプは、次のとおりです。

- コスト

- 時間

- 単位

2. インジケータ・リストの右側にあるリストから、監視するインジケータ・オプションを選択します。表8-1に記載されているオプションから選択してください。

表8-1 シミュレーション結果 - インジケータ・オプション

インジケータ

オプション

コスト

コスト合計

-

平均総コスト

-

リソース・ビジー・コスト

-

リソース・コスト合計

時間

サイクル時間

-

待機時間

-

作業時間

-

総作業数

-

平均処理時間

単位

キュー・サイズ

-

作業数

-

リソース使用率

-

平均パフォーマンス

-

完了済操作

-

完了済インスタンス

-

コスト合計

3. 「アクティビティのみ」チェック・ボックスを選択して、シミュレーション結果にアクティビティのみを含めます。

選択したインジケータ・オプションがグラフに表示されます。

4. 任意の棒やプロセスをクリックして、詳細なアクティビティ結果を表示します。

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

この章では、プロセス・プレーヤを使用してBusiness Process Management (BPM)プロジェクト内のビジネス・プロセスをテストする方法について説明します。

この章の内容は次のとおりです。

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

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

9.1 プロセス・プレーヤの概要

プロセス・プレーヤを使用すると、プロセスベースのビジネス・アプリケーション内のBusiness Process Model and Notation (BPMN)プロセスを効率的にテストできます。プロセス・プレーヤは、Oracle Business Process Composerからアクセス可能なランタイム環境を使用して、ビジネス・プロセスの実際の動作をエミュレートします。アプリケーションを実行すると、BPMNプロセスが視覚的に表示され、プロセス・インスタンスがプロセス・フローを通過するパスが示されます。これにより、プロセス設計者は、BPMプロジェクトを保存およびデプロイしてプロセス・ワークスペースに表示しなくても、プロセスの作成、テストおよび改訂を簡単に行うことができます。

プロセス・プレーヤでは、図9-1に示すように、プロセス・エディタ内にBPMNプロセスが表示されます。

図9-1 プロセス・プレーヤのユーザー・インタフェース

プロセス・インスタンスがプロセス・フローを通過する際に、プロセス・プレーヤではプロセスの動作がアニメーションで表示されます。アウトラインは、プロセス・インスタンスがプロセスのフロー・オブジェクトおよびシーケンス・フローを通過するパスを示します。プロセスを経由したインスタンスの特定のパスは、様々なフロー・オブジェクトに対して指定した入力データによって異なります。詳細は、プロセス・プレーヤでのプロセスのフロー・オブジェクトの処理方法を参照してください。

ビジネス・プロセスでプロセス・プレーヤを実行すると、Oracle Business Process Composerによってプロジェクトが検証され、BPMプロジェクトの現在のドラフト・バージョンがOracle Business Process Management (Oracle BPM)ランタイム環境のプレーヤ・パーティションにデプロイされます。プロセス・プレーヤを使用する際、プロセスの設計中に変更を表示するために、プロジェクトを公開したり手動でデプロイする必要はありません。

プロセス・プレーヤを使用して、プロセス・インスタンスの作成および動作をテストできます。プロジェクト内の各プロセスの複数のインスタンスを作成できます。

注意:

プロセス・プレーヤは、BPMプロジェクトを現在編集中である場合にのみ使用できます。

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

プロセス・プレーヤでプロセスを実行すると、プロセス内の一部のフロー・オブジェクトの実行時動作がエミュレートされます。

- ユーザー・タスク
プロセス・プレーヤが処理中のユーザー・タスクに達すると、そのかわりに選択するロールまたはユーザーが表示されます。考えられるすべての結果がアクションとして表示され、Webフォームがタスクに関連付けられている場合は、Webフォームを起動するオプションまたは結果を手動で選択するオプションも提供されます。Webフォームの起動を選択すると、Oracle Business Process ComposerによってWebフォームがデプロイされ、別のビューアに表示されます。

フォームが割り当てられていない場合は、プロセス・プレーヤが一時停止して、そのタスクを実行するロールを選択できます。そのヒューマン・タスクに対して定義されている結果の1つを選択するように求められます。「承認」と「却下」がデフォルトの結果として定義されています。

ただし、結果のリストは、ヒューマン・タスクで結果がどのように定義されているかによって異なります。ヒューマン・タスクでの結果の定義の詳細は、「基本タスク・プロパティの構成方法」を参照してください。結果を選択すると、プロセス・プレーヤはプロセスの次のフロー・オブジェクトに進みます。

Oracle Application Development Framework (Oracle ADF)フォームがヒューマン・タスクに割り当てられている場合、プロセス・プレーヤで表示できるように、Oracle JDeveloperを使用してランタイム環境にデプロイする必要があります。Oracle ADFフォームがデプロイされると、プロセス・プレーヤ・パーティションへのデプロイ時にOracle Business Process Composerがフォームにアクセスできます。

WebフォームまたはOracle ADFフォームを表示した後、引き続きプロセスを実行するには、フォーム・ビューア・ウィンドウを手動で閉じる必要があります。

- メッセージ送信イベントと送信タスク
プロセス・プレーヤがプロセス内のメッセージ送信イベントまたは送信タスクに達すると、これらが自動的に実行されます。その後、引き続きプロセスのインスタンスをコールし、対応するメッセージ・キャッチ・イベントまたは受信タスクで一時停止します。どちらの場合も、手動で親プロセスに戻る必要があります。たとえば、送信/受信ペアが同じプロジェクトの異なるプロセスでインスタンスを作成している場合、プロセス・プレーヤのホームに戻って、そのプロセスの新しいインスタンスを選択し、子プロセスを実行して、親プロセスに戻ることができます。送信/受信ペアが外部Webサービスをコールする場合、プロセスの実行を続行するには、必要なWebサービス・メッセージを手動で入力する必要があります。

- タイマー・イベント
プロセス・プレーヤは、プロセス内のタイマー・イベントに到達すると一時停止し、ユーザーがフロー・オブジェクトの「実行」アイコンをクリックするまで待機します。プロセス・プレーヤはプロセスの次のフロー・オブジェクトに進みます。

- コール・アクティビティ
プロセス・プレーヤがコール・アクティビティに達すると、子プロセスをコールし、プロセスの新しいインスタンスを作成します。子プロセスを表示するには、ドリルダウン・アイコンをクリックします。

- 終了イベント
プロセス・プレーヤが終了イベントに達すると、一時停止し、ドリルアップ・アイコンを表示します。このアイコンをクリックすると、プロセス・プレーヤは親プロセスに戻ります。現在のプロセスに親が存在しない場合は、プロセス・プレーヤのホームに戻り、プロセス・インスタンスは削除されます。

- その他のフロー・オブジェクト
プロセス・プレーヤが到達した別のフロー・オブジェクトで、一部の操作や外部イベントをインスタンスが待機する処理が発生すると、プロセス・プレーヤは一時停止します。プロセスの実行を続行するには、プロセス・プレーヤ・ホームの上部にある「リフレッシュ」アイコンをクリックします。

9.1.2 Oracle Business Process Composerのプロセス・プレーヤの有効化

プロセス・モデラーがプロセス・プレーヤを使用してBPMプロジェクトのプロセスをテストするには、管理者がプロセス・プレーヤを有効にする必要があります。詳細は、「プロセス・プレーヤを有効にするためのSOA管理者資格証明の定義」を参照してください。

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

プロセス・プレーヤ機能が有効になったら、プロジェクトのようこそページからプロセス・プレーヤにアクセスし、これを使用してプロセスの動作をテストできます。

プロセス・プレーヤには、メイン・メニューおよびプロジェクトのようこそページのツールバーからアクセスできます。プロセス・プレーヤが有効な場合、プロジェクトの編集中に、プロセス・プレーヤにアクセスするためのアイコンがプロジェクト・ツールバーに表示されます。

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

プロセス・プレーヤを使用する前に、プロセス内で定義されたロールを、ランタイム環境で定義された組織インフラストラクチャのユーザーまたはグループにマップする必要があります。プロセス・プレーヤは、組織の情報を使用して、実際の状況におけるビジネス・プロセスの動作を模倣します。

ロールを組織のユーザーにマップするには:

1. プロジェクトを開きます。

2. プロセス・プレーヤを起動します。

3. 「組織」ペインで、マップするプロセスのロールをドロップダウン・リストから選択します。
図9-2に示すように、プロセスで定義されているすべてのロールがドロップダウン・リストに表示されます。

図9-2 プロセス・プレーヤ - 「組織」ペイン

4. マップするユーザーまたはグループを選択します。

a. 「選択」をクリックします。

b. ドロップダウン・リストから「ユーザー」または「グループ」を選択します。

c. 検索するユーザーまたはグループの名前を入力して、「検索」をクリックします。
すべてのユーザーまたはグループのリストを表示するには、テキスト領域を空白にしたまま「検索」をクリックします。

d. 表で、マップするユーザーまたはグループを選択します。
ユーザーまたはグループを選択すると、選択したウィンドウの下部に表示されます。

e. 「OK」をクリックします。

5. 「マッピングの追加」をクリックします。

プロセス・ロールにマップしたユーザーまたはグループが、マッピング表に表示されます。

注意:

少なくとも1つのユーザーまたはグループを、プロセス内の各ロールにマップする必要があります。マップされていないロールがあるユーザー・タスクをプロセス・プレーヤが検出した場合、ヒューマン・タスクを越えてプロセスの実行を続行することはできません。

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

プロセス・プレーヤを使用してビジネス・プロセスの動作をテストする前に、プロセス内のすべてのロールを、組織内の少なくとも1つのユーザーまたはグループにマップ済であることを確認してください。詳細は、プロセス内で定義されたロールを組織のユーザーにマップする方法を参照してください。

プロセス・プレーヤを使用するには:

1. プロジェクトを開きます。

2. プロセス・プレーヤにアクセスします。

3. プロセスを選択します。

4. プロセスの開始イベントにある「再生」アイコンをクリックします。
プロセス・プレーヤがプロセスの実行を開始します。各フロー・オブジェクトおよびシーケンス・フローを通過する際、プロセスでたどったパスが描画されます。

プロセス・プレーヤがプロセスの実行を続行しているときに、プロセス・インスタンスが次のいずれかのフロー・オブジェクトに到達すると、プロセス・プレーヤは停止します。

- ユーザー・タスク

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

- メッセージ・イベント

- タイマー・イベント

プロセス・プレーヤがプロセスの実行を続行する前に、これらの各フロー・オブジェクトに入力を提供する必要があります。詳細は、プロセス・プレーヤでのプロセスのフロー・オブジェクトの処理方法を参照してください。

5. プロセス・プレーヤがユーザー・タスクで一時停止した場合:

a. ユーザー・タスクの「再生」アイコンをクリックします。

b. タスクを実行するユーザーを選択します。

注意:

ユーザーのリストが空で表示される場合は、プロセスのすべてのロールが正しくマップ済であることを確認してください。

c. 「実行」をクリックし、結果をリストから選択します。
可能性がある結果は、現在のユーザー・タスクに関連付けられているヒューマン・タスクによって定義されます。

結果を選択すると、プロセス・プレーヤはプロセス内の次のフロー・オブジェクトに進みます。

6. プロセス・プレーヤがメッセージ・キャッチ・イベントまたは受信タスクで一時停止した場合、子プロセスのインスタンスを作成します。

a. 「実行」アイコンをクリックします。

b. 「プロジェクト・プレーヤ」タブを選択します。

c. 「インスタンス」表で、新しく作成されたインスタンスを選択します。
元のプロセスのプロセス・プレーヤ・タブを閉じるかどうかを確認するメッセージが表示されます。このタブを閉じても、プロセス・インスタンスには影響しません。

d. 「OK」をクリックします。
プロセス・プレーヤにより、新しいプロセス・インスタンスが開かれ、親プロセスからコールされたメッセージ開始イベントからプロセスの実行が開始されます。

e. これまでの手順に記載されているように、プロセス・プレーヤを一時停止するフロー・オブジェクトについて「実行」アイコンをクリックします。

f. プロセス・プレーヤがプロセスのメッセージ終了イベントに達したら、図9-3に示すように、ドリルアップ矢印をクリックして親プロセスに戻ります。

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

プロセス・プレーヤにより、このプロセスのタブが閉じられ、プロセス・インスタンスはインスタンスのリストから削除されます。

g. プロセス・インスタンスのリストから、親プロセスのプロセス・インスタンスを開きます。

親プロセスのプロセス・インスタンスを再度開くと、プロセス・プレーヤは、子プロセスがコールされた地点からプロセスの実行を続行します。

7. プロセス・プレーヤがプロセス内の終了イベントに到達したら、「ドリル・アップ」アイコンをクリックして(図9-3を参照)、プロセス・インスタンスを終了します。
プロセス・プレーヤはプロセス・プレーヤ・エディタに戻り、プロセス・インスタンスは削除されます。

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

この部では、Oracle Business Process Composerを使用してユーザーとビジネス・プロセスとの相互作用を定義する方法について説明します。この部は、Webフォームの作成と使用、フォーム・ルールの作成、ヒューマン・タスクの定義についての章で構成されます。

この部は、次の章で構成されています。

- Webフォームの使用

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

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

10 Webフォームの使用

この章では、Oracle Business Process Composerを使用してWebフォームを作成する方法について説明します。Webフォーム・デザイナの概要を紹介し、Webフォームの作成、Webフォーム・コントロールの追加、Webフォーム・コントロール・プロパティの編集についてその手順を説明します。

この章の内容は次のとおりです。

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

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

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

- データ・ソースの概要

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

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

- Webフォームの使用

10.1 Oracle BPMでのフォームの概要

Oracle Business Process Management (Oracle BPM)には、Business Process Model and Notation (BPMN)プロセスによって定義されたアプリケーションとエンド・ユーザーとの相互作用を定義する機能が用意されています。Oracle BPM内には、連動してこのユーザー相互作用を定義する3つのコンポーネント(ユーザー・タスク、ヒューマン・タスクおよびフォーム)があります。

- ユーザー・タスク: プロセス内でユーザー相互作用が必要な箇所を指定するBPMNフロー・オブジェクトです。
Oracle BPMは、必要な承認プロセスを決定する様々なタイプのユーザー・タスクをサポートしています。

- ヒューマン・タスク: プロセスベースのアプリケーションとユーザーとの相互作用を定義します。
ユーザー・インタフェース、データ構造および接続情報を定義します。詳細は、ヒューマン・タスクの使用を参照してください。

- フォーム: ユーザーがアプリケーションとの相互作用に使用するインタフェースを定義します。
Oracle BPMで作成されるビジネス・アプリケーションでは、これらのフォームはOracle Business Process Management Workspaceに表示されます。

Oracle BPMは、次のタイプのフォームをサポートしています。

- Webフォーム: ヒューマン・タスクのユーザー・インタフェースを定義します。
XHTML、CSS、Javascriptなどの標準的なテクノロジに基づきます。Webフォームは、プロセス・アナリストがOracle Business Process Composerを使用して作成します。これらはBPMプロジェクト内に組み込まれます。この章では、Webフォームを作成および使用する方法について説明します。

- Oracle Application Development Framework (ADF)タスク・フォーム: ヒューマン・タスクのユーザー・インタフェースを定義するADFコンポーネントです。
ADFタスク・フォームは、通常、プロセス開発者によって設計されます。これらはOracle JDeveloperで作成され、Oracle BPM Studioを使用してBPMプロジェクトに追加できます。

詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のヒューマン・ワークフローのスタート・ガイドを参照してください。

注意:
Integrated WebLogicはWebフォームをサポートしていません。Webフォームの作成中またはWebフォームを含むBPMプロジェクトのIntegrated WebLogicへのデプロイ中にエラーが発生する場合があります。Integrated WebLogicはADFタスク・フォームのみをサポートしています。

10.1.1 Webフォームの概要

Webフォームは、エンド・ユーザーがビジネス・プロセスとの相互作用に使用するユーザー・インタフェースを定義します。Oracle Business Process Composerには、Webフォームを作成するためのエディタが用意されています。このエディタを使用して、プロセス・アナリストは、ユーザーがビジネス・プロセスと対話する方法を設計し、アプリケーションが必要とする基のデータ構造を定義します。

Webフォームは、XHTML、CSS、Javascriptなどの規格に基づいているため、複数のプラットフォームやブラウザとの互換性を図ることができます。Webフォームの中核部分はXHTMLファイルです。ただし、フォーム・デザイナを使用すると、XHTMLコードを直接操作しなくても、Webフォームを作成および設計できます。新しいフォームを作成したら、Webフォーム・デザイナを使用して、フォームの外観と動作をカスタマイズできます。

注意:
Webフォームはデジタル署名をサポートしていません。

Webフォームには次のものを追加できます。

- フォーム・コントロール: フォームに直接追加できるコンポーネントです。
フォーム・コントロールは、Webフォームのグラフィカル要素とそのレイアウトを定義します。また、ユーザーにデータを表示したり、データ入力を受け取ったりします。Oracle BPMでサポートされているフォーム・コントロールのタイプについては、「Webフォーム・コントロールの概要」を参照してください。

Webフォームに対してフォーム・コントロールを追加、再配置または削除すると、フォーム・エディタにより、基のXHTMLコードが自動的に更新されます。

- フォーム・ルール: WebフォームまたはWebフォーム・コントロールの動作を定義するJavaScriptコードです。
Oracle Business Process Composerには、フォーム・ルールを作成および編集するためのフォーム・ルール・エディタが用意されています。詳細は、Webフォーム・ルールの使用 を参照してください。

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

Oracle BPMでは、Webフォームを作成するための2つのユース・ケースがあります。

- フォームを先に作成
このユース・ケースでは、データ要素を定義する前にWebフォームを作成します。この方法では、ビジネス・ユーザーがOracle Business Process Composerを使用して必要なユーザー・インタフェースを定義できます。このユース・ケースでは、必要な基のデータ・モデルを考慮することなく、ユーザー・インタフェース要素が先に作成されます。

フォームが作成されると、Oracle BPMにより、Webフォームが必要とするデータを定義するスキーマが自動的に生成されます。このデータ・スキーマは、Webフォームに追加されるWebフォーム・コントロールに基づきます。Webフォームをヒューマン・タスクに割り当てると、このスキーマが自動的に使用されて、ヒューマン・タスク・ペイロードが定義されます。

このユース・ケースの手順に関する情報は、「ウォークスルー: フォームを先に作成する方法によるWebフォームの作成」を参照してください。

- データを先に作成
このユース・ケースでは、既存のヒューマン・タスク・ペイロードに基づいてWebフォームを作成します。Oracle BPMは、ペイロードに基づいてデータ・ソースを生成します。これらのデータ・ソースに基づいてWebフォーム・コントロールをフォームに追加できます。データを先に作成するモデルには、複数のフォーム間でスキーマを再利用できるという利点があります。

データ・ソースからフォーム・コントロールを追加した後、フォーム・デザイナを使用して、フォーム内でフォーム・コントロールの位置を調整し、必要なユーザー・インタフェースのルック・アンド・フィールを定義します。

このユース・ケースの手順に関する情報は、「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

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

プロセスに基づくアプリケーションのユーザー・インタフェースを、Webフォームで定義します。Oracle Business Process Composerには、Webフォームを作成するためのWebフォーム・エディタが用意されています。

Webフォーム・エディタを使用して、次のことを行えます。

- WebフォームにWebフォーム・コントロールを追加します。

- Webフォームの外観とレイアウトをカスタマイズします。

- Webフォーム上のコントロールの動作を定義するフォーム・ルールを作成します。

図10-1は、Webフォーム・デザイナの例を示しています。

図10-1 Oracle Business Process Composer - Webフォーム・デザイナ

Webフォームを開くと、Oracle Business Process Composer内にタブ付きペインとしてWebフォーム・デザイナが表示されます。Webフォーム・デザイナは次の領域に分割されています。

- Webフォーム・コンポーネント・パレット

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

- フォーム・キャンパス

- プロパティ・エディタ

- データ・ソース

注意:

データ・ソースは、データを先に作成するユース・ケースにより作成されたWebフォームでのみ使用可能です。ヒューマン・タスク・ペイロードに基づいたWebフォームの作成については、「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

注意:
Webフォーム用のテーマ/スキンのカスタマイズは12cではサポートされていません。

Webフォーム・デザイナの各領域については、次の項で説明します。

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

コンポーネント・パレットには、フォームに追加してユーザーとビジネス・アプリケーションとの相互作用を定義できるコントロールが表示されます。図10-1に示すように、フォーム・パレットはWebフォーム・エディタの左側に表示されます。フォーム・コントロールをパレットからフォーム・キャンパスにドラッグすることにより、Webフォームに追加できます。

Oracle BPMで使用できるWebフォーム・コントロールについては、Webフォーム・コントロールの概要を参照してください。コントロールをWebフォームにドラッグする方法については、「Webフォームへのコントロールの追加方法」を参照してください。

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

Webフォーム・エディタには、フォーム関連機能へのアクセスを提供するツールバーが含まれています。

Webフォーム・エディタ・ツールバーには、次のボタンが含まれています。

- ルールの編集: ルール・エディタにアクセスする場合にクリックします。
このボタンをクリックすると、「ルールの編集」と「フォームの編集」を切り替えることができます。

- フォームの編集: フォーム・エディタにアクセスする場合にクリックします。
このボタンにより、フォーム・ルール・エディタとWebフォーム・エディタ間を切り替えることができます。

- Webフォームのテスト: ブラウザ・ウィンドウにフォームを開きます。
このウィンドウでは、Webフォームがエンド・ユーザーにどのように表示されるのかを確認できます。フォーム・ルールの動作もテストできます。

- リフレッシュ: フォームの外部データ・ソース(ヒューマン・タスク・ペイロード)をリフレッシュします。
ヒューマン・タスク・ペイロードを変更する場合、Webフォームのデータ・ソースをリフレッシュする必要があります。このボタンは、データを先に作成する方法で作成されたWebフォームに対してのみ使用できます。詳細は、「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

- ローカライゼーション: リソース・バンドル・エディタを開きます。
このエディタでは、WebフォームおよびWebフォーム・コントロールのコンポーネントをローカライズできます。プロジェクトの言語設定を使用して追加された言語のみが使用可能です。言語サポートを構成するには、エディタでターゲット言語を選択し、フォームの要素の翻訳文字列を追加します。

- ビジネス・オブジェクト: 「フォーム・ビジネス・オブジェクト」ダイアログを開きます。
フォームで使用できるようにカタログからビジネス・オブジェクトを追加します。選択すると、ビジネス・オブジェクトがコンポーネント・パレットの「データソース」部分に表示されます。フォームでビジネス・オブジェクトを使用するには、そのビジネス・オブジェクトをコンポーネント・パレットからフォームにドラッグします。詳細は、「Webフォームへのビジネス・オブジェクトの追加」を参照してください。

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

WebフォームまたはWebフォーム・コントロールのプロパティを定義するには、プロパティ・エディタを使用します。フォームでコントロールをクリックすると、「プロパティ」領域にコントロールのプロパティが表示され、確認と編集が可能になります。

プロパティ・エディタにはタブ付きのペインがあり、WebフォームまたはWebフォーム・コントロールのプロパティが、機能ごとにグループ化されて表示されます。図10-2は、プロパティ・エディタの一例です。

図10-2 Webフォーム・デザイナ - プロパティ・エディタ

WebフォームとWebフォーム・コントロールのプロパティを編集する手順については、「Webフォームのプロパティの編集方法」を参照してください。各プロパティの詳細は、「WebフォームとWebフォーム・コントロール・プロパティのリファレンス」を参照してください。

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

「データ・ソース」パネルには、フォームに組み込むことのできるデータ要素のリストが表示されます。詳細は、「データ・ソースの概要」を参照してください。

「データ・ソース」パネルから、ペイロード内のすべてのデータ要素または特定のデータ要素に基づいてWebフォーム・コントロールを生成できます。これには、Webフォーム・エディタ・ツールバーからアクセスする「フォーム・ビジネス・オブジェクト」ダイアログを使用してカタログから以前に選択したビジネス・オブジェクトが含まれます。

注意:

データ・ソースは、ヒューマン・タスク・ペイロードに基づいて作成されたWebフォームでのみ使用可能です。詳細は、「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

図10-3は、ヒューマン・タスク・ペイロードに基づいて作成されたWebフォームに表示される「データ・ソース」パネルを示しています。

図10-3 「データソース」パネル

Oracle BPMにおけるデータ・ソースの詳細は、「データ・ソースの概要」を参照してください。ヒューマン・タスク・ペイロードに基づいたWebフォームの作成については、「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

カタログからビジネス・オブジェクトをロードしてWebフォームに配置する方法の詳細は、「Webフォームへのビジネス・オブジェクトの追加」を参照してください。

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

Webフォーム・デザイナの右側は、フォーム・キャンパスです。コンポーネント・パレットからフォーム・デザイナ・キャンパスへコントロールをドラッグして、Webフォームを作成できます。図10-4は、複数のコントロールが含まれているフォーム・キャンパスの一例です。

図10-4 フォーム・キャンパス

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

Webフォーム・コントロールは、フォームに追加してビジネス・アプリケーションのユーザー・インタフェースを定義できるユーザー・インタフェース・コンポーネントです。Webフォーム・コントロールはHTMLで定義されますが、Webフォーム・エディタを使用すれば、基のコードを編集する必要は発生しません。

Webフォーム・コントロールについては、次の項で説明します。各Webフォーム・コントロールに構成できるプロパティの詳細は、Webフォーム・コントロールのプロパティを参照してください。

10.3.1 入力コントロール

入力コントロールにより、ユーザーはフォームにデータ(テキスト、日付、数値など)を入力できます。入力コントロールは、ユーザーが間違ったデータ型を入力するのを自動的に禁じます。たとえば、ユーザーが数値コントロールに文字を入力すると、フォームにエラー・メッセージが表示されます。この検証は、自動的に行われます。各入力コントロールの機能を次に説明します。

入力コントロールの内容を検証するために、Oracle BPMは各コントロールにデフォルトのXMLスキーマ・データ型を割り当てます。表10-1に、各入力コントロールのデフォルトのデータ型を示します。

表10-1 入力コントロール - デフォルトのデータ型

入力コントロール

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

10.3.1.1 テキスト

テキスト・コントロールにはテキストを入力できます。主に1行の短いデータの入力に使用されます。

10.3.1.2 テキスト領域

テキスト領域コントロールには任意のテキストを入力できます。複数行の長いデータの送信に使用されます。ユーザーがデータを入力すると、必要に応じてテキストを収めるために、スクロール・バーが表示されます。テキスト領域コントロールには「行数」というプロパティがあり、入力領域に表示されるデフォルトの行数がこのプロパティによって制御されます。

HTMLには、テキスト領域コントロールの最大長を設定できるプロパティはありません。したがって、このコントロールにテキスト・コントロールのようなmaxlengthプロパティはありません。最大長を指定する必要がある場合は、テキスト・コントロールを使用するか、ユーザーが入力できるテキストの長さを制限するフォーム・ルールを使用する必要があります。詳細は、Webフォーム・ルールの使用 を参照してください。

10.3.1.3 日付、時間、日付/時間

日付コントロールには、日付、時間、日付/時間コントロールとして情報を入力できます。日付、時間および日付/時間コントロールを使用するには、日付コントロールをフォームに追加し、「コントロール・タイプ」プロパティを使用して日付、時間または日付/時間のいずれかを選択します。それに従ってコントロールが構成されます。

10.3.1.3.1 日付コントロール

カレンダ・アイコン付きの日付入力フィールドを表示するには、日付コントロールを使用します。

デフォルトの日付書式は「自動」です。「自動」が選択されている場合、日付のエントリと表示形式の両方がロケール固有になります。書式フィールドを使用すると、ロケールに依存しない特定の日付書式を指定できますが、お薦めしません。

ユーザーがカレンダをクリックして日付を選択すると、選択した日付がmm-dd-yyyyというデフォルト書式(たとえば、09-01-2014)で表示されます。ユーザーは任意の書式で日付を手動入力できますが、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>

日付が2桁の年で表されている場合、80年前から20年後までの間の日付に調整されます。たとえば、「mm/dd/yy」というパターンと1997年1月1日という現在の日付/時間を使用すると、「01/11/12」という文字列は2012年1月11日と解釈され、「05/04/64」という文字列は1964年5月4日と解釈されます。解析中、ちょうど2桁で構成される年の文字列のみがデフォルトの世紀に解析されます。1桁の文字列、3桁以上の文字列、数値以外を含む2桁の文字列など、その他の数値文字列は文字どおりに解釈されます。日付「01/02/3」または「01/02/003」は、同じパターンを使用してAD 3年1月2日と解析されます。同様に、「01/02/-3」はBC 4年1月2日と解析されます。Webフォームでは、常に4桁の年として書式設定されます。

10.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が必要です。

10.3.1.3.3 日付/時間コントロール

日付の入力用と時間の入力用に2つの入力フィールドを表示するには、日付/時間コントロールを使用します。

デフォルトの日付/時間書式は「自動」です。「自動」が選択されている場合、日付/時間のエントリと表示形式の両方がロケール固有になります。書式フィールドを使用すると、ロケールに依存しない特定の日付/時間書式を指定できますが、お薦めしません。

プロパティのドロップダウン・メニューを使用して、コントロールの日付については9つの有効な書式、時間については軍用および標準時間の4つの書式から選択できます。詳細は、日付コントロールと時間コントロールを参照してください。

日付/時間のデフォルトの書式は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つ別々のコントロールを使用するか、日付部分に対するラベルを時間入力フィールドまで拡大する必要があります。

ローカル時間はUTC形式に変換されて保存され、日付はyyyy-mm-ddという標準のxsd:date書式に変換されます。たとえば、XML送信ドキュメントでは次のようになります。

<OrderDate>2012-01-01TO05:00:00Z</OrderDate>

適切に初期化するには、時間の後に大文字のZが必要です。

フォーム・ルールは、すべての種類の日付/時間コントロールに適用できます。フォーム・ルールは、フォームのタイムゾーンで実行される必要があります。

10.3.1.4 電子メール

電子メール・フォーム・コントロールには、有効な電子メール・アドレスを入力できます。アドレスは、<name>@<name>.<string>という構文に準拠している必要があります。

10.3.1.5 金額

金額フォーム・コントロールには、米国通貨を入力できます。ユーザーは、コンマまたは小数点を入力できます。ユーザーがこれらを入力しない場合でも、フォームが自動的にこれらの記号を表示します。たとえば、ユーザーが4000と入力すると、フォームにはその値が4,000.00として表示されます。フォームでは、すべての入力が小数点以下2桁に丸められます。

小数点以下2桁より多く入力した場合、XML送信ドキュメントには、ユーザーが入力したとおりの桁数が格納されますが、ドル記号、小数点、カンマは含まれません。

10.3.1.6 電話番号

電話Webフォーム・コントロールには、xxx.xxx.xxxx、xxx-xxx-xxxx、xxx.xxxx、xxx-xxxxのいずれかの書式を使用して電話番号を入力できます。強制的に10桁の書式にする(市外局番を必須にする)場合は、コントロールのパターン・プロパティを編集します。

10.3.1.7 数量

数量Webフォーム・コントロールには、数量または任意の整数を入力できます。ユーザーが小数点やカンマなど、整数以外のものを入力すると、フォームにエラー・メッセージが表示されます。

10.3.1.8 数値

数値Webフォーム・コントロールには、小数を入力できます。小数の後には任意の桁数を入力できます。

10.3.2 選択コントロール

選択コントロールでは、複数のオプションのリストから選択できます。Oracle BPMでは、次の選択コントロールがサポートされます。

- ドロップダウン

- ラジオ

- チェック・ボックス

- True/False

注意:

Webフォーム・コントロールのパレットに、コンボ・ボックス・コントロールは含まれていません。コンボ・ボックスは、ユーザーが新しい値またはオプションを入力することも可能なドロップダウン・リストです。コンボ・ボックスは、XHTML標準の一部ではないためです。

ただし、その他のオプションのあるドロップダウン、ラジオ、チェック・ボックスをフォーム・ルールと組み合せて使用することは可能です。ユーザーが「その他」を選択した場合、ユーザーが詳細や新しいエントリなどを入力できるテキスト・コントロールが表示されます。

10.3.2.1 ドロップダウン

ドロップダウン・コントロールは、フォームにドロップダウン・リストを追加します。デフォルトでは、ドロップダウン・リストの最初の選択肢は空白になっています。コントロールのオプション・プロパティを編集して、他のオプションを定義する必要があります。

10.3.2.2 ラジオ

ラジオ・コントロールは、1つしか選択できないラジオ・ボタンを追加します。コントロールのオプション・プロパティを編集して、ラジオ・ボタンの数と特定の選択肢を定義する必要があります。

ラジオ・オプションの1つをデフォルトとして選択した後で、これを変更するには、そのオプションをコントロールから削除し、オプション・プロパティからタブで移動する必要があります。このオプションをコントロールのオプション・リストに再度追加できます。

10.3.2.3 チェック・ボックス

チェック・ボックス・コントロールではチェック・ボックスのセットが追加され、ユーザーは1つ以上のオプションを選択できます。他の選択コントロールと同じように、コントロールのオプション・プロパティを編集して、チェック・ボックスの数と使用可能な選択肢を定義します。

10.3.2.4 ブール・チェック・ボックス

ブール・チェック・ボックス・コントロールでは、データを入力するかわりに、コントロールでtrueまたはfalseの値を選択できます。コントロール・オプションのデフォルトは、"true=はい"と"false=いいえ"です。オプション・ラベルは、必要に応じて他の値に変更できます。ただし、オプション値は変更できず、trueかfalseのままになります。

「はい」チェック・ボックスを選択すると、コントロール・データのXMLドキュメントで値がtrueに設定され、未選択のままにすると、false値が定義されます。XMLドキュメントに値は表示されません。

10.3.3 グループ・コントロール

グループ・コントロールを使用すると、ユーザーに表示する必要がある情報のタイプに基づいてフォームを編成できます。

10.3.3.1 セクション

セクション・コントロールでは、コントロールのグループを作成します。セクションは、拡張と縮小が可能です。

Webフォーム内でユーザーが拡張アイコンをクリックすると、セクションが拡張または縮小されます。セクションを初期状態で拡張するのか縮小するのかを決定するデフォルト値を指定できます。

セクション・コントロールをフォームにドラッグした後で、他のコントロールをその中に、パネルとして、または他のセクション・コントロールとして、ドラッグすることができます。閉じたセクションの中に必須のコントロールがある場合は、セクション・ラベルが赤色になり、セクションを開いて必須情報を入力する必要があることを示します。フォームの設計中にセクション・コントロールを削除すると、セクション内のコントロールもすべて削除されます。

10.3.3.2 オプションのセクション

オプションのセクションによって、フォームの有効性が動的に変わることがあります。たとえば、次のようなフォームを考えてみましょう。

図10-5 オプションのセクション

フォーム内の必須フィールドは「名前」のみです。「アドレス」セクション全体はオプションです。ただし、ユーザーが住所を入力することにした場合、セクション全体が必須になり、ユーザーが「市区町村」フィールドに[Tab]キーで移動すると、黄色の背景で表示されます。ユーザーが「通り」フィールドに値を入力すると、「市区町村」、「都道府県」および「郵便番号」の各フィールドが新しく必須フィールドになり、有効な値が入力されるまで、これらのフィールドは無効になります。

図10-6 未入力のデータがあるオプションのセクション

ユーザーが「通り」フィールドから値を削除すると、フォームの有効性が自動的に再計算されます。「アドレス」セクションはオプションなので、無効ではなくなります。生成されるXMLインスタンス・ドキュメントにも住所要素は含まれません。

10.3.3.3 タブ

タブ・グループ・コントロールを使用すると、図10-7のようにタブ付きのビューを作成できます。

図10-7 複数のタブを含むWebフォーム

デフォルトでは、フォームにタブ・コントロールをドラッグすると、独立した3つのタブが作成されます。タブを追加または削除するには、タブをクリックし、「追加」(+)アイコンまたは「削除」(-)アイコンをクリックします。追加したタブは、追加アイコンをクリックしたとき選択されていたタブの右側に表示されます。

タブの順序を並べ替えるには、タブを他のタブの上に重ねるようにドラッグします。ドラッグしたタブが、下になったタブの右側に移動します。他のコントロール(他のグループ・コントロールも含む)を個々のタブにドラッグすることができます。ユーザーは、現在選択されているタブ上のコントロールのみ選択できます。

タブのグループ全体をフォームの別の場所に移動するには、そのタブの右側の領域をクリックし、グループ全体を目的の場所までドラッグします。

10.3.3.4 パネル

パネル・コントロールで、Webフォーム内に列を作成します。フォームに、必要な数のパネルをドラッグすることにより、複数の列を追加できます。

デフォルトでは、パネルの幅は49%に設定されています。2つのパネルをフォームにドラッグすると、2番目のパネルは自動的に最初のパネルと並びます。パネルには、境界がわかるように、1pxの枠線が付いています。したがって、2列構成で、両方の幅を50%にすることはできません。

パネルはグループ・コントロールなので、他のコントロールを内部にドラッグできます。パネルの順序を並べ替える場合には、ドラッグ・アンド・ドロップ機能に制限があるため、グループ・コントロールの下にコントロールをドロップすることはできないという点に注意してください。3つの列があり、中央の列を右側に移動する場合は、パネルの直下にあるコントロール上に中央の列をドラッグする必要があります。

3列または4列構成で、中央のいずれかの列または一番右の列を左端に移動する場合には、一番左の列の上までドラッグ・アンド・ドロップする必要があります。

パネルには設計中に編集できるラベルがありますが、パネルのラベルおよびパネル自体は、実行時またはフォームのテスト時にはユーザーに表示されません。パネル内のコントロールのみ表示されます。これらのコントロールは、パネルの幅に合わせて編成されます。

パネルを削除すると、その内部にドラッグしたコントロールは自動的に削除されます。

10.3.3.5 表

表レイアウト・コントロールを使用すると、Webフォームのスペースを節約することができます。このコントロールにより、フォーム・コントロールをグリッド・パターンにあわせて配置できます。

表名と列名を編集できます。パレットから新しいコントロールをドラッグ・アンド・ドロップして、表の幅を設定することもできます。表の最小および最大行数を制御できます。「追加」および「削除」アイコンが自動的に左に追加されます。フォーム・ルールを使用して、値の計算、フィールドの有効化/無効化、フィールドの表示/非表示の切替えなどを行うこともできます。

表コントロールをフォームにドラッグすると、デフォルトで3行、3列構成の表が追加されます。列には、デフォルト名としてcol 0、col 1およびcol 2の名前が入ります。必要に応じて、表内のすべてのセルが定義されます。表の行ごとに「追加」および「削除」アイコンが表示され、「最小」/「最大」プロパティ値に従って行を追加または削除できます。

表内の列名を一意にすることを強くお薦めします。

表の列を並べ替えるには、移動する列の見出しをクリックし、表示される矢印をクリックします。表の最終的な列位置に達するまで、列が右に移動します。

表コントロールには、次の制限があります。

- 表コントロールは繰返しコントロールには使用できません。

- 表のセルの境界線は、印刷ビューでは表示されません。

- 表コントロール名は作業領域から編集できません。プロパティ・エディタを使用します。

10.3.3.6 繰返し

繰返しコントロールは、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フォーム・コントロールは1つのみです。
タブ・コントロール、パネルまたはその他の繰返しコントロールを追加することはできません。繰返しコントロールに複数のコントロールを追加するには、複数のコントロールをセクション・コントロールに追加してから、セクションを繰返しコントロールに追加します。

セクションにさらにコントロールを追加する必要がある場合は、繰返しコントロールからセクションをドラッグし、コントロールを追加してから、セクション・コントロールを繰返しコントロールにドラッグする必要があります。ただし、セクション・コントロールをパネル・コントロールに追加する場合は、繰返しコントロールからセクションを外す必要はありません。

データ・ソースに含まれる繰返しデータ要素を追加すると、Oracle Business Process Composerは、コントロール内に繰返しアイテムを自動的に生成します。繰返しコントロールのスキーマによって、最小要件と最大要件が自動的に適用されます。

10.3.3.7 繰返しコントロールを表に変更する

繰返しコントロールがパレットからドラッグ・アンド・ドロップされたか、スキーマから追加されたかに応じて、「コントロール・タイプ」または「表示形式」プロパティを使用して、繰返しコントロールを表コントロールに変更できます。詳細は、このドキュメントを参照してください。

繰返しコントロールを表に、または表を繰返しコントロールに変更する際に参照ルールがある場合、ルールの構文およびセクション名が正しいことを確認することをお薦めします。

10.3.4 その他のコントロール

入力、選択、グループのコントロールに加え、Oracle BPMにはユーザーのWebフォーム操作を定義する他のWebフォーム・コントロールも用意されています。

10.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>

プロパティ・パネルの「設定」タブにある「メッセージ・タイプ」ドロップダウンからメッセージ・タイプを選択すると、事前定義済の様々な背景色、デコレータまたは境界線を表示できます。これらの設定は、「BGの色」と「ラベルの色」に指定した値をオーバーライドします。これらの値を有効にするには、メッセージ・タイプとして「なし」を選択してください。

メッセージ・タイプには次の値があります。

- デフォルト

- なし

- 境界

- 成功

- 情報

- 警告

- エラー

10.3.4.2 リンク・コントロール

リンク・コントロールを使用すると、フォームにURLを含めることができます。ユーザーがリンクをクリックすると、別のブラウザ・ウィンドウでターゲットURLが開きます。

10.3.4.3 ボタン・コントロール

ボタン・コントロールを使用すると、フォームにボタンを追加できます。このコントロールは、主に、フォーム・ルールと組み合せて使用されます。

注意:

ボタン・コントロールは繰返しアイテムでは動作しません。

10.3.4.4 イメージ・コントロール

イメージ・コントロールを使用すると、フォームにイメージ(ピクチャ、ロゴなど)を追加できます。イメージ・コントロールでは、JPG、GIFおよびPNGファイル、またはブラウザでサポートされているその他のイメージ・タイプを追加できます。

イメージ・コントロールをドラッグすると、「参照」ボタンと「イメージのアップロード」ボタンが表示されます。「参照」をクリックし必要なイメージまでナビゲートし、「イメージのアップロード」をクリックします。イメージをアップロードしたら、「参照」ボタンと「イメージのアップロード」ボタンは使用できなくなります。イメージを変更するには、イメージ・コントロールを削除して、新しいイメージ・コントロールをドラッグする必要があります。

イメージをアップロードする前に、フォーム内に収まるサイズであることを確認する必要があります。標準フォーム・サイズは600ピクセルです。アップロードするイメージのサイズを変更するには、デザイナでイメージ・コントロールを選択し、「プロパティ」パネルの「スタイル」タブをクリックして、幅を設定します。

単位はpx、%、emです。単位を含める必要があります。たとえば、50%という値を指定すると、イメージのサイズがフォームまたはパネルの半分の幅に変更されます。

10.3.4.5 トリガー・コントロール

トリガー・コントロールは、フォームにボタンを追加し、ルールと組み合せて使用されます。「フォーム・ルールでの動的コンテンツの使用」を参照してください。

注意:

トリガーは、繰返しアイテムでは機能しません。

「プロパティ」パネルの「設定」タブでトリガー・ボタンの色を変更できます。トリガー上のテキストを中央に配置したり、デコレータを削除することはできません。「改行」がデフォルトで選択されます。「スタイル」タブの「ボタンの色」ドロップダウンでいずれかの選択肢を選択すると、ボタンの色を変更できます。

10.4 データ・ソースの概要

データ・ソースにより、既存のデータ構造に基づいてWebフォーム・コントロールを作成できます。Oracle BPMでは、このようなデータ構造はヒューマン・タスク・ペイロードによって定義されます。

ヒューマン・タスク・ペイロードを作成した後、ペイロード・データに基づいて新規Webフォームを作成できます。ペイロード・データに基づいたWebフォームの作成については、「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

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

表10-2は、ヒューマン・タスク・ペイロードでサポートされる各データ型について生成されるWebフォーム・コントロールのタイプを示しています。

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

データ型

Webフォーム・コントロール

文字列

テキスト・コントロール

バイナリ

テキスト・コントロール

ブール

ブール・チェック・ボックス。

この要素が必須である場合、選択すると値がtrueに設定され、選択しないとfalseに設定されます。コントロールがオプションの場合、値は指定されません。「ラベル」プロパティを使用して、trueオプションとfalseオプションのラベルを設定できます。ただし、trueにマップされる最初のオプションのみが表示されます。3つ以上のラベルを追加すると、余分なラベルは自動的に削除されます。

整数/Int64

テキスト・コントロール

実数/小数

テキスト・コントロール

間隔

テキスト・コントロール

時間

日付コントロール

コンポーネント

セクション

ビジネス・オブジェクトに基づいて作成されるヒューマン・タスク・ペイロード・データはセクション・フォーム・コントロールに追加されます。コンポーネント内の個々のデータ要素は、他のデータ型と同じフォーム・コントロールを生成します。これらはセクション・コントロールに追加されます。フォームに追加した後で、必要に応じて位置を変更できます。

ヒューマン・タスク・ペイロードから生成されるコントロールはほとんどがテキスト・コントロールとして作成されます。ただし、コントロールの検証はすべて、元のデータ型datatypeに基づいて行われます。たとえば、xsd:integer型では数値のみが許可されます。

要素制限を指定するスキーマ要素は選択コントロールとして生成されます。有効なオプションが4つ以上ある場合、ドロップダウン・リストが作成され、有効な値が3つ以下である場合、ラジオ・ボタンが作成されます。「表示形式」プロパティを使用して、ラジオ、ドロップダウン、チェック・ボックス間で表示タイプを変更できます。

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

データ要素からWebフォーム・コントロールを生成した後、次のことを行えます。

- ヒューマン・タスクのデータ・ペイロードを更新して、Webフォームを作成し直す。

- Webフォーム・エディタ上でコントロールを編集する。

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

データ要素からWebフォーム・コントロールを生成した後、Webフォーム・コントロール上で次のことを実行できます。

- Webフォーム・コントロールの名前を編集できます。
Webフォーム・エディタに表示される名前を編集できます。ただし、基のXSDは変更されません。

- Webフォーム・コントロールにより使用されるWebフォーム・ルールを作成または編集できます。

- Webフォーム・コントロールのデフォルト値を設定できます。

- Webフォーム内のWebフォーム・コントロールのレイアウトを編集できます。
セクションまたはパネル内のコントロールを必要に応じて移動できます。ただし、繰返しコントロールにより生成されたWebフォーム・コントロールを追加または削除することはできません。

- Webフォーム・コントロールの表示形式プロパティを編集できます。
「「表示形式」プロパティの概要」を参照してください。

- Webフォーム・コントロールのラベルを編集できます。

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

データ要素に基づいてWebフォーム・コントロールを生成している場合、次の変更はできません。

- WebフォームまたはWebフォーム・コントロールの検証方法を変更するWebフォーム・コントールの編集。

- 繰返しコントロールの繰返し数の変更。

- 基のデータ・ソースへの変更を必要とするWebフォーム・コントロールの追加。

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

表示形式プロパティは、データ・ソースから生成されるWebフォーム・コントロールによってのみサポートされます。表示形式プロパティを使用して、Webフォーム上でのコントロールの表示方法を変更できます。たとえば、テキスト・コントロールをドロップダウン・コントロールに変更したり、またその反対を行うことが可能です。これは、フォーム上でのコントロールの外観を変えますが、コントロールのデータ検証方法は変えません。コントロールの検証方法を変更する場合は、ヒューマン・タスク・ペイロード・データを再定義し、Webフォームを作成し直す必要があります。

コントロールの基のデータ型と、バインドされているグローバル要素を確認するには、プロパティ・タブ上にマウスを置きます。拡張されたデータ・ソースに、ツール・チップとしてXSDパスが表示されます。

「表示形式」プロパティを選択Webフォーム・コントロール(ラジオ、ドロップダウンまたはチェック・ボックス)に設定すると、「ラベル」プロパティが有効になります。ラベル・プロパティに文字列を追加することにより、ユーザーがフォームを使用するときにこのコントロールに入力できる値を制限することができます。フォームが送信されると、値は、選択したオプション・ラベルと同じになります。

ラベルを設定するもう1つの方法として、フォームのロード時にオプションを動的に初期化するルールを使用する方法があります。詳細は、Webフォーム・ルールの使用 を参照してください。

表示形式プロパティは、データ型に基づいている場合、次のコントロールに対しては使用できません。

- メッセージ

- 繰返し

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

- ブール

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

Oracle Business Process Composerを使用して、既存のデータに基づかないWebフォームを作成できます。

Webフォームを作成するためのユース・ケースについては、「Webフォームの概要」を参照してください。

フォームを先に作成するユース・ケースを使用するには、プロジェクトのホームページからWebフォームを直接作成します。Webフォームを作成したら、必要に応じて、Webフォーム・デザイナを使用してフォーム・コントロールを再配置します。

定義されているデータがない状態でWebフォームを作成および編集するには:

1. プロジェクトのようこそページを使用して新しいWebフォームを作成します。

a. プロジェクトの編集中であることを確認します。

b. プロジェクトのようこそページから、「Webフォーム」を選択します。

c. 「新規Webフォーム」アイコンをクリックし、名前を入力します。

d. 「作成」をクリックします。

2. Webフォームにコントロールを追加します。
新しいWebフォームを作成したら、必要に応じてフォーム・コントロールを追加し、ユーザーのアプリケーション操作を定義します。詳細は、Webフォームにコントロールを追加する方法を参照してください。

3. WebフォームとWebフォーム・コントロールのプロパティを編集します。
Webフォームとそのコントロールのプロパティを編集することで、動作と外観を定義できます。詳細は、「Webフォームのプロパティの編集方法」を参照してください。

4. Webフォームにフォーム・ルールを追加します。
Webフォームにフォーム・ルールを追加すると、さらに動作のカスタマイズと制御が可能です。詳細は、フォーム・ルールの使用を参照してください。

5. Webフォームをテストします。
Webフォーム・デザイナを使用すると、エンド・ユーザーにWebフォームがどのように表示されるかをプレビューできます。詳細は、「Webフォームをテストする方法」を参照してください。

6. Webフォームを保存します。
Webフォームを保存するには、プロジェクト全体を保存する必要があります。詳細は、「プロジェクト変更の管理」を参照してください。

7. Webフォームをヒューマン・タスクに割り当てます。
Webフォームが完成したら、ヒューマン・タスク・エディタを使用してヒューマン・タスクに割り当てることができます。Webフォームをヒューマン・タスクに割り当てると、Webフォームに追加したコントロールに基づいて、ヒューマン・タスク・エディタでペイロード情報が自動的に生成されます。ヒューマン・タスクに定義されている既存のペイロードがある場合、Webフォームによって定義される新しいペイロードで置き換えられます。

ヒューマン・タスクへのWebフォームの割当てについては、「ヒューマン・タスクのプレゼンテーションの指定方法」を参照してください。

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

Oracle Business Process Composerを使用して、既存のヒューマン・タスク・ペイロードに基づいた新しいWebフォームを作成できます。

Webフォームを作成するためのユース・ケースについては、「Webフォームの概要」を参照してください。

ヒューマン・タスク・ペイロードは、ヒューマン・タスク・エディタを使用して作成されます。ペイロードに基づいてWebフォームを作成すると、ペイロードは読取り専用になります。次の条件が適用されます。

- Webフォームを作成した後で、ペイロード・シグネチャを更新することはできません。
つまり、データ・オブジェクトを追加または削除したり、データ型を変更することはできません。ただし、ヒューマン・タスク・ペイロードに対して複合データ型を定義している場合、その基になっているビジネス・オブジェクトを編集することにより、データ型を変更できます。

- ヒューマン・タスク・ペイロードに基づいてWebフォームを作成した後、基のデータ構造を必要とするWebフォーム・コントロールをフォームに追加することはできません。
フォーム・エディタを使用してWebフォームにWebフォーム・コントロールを追加するときに必要となる追加データは、基のスキーマには追加されず、ヒューマン・タスク・ペイロードでは使用できません。

複合データ・オブジェクトに基づいてヒューマン・タスク・ペイロードを作成しなかった場合、ペイロードを変更するには、Webフォームからヒューマン・タスクの関連付けを解除し、ペイロードを変更して、その新しいペイロードに基づいて新しいWebフォームを作成する必要があります。

既存のペイロードに基づいて新しいWebフォームを作成および編集するには:

1. 新しいヒューマン・タスクを作成し、そのペイロードを定義します。

a. 新しいヒューマン・タスクを作成します。
詳細は、「新しいヒューマン・タスクの作成方法」を参照してください。

b. 新しいWebフォームのベースとして使用するペイロードを作成します。
詳細は、「ヒューマン・タスクに対するデータ・ペイロードの作成および構成方法」を参照してください。

c. ヒューマン・タスクを開きます。
詳細は、「ヒューマン・タスクを開く方法」を参照してください。

d. 「Basic」タブを選択します。

e. 「プレゼンテーション」領域で「Webフォーム」を選択し、「追加」アイコンをクリックします。

f. Webフォームの名前を入力し、「ペイロードに基づく」を選択します。

g. 「作成」をクリックします。
Webフォームが作成され、現在のヒューマン・タスクに割り当てられます。

h. 「編集」をクリックして、Webフォームを編集します。

Webフォーム・エディタに空白フォームが表示されます。

2. ペイロード・データからWebフォーム・コントロールを生成します。
ペイロードに基づいてWebフォームを作成したら、ペイロード・データを使用して、対応するWebフォーム・コントロールを生成できます。ペイロード・データは、Webフォーム・エディタの左側にあるデータ構造ペインに表示されます。

詳細は、「データ・ソースに基づいてコントロールを追加する方法」を参照してください。

3. Webフォーム・コントロールを追加します。
必要に応じて、ユーザーとアプリケーションとの相互作用を定義するフォーム・コントロールを追加できます。詳細は、Webフォームにコントロールを追加する方法を参照してください。

注意:

Webフォームのルック・アンド・フィールを改良するためのコントロールを追加できます。ただし、追加したデータ・コントロールは基のペイロードに反映されません。

4. WebフォームとWebフォーム・コントロール・プロパティを編集します。
Webフォームとそのコントロールのプロパティを編集することで、動作と外観を定義できます。詳細は、「Webフォームのプロパティの編集方法」を参照してください。

5. Webフォームにフォーム・ルールを追加します。
Webフォームにフォーム・ルールを追加すると、さらに動作のカスタマイズと制御が可能です。詳細は、フォーム・ルールの使用を参照してください。

6. Webフォームをテストします。
Webフォームの設計時、その外観とフォーム・ルールの動作をテストすることができます。詳細は、「Webフォームをテストする方法」を参照してください。

7. Webフォームを保存します。
Webフォームを保存するには、プロジェクト全体を保存する必要があります。詳細は、「プロジェクト変更の管理」を参照してください。

10.7 Webフォームの使用

新規Webフォームの作成後、Webフォーム・エディタを使用して、Webフォーム・コントロールの追加、フォーム・コントロール・プロパティの編集、Webフォームのテストを行うことができます。

次の各項では、様々なタイプのコントロールをフォームに追加する方法を説明します。

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

Webフォーム・コントロール・パレットからWebフォーム・キャンバスにドラッグ・アンド・ドロップすることにより、コントロールをWebフォームに追加できます。ほとんどのコントロールの上下左右にドラッグ/ドロップできます。コントロールをグループ・コントロール上にドラッグしていない場合、コントロールはフォームの上部に配置されます。

コントロールをドラッグすると、位置カーソルが変化して状態を示します。

表10-3 Webフォームの位置カーソル・アイコン

位置カーソル・アイコン

説明

ドロップしない

ドラッグしているコントロールはこの領域にドロップできません。

ドロップ

カーソルは、コントロールをドロップできるキャンバス上の領域にあります。

上にドロップ

コントロールは、カーソルを置いているコントロールの上に配置されます。コントロールがドロップ可能な領域の上半分にコントロールをドラッグすると、このアイコンが表示されます。

下にドロップ

コントロールは、カーソルを置いているコントロールの下に配置されます。コントロールがドロップ可能な領域の下半分にコントロールをドラッグすると、このアイコンが表示されます。

右にドロップ

コントロールは、カーソルを置いているコントロールの右側に配置されます。別のコントロールの右半分にコントロールをドラッグすると、このアイコンが表示されます。

下にドロップ

コントロールは、カーソルを置いているコントロールの左側に配置されます。別のコントロールの左半分にコントロールをドラッグすると、このアイコンが表示されます。

ドラッグ・アンド・ドロップに関するその他の重要なルール:

- ドロップしないアイコンが表示されているときにコントロールをドロップすると、コントロールは元の場所に戻ります。つまり、パレットに戻るか、移動する前にフォーム内に配置されていた場所に戻ります。

- ほとんどのコントロールの上下左右にドラッグ・アンド・ドロップできます。

- セクション、タブ、表、繰返しおよびパネル・コントロールの上下にコントロールをドロップできます。

- パネルを他のパネルの左右にドロップすることはできますが、他のコントロールをパネルの左右に同様にドロップすることはできません。

- 2つの異なるコントロールを1つの繰返しコントロールにドロップすることはできません。たとえば、繰返しコントロールに電子メール・コントロールがすでに含まれている場合、数量コントロールをドラッグすることはできません。
繰返しコントロール内に複数のコントロールが必要な場合は、まずコントロールをセクションにドラッグした後、そのセクションを繰返しコントロールにドロップします。セクションを繰返しコントロール内に配置した後、セクションに他のコントロールを追加することはできないため、この場合はセクションを最初に作成してください。また、繰返しコントロール内にパネル、タブまたは別の繰返しコントロールをドロップすることもできません。

コンポーネント・パレットからコントロールを追加するには:

1. コントロールを追加するWebフォームを開きます。

2. コンポーネント・パレットで、追加するコントロールをクリックして、フォーム・キャンバスにドラッグします。

コンポーネント・パレットからコントロールをドラッグし始めると、フォーム・キャンバスでの位置に応じて位置カーソルが変化します。

3. マウス・ボタンを放すと、新しいコントロールが追加されます。

10.7.2 複数列フォームの作成

複数の列があるフォームを作成できます。

コントロールの幅はすべて、列で指定します。幅を選択するには、「スタイル」タブでグリッドをクリックします。

パレットから空のキャンバスまたは既存のコントロールの上下にコントロールをドロップした場合、新しくドロップされたコントロールの幅は12列です。

パレットからコントロールをドラッグしてコントロールの左右にドロップした場合、新しくドロップされたコントロールには、先に配置されていたコントロールの幅が適用されます。フォーム内にすでに配置されているコントロールの位置が変更された場合は、設計者がコントロールの幅を手動で調整する必要があります。

複数列フォームを作成するには:

パレットからパネルをドラッグ・アンド・ドロップし、パネル内に追加のコントロールをドロップします。パネルは、他のパネルの左右にドロップできます。別のパネルの左/右に新しくドロップされたパネルには、先に配置されていたパネルの幅が適用されます。

または、最初のコントロールをキャンバスにドラッグ・アンド・ドロップし、仕様にあわせて幅を変更して、先にドロップしたコントロールの右側に追加のコントロールをドラッグ・アンド・ドロップします。コントロールが折り返されて、整列します。

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

ヒューマン・タスクのペイロード・データに基づいてWebフォームを作成した後、ペイロードで定義されているデータ要素に対してWebフォーム・コントロールを自動的に生成できます。すべてのデータ要素または個々のデータ要素からフォーム・コントロールを生成できます。

詳細は、「ウォークスルー: データを先に作成する方法によるWebフォームの作成」を参照してください。

10.7.3.1 ペイロード内のすべてのデータ要素に対するフォーム・コントロールの生成

ペイロード内のすべてのデータ要素に対してフォーム・コントールを生成するには:

1. ヒューマン・タスク・ペイロードに基づいて作成したWebフォームを開きます。

2. 図10-3に示すように、「データソース」ペインで、データ要素ツリー内のHumanTaskPayloadノードの右側にある「追加」(+)アイコンをクリックします。

Oracle Business Process Composerにより、ペイロード内の各データ要素に対してWebフォーム・コントロールが生成されます。コントロールは、現在選択されているコントロールの上のWebフォームに追加されます。ペイロードの各データ型に対してどのWebフォーム・コントロールが生成されるかについては、「データ・ソースの概要」を参照してください。

3. 必要に応じて、Webフォーム内でコントロールをドラッグ・アンド・ドロップすることによって、コントロールのレイアウトを編集します。

注意:

データ要素から繰返しコントロール内に生成されるコントロールを追加することはできません。

10.7.3.2 個々のデータ要素に対するフォーム・コントロールの生成

ペイロード内の個々のデータ要素に対してフォーム・コントールを生成するには:

1. ヒューマン・タスク・ペイロードに基づいて作成したWebフォームを開きます。

2. 図10-3で示されているように、「データ・ソース」ペインで、HumanTaskPayloadノードの左側の丸をクリックします。

Oracle Business Process Composerにより、ペイロード内のデータ要素のリストを示すツリーが表示されます。

3. フォームに追加する各データ要素について、データ要素の左側にある「追加」(+)アイコンを選択します。

Oracle Business Process Composerにより、データ要素に対してフォーム・コントロールが生成されます。データ要素を個別に追加すると、フォーム・コントロールはフォームの開始時に直接追加されます。フォーム・パネルには追加されません。

4. 必要に応じて、Webフォーム内でコントロールをドラッグ・アンド・ドロップすることによって、コントロールのレイアウトを編集します。

注意:

データ要素から繰返しコントロール内に生成されるコントロールを追加することはできません。

10.7.4 Webフォームへのビジネス・オブジェクトの追加

「データソース」パネルからビジネス・オブジェクトをフォームに追加します。「データソース」パネルには、Webフォーム・エディタ・ツールバーからアクセスする「フォーム・ビジネス・オブジェクト」ダイアログを使用してカタログから追加したビジネス・オブジェクトが含まれます。

ビジネス・オブジェクトをWebフォームに追加する手順は、次のとおりです。

1. Webフォームを編集し、Webフォーム・エディタ・ツールバーの「ビジネス・オブジェクト」コントロールをクリックします。

「フォーム・ビジネス・オブジェクト」ダイアログが表示されます。

2. データ・ソースとして含めるビジネス・オブジェクトを選択します。ダイアログ上のコントロールを使用して、ビジネス・オブジェクトを「選択済」パネルに移動します。

3. 「OK」をクリックして、「フォーム・ビジネス・オブジェクト」ダイアログを閉じます。

4. パレットの「データソース」パネルからビジネス・オブジェクトをフォームにドラッグします。

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

Webフォーム・エディタでは、データ・ソースから自動的に生成されたWebフォーム・コントロールを表示できます。

データ・ソースから作成されたWebコントロールを表示するには:

1. Webフォームを開きます。

2. 「データ・ソース」パネルを開きます。

3. フォーム・コントロールを表示アイコンをクリックします。

生成された各Webフォーム・コントロールが、Webフォーム・キャンバスで強調表示されます。

10.7.6 Webフォームのプロパティの編集方法

Webフォームのプロパティを編集して、Webフォームの一般設定およびスタイルを構成できます。

Webフォームのプロパティを編集するには:

Webフォームのプロパティを編集し、フォームの設定と一般スタイルのプロパティを構成できます。Oracle BPMでサポートされるプロパティについては、Webフォームのプロパティを参照してください。

1. 編集するプロパティが含まれているWebフォームを開きます。

2. フォーム・キャンバスの上部にあるWebフォーム・ヘッダーをクリックします。

Webフォームのプロパティ・タブが、プロパティ・エディタで表示されます。

3. プロパティ・エディタで、Webフォームのプロパティを編集します。

10.7.7 Webフォーム・コントロールのプロパティの編集方法

Webフォーム・コントロールのプロパティを編集し、Webフォームでのコントロールの表示方法を構成できます。

Webフォーム・コントロールのプロパティを編集するには:

個々のフォーム・コントロールのプロパティを編集して、動作とスタイルを構成できます。各フォーム・コントロールで使用できるプロパティについては、Webフォーム・コントロールのプロパティを参照してください。

1. 編集するコントロールが含まれているWebフォームを開きます。

2. フォーム・キャンバスで、コントロールを選択します。

フォーム・キャンバスでコントロールを選択すると、それが強調表示されます。

3. プロパティ・エディタで「設定」または「スタイル」タブを選択し、必要に応じてプロパティを編集します。

サポートされている各Webフォーム・コントロールのプロパティについては、Webフォーム・コントロールのプロパティを参照してください。

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

プロジェクトのホームページからBPMプロジェクトのWebフォームを削除できます。

注意:

ヒューマン・タスクに関連付けられているWebフォームを削除することはできません。ヒューマン・タスクに関連付けられているWebフォームを削除する必要がある場合は、ヒューマン・タスク・エディタを使用して、その関連付けを解除する必要があります。

Webフォームを削除するには:

1. プロジェクトのホームページに移動します。

2. 「Webフォーム」を選択し、削除するWebフォームにカーソルを置きます。

3. 「削除」アイコンをクリックし、「OK」をクリックしてWebフォームの削除を確定します。

4. プロジェクトを保存します。

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

Webフォームからフォーム・コントロールを削除するには、Webフォーム・デザイナを使用します。

注意:

コントロールを削除したら、元に戻すことはできません。新しいコントロールをWebフォームに追加し、そのプロパティを構成する必要があります。

10.7.9.1 コントロールの削除

Webフォームまたは組織コントロールからコントロールを削除するには:

1. 削除するコントロールが含まれているWebフォームを開きます。

2. コントロールをクリックして選択します。

コントロールを選択すると、強調表示されます。

注意:

組織コントロールではなく、削除するコントロールを個別に選択していることを確認します。

3. 「クリックして削除」ボタンをクリックします。

10.7.9.2 Webフォームからの組織コントロールの削除

Webフォームから組織コントロールを削除するには:

1. 編集する組織コントロールが含まれているWebフォームを開きます。

2. 削除する組織コントロールをクリックします。

組織コントロールを選択すると、そのコントロールとそれに含まれるすべてのコントロールが選択されます。

3. 「削除」ボタンをクリックします。

注意:

組織コントロールを削除すると、それに含まれるすべてのコントロールも削除されます。

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

Webフォームの設計時、Webフォーム・エディタから直接、動作をテストできます。

コントロールで値を入力するたびに、非同期リクエストがサーバーに送信されてデータが検証されます。フォーム全体にデータを入力しなくても、誤って入力したデータが検出されます。たとえば、数値コントロールに文字を入力しようとすると、すぐにエラー・メッセージが表示されます。特定のコントロールに関連付けられたルールがフォームに含まれている場合、サーバーは、ユーザーがコントロールにデータを入力するとすぐにそれらのルールを適用します。

たとえば、「ゲストを同伴しますか?」で「はい」ラジオ・ボタンを選択したときに「ゲスト名」コントロールを有効にするルールがフォームに定義されているとします。この場合、フォームへの入力が完了していなくても、「ゲスト名」コントロールがすぐに有効になります。

Webフォームをテストするには:

1. Webフォームを開きます。

2. Webフォーム・エディタ・ツールバーで「フォームのテスト」ボタンをクリックします。

3. 日付を入力したり、ドロップダウン・コントロールからアイテムを選択するなどして、Webフォームをテストします。

4. テストが終了したら、「閉じる」(x)ボタンをクリックします。

10.7.11 Webフォームでのローカライゼーションについて

Webフォームをローカライズして、複数の追加言語をサポートできます。

言語をサポートするには、まずプロジェクト・レベルで言語を追加する必要があります。「「プロジェクト情報」パネルの概要」を参照してください。

プロジェクト・レベルで言語を追加したら、Webフォーム・エディタでWebフォーム要素の翻訳文字列を追加できます。「プロパティ・エディタの概要」を参照してください。

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

この章では、Oracle Business Process Composerを使用してWebフォーム内でフォーム・ルールを作成および編集する方法について説明します。フォーム・ルールは、ユーザーとWebフォームとの相互作用を定義するJava-scriptコードです。この章では、JavaScriptの基本を理解していることを前提としています。

この章の内容は次のとおりです。

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

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

11.1 フォーム・ルールの概要

フォーム・ルールは、Webフォーム・コントロールの表示方法やユーザーが入力できるデータのタイプを定義することで、ユーザーとWebフォームとの相互作用を定義するサーバー・サイドJavaScriptコードです。

フォーム・ルールを作成して、Webフォームの動作を定義できます。一般に、フォーム・ルールは次の場合に使用します。

- 要素の表示/非表示、有効/無効の切替えなど、Webフォームへの動的動作の追加。
たとえば、他のフォーム・コントロールの状態に基づいて、特定のフォーム・コントロールまたはセクション全体の表示/非表示を切り替えるフォーム・ルールを追加できます。コンテキストに応じた方法でフォーム・フィールドを表示すると、混乱が少なくなり、ユーザーがフォームに移動しやすくなります。

- 複雑な計算の実行。
たとえば、アイテム数量と価格など、他のフォーム・フィールドの値から発注フォームの請求書価格合計を計算できます。

- 複雑な検証の実行。

- 動的なドロップダウン・リストの移入。

次の項では、フォーム・ルールに含まれるJavascriptの基本機能について説明します。フォーム・ルールの特定のユース・ケースについては、「Webフォーム・ルールの例」を参照してください。

11.1.1 フォーム・ルールのJavascript構文

Oracle Business Process Management (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;
}
}

11.1.1.1 コントロール名

多くの場合、フォーム・ルールはフォーム・コントロールを参照する必要があります。コントロールのnameプロパティを使用して、コントロールに名前を割り当てる必要があります。

名前は大文字と小文字が区別されます。コントロールがFirstNameという名前の場合、フォーム・ルールをFirstName.valueとして作成する必要があります。firstname.valueは機能しません。

フォーム・ルールでコントロールを使用する場合、コントロールが一意の名前になっていることを確認する必要があります。複数のコントロールの名前が同じ場合、ランタイム環境では、フォーム・ルールが参照するコントロールを特定できません。通常、パレットからフォームに追加されたフォーム・コントロールには必ず一意の名前が付けられます。フォームにすでに存在するコントロールの名前に変更することは、Webフォーム・エディタでは許可されません。

ただし、次のような状況では、同じ名前の複数のコントロールを使用できます。

- XSDデータ・ソースから追加されたコントロール

- カスタム・パレットから追加されたコントロール

- セクションにネストされたコントロール

同じラベルの2つのコントロールが同じレベルにある場合、コントロール名は自動的に一意になります。一意にならないように名前を編集しようとしても、Webフォーム・デザイナでは変更できません。

コントロールがセクション・コントロール内にドロップされた場合、セクションの外側にドロップされたコントロールとは別のネスト・レベルとなります。また、セクション内とセクション外の2つのコントロールのネスト・レベルも異なります。Webフォーム・デザイナでは、このようなコントロールには同じ名前を指定できます。

一意でない名前のコントロールがフォーム・ルールで使用された場合、予期しない結果が生じることがあります。フォームでエラーが発生した場合、一意になるようにコントロール名を編集できます。

注意:

フォームの名前を編集しても、xsdスキーマ・コントロールは、フォームの発行時またはxml検証時に作成されたxmlインスタンス・ドキュメントには影響しません。

11.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は無効です。

11.1.1.3 文字列と数値

JavaScriptはタイプが緩く指定された言語であるため、フィールド値を加算する必要があるときに、フォーム・ルールによって文字列の連結が実行されることがあります。文字列操作ではなく、算術計算を実行するようフォーム・ルールに指示するには、様々な方法があります。簡単な方法としては、変数に*1を追加します。id = id*1 + 1;と指定すれば、idは現在の値に1を付加した値ではなく、現在の値に1を加算した値になります。たとえば、現在の値が4であり、id*1と記述しなかった場合、結果は5ではなく41になります。

フォーム・ルールでは、通貨コントロールによって加算ではなく文字列連結が実行される場合があります。この問題を修正するには、次のようにします。

- フォーム・ルールを含むフォームをデザイナで開き、通貨コントロールをテキスト・コントロールに変更して、フォームを保存します。

- フォームを開き、テキスト・コントロールを通貨コントロールに戻してから、フォームを再び保存します。

11.1.1.4 日付と時間

日付コントロールを初期化するには、データが正しい書式である必要があります。

正しい日付書式の例は次のとおりです。

- d1.value = "2012-01-13"; //yyyy-mm-dd

- d2.value = "01-13-2014"; //mm-dd-yyyy

- d3.value = "jan 13 2014"; //using string for month

通常、日付、時間(時刻)および日付/時間のリテラルをルールに記述する際に、ブラウザのロケールまたはサーバーのロケールに依存することはお薦めしません。

日付および時間のルールの例は次のとおりです。

if (form.load) {
date.value = "2014-02-29";
timeofday.value = "13:10:02";
datetime.value = "2014-02-29T18:10:02Z";

このルールでは、フォーム内の日付コントロールは02-29-2014、時間コントロールは1:10 PM、日付/時間コントロールの日付部分は02-29-2014、時間部分は1:10 PMで初期化されます。

日付/時間値の末尾にある特殊文字"Z"に注目してください。これはUTC-00:00のオフセットに相当し、18:10:02という時間がUTCで返されることを示します。18:10:02 UTCは、東部標準時の1:10 PMと同じです。

時間および日付/時間コントロールを使用するには、正しい書式設定とともに、Webフォームでのタイムゾーンの管理についての理解も必要です。Webフォームでは、時間がブラウザのローカル・タイムゾーンに変換されてからフォームに表示されます。ただし、時間データの書式が正しく設定されていない場合、時間の解析が複数回試行されますが、常にタイムゾーンの変換なしで時間が表示されます。正しい時間書式の例は次のとおりです。

- t1.value = "20:30:00";

- d2t2.value = "20:30:00Z";

- t3.value = "20:30:00-04:00";

- dt1.value = "2012-08-23T20:30:00";

11.1.1.5 条件の作成

最も一般的な条件の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;

11.1.1.6 選択コントロール

ラジオ・コントロール、ドロップダウンおよびチェック・ボックスはすべて、選択コントロールの例です。ラジオ・コントロールおよびドロップダウン・コントロールは単一選択です。つまり、ドロップダウン内の1つのアイテムを選択すると、ドロップダウン内の他のアイテムはすべて選択解除されます。同じことがラジオにも当てはまります。いつでも押せるのは1つのラジオ・ボタンのみです。したがって、ラジオおよびドロップダウンのID.valueは、他の入力および出力コントロールに似ています。値は単一のアイテムです。

チェック・ボックス・コントロールは複数選択が可能です。いつでも複数のアイテムを選択できます。そのため、チェック・ボックスのID.valueは配列です。したがって、チェック・ボックスの有効な式は、値配列内のアイテムの数を返すID.value.lengthです。ID[0].valueはリスト内の最初のアイテムを取得し、ID[1].valueは2番目のアイテムを取得します(以下同様)。チェック・ボックスが1つのみのチェック・ボックス・コントロールでチェック・ボックスが選択されていない場合、配列には要素が含まれません。チェック・ボックス・コントロールの場合、有用な式としてID.value.length == 0があります。ID.lengthは有効な式ではないことに注意してください。また、チェック・ボックス・コントロールは配列であるため、ID[0].value ==と記述するのも有効な式ではありません。チェック・ボックス・コントロール内のオプションが選択されていない場合、その値は空の文字列ではありません。配列に存在しないだけです。

11.1.1.7 コントロールの初期状態

フォーム内のすべてのコントロールに、visible、expanded、value、validおよびenabledプロパティのデフォルトの初期状態があります。ただし、フォーム・デザイナの「編集」タブでコントロールの初期状態を変更できます。コントロールの初期状態を変更するには様々な方法があります。1つの方法としては、値を入力コントロールに関連付けます。これにより、フォームを使用モードで初めて開いたときにコントロールのデフォルト値が設定されます。グループ・コントロールを拡張または縮小するという方法もあります。これにより、初期拡張状態が設定されます。visibleおよびenabledプロパティのデフォルト状態は、コントロールの「プロパティの編集」パネルを使用して設定されます。「プロパティの編集」には、visibleおよびenabledプロパティが入力コントロールのように意味を持つコントロールのプロパティのチェック・ボックスがあります。

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

それ自体に繰返しコントロールが含まれる繰返しコントロールがフォームに存在する場合、フォーム・ルールを内側の繰返しコントロールに適用することはできません。これは、内側のどの繰返しアイテムが外側のどの繰返しアイテムと対になっているかを区別する方法がないためです。

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

多くの場合、実際のフォームではドロップダウン・リストに動的コンテンツが含まれている必要があります。通常、1つのフォーム・フィールドに入力された値に基づいて、他のフィールドの値や選択コントロールで使用可能なオプションが動的に設定される必要があります。

11.1.2.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");

11.1.2.2 動的コンテンツの再利用

バック・エンド・システムから動的コンテンツを取得すると、フォームのパフォーマンスが低下する原因になることがあります。フォームで動的コンテンツを複数回使用する必要がある場合、http.get()からコンテンツを1回取得し、返されたJSON文字列を非表示のテキスト・フォーム・コントロールに保存することで、パフォーマンスを向上させることができます。その後、バック・エンド・システムを複数回呼び出さなくても、テキスト・コントロール値を読み取って再評価できます。

たとえば、jsonUserDataという名前の非表示のテキスト・コントロールをフォームに追加します。http.get():を介してバック・エンド・システムからユーザー・データを取得する1行をフォーム・ルールに追加します。

jsonUserDate.value = x;

ユーザー・データを同様に必要とする他のフォーム・ルールで、http.get()をバック・エンド・システムに再度呼び出すのではなく、次の行をフォーム・ルールに追加します。

var val = jsonUserDate.value;
eval('x' = val);

これは、バック・エンド・システムからコンテンツを再び取得したように、xを同じ文字列に設定する効果があります。

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

Webフォーム・ルール内のビルトイン・データとビルドイン・メソッドにアクセスできます。

11.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オブジェクトに設定することはできません。

11.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を返します

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

Webフォームでフォーム・ルールを使用する場合、フォーム・ルールの実行時の動作を理解することが重要です。

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

フォーム・ルールを作成または編集すると、Oracle BPMでは、コントロール、およびフォーム・ルールが依存するそのコントロールのプロパティのリストを確認します。フォーム・ルールに関連する状態の変化があると、フォーム・ルールが自動的に実行されます。フォーム・ルールは、フォーム・ルール・パネルに表示されるときに上から下の順序でも実行されます。

フォーム・ルールは他のフォーム・ルールの実行をトリガーできることに注意してください。つまり、フォーム・ルールR1が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の両方の値に依存するため、ゼロ文字より長い文字列が入力されると、フォーム・ルールが実行され、メッセージが表示されます。

11.1.4.2 無限ループ

ループ状態になるフォーム・ルールは簡単に作成できます。たとえば、B.valueに基づいてA.valueを更新するフォーム・ルールや、A.valueに基づいてB.valueを更新するフォーム・ルールなどです。このようなフォーム・ルールは相互に連続してトリガーされます。

Oracle BPMサーバーでは、フォーム・ルールごとに実行時間の制限を設定することで、この状態が発生しないようにします。実行に5秒以上かかるフォーム・ルールは強制的に停止されます。これは、ほとんどの計算タスクで非常に長い時間であり、フォーム・ルールの大部分はこの制約の影響を受けることはありません。ただし、Oracle BPMは多数のユーザーが同時に使用するホスト・サイトであるため、このような計算によって課される時間制限があります。

11.1.5 フォーム・ルールのデバッグ

この項では、フォームのデバッグ方法について説明します。

11.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つの配列として解釈されていることを意味します。

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

フォーム・ルールの実行をプロファイリングすると、各フォーム・ルールの実行にかかる時間を判断できます。これは、多数のフォーム・ルールを使用するフォームのパフォーマンスを調整および向上する際に役立ちます。プロファイリングをオンにするには、urlでrule-debug=profileを設定します。

動的な選択コントロール(ドロップダウン、ラジオ、チェック・ボックス)を設定するためにフォーム・ルールがデータベース問合せを実行する場合、フォーム・ルールのプロファイリングによって、データベース問合せに時間がかかりすぎているかどうかを確認できます。実行時間が長いHTTPコールが表示されます。

11.2 フォーム・ルールの使用

Oracle Business Process Composerには、フォーム・ルールを作成および編集するためのエディタが用意されています。

次の手順では、フォーム・ルールを作成およびテストする方法を説明します。

11.2.1 フォーム・ルールの作成方法

新しいフォーム・ルールを作成するには:

1. 新しいフォーム・ルールを作成するフォームを開きます。

2. フォーム・ツールバーで、「ルール」ボタンをクリックします。

3. 「新規ルールの作成」をクリックします。

4. 「編集」をクリックし、必要に応じて、表11-1に記載されているフィールドを編集します。

表11-1 フォーム・ルールのフィールド

要素

説明

名前

フォーム・ルールの名前を定義します。わかりやすい名前に変更します。

有効

フォーム内のフォーム・ルールを有効にする場合に選択します。このオプションの選択を解除すると、フォーム・ルールは実行時にフォームに適用されません。

説明

フォーム・ルールの説明を指定します。フォーム・ルールの動作、およびフォーム内のフォーム・コントロールや他のフォーム・ルールのコンテキストでどのように機能するかを説明するようにデフォルトを変更します。

ルール

フォーム・ルールを定義します。

5. フォーム・ルールの作成および編集が完了したら、ツールバーの「編集」をクリックしてWebフォーム・デザイナに戻ります。

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

Webフォームのテスト中にフォーム・ルールの動作をテストできます。詳細は、「Webフォームをテストする方法」を参照してください。

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

この章では、ヒューマン・タスクを使用してエンド・ユーザーとプロセスベースのアプリケーションとの相互作用を定義する方法について説明します。Oracle Business Process Composerを使用してヒューマン・タスクを作成および編集する方法について説明します。

この章の内容は次のとおりです。

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

- ヒューマン・タスク・エディタの概要

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

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

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

ヒューマン・タスクは、Oracle Human Workflowのコンポーネントの1つです。Oracle Human Workflowは、ユーザーとプロセスベースのアプリケーションとの相互作用を管理するためのランタイム環境を提供する、Oracle Service-Oriented Architecture (Oracle SOA) SuiteおよびOracle Business Process Management (Oracle BPM) Suiteのコンポーネントです。ヒューマン・タスクは、ユーザー・インタフェースとワークフローを含む、ユーザー相互作用を定義します。

Oracle Business Process Composerを使用して、新しいヒューマン・タスクを作成し、その基本プロパティを構成できます。ただし、ヒューマン・タスクのより詳細な構成を行う場合は、Oracle BPM Studioを使用する必要があります。

Oracle BPM Studioを使用したヒューマン・タスクの構成の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のヒューマン・ワークフローのスタート・ガイドを参照してください。

ヒューマン・タスクは、BPMプロジェクト内のサービスとして定義され、ビジネス・カタログに格納されます。

ヒューマン・タスクでは次が定義されます。

- 参加者: ヒューマン・タスクの作業を実行するユーザーまたはユーザー・グループを指定します。

- 承認パターン: ヒューマン・タスクで実行される作業の順序を指定します。

- アクセス権限: タスクにアクセスできるユーザーを決定します。

- ペイロード: ヒューマン・タスクで使用されるデータ構造を定義します。
ペイロード・データは、Business Process Model and Notation (BPMN)プロセスのユーザー・タスクからヒューマン・タスクに渡されます。

- 有効期限: ヒューマン・タスクの期間を定義します。

- プレゼンテーション: 参加者がBPMNプロセスとの相互作用に使用するユーザー・インタフェースを定義します。プレゼンテーションはフォームによって定義されます。
Oracle BPMは、WebフォームとOracle Application Development Framework (ADF)タスク・フォームの2つのタイプのフォームをサポートしています。

Oracle Business Process Composerを使用したWebフォームの作成と使用の詳細は、「Webフォームの使用」を参照してください。Oracle BPM Studioを使用したADFタスク・フォームの作成の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のヒューマン・ワークフローのスタート・ガイドを参照してください。

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

ヒューマン・タスクでは、ユーザーがアプリケーションで様々なタスクを実行する順序を決定できます。この順序はヒューマン・タスクのルーティングによって定義されます。参加者とは各タスクの実行を担当するユーザーまたはグループです。ヒューマン・タスク・エディタの「ルーティング・スリップ」セクションを使用して、ヒューマン・タスクのルーティング・フローおよび参加者を指定できます。

12.1.1.1 参加者のタイプ

ヒューマン・タスクでは、次の一般的なルーティング・シナリオのパターンがサポートされます。

- 単一の承認者
これは、1人の参加者を単一のユーザー、グループまたはロールにマップする単純なケースです。詳細は、参加者割当ての概要を参照してください。

たとえば、休暇申請がマネージャに割り当てられているとします。マネージャは、休暇が始まる3日前までに申請タスクを操作する必要があります。マネージャが申請を正式に承認または却下すると、その決定が従業員に通知されます。マネージャがタスクを操作しない場合、申請は却下として処理されます。正式な拒否と同様の通知アクションが実行されます。

- パラレル
この参加者タイプは、一連のユーザーがパラレルで作業する必要があることを示します。このパターンは通常、投票で使用されます。

たとえば、雇用担当の複数のユーザーが応募者の採否を投票する必要があるとします。結果を有効にするために必要な得票率(多数決や全員一致など)を指定します。

- FYI
この参加者も、単一の承認者と同様に、単一のユーザー、グループまたはロールにマップされます。ただし、このパターンは、参加者が通知タスクを単に受信し、ビジネス・プロセスではこの参加者のレスポンスを待機しないことを示します。FYIの参加者は、タスクの結果に直接影響を与えることはできませんが、場合によっては、コメントを提供したり、添付ファイルを追加できます。

たとえば、採用候補者の採用について地域マネージャが承認し、その候補が承認または却下のために州全体の統括マネージャに渡されたことが、地域の営業所に通知される場合です。

- シリアル
この参加者タイプは、一連のユーザーが順番に作業する必要があることを示します。ルーティング・ポリシーには、複数の参加者を順番に使用した順番による作業を指定できますが、このパターンは一連のユーザーが動的である場合に有用です。このシリアル・タイプの一般的なシナリオは、管理チェーン・エスカレーションです。このエスカレーションは、このパターンの指定内にある管理チェーンに基づいてリストを指定することで実行されます。

ヒューマン・タスクを作成すると、デフォルトの単純参加者が含まれます。ヒューマン・タスク・エディタを使用して、参加者タイプを変更したり、参加者を追加できます。詳細は、「デフォルト参加者の変更方法」を参照してください。

12.1.1.2 ルーティングのタイプ

図12-1は、単一の参加者のみが含まれている基本的なルーティングを示しています。

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

参加者タイプに加えて、ヒューマン・タスクでは、より制御機能が高い複雑なルーティング・タイプもサポートされています。これらのルーティング・タイプには、次のものがあります。

- 順次
順次ルーティングでは、様々な参加者が、タスクを順番に処理します。図12-2は、順次ルーティングの例を示しています。この例では、Participant_1はルーティング・フローの最初の参加者です。Participant_1がタスクの処理を終了した後、タスクはParticpant_2に渡されます。Participant_2がタスクの処理を終了した後、ヒューマン・タスクは完了となります。

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

- パラレル
パラレル・ルーティングでは、複数の参加者がタスクを同時に処理します。図12-3は、パラレル・ルーティングの例を示しています。この例では、Participant_1とParticipant_2がタスクを同時に処理します。

パラレル・ルーティングでは、パラレル・ブロックの後、タスク・フローが次の参加者にどのように続くかを決定するルーティングの結果を定義できます。詳細は、結果を参照してください。

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

12.1.1.3 結果

結果には、ヒューマン・タスクについて可能性がある結果引数を指定します。Oracle BPM Worklistとプロセス・ワークスペースには、実行時に実行できるタスクとして選択した結果が表示されます。

「デフォルトの結果」リストで選択されたデフォルトの結果をオーバーライドする投票時結果を指定できます。この結果は、必要なパーセンテージに達した場合に有効になります。結果は特定の順序で評価されます。

ヒューマン・タスクに対して次の結果を定義できます。

- 遅延

- はい

- 承認

- 承認

- 却下

- いいえ

ヒューマン・タスクの結果を構成する方法の詳細は、「基本タスク・プロパティの構成方法」を参照してください。パラレル・ルーティングの結果を構成する方法の詳細は、「パラレル・ルーティングの結果の構成方法」を参照してください。

Oracle BPM Studioを使用してカスタム結果を定義することもできます。カスタム結果を定義する方法の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のOracle BPMでのヒューマン・タスクの設計を参照してください。

12.1.2 参加者割当ての概要

参加者割当ては、アプリケーションを使用する組織内のユーザーにヒューマン・タスク参加者をマップするプロセスです。各参加者を次のいずれかにマップして割り当てます。

- ユーザー
タスクの操作に個別のユーザーを割り当てることができます。たとえば、特定のタスクに対してユーザーjlondonやjsteinを割り当てることができます。ユーザーは、SOAインフラストラクチャで構成されたアイデンティティ・ストアに定義されます。これらのユーザーは、Oracle WebLogic Serverの組込みLDAP、Oracle Internet Directoryまたはサード・パーティのLDAPディレクトリで定義できます。

ユーザーと同様に、グループはSOAインフラストラクチャのアイデンティティ・ストアに定義されます。

- グループ
タスクの操作にグループを割り当てることができます。グループには、タスクを要求して操作できる個別のユーザーが含まれています。たとえば、ユーザーjcooperとfkafkaは、タスクの操作を割り当てたグループLoanAgentGroupのメンバーである可能性があります。

- アプリケーション・ロール
タスクの要求と操作に、アプリケーション・ロールのメンバーであるユーザーを割り当てることができます。

ユーザー、グループまたはロールをヒューマン・タスク参加者に割り当てる手順は、「参加者へのユーザー、グループおよびロールの割当て方法」を参照してください。

12.1.3 期間の概要

期間は、別のアクションが実行されるまでヒューマン・タスクがアイドル状態でいる期間を定義します。期間は、ヒューマン・タスク全体または各ヒューマン・タスク参加者に対して定義できます。

ヒューマン・タスク全体に対して期間を定義する方法は、「ヒューマン・タスクに対する期限(期間)の定義方法」を参照してください。

12.2 ヒューマン・タスク・エディタの概要

Oracle Business Process Composerには、ヒューマン・タスクを作成および編集できるヒューマン・タスク・エディタがあります。

ヒューマン・タスク・エディタは、図12-4に示すようなタブ付きペインで構成されています。

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

ヒューマン・タスク・エディタには次のタブが含まれています。

- 基本: ヒューマン・タスクの基本プロパティの構成、期限の定義、およびヒューマン・タスクのプレゼンテーションの構成を行うことができます。
詳細は、「基本タスク・プロパティの構成方法」と「ヒューマン・タスクのプレゼンテーションの指定方法」を参照してください。

- ルーティング・スリップ: ヒューマン・タスクの参加者とルーティング・タイプを定義および構成できます。
詳細は、「デフォルト参加者の変更方法」および「参加者へのユーザー、グループおよびロールの割当て方法」を参照してください。

- データ: ヒューマン・タスクで使用されるデータ・ペイロードを定義します。
詳細は、「ヒューマン・タスクに対するデータ・ペイロードの作成および構成方法」を参照してください。

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

Oracle Business Process Composerでは、プロジェクトのようこそページから直接、新しいヒューマン・タスクを作成できます。ヒューマン・タスクは、サービスとして定義され、BPMプロジェクトのビジネス・カタログに格納されます。

次の項では、ヒューマン・タスクの作成、構成および編集の方法について説明します。

12.3.1 ウォークスルー: ヒューマン・タスクの作成と構成

次の手順では、ヒューマン・タスクの作成と構成に必要な一般的なステップを示します。

1. 新しいヒューマン・タスクを作成します。

新規ヒューマン・タスクはプロジェクトのようこそページから直接作成できます。詳細は、「新しいヒューマン・タスクの作成方法」を参照してください。

2. ヒューマン・タスクを開きます。

詳細は、「ヒューマン・タスクを開く方法」を参照してください。

3. ヒューマン・タスクの基本プロパティと期限を構成します。

4. ヒューマン・タスクのペイロード・データを定義します。

5. ヒューマン・タスクにフォームを割り当てます。

6. ヒューマン・タスクをユーザー・タスクに割り当てます。

12.3.2 新しいヒューマン・タスクの作成方法

新しいヒューマン・タスクを作成する手順は、次のとおりです:

1. 新しいヒューマン・タスクを作成するプロジェクトを開きます。

2. プロジェクトが編集モードであることを確認します。

3. プロジェクトのようこそページから、「ヒューマン・タスク」タブを選択します。

4. 「新規」アイコンをクリックします。

5. 新規ヒューマン・タスクの名前を入力し、「作成」をクリックします。

図12-5に示すように、新しいヒューマン・タスクがヒューマン・タスクのリストに表示されます。

図12-5 プロジェクトのようこそページ - 「ヒューマン・タスク」

12.3.3 ヒューマン・タスクを開く方法

既存のヒューマン・タスクは、開いて表示または編集できます。

既存のヒューマン・タスクを開く手順は、次のとおりです。

1. 表示または編集するヒューマン・タスクがあるプロジェクトを開きます。

2. 図12-5に示すように、プロジェクトのようこそページから、「ヒューマン・タスク」を選択します。

3. 開くヒューマン・タスクの名前をクリックします。

ヒューマン・タスクがヒューマン・タスク・エディタで開きます。詳細は、ヒューマン・タスク・エディタの概要を参照してください。

12.3.4 基本タスク・プロパティの構成方法

ヒューマン・タスク・エディタの「基本」領域を使用して、ヒューマン・タスクの基本プロパティ(タスクのタイトル、タスクの優先度、結果など)を構成します。

基本タスク・プロパティを構成するには:

1. ヒューマン・タスクを開きます。

2. ヒューマン・タスク・エディタで、「基本」を選択します。

3. 「タスクのタイトル」の隣のドロップダウン・リストから、次のいずれかを選択します。

- プレーン・テキスト: テキスト・ボックスを使用してタスクのタイトルを定義します。
このオプションを選択した後、テキスト・ボックスにタスク・タイトルを入力します。

- XPath: XPath機能に基づいてタスクのタイトルを定義します。

- 変換: タスクのタイトルの翻訳バージョンを定義します。

タスクのタイトルは、プロセス・ワークスペースに表示されるヒューマン・タスクのタイトルを定義します。

4. 「優先度」の隣のドロップダウン・リストから、ヒューマン・タスクの優先度を選択します。
有効値は1(優先度最高)から5(優先度最低)です。この値はプロセス・ワークスペースに表示されます。

5. ヒューマン・タスクの結果を定義します。

a. 「結果」フィールドの隣の虫眼鏡アイコンをクリックします。

b. 構成する結果を選択します。
少なくとも1つの結果を選択する必要があります。詳細は、結果を参照してください。

c. 「OK」をクリックします。

6. プロジェクトを保存して、変更を保存します。

12.3.5 ヒューマン・タスクの期限(期間)の構成方法

タスク・エディタを使用して、ヒューマン・タスクの期間を定義します。

ヒューマン・タスクの期限(期間)を構成するには:

1. ヒューマン・タスクを開きます。

2. ヒューマン・タスク・エディタから、「基本」タブを選択します。

3. 「期限」の下のドロップダウン・リストから、次のいずれかを選択します。

- 有効期限なし: ヒューマン・タスクに期限や有効期限がないことを示します。

- 有効期限切れまでの時間: 指定の期間後にヒューマン・タスクの有効期限が切れることを示します。
オプションを選択したら、次を構成できます。

- 固定期間: ヒューマン・タスクの期間を定義します。
このオプションを指定したら、特定の日数、時間数および分数を定義できます。

- 式別: 式を使用してヒューマン・タスクの期間を定義できます。

- ビジネス・カレンダのベース有効期限: ビジネス・カレンダに基づいてヒューマン・タスクの期間を定義する場合、このオプションを選択します。

- 更新までの期間: ヒューマン・タスクの有効期限を延長します。
このオプションを選択したら、次を構成できます。

- 固定期間: ヒューマン・タスクの有効期限を延長する期間を定義します。
このオプションを指定したら、特定の日数、時間数および分数を定義できます。

- 式別: 式を使用して、ヒューマン・タスクの有効期限を延長する期間を定義できます。

- 更新の最大回数: 有効期限を更新できる回数を定義します。

- ビジネス・カレンダのベース有効期限: このオプションを選択すると、ビジネス・カレンダに基づいてヒューマン・タスクの期間が定義されます。

- エスカレートまでの時間: 有効期限が切れたら、タスクをマネージャにエスカレートします。
このオプションを選択したら、次を構成できます。

- 固定期間: ヒューマン・タスクの期間を定義します。
このオプションを指定したら、特定の日数、時間数および分数を定義できます。

- 式別: 式を使用してヒューマン・タスクの期間を定義できます。

- エスカレーション・レベルの最大数: 有効期限後にタスクをエスカレートできるレベルの数を定義します。

- 承認の最高役職: エスカレーションが到達する管理チェーン内の最高レベルの役職を定義します。

- ビジネス・カレンダのベース有効期限: このオプションを選択すると、ビジネス・カレンダに基づいてヒューマン・タスクの期間が定義されます。

4. プロジェクトを保存して、変更を保存します。

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

ヒューマン・タスクのプレゼンテーションは、アプリケーションのユーザー・インタフェースを定義します。プレゼンテーションは、ヒューマン・タスク用のユーザー・インタフェース、データ構造および接続情報を定義するフォームに関連付けられます。Oracle BPMは、WebフォームとADFタスク・フォームの2つのタイプのフォームをサポートしています。

フォームの作成、編集および使用の詳細は、「Oracle BPMでのフォームの概要」を参照してください。

12.3.6.1 ADFタスク・フォームを使用したヒューマン・タスクのプレゼンテーションの指定

ADFタスク・フォームを使用してヒューマン・タスクのプレゼンテーションを指定するには:

1. ヒューマン・タスクを開きます。

2. 「Basic」タブを選択します。

3. 「プレゼンテーション」で、「ADFフォーム」を選択します。

4. ADFフォームに対して次の接続情報を入力します。

- ホスト名: プレゼンテーションのデプロイ先サーバーのホスト名を指定します。

- HTTPポート: プレゼンテーションのデプロイ先サーバーのポートを指定します。

- HTTPSポート: プレゼンテーションのデプロイ先サーバーのセキュアなポートを指定します。

- URI: プレゼンテーションのURIを指定します。

5. 「OK」をクリックします。

12.3.6.2 Webフォームを使用したヒューマン・タスクのプレゼンテーションの指定

Webフォームを使用してヒューマン・タスクのプレゼンテーションを指定するには:

1. ヒューマン・タスクを開きます。

2. 「Basic」タブを選択します。

3. 「プレゼンテーション」で、「Webフォーム」を選択します。

4. 「参照」ボタンをクリックします。

Webフォーム・ブラウザが表示されます。

5. 選択するWebフォームの名前をクリックします。

12.3.7 デフォルト参加者の変更方法

新規ヒューマン・タスクを作成すると、デフォルトの単純参加者が含まれます。ヒューマン・タスク・エディタを使用して、デフォルト参加者のタイプを変更できます。

ヒューマン・タスクのデフォルト参加者を変更するには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. 図12-6に示されているように、参加者をクリックして、「削除」(X)アイコンをクリックし、参加者を削除します。

図12-6 参加者の追加/削除アイコン

4. ルーティング・スリップ・ボックスをクリックします。

5. 「追加」(+)アイコンをクリックし、参加者タイプを選択します。

各参加者タイプについては、「参加者とルーティング・タイプの概要」を参照してください。

新しい参加者がルーティング・スリップ・ボックスに表示されます。ヒューマン・タスクへの参加者の追加については、次の手順を参照してください。

12.3.8 ヒューマン・タスクへの参加者とルーティングの追加方法

ヒューマン・タスク・エディタを使用して、ヒューマン・タスクに参加者またはルーティング・タイプを追加します。

参加者をヒューマン・タスクに追加する手順は、次のとおりです。

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. ルーティング・スリップ・ブロックをクリックします。

4. 「+」アイコンをクリックし、参加者タイプを選択します。

各参加者タイプについては、「参加者とルーティング・タイプの概要」を参照してください。

新しい参加者がルーティング・スリップの一番右に追加されます。

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

ヒューマン・タスク内において、参加者は、抽象的に、ヒューマン・タスクとそのワークフローに参加する責任を持つユーザーを定義します。ヒューマン・タスクで定義されている参加者とルーティングが、実際の組織内の参加者にどのようにマップされるかは、参加者の選択を構成することにより定義できます。

参加者の選択方法は次のとおりです。

- 名前および式

- レーン参加者

- パラメータ・ロール

注意:

パラメータ・ロールを使用するようにヒューマン・タスクを構成できますが、Oracle Business Process Composerを使用してパラメータ・ロールを作成または構成することはできません。パラメータ・ロールは、プロセス・ワークスペースまたはOracle BPM Studioを使用して作成し、ヒューマン・タスクに割り当てる必要があります。

各方法については、次の手順で説明します。

12.3.9.1 名前と式を使用した参加者の選択

名前と式を使用して参加者を選択するには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. 参加者をダブルクリックします。

4. 「参加者のリストの作成で使用」の隣のドロップダウン・リストから「名前および式」を選択します。

5. 「参加者名」の下の「追加」アイコンをクリックして、次のいずれかを選択します。

- ユーザーの追加:

- グループの追加:

- アプリケーション・ロールの追加:

これらのオプションの1つを選択したら、表内に表示されます。必要に応じて、表内のドロップダウン・リストを使用して、値を変更できます。

6. 「データ型」列で、ドロップダウン・リストから「名前別」または「式別」のいずれかを選択します。

7. 参加者に対して値を選択します。

a. 「値」列の「検索」アイコンをクリックします。

b. ドロップダウン・リストから、「ユーザー」、「グループ」または「アプリケーション・ロール」のいずれかを選択します。

c. 検索する名前を入力し、「検索」をクリックします。
すべての名前、グループまたはロールのリストを表示するには、テキスト・フィールドを空白のままにして、「検索」をクリックします。

d. 追加するユーザー、グループまたはロールの隣のチェック・ボックスを選択します。

e. 「OK」をクリックします。

名前が「値」列に表示されます。

12.3.9.2 レーン参加者を使用した参加者の選択

レーン参加者を使用して参加者を選択するには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. 参加者をダブルクリックします。

4. 「参加者のリストの作成で使用」の横のドロップダウン・リストから「レーン参加者」を選択します。

5. 次のいずれかを選択します。

- 前のレーン参加者

- 現在のレーン参加者

12.3.9.3 パラメータ・ロールを使用した参加者の選択

パラメータ・ロールを使用して参加者を選択するには:

1. Oracle BPM Studioを使用してプロジェクトに対してパラメータ・ロールを作成していることを確認します。

2. 共有プロジェクトの場合は、編集モード中であることを確認します。

3. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

4. 参加者をダブルクリックします。

5. 「参加者のリストの作成で使用」の隣のドロップダウン・リストから「パラメータ・ロール」を選択します。

6. 「データ型」列で、ドロップダウン・リストから「名前別」または「式別」のいずれかを選択します。

7. 参加者に対して値を選択します。

a. 「値」列の「検索」アイコンをクリックします。

b. ドロップダウン・リストから、「ユーザー」、「グループ」または「アプリケーション・ロール」のいずれかを選択します。

c. 検索する名前を入力し、「検索」をクリックします。
すべての名前、グループまたはロールのリストを表示するには、テキスト・フィールドを空白のままにして、「検索」をクリックします。

d. 追加するユーザー、グループまたはロールの隣のチェック・ボックスを選択します。

e. 「OK」をクリックします。

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

パラレル・ブロックのルーティング結果を構成できます。

パラレル・ルーティングの結果を構成する手順は、次のとおりです。

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開いて、「ルーティング・スリップ」を選択します。

3. 「参加者」エディタで、パラレル・ブロックのいずれかの交点をダブルクリックします。

図12-7に示すような投票結果エディタが表示されます。

図12-7 投票結果エディタ

4. 「追加」アイコンをクリックし、次のいずれかの結果を選択します。

- 承認

- 却下

5. 表に、結果の値を入力します。

6. デフォルトの結果に対応する値をドロップダウン・リストから選択します。

7. 「OK」をクリックします。

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

ヒューマン・タスク・エディタを使用して、ヒューマン・タスク内で使用するデータ型を定義できます。このデータは、ユーザー相互作用で入力される情報を保存する際に使用されます。

ヒューマン・タスクのタスク・データを作成する手順は、次のとおりです。

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ヒューマン・タスクを開きます。

3. 「データ」タブを選択します。

4. 「追加」ボタンをクリックします。

5. 図12-8に示すように、「プリミティブ」および「コンポーネント」のリストから要素またはタイプを選択します。

図12-8 ヒューマン・タスク: 「データ」 - 「要素またはタイプの追加」ダイアログ

「タスク・データ」表に、タスク・データが表示されます。

6. 新しいタスク・データの名前を表に入力し、新しいタスク・データが編集可能であるかどうかを選択します。

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

ヒューマン・タスクを作成すると、BPMプロジェクトのビジネス・カタログの一部になります。ヒューマン・タスクをBPMNプロセスに組み込むには、そのプロセス内のユーザー・タスクに割り当てる必要があります。

ヒューマン・タスクをユーザー・タスクに割り当てるには:

1. 共有プロジェクトの場合は、編集モード中であることを確認します。

2. ビジネス・プロセスを開きます。

3. プロセスにユーザー・タスクを追加します。

4. ユーザー・タスクを右クリックして、「実装」を選択します。

5. 「ヒューマン・タスク」テキスト・ボックスの隣の「参照」アイコンをクリックします。

ヒューマン・タスク・ブラウザが表示されます。

6. 選択するヒューマン・タスクの名前をクリックします。

名前をクリックしたら、ヒューマン・タスクがヒューマン・タスク・テキスト・ボックスに表示されます。

7. 実装エディタで「変更の適用」をクリックします。

第VI部 ビジネス・アプリケーションで使用されるデータの処理

この部では、プロセスベースのビジネス・アプリケーションで必要とされるデータの処理方法を定義します。

この部は、次の章で構成されています。

- データ・オブジェクトおよびデータ・アソシエーションの使用

- 複合データ型を使用したデータ構造の定義

- 式を使用したデータのコントロール

- アプリケーションでのビジネス・データの追跡

13 データ・オブジェクトおよびデータ・アソシエーションの使用

この章では、データ・オブジェクトを使用してプロセスベースのビジネス・アプリケーションで使用されるデータを格納する方法を説明します。また、データ・アソシエーションを使用してビジネス・プロセス内でのデータ処理方法を定義する方法についても説明します。

この章の内容は次のとおりです。

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

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

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

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

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

ほとんどのビジネス・アプリケーションでは、ユーザーがデータを作成して操作する必要があります。たとえば、営業見積アプリケーションでは、顧客、見積、その他のタイプのデータに関する情報など、見積に関連するデータをユーザーが入力します。また、アプリケーションでは、アプリケーションの全体的な機能の一部として内部でのみ使用されるその他のデータを作成および操作することが必要な場合があります。

ビジネス・プロセスの作成時に、アプリケーションが使用するデータを定義する必要があります。Oracle Business Process Management (Oracle BPM)では、データがデータ・オブジェクト内に格納されます。データ・オブジェクトは、ほとんどのプログラミング言語に見られるデータ型と類似した単純型に基づいて定義されます。

また、データ・オブジェクトは、複合データ型に基づいた定義もできます。Oracle BPMのビジネス・オブジェクトは複合データ型です。複合データ型を使用すると、関連するデータをグループにまとめることができます。たとえば、従業員に関する情報の格納が必要なアプリケーションを作成している場合、名前、住所、給与および従業員に関するその他の情報を格納する複合データ型の作成が必要な場合があります。複合データ型は、Javaなどのオブジェクト指向プログラミング言語で使用されるクラスの概念に似ています。複合データ型の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

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

データの格納および操作方法を定義することは、Oracle BPMアプリケーションの全体的な設計および開発の一部です。次のタスクの概要では、Oracle BPMアプリケーション内で使用されるデータを定義するための一般的なプロセスを示します。

Oracle BPMアプリケーションで使用されるデータを定義する手順

1. プロジェクトに必要な複合データ型を定義します。

Oracle BPMアプリケーション内で使用されるデータを定義する際の最初の手順は、必要な複合データ型を定義することです。複合データ型を使用することで、アプリケーション内で使用されるデータ構造の定義が可能になります。複合データ型の使用の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

2. プロジェクト内で使用されるデータ・オブジェクトを作成します。

データ・オブジェクトの作成の詳細は、「データ・オブジェクトの作成方法」を参照してください。

3. プロセスでのデータの操作に使用される式を定義します。

式の定義の詳細は、「式を使用したデータのコントロール」を参照してください。

4. Business Process Model and Notation (BPMN)のフロー・オブジェクト間でデータ・アソシエーションを使用して情報を受け渡す方法を定義します。

データ・アソシエーションの詳細は、「フロー・オブジェクトのデータ・アソシエーションの構成方法」を参照してください。

5. プロセスの入力および出力を定義します。

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

一般にデータ・オブジェクトは、ビジネス・プロセスおよびOracle BPMアプリケーションで使用される情報の格納に使用される変数です。プロセスの設計および実装ステージ中に定義されます。BPMプロジェクトのデプロイ前に、実行アプリケーションで必要なデータ・オブジェクトのすべてを定義しておく必要があります。

実行時に、新規データ・オブジェクトは作成されませんが、ユーザーがアプリケーションと相互作用するため、データ・オブジェクトに格納された情報の値は変更されます。実行中のプロセスでは、データを格納、アクセスおよび操作できます。また、データの値によってプロセスの分岐が決まります。

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

Oracle BPMは、基本と複合の2つのタイプのデータ・オブジェクトをサポートします。使用するデータ・オブジェクトのタイプは、処理が必要なデータの型によって決まります。

- 基本データ・オブジェクト
基本データ・オブジェクトは単純データ型に基づいています。これらは、ほとんどのプログラミング言語に共通のコアなデータ型です。表 表13-1は、Oracle BPMでサポートされる基本データ型のリストです。

表13-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プログラミング言語におけるクラスとインスタンスとの関係に似ています。

図13-1は、基本データ・オブジェクトと複合データ・オブジェクトの関係を示しています。

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

複合データ・オブジェクトを作成する前に、まず、データ構造を定義する複合データ型を定義する必要があります。複合データ型の使用の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

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

データ・オブジェクトのデータ型を指定するだけではなく、スコープも選択する必要があります。Oracle BPMのスコープとは、データ・オブジェクトにアクセスできるプロセスまたはプロジェクト内の場所を指します。

Oracle BPMでは、プロセスとプロジェクトの2つのタイプのデータ・オブジェクト・スコープがあります。プロセス・データ・オブジェクトは、特定のプロセス用に定義されたデータ・オブジェクトです。同様に、プロジェクト・データ・オブジェクトはBPMプロジェクト全体用に定義されます。プロジェクト・データ・オブジェクトとプロセス・データ・オブジェクトはいずれも、基本タイプと複合タイプの両方から作成できます。

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

プロセス・データ・オブジェクトを使用すると、単一のプロセス内でのみ使用されるデータ・オブジェクトを定義できます。プロセス・データ・オブジェクトは、それが定義されたプロセス内でのみ使用できます。

プロセスベースのアプリケーションを設計しているときに、単一のプロセス内でのみデータ・オブジェクトが必要であることが判明している場合は、システム・リソースを節約するためプロセス・データ・オブジェクトとして定義することをお薦めします。

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

プロジェクト・データ・オブジェクトでは、プロセス間でデータを共有できます。たとえば、Oracle BPMアプリケーション内では、発注書プロセスと承認リクエスト・プロセスはいずれも、リクエストを作成した従業員のデータを追跡します。1つのプロセスで作成または変更されたデータに他のユーザーがアクセスできます。

プロジェクト・データ・オブジェクトを使用すると、アプリケーション内のすべてのプロセスが同じデータにアクセスできるようになります。ただし、各プロセスでは、そのデータの値を割り当てて、更新する必要があります。

プロジェクト・データ・オブジェクトではプロジェクト内のすべてのプロセスで使用されるデータ・オブジェクトを定義できますが、このデータ・オブジェクトはグローバルなデータ・オブジェクトではありません。プロジェクト内の各プロセスは、独自のバージョンのデータ・オブジェクトを使用します。プロセス間でデータを共有するためにプロジェクト・データ・オブジェクトが使用されることはありません。プロセス間でデータを共有するには、データ・アソシエーションを作成する必要があります。データ・アソシエーションの詳細は、「データ・アソシエーションの概要」を参照してください。

プロジェクト・データ・オブジェクトを定義することのもう1つの利点は、プロジェクトの公開後に変数の値が表示されるようにOracle Business Process Management Workspaceビューを構成できることです。これは、プロジェクト・データ・オブジェクトを使用する場合にのみ可能です。

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

また、データ・オブジェクトは、複合データ型に基づいた定義もできます。Oracle BPMのビジネス・オブジェクトは複合データ型です。複合データ型を使用すると、関連するデータをグループにまとめることができます。

この項では、新規データ・オブジェクトを作成する方法や既存のデータ・オブジェクトを編集または削除する方法など、データ・オブジェクトを使用する手順について説明します。

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

この項の手順では、新規のプロセス・データ・オブジェクトまたはプロジェクト・データ・オブジェクトを作成する方法について説明します。複合データ型に基づくデータ・オブジェクトの作成が必要な場合は、最初に複合データ型を作成する必要があります。複合データ型の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

プロジェクトのようこそページからデータ・オブジェクトを作成するには:

1. プロジェクトの編集中であることを確認します。

2. プロジェクトのようこそページに移動します。

3. データ・オブジェクトを作成するプロセスを開きます。

4. ツールバーの「データ・オブジェクト」アイコンをクリックして、「データ・オブジェクト」ダイアログを開きます。

図13-2に示されるように、プロジェクトまたはプロセスの名前をクリックしてから、「追加」を選択します。

図13-2 プロセス・エディタ - データ・オブジェクト

5. データ・オブジェクトの一意の名前を入力します。

- 基本データ・オブジェクトを作成する場合は、ドロップダウン・リストから基本タイプのいずれかを選択します。

- 複合データ・オブジェクトを作成する場合は、ドロップダウン・リストから<object>を選択してから、複合データ・オブジェクトのベースとする複合データ型を選択します。

Oracle BPMでサポートされるデータ・オブジェクト・タイプの詳細は、「基本データ・オブジェクトと複合データオブジェクトの概要」を参照してください。

6. 「OK」をクリックします。

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

プロセス・データ・オブジェクトまたはプロジェクト・データ・オブジェクトを編集または削除できます。

データ・オブジェクトを編集または削除するには:

1. プロジェクトの編集中であることを確認します。

2. データ・オブジェクトを削除するプロセスを開きます。

3. プロセス・エディタ・ツールバーの「データ・オブジェクト」アイコンをクリックします。

4. データ・オブジェクトのリストで、削除または編集するプロジェクト・データ・オブジェクトまたはプロセス・データ・オブジェクトを選択し、次のようにします。

- データ・オブジェクトを編集するには、「編集」をクリックし、必要に応じて新しい名前を指定したり、データ型を変更します。

- データ・オブジェクトを削除するには、「削除」をクリックします。

5. 「OK」をクリックします。

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

データ・オブジェクトの編集または削除後にプロジェクトを検証し、変更または削除されたデータ・オブジェクトへの参照がないことを確認します。

データ・オブジェクトの編集後、そのオブジェクトへのすべての参照が引き続き有効であることを確認する必要があります。たとえば、int型からstring型にデータ・オブジェクトを変更した場合は、そのデータ・オブジェクトを使用するすべての式が引き続き正しく機能することを確認する必要があります。

データ・オブジェクトの削除後、そのオブジェクトへのすべての参照を必ず削除してください。参照には、そのデータ・オブジェクトを使用しているすべてのデータ・アソシエーションおよび式が含まれます。削除されたデータ・オブジェクトへの参照を削除しない場合は、プロジェクトが検証されません。

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

データ・アソシエーションは、データ・オブジェクトに格納された情報を処理する方法を決定します。

データ・アソシエーションを使用できるコンテキストは次のとおりです。

- BPMNプロセスから起動された別のプロセスまたはサービス

- ヒューマン・タスク・サービス

- Oracle Business Rule

- スクリプト・タスク。
このBPMNフロー・オブジェクトは、データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

表13-2は、データ・アソシエーションを定義できるフロー・オブジェクトをリストしています。また、実装されるオブジェクトもリストしています。

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

フロー・オブジェクト

実装

メッセージ開始および終了イベント

サービスおよびその他のBPMNプロセス

メッセージ・スロー・イベントおよびキャッチ・イベント

サービスおよびその他のBPMNプロセス

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

サービスおよびその他のBPMNプロセス

スクリプト・タスク

実装は含みません。データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

ユーザー・タスク

Oracle Human Tasks

ビジネス・ルール・タスク

Oracle Business Rules

サービス・タスク

サービスおよびBPMNプロセス

データ・アソシエーションは、フロー・オブジェクトから外部のサービスまたはプロセスへの入力引数および出力引数を定義するために使用します。図13-3に、フロー・オブジェクトと、それに対応する実装、および外部のプロセスまたはサービスの間にある関係を示します。

矢印は、外部のプロセスまたはサービスとの間で入力と出力を行う引数を表します。これらの引数はデータ・アソシエーションを使用して定義されます。

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

入力および出力はフロー・オブジェクトのデータ・アソシエーションで定義されますが、コールされているシステムまたはサービスに渡される値を定義していることに注意してください。これらのシステムおよびサービスは、図13-4に示すように、ビジネス・プロセスの外に存在します。

図13-4 特定プロセス内のデータ・アソシエーション

式を使用して、入力値と出力値を評価および変更できます。

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

図13-5に示されるように、データ・アソシエーション・エディタを使用すると、フロー・オブジェクトとその実装の間で受渡しされる入力値と出力値を構成できます。

図13-5 データ・アソシエーション・エディタ

表13-3では、データ・アソシエーション・エディタの各領域について説明します。

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

UI領域

説明

入力

フロー・オブジェクト内に実装されるサービスまたはプロセスへの入力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。各テキスト・ボックスの横には、式エディタを起動するアイコンがあります。

フロー・オブジェクト・インタフェース

実装されるサービスまたはプロセスに必要な入力引数がリストされます。また、入力および出力として提供されたデータ・オブジェクトの展開可能なリストも表示されます。フロー・オブジェクトの領域では、複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。

出力

フロー・オブジェクト内に実装されるサービスまたはプロセスからの出力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。

データ・オブジェクト

すべてのデータ・オブジェクトのリストが表示されます。このリストは、プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトの間が分割されます。

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

フロー・オブジェクトのデータ・アソシエーションを構成できます。

フロー・オブジェクトのデータ・アソシエーションを構成するには:

1. データ・アソシエーションを構成するプロセスを開きます。

2. データ・アソシエーションを有効化するフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。

データ・アソシエーションを有効化するシーケンス・フローのリストについては、表13-2を参照してください。

3. 右側のデータ・オブジェクト列から、入力引数としてマップするデータ・オブジェクトを選択します。

4. データ・オブジェクトをクリックし、入力テキスト・フィールドにドラッグします。

14 複合データ型を使用したデータ構造の定義

この章では、複合データ型を使用してプロセスベースのビジネス・アプリケーションで必要なデータ構造を定義する方法を説明します。Oracle Business Process Management (Oracle BPM)のビジネス・オブジェクトは複合データ型です。複合データ型は、BPMプロジェクトのビジネス・カタログの構成部分として定義します。定義した複合データ型は、アプリケーション内のデータを格納する複合データ・オブジェクトの定義に使用できます。

この章の内容は次のとおりです。

- 複合データ型の概要

- 複合データ型の使用

14.1 複合データ型の概要

複合データ型を使用して、Oracle BPMアプリケーションで必要なデータ構造を作成できます。複合データ型を使用すると、関連するデータ型をグループにまとめることができます。これにより、他のユーザーに対してプロセスが管理および読取りやすくなります。

Oracle Business Process Composerを使用すると、手動か、XMLスキーマに基づいて複合データ型を作成できます。

複合データ型の構造は、次の3つのコンポーネントで構成されます。

- モジュール
モジュールは、複合データ型内で階層構造の作成を可能にするコンテナです。各複合データ型には、最上位レベルのモジュールを1つ含める必要があります。モジュール内には、複合データ型または他のモジュールを作成できます。

- 複合データ型
モジュール内では、1つ以上の複合データ型を定義できます。複合データ型には、他の複合データ型またはモジュールを含めることができます。

- 属性
属性は複合データ型の最下位レベルのコンポーネントです。属性によって、複合データ型内のデータ型が定義されます。

また、複合データ型と属性には、ドキュメントの追加もできます。ドキュメントを追加すると、BPMプロジェクトでコラボレーションしている他のユーザーに対してデータ構造がわかりやすくなります。

次のプロセス例では、必要なデータを処理するため、異なる2つの複合データ型が定義されます。図14-1は、これらがビジネス・コンポーネント・エディタにどのように表示されるかを示しています。

図14-1 サンプル・プロジェクトで定義される複合定義型

14.2 複合データ型の使用

Oracle Business Process Composerを使用すると、複合データ型とそのモジュールおよび属性を作成、編集および削除できます。

Oracle Business Process Composerを使用すると、手動か、XMLスキーマに基づいて複合データ型を作成できます。

14.2.1 複合データ型を手動で作成する方法

複合データ型は、ビジネス・コンポーネント・エディタから手動で作成できます。複合データ型を手動で作成する際は、複合データ型で使用されるモジュール、オブジェクトおよび属性間の階層関係を定義できます。複合データ型には、次のものを組み込むことができます。

- 単純なデータ型

- データ型の配列

- 他の複合データ型をコンポーネントとして使用する複合データ型

注意:

モジュール、複合データ型および属性は、作成後に名前を変更できません。

図14-2に示されるように、次の新規ビジネス・コンポーネントはプロジェクトの「ようこそページ」にある「プロジェクト・コンポーネント」パネルから作成できます。

- ビジネス・オブジェクト

- ビジネス例外

- 列挙オブジェクト

図14-2 プロジェクトの「ようこそページ」 - ビジネス・コンポーネント

14.2.1.1 新規ビジネス・オブジェクトの作成

新規ビジネス・オブジェクトを作成するには:

1. プロジェクトの「ようこそページ」で、「ビジネス・コンポーネント」をクリックします。

2. 図14-3に示されるように、「新規」アイコンをクリックして、「新規ビジネス・オブジェクト」を選択し、新規ビジネス・オブジェクトウィザードを開きます。

図14-3 新規ビジネス・オブジェクトウィザード

3. 新しい複合データ型(ビジネス・オブジェクト)の名前を入力します。

4. ドロップダウン・リストから親モジュールを選択します。
複合データ型を新規作成する際は、親モジュールを選択する必要があります。現在モジュールが存在しない場合、新しく作成する必要があります。新規のモジュールを作成するには、次のようにします。

a. 「+」アイコンをクリックします。

b. 新しいモジュールの名前を入力して、「OK」をクリックします。

5. 「XSDから」チェック・ボックスを選択したときに表示されるドロップダウン・リストから、スキーマを選択します。

6. 「終了」をクリックして新規ビジネス・オブジェクトを作成するか、次のステップに進んで属性およびメソッドを追加します。

7. 属性を追加するには「次」をクリックします。
図14-4に示されるように「属性」ダイアログが表示されます。

図14-4 新規ビジネス・オブジェクトウィザード - 「属性」ダイアログ

8. 「新規」アイコンをクリックして、属性を追加します。
名前を入力し、型をデフォルトの「文字列」から変更する場合は「タイプの変更」をクリックします。

9. 「終了」をクリックして新規ビジネス・オブジェクトを作成するか、次のステップに進んでメソッドを追加します。

10. 「次へ」をクリックします。
「メソッド」ダイアログが表示されます。「新規」(+)アイコンをクリックして、新規メソッドを追加します。

11. 「終了」をクリックします。
図14-2に示されるように、プロジェクトの「ようこそページ」の「ビジネス・コンポーネント」に新しい複合データ型が表示されます。

14.2.1.2 新規例外の作成

新規例外を作成する手順は、次のとおりです。

1. プロジェクトの「ようこそページ」で、「ビジネス・コンポーネント」をクリックします。

2. 図14-5に示されるように「新規」アイコンをクリックして、「新規ビジネス例外」を選択し、「新規ビジネス例外」ダイアログを開きます。

図14-5 「新規ビジネス例外」ダイアログ

3. 新規ビジネス例外の名前を入力します。

4. ドロップダウン・リストから親モジュールを選択します。
複合データ型を新規作成する際は、親モジュールを選択する必要があります。現在モジュールが存在しない場合、新しく作成する必要があります。新規のモジュールを作成するには、次のようにします。

a. 「+」アイコンをクリックします。

b. 新しいモジュールの名前を入力して、「OK」をクリックします。

5. 型をデフォルトの「文字列」から変更する場合は「タイプの変更」をクリックします。

6. 「作成」をクリックして、新規例外を作成します。

14.2.1.3 新規列挙オブジェクトの作成

新規列挙オブジェクトを作成する手順は、次のとおりです。

1. プロジェクトの「ようこそページ」で、「ビジネス・コンポーネント」をクリックします。

2. 図14-6に示されるように「新規」アイコンをクリックして、「新規列挙オブジェクト」を選択し、新規列挙オブジェクトウィザードを開きます。
列挙オブジェクト(列挙)は、変数を事前定義された定数セットにできる特殊なデータ・オブジェクトです。

図14-6 新規列挙オブジェクトウィザード

3. 新規列挙オブジェクトの名前を入力します。

4. ドロップダウン・リストから親モジュールを選択します。
複合データ型を新規作成する際は、親モジュールを選択する必要があります。現在モジュールが存在しない場合、新しく作成する必要があります。新規のモジュールを作成するには、次のようにします。

a. 「+」アイコンをクリックします。

b. 新しいモジュールの名前を入力して、「OK」をクリックします。

5. 型をデフォルトの「文字列」から変更する場合は「タイプの変更」をクリックします。

6. 「終了」をクリックして新規列挙オブジェクトを作成するか、次のステップに進んで列挙アイテムを追加します。

7. 「次」をクリックして、列挙アイテムを追加します。
「列挙アイテム」ダイアログが表示されます。

8. 「新規」アイコンをクリックして、列挙アイテムを追加します。名前と値を入力して、「OK」をクリックします。

9. 「終了」をクリックして、新規列挙オブジェクトを作成します。

14.2.2 複合データ型作成時の処理

図14-2に示されるように、定義した複合データ型はプロジェクト・コンポーネント・パネルのビジネス・コンポーネントにある複合データ型のリストに表示されます。複合データ型を使用し、それをベースとして新規複合データ・オブジェクトを作成できます。また、複合データ型は、他の複合データ型の定義にも使用できます。

14.2.3 複合データ型の編集方法

複合データ型の作成後は、その属性、メソッドの型を追加または変更したり、ドキュメントを追加できます。また、例外、列挙オブジェクト、列挙アイテムの追加もできます。追加可能なコンポーネントは、図14-7に示すように階層内で強調表示したコンポーネントに基づきます。

図14-7 新規ビジネス・コンポーネントの追加例

階層内でビジネス・コンポーネントを強調表示すると、ビジネス・コンポーネント・エディタの右側にその詳細が表示されます。詳細の編集またはドキュメントの追加が可能です。

階層内でコンポーネントを右クリックすると、そのコンポーネントの削除、コンポーネントの移動または階層内のセクションの折りたたみを選択できます。

新規モジュール、新規複合データ型または属性を追加する手順は、次のとおりです。

1. 作成した複合データ型をクリックします。
図14-8のようにビジネス・コンポーネント・エディタが開きます。

図14-8 ビジネス・コンポーネント・エディタ

2. 必要に応じて、複合データ型内に新しいモジュールを作成します。

a. 複合データ型を右クリックして、「新規モジュール」を選択します。

b. 新規モジュールの名前を入力して、「OK」をクリックします。
新規モジュールを作成した後に、必要に応じてサブモジュールを追加作成できます。

3. 必要に応じて、新しい複合データ型を作成します。

a. モジュールを右クリックし、「新規ビジネス・オブジェクトの追加」を選択します。

b. 名前を入力して「OK」をクリックします。
複合データ型のリスト内に、新規の複合データ型が表示されます。必要に応じて、複合データ型内に追加の複合データ型またはサブモジュールを作成できます。

4. 新しい属性を追加します。

a. 複合データ型を選択して、メニューから「新規属性の追加」を選択します。

b. 属性の名前を入力し、ドロップダウン・メニューからタイプを選択します。

5. 「OK」をクリックします。

14.2.4 複合データ型、モジュールまたは属性の削除方法

ビジネス・コンポーネント・エディタを使用して、複合データ型、そのモジュールまたは属性を削除できます。

複合データ型、モジュールまたは属性を削除する手順は、次のとおりです。

1. 図14-2に示されるように、プロジェクトの「ようこそページ」で、「ビジネス・コンポーネント」をクリックします。

2. 削除する複合データ型の右にマウスを置きます。

3. 「削除」アイコンをクリックし、「OK」をクリックします。

注意:

削除した複合データ型、モジュールまたは属性は復元できません。他のコンポーネントを含むモジュールまたは複合データ型を削除すると、コンポーネントも削除されます。ただし、削除された複合データ型またはモジュールに、いずれかの複合データ型に基づく属性が含まれる場合、その複合データ型は削除されません。

15 式を使用したデータのコントロール

この章では、式を使用してデータ・オブジェクトに格納されたデータを評価および変更する方法について説明します。

この章の内容は次のとおりです。

- 式の概要

- 式の使用

15.1 式の概要

式を使用すると、データ・オブジェクト上で計算を実行できます。

Oracle Business Process Composerを使用すると、次のコンテキストで式を定義および編集できます。

- 条件シーケンス・フロー

- 複合ゲートウェイ

- タイマー・イベント

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

- 通知タスク

式では直接データ・オブジェクトに値を再割当てすることはできません。ただし、式を使用して、シーケンス・フローの実装との間で受渡しされる値を変更することはできます。詳細は、データ・アソシエーションの概要を参照してください。

15.1.1 式エディタの概要

式エディタを使用すると、リストからデータ・オブジェクトおよび演算子を選択して式に挿入し、簡単に式を作成できます。必要に応じて、手動で式を入力することもできます。

図15-1は、式エディタのユーザー・インタフェースを示しています。

図15-1 Oracle Business Process Composerの式エディタ

表15-1 式エディタのユーザー・インタフェース

領域

説明

「式」フィールド

式のテキストを指定します。このフィールドでは、直接入力するか、「式に挿入」ツールを使用できます。

式に挿入

選択したデータ・オブジェクトまたは演算子を式に挿入します。

「データ・オブジェクト」および「演算子」の選択

式に挿入するデータ・オブジェクトまたは演算子を選択できるタブ付きペインが表示されます。

「説明」タブ

選択した演算子の説明を入力します。

エラー

現在の式に含まれるエラーを表示します。

15.1.2 式のタイプ

Oracle Business Process Composerでは、次のタイプの式がサポートされています:

- 単純

- プレーン・テキスト

- XMLリテラル

15.1.3 単純式

単純式は、Oracle Business Process Management (Oracle BPM)でサポートされている標準式言語を使用して定義されます。

15.1.3.1 演算子タイプ

単純式では、次の演算子タイプがサポートされています:

- 算術演算子

- 単項演算子

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

- 条件演算子

これらの演算子を使用して式および条件を作成し、プロセス・フローを定義できます。一般に、これらの式は、プロセス内のデータ・オブジェクトに基づいて計算を実行します。式と条件はデータ・オブジェクトの値を使用して作成できますが、値は変更できません。

次の式の例では、演算子が使用されています。

- totalAmount - discount

- activationCount > 3

- unitsSold <= 1200

表15-2、表15-3、表15-4および表15-5は、単純式ビルダでサポートされる演算子を説明しています。

表15-2 算術演算子

演算子

名前

説明

+

加算

数値データ型を加算します。

文字列同士を連結します。

-

減算

数値データ型を減算します。

*

乗算

数値データ型を乗算します。

/

除算

数値データ型を除算します。

rem

剰余

除数が被除数で除算しきれない場合の剰余を計算します。

( )

優先順位

演算式の評価の順序を指定します。

表15-3 単項演算子

演算子

名前

説明

+

プラス

数値オペランドの値には影響しません。ある値が正であることを明示的に示す場合に使用します。

-

マイナス

算術式の符号をマイナスにします

*

NOT

論理補数演算子。ブール式の値を否定します。

表15-4 等号演算子と関係演算子

演算子

名前

説明

=または==

等しい

最初のオペランドが2番目のオペランドと等しい場合にTrueを戻します。

!=

等しくない

最初のオペランドが2番目のオペランドと等しくない場合にTrueを戻します。

>

より大きい

最初のオペランドが2番目のオペランドより大きい場合にTrueを戻します。

>=

次以上

最初のオペランドが2番目のオペランド以上の場合にTrueを戻します。

<

より小さい

最初のオペランドが2番目のオペランドより小さい場合にtrueを戻します。

<=

次以下

最初のオペランドが2番目のオペランド以下の場合にTrueを戻します。

表15-5 条件演算子

演算子

名前

説明

AND

条件付きAND

両方のオペランドがtrueと評価された場合にtrueを戻します。

OR

条件付きOR

いずれかのオペランドがTrueと評価された場合にTrueを戻します。

15.1.3.2 演算子の優先順位

演算子の優先順位とは、コンパイラが演算子を評価する順序のことです。式内の演算子の優先順位は、カッコを使用して変更できます。

Oracle BPMにおける演算子の優先順位は、次のとおりです。

- 加算、減算

- 乗算、除算、剰余

- プラスおよびマイナス

- 次より小さい、次より大きい、次以下、次以上

- 次と等しい、次と等しくない

- NOT

- 条件付きAND

- 条件付きOR

15.2 式の使用

Oracle Business Process Composerを使用して、条件シーケンス・フローやデータ・アソシエーションの式を作成および編集できます。

次の各項では、Business Process Composerを使用して式を定義する方法について説明します。

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

Oracle Business Process Composerを使用すると、条件シーケンス・フローの式を作成および編集できます。条件シーケンス・フローでは、式を使用してプロセスのフローを決定します。

条件シーケンス・フローの式を定義するには:

1. プロセスを開きます。

2. プロジェクトが編集モードであることを確認します。

3. 編集する条件シーケンスの「編集」アイコンをクリックします。

4. 「実装」をクリックします。

5. 「編集」をクリックします。
式エディタ・ウィンドウが表示されます。

6. 必要なデータ・オブジェクトおよび演算子を追加します。
データ・オブジェクトを式に追加するには:

a. 「データ・オブジェクト」タブを選択します。

b. リストからデータ・オブジェクトを選択します。
複合データ・オブジェクトの一部である基本データ・オブジェクトを追加する場合は、複合データ・オブジェクトを展開し、追加する基本データ・オブジェクトを選択します。

c. 「式に挿入」をクリックします。

演算子を式に追加するには:

a. 「演算子」タブを選択します。

b. 展開可能なリストから、追加する演算子を選択します。

c. 「式に挿入」をクリックします。

7. 「エラー」タブをクリックし、式にエラーがないことを確認します。

8. 「OK」をクリックします。

9. 「実装」タブで「変更の適用」をクリックします。

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

Oracle Business Process Composerを使用すると、データ・アソシエーションの式を作成および編集できます。データ・アソシエーションでは、式を使用して、入力および出力として受け渡されるデータ・オブジェクトの値を変更できます。

データ・アソシエーションの入力または出力に式を定義するには:

1. プロセスを開きます。

2. プロジェクトが編集モードであることを確認します。

3. プロセス内のフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。

4. 「式ビルダーの起動」をクリックします。

5. 必要なデータ・オブジェクトおよび演算子を追加します。
データ・オブジェクトを式に追加するには:

a. 「データ・オブジェクト」タブを選択します。

b. リストからデータ・オブジェクトを選択します。
複合データ・オブジェクトの一部である基本データ・オブジェクトを追加する場合は、複合データ・オブジェクトを展開し、追加する基本データ・オブジェクトを選択します。

c. 「式に挿入」をクリックします。

演算子を式に追加するには:

a. 「演算子」タブを選択します。

b. 展開可能なリストから、追加する演算子を選択します。

c. 「式に挿入」をクリックします。

6. 「エラー」タブをクリックし、式にエラーがないことを確認します。

7. 「OK」をクリックします。

16 アプリケーションでのビジネス・データの追跡

この章では、Oracle Business Process Management (Oracle BPM)がサポートする各種のビジネス・データについて説明します。

この章の内容は次のとおりです。

- キー・パフォーマンス・インジケータ(KPI)の使用

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

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

16.1 キー・パフォーマンス・インジケータ(KPI)の使用

Oracle BPMを使用して、BPMまたはビジネス・アーキテクチャ(BA)プロジェクト内でキー・パフォーマンス・インジケータ(KPI)を定義できます。KPIは、組織内の特定のアクティビティまたはプロセスを評価します。

KPIを1つ以上定義することで、プロセスの要件に適合しているかどうかの判定が可能になります。

16.1.1 キー・パフォーマンス・インジケータの概要

KPIは、組織内の特定のアクティビティまたはプロセスを評価します。KPIを1つ以上定義することで、プロセスの要件に適合しているかどうかの判定が可能になります。Oracle BPMで、KPIが定義するものは、次のとおりです。

- ビジネス・インジケータ内で定義されるメジャー、カウンタおよび実行時間

- しきい値

- 可視化

たとえば、営業組織では、処理した総受注数を追跡するKPIを定義できます。1か月の目標受注数が1000の場合、メジャーが1000と定義されます。受注が1000未満である場合、KPIを赤で表示し(危険)、1000以上の範囲については緑で表示するように構成できます。

16.1.1.1 KPIのライフサイクル

KPIは、デザインタイムにOracle Business Process Composerを使用して作成できます。KPIは、BPMプロジェクトとBAプロジェクトの両方で使用できます。次のように、それぞれに独自の考慮事項があります。

- ビジネス・アーキテクチャ: KPIはBAプロジェクトで作成および構成できます。
プロジェクトを公開するときに、BAプロジェクトの他のコンポーネントとともにKPIがOracle Business Activity Monitoring (Oracle BAM)リポジトリに格納されます。BA内のKPIは公開後、BAレポートおよびOracle BAMダッシュボードで使用できます。

KPIは、ビジネス・アーキテクチャ階層のすべてのレベル、つまり、目的、戦略、バリュー・チェーン・モデル、バリュー・チェーンのステップで定義できます。バリュー・チェーンのステップがBusiness Process Model and Notation (BPMN)プロセスによって定義されている場合は、KPIをプロセス・レベルでも定義できます。Oracle BPMプロセスのKPIは、戦略にロールアップできます。

BAプロジェクトでのKPIの作成方法の詳細は、「キー・パフォーマンス・インジケータ(KPI)の使用」を参照してください。

- BPMプロジェクト: BPMプロジェクト内でもKPIを作成および構成できます。
BPMプロジェクト内で定義されるKPIには、BPMNプロセスに定義されるメジャーまたはビジネス・インジケータが組み込まれます。BPMプロジェクトをデプロイするときに、KPIもランタイム環境にデプロイされます。KPIは、BPMプロジェクトのデプロイ時にOracle BAMで作成されます。Oracle BAMのプロセス分析によって、ランタイム・データが照合され、Oracle BAMデータ・オブジェクトに格納されます。これらのKPIは、Oracle BAMのKPIウォッチリストに添付したり、BAロールアップKPIの一部として使用したりできます。実績値の計算は、ビジネス・プロセス・データ・オブジェクトに基づいてOracle BAMで実行されます。

16.1.1.2 キー・パフォーマンス・インジケータのタイプ

Oracle BPMでは、様々なタイプのKPIがサポートされます。

- 外部KPI: Oracle BAMにインポートされたデータに基づいて値を定義します。
データは、ORACLE_BUSINESSARCHITECTRURE_ENTITY_DATAデータ・オブジェクトにインポートされます。このインポートされたデータは、指定の日付範囲内のKPIの実績値の計算に使用されます。この計算値がKPIに定義されたしきい値と比較されます。

- 手動KPI: ユーザーがデザインタイムに値を明示的に入力できます。
ビジネス・アーキテクチャおよびOracle BAMは、KPIの値に関する計算を実行しません。その値が、このKPIのしきい値と比較されます。

- ロールアップKPI: 2つのエンティティ間の親子関係を定義します。
ロールアップKPIは、複数の子KPIで構成されます。親の値は、子KPIの値に基づいて計算されます。これらの値がロールアップKPIに定義されたしきい値と比較されます。

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

ビジネス・インジケータは、プロセスのKPIの値の格納に使用するプロジェクト・データ・オブジェクトです。カウンタ・マークを使用すると、プロセスに対して定義したカウンタ・ビジネス・インジケータの値を更新できます。

この項では、Oracle Business Process Composerを使用してビジネス・インジケータおよびカウンタ・マークを作成する方法について説明します。

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

ビジネス・インジケータは、プロセスのKPIの値の格納に使用するプロジェクト・データ・オブジェクトです。Oracle BPMでは、各種のデータ・オブジェクトを使用してビジネス・インジケータを作成できますが、Oracle Business Process Composer内では、属性、カウンタ、ディメンションおよびメジャーとして使用されるビジネス・インジケータのみを作成できます。

カウンタは、インスタンスが特定のアクティビティを完了した回数を追跡します。カウンタはカウンタ・マークとともに使用する必要があります。カウンタ変数の値は常に1で、実際の値は格納されません。インスタンスがアクティビティを完了した回数を示す値は、プロセス分析データベースで直接更新されます。カウンタ・ビジネス・インジケータの値を監視するには、そのカウンタ・ビジネス・インジケータを追跡するように構成されたカウンタ・マークに基づいて、ダッシュボードを作成する必要があります。

16.2.2 カウンタ・マークの概要

カウンタ・マークを使用すると、プロセスに対して定義したカウンタ・ビジネス・インジケータの値を更新できます。1つのカウンタ・マークで複数のカウンタ・マーク・ビジネス・インジケータを更新できます。カウンタ・マークが定義されているアクティビティにトークンが到達すると、Oracle BPMサービス・エンジンによって、プロセス分析データベース内の関連するカウンタの値が更新されます。Oracle BPMサービス・エンジンがカウンタ・ビジネス・インジケータを更新するたびに、1単位が現在の値に追加されます。

注意:

カウンタ変数の実際の値はプロセス分析データベースに格納されます。カウンタ変数のデフォルト値は変更されないため、プロセスでカウンタ変数を使用して計算を実行しないでください。カウンタ変数の値は常に1です。

カウンタ・マークは次の目的で使用できます。

- 監査: インスタンスが完了したアクティビティの数とその他のパフォーマンス測定を組み合せた情報は、プロセスを監査するために重要です。

- パフォーマンスの問題の識別: カウンタを使用して、プロセス内のパフォーマンスの問題を特定できます。
インスタンスが予期したパスと異なるパスを経由しているか、アクティビティ内のループの実行時間が適正な時間を超えているため、プロセスの実行時間が予期した時間より長くなる場合があります。このような状況は、実際に完了したアクティビティの数と予期した数を比較して識別できます。

- インスタンスが経由するプロセス・パスの識別: 異なるカウンタ・ビジネス・インジケータを使用して、対応するパスをマークできます。
インスタンスがプロセスの最後に到達したとき、インスタンスが経由したパスは、完了したアクティビティの最大数を示します。

通常は、監視対象のプロセス・パスごとに1つのカウンタ・ビジネス・インジケータを定義します。次に、そのプロセス・パスに含まれるすべてのアクティビティにカウンタ・マークを追加します。最後に、アクティビティが含まれるパスに対応するカウンタ・ビジネス・インジケータを、カウンタ・マークに関連付けます。

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

新しいカウンタ・マークをプロセス内のアクティビティやタスクに追加できます。

新しいカウンタ・マークをプロセスに追加する手順は、次のとおりです。

1. 図16-1のように、カウンタ・マークを追加するタスクまたはアクティビティを右クリックします。

図16-1 プロセス・アクティビティ - カウンタ・マークの作成

2. 「カウンタ・マークの作成」を選択します。
図16-2のように、ページ下部に「実装」パネルが表示されます。

図16-2 プロセス・アクティビティ - 実装

3. 必要に応じて、新規カウンタ・マーク(ビジネス・インジケータ)を作成します。

a. 「追加」ボタンをクリックします。

b. カウンタ・マークに名前を付けます。

c. 「OK」をクリックします。

4. ビジネス・インジケータのリストで、このフロー・オブジェクトで使用するインジケータの隣にあるチェック・ボックスを選択します。

5. 「変更の適用」をクリックします。

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

プロジェクトに定義したカウンタ・マークは、アクティビティを右クリックして「カウンタ・マークの削除」を選択するだけか、次の手順を使用して削除できます。

カウンタ・マークを削除するには:

1. カウンタ・マークを編集するアクティビティまたはタスクを右クリックします。

2. 「データ・アソシエーション」を選択します。

3. データ・オブジェクトのリストで、プロジェクト名を展開します。

これで、図16-3のようにすべてのプロジェクト・データ・オブジェクトのリストが表示されます。

図16-3 プロセス・アクティビティ: データ・アソシエーション - データ・オブジェクト

4. 削除するカウンタ・マークを選択します。

5. 削除アイコンをクリックします。

6. 「OK」をクリックして、削除を確定します。

7. 「適用」をクリックします。

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

測定マークを使用して、プロセス・パフォーマンスを測定できます。測定マークを使用すると、プロセス内の特定の位置またはプロセスの特定のセクションにおいて、タイプがメジャーのビジネス・インジケータを測定できます。

測定マークおよびプロセス分析データベースの使用の詳細は、Oracle Business Process Management Studioを使用したビジネス・プロセスの作成のプロセス分析の使用に関する項を参照してください。

測定マークによって、プロセス分析データベースに次のデータが保存されます。

- プロセスのデフォルト測定の値

- 該当する測定マークに関連付けられている測定ビジネス・インジケータの値

- プロセスに定義されているディメンションの値

1つの測定マークを使用して、複数の測定ビジネス・インジケータを測定できます。

BPMNサービス・エンジンでは、測定ビジネス・インジケータの値が保存されるときに、プロセスに定義されたディメンションの値も保存されます。後でプロセスを監視するダッシュボードを構築するときに、これらのディメンションを使用して値を様々なカテゴリにグループ化できます。たとえば、承認されたローン申請の地域別合計数を表示することなどができます。

定義できる測定マークのタイプは次のとおりです。

- 単一測定

- 間隔の開始

- 間隔の停止

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

測定マークは、コンポーネント・パレットからプロセス・エディタ・キャンバスにドラッグすることによって、ビジネス・プロセスに追加できます。

単一測定マークをプロセスに追加するには:

1. BPMNプロセスを開きます。

2. コンポーネント・パレットで、「測定」アイコンをダブルクリックし、次のいずれかをクリックしてドラッグします。

- 「測定」マーク(スナップショット)

- 「測定の開始」マーク

- 「測定の終了」マーク

3. ビジネス・インジケータを追加するシーケンス・フロー付近まで測定マークをドラッグします。

図16-4のように、シーケンス・フローが青色になったら、測定マークをドロップします。

図16-4 測定マークのシーケンス・フロー

4. 測定マークを右クリックして、「実装」を選択します。

5. 「名前」フィールドに、測定マークを識別するための名前を入力します。

6. 「ビジネス・インジケータ」セクションで、使用可能なビジネス・インジケータのリストからビジネス・インジケータを選択し、2つのリストの間にある矢印を使用して「選択済」リストに移動します。

注意:

1つの測定マークで複数のビジネス・インジケータを測定できます。

注意:

ビジネス・インジケータを選択しない場合、測定マークにはデフォルト・ビジネス・インジケータの値のみが格納されます。「測定マーク・プロパティ」ダイアログ・ボックスを開いた状態でビジネス・インジケータを追加するには、「選択済」リストの下にある「新規」ボタンをクリックします。

7. 「OK」をクリックします。

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

この部では、BPMプロジェクトの実装の詳細の変更が必要なプロセス開発者向けに、Business Process Composerの拡張機能について説明します。

この部は、次の章で構成されています。

- Oracle Business Rulesの使用

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

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

17 Oracle Business Rulesの使用

この章では、Oracle Business Process Composerを使用してビジネス・ルールを作成および編集する方法について説明します。この章には、Oracle Business Rulesの全般的な概要および使用するためのタスクを示します。

この章の内容は次のとおりです。

- Oracle Business Rulesの概要

- Oracle Business Process Composerルール・エディタの使用

- ビジネス・ルール・ディクショナリの使用

- ディクショナリ・リンクの使用

- ルールセットの使用

- デシジョン表の使用

- ファクトの使用

- 値セットの使用

- グローバル変数の使用

- 動詞ルールおよびビジネス・フレーズの使用

- デシジョン関数の使用

- エクスプローラの使用

- 変換の使用

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

- ランタイム時のOracle Business Rulesの編集

17.1 Oracle Business Rulesの概要

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では、ルールの作成に複数の方法が用意されています。

- IF/THENルール - IF/THEN文で示されます。
IF/THENルールには2つのモデル化方法があります。一般的なルールでは、擬似コード言語を使用して、ルール・ロジックを表します。動詞ルールでは、自然言語文を使用してルール・ロジックを表します。

- デシジョン表では、複数の関連するルールがスプレッドシート形式の単一ビューに表示されます。

ビジネス・フレーズは、動詞ルールのテストおよびアクションの構成のための自然言語のボキャブラリの提供に使用されます。一般ルールでは使用されません。

一般ルール、動詞ルール、デシジョン表は、ルールセットと呼ばれるOracle Business Rulesオブジェクトにグループとしてまとめられます。(「ルールセットの使用」を参照。)

1つ以上のルールセット、そのファクトおよび値セットは、ディクショナリと呼ばれるOracle Business Rulesオブジェクトでグループ化します。

一般ルールと動詞ルール、デシジョン表、ビジネス・フレーズの概念に関する完全な詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計の「ルールセットおよびルールの使用」の章を参照してください。

ルール

ルールは、IF-THEN構造に従い、次の2つの部分で構成されます。

- IF部分: 条件またはパターン一致。
ルールのIF部分は、条件式およびファクトを参照するルール条件で構成されます。次に例を示します。

IF Rental_application.driver age < 21

条件式では、より小さい比較を使用してビジネス条件(Rental_application.driver age)が数値21と比較されます。

ルール条件は、ファクトの組合せで条件式がtrueになるたびにルールをアクティブにします。ルール条件はRules Engine内の使用可能なファクト全体に対する問合せのようなものであり、問合せから戻される行のそれぞれに対してルールがアクティブになります。

- THEN部分: アクションのリスト。
ルールのTHEN部分には、ルールが起動されたときに実行されるアクションが記載されます。ルールはアクティブ化され、優先度など競合解決メカニズムを使用して他のルールのアクティブ化の中から選択された後、起動されます。ルールはいくつかの種類のアクションを実行することがあります。ファクトを追加、変更または削除するアクションがあります。Javaメソッドを実行したり、ファクトのステータスの変更やファクトの生成を行う場合がある関数を実行するアクションもあります。

ルールは、同時ではなく順番に起動します。多くの場合、ルール・アクションによって一連のルール・アクティブ化のセットが変更されることにより、次に起動されるルールも変更されます。

デシジョン表

デシジョン表は、数多くのルールで数多くのプロパティ値の組合せを分析する必要がある場合に、よりコンパクトかつ直観的に使用できる代替のビジネス・ルール形式です。デシジョン表を使用すると、すべての組合せをカバーし、また競合する組合せが2つとしてない、一連のルールを作成できます。

デシジョン表の詳細は、「デシジョン表の使用」および『Oracle Business Process Managementによるビジネス・ルールの設計』の「ルールセットおよびルールの使用」を参照してください

17.2 Oracle Business Process Composerルール・エディタの使用

ビジネス・ルール・エディタでは、ビジネス・ルール・ディクショナリ内のファクト、関数、グローバル、値セット、リンク、デシジョン関数およびビジネス・フレーズを作成、表示および編集できます。

プロジェクトの「ようこそページ」から、「コンポーネント」ペインに移動して、「ルール」を選択します。開くディクショナリの名前をクリックします。

ビジネス・ルール・ディクショナリを開くと、図17-1のようにOracle Business Process Composerに「ルールセット」ページが表示されます。

ルールセットは、Oracle Business Rulesにおけるルールおよびデシジョン表のコンテナです。ルールセットは、ルールおよびデシジョン表に対してJavaパッケージに似たネームスペースを提供します。またルールセットを使用して、ルールの起動を部分的に順序付けることも可能です。

図17-1 ビジネス・ルール・エディタ - ルールセット

ビジネス・ルール・エディタのページには、次のようなルールセットやデータ・モデルを追加、編集および表示するためのツールが用意されています。

- 値セット

- グローバル

- ビジネス・フレーズ

- エクスプローラ

- ファクト

- デシジョン関数

- リンク

- 変換

オープン済のビジネス・ルール・ディクショナリに含まれる値セットやグローバルなどの要素を編集するには、プロジェクトを編集モードにする必要があります。

ビジネス・ルール・エディタ・ページには、次のアクションの実行に使用できるツールもあります。

- ディクショナリ設定の表示および編集

- ビジネス・オブジェクトの同期

図17-2に示すように、これらの機能には「アクション」メニューからアクセスします。

図17-2 ビジネス・ルール・エディタ - アクション

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

Oracle Business Rules SDK (Rules SDK)によってAPIが提供され、Oracle Business Rulesディクショナリ内のルール(およびディクショナリのすべてのコンテンツ)に対するアクセス、作成、変更および実行を行うアプリケーションの作成に使用できます。Rules SDKは、Javaアプリケーションからルールまたはデシジョン表にアクセスおよび実行するデシジョン・ポイントAPIを提供します。

17.3 ビジネス・ルール・ディクショナリの使用

ビジネス・ルール・ディクショナリは、ファクト、関数、グローバル、値セット、リンク、デシジョン関数およびルールセットに使用されるOracle Business Rulesコンテナです。ビジネス・ルール・ディクショナリは、アプリケーションのルールセットおよびデータ・モデルが格納されるXMLファイルです。

ディクショナリは他のディクショナリにリンクできます。Oracle Business Process Composerを使用すると、ディクショナリを必要な数だけ作成できます。1つのディクショナリに多数のルールセットを含めることができます。

17.3.1 新規ビジネス・ルール・ディクショナリの作成方法

Oracle Business Process Composerを使用すると、ビジネス・ルール・ディクショナリを必要な数だけ作成できます。

新規ビジネス・ルール・ディクショナリを作成する手順は、次のとおりです。

1. プロジェクトの「ようこそページ」から、「コンポーネント」ペインに移動して、「ルール」を選択します。

2. 「新規」アイコンをクリックすると、図17-3に示すように「新規ビジネス・ルール」ダイアログが表示されます。

図17-3 「新規ビジネス・ルール」ダイアログ

3. ビジネス・ルール・ディクショナリの名前とパッケージを入力します。
これらのフィールドは必須フィールドです。

4. 必要に応じて、「コンポジット・サービスの公開」チェック・ボックスを選択します。

5. 入力データ・オブジェクトと出力データ・オブジェクトを定義します。

a. 「データ・オブジェクトの追加」ボタンをクリックします。

b. ウィンドウの右側にあるドロップダウン・リストから「入力」を選択します。

c. データ・オブジェクトの名前を入力します。

d. ドロップダウン・リストからデータ型を選択します。
データ型を単純型にはできません。ビジネス・オブジェクトとして定義された型にする必要があります。

e. 「追加」をクリックします。
データ・オブジェクトが、「入力と出力データ・オブジェクト」表に表示されます。

f. 「データ・オブジェクトの追加」ボタンをクリックして、ドロップダウン・リストから「出力」を選択します。

g. データ・オブジェクトの名前を入力します。

h. ドロップダウン・リストからデータ型を選択します。
データ型を単純型にはできません。ビジネス・オブジェクトとして定義された型にする必要があります。

i. 「追加」をクリックします。
データ・オブジェクトが、「入力と出力データ・オブジェクト」表に表示されます。

6. 「OK」をクリックします。

17.3.2 ディクショナリ設定の表示および編集

ディクショナリの設定は、「ディクショナリ設定」ダイアログを使用して表示および編集できます。「設定」ダイアログには、図17-4に示されるように、「実行」、「選択肢」および「データ・モデル」の3つの領域があります。

図17-4 アクション - ディクショナリ設定

「実行」領域を使用して、実行アルゴリズムを選択します。RETEまたはNon-RETEを選択します。

Oracle Business Rulesでは、ルールとファクトのパターン一致プロセスを最適化するため、このReteアルゴリズムを使用しています。Reteアルゴリズムは、部分一致の結果を、作業メモリーにあるノードの単一ネットワークに格納します。

Reteアルゴリズムの使用によって、ファクトの削除、追加または修正時にOracle Business Rulesで不要な再チェックを回避できます。ファクトとルールを処理するために、Reteアルゴリズムは、各ファクト定義に入力ノードを、各ルールに出力ノードを作成し、使用します。

Reteアルゴリズムの利点は、次のとおりです。

- ルールの順序に非依存: ルールは他のルールに影響を与えずに、追加および削除できます。

- 複数のルール間での最適化: 共通条件のルールはReteネットワークのノードを共有します。

- 高いパフォーマンスの推論サイクル: 通常、各ルールの起動によって変更されるのは少数のファクトのみで、Reteネットワークの更新コストは、ファクトまたはルールの総数ではなく、変更されたファクトの数に比例します。

Non-Reteアルゴリズム(NRE)は、Reteアルゴリズムの代替で、Reteアルゴリズムと比較して消費メモリーが少なくなります。ビジネス・ルールのユース・ケースの多くでは、パフォーマンスも向上します。NREアルゴリズムの中核は、新しいルール条件評価アプローチにあります。

「選択肢」領域は、動詞ルールの使用時に表示されるフレーズ提案の指定に使用されます。自動提案のみの表示、ビジネス・フレーズのみの表示または両方の表示を選択できます。

「データ・モデル」領域は、グローバル修飾子パターンの指定および動詞ルールに使用されます。パターンには、{member}, {fact}の2つのフラグメントを含める必要があります。たとえば、{fact}の{member}のようにします。

ディクショナリ設定を表示または編集する手順は、次のとおりです。

1. ディクショナリ設定を表示または編集するビジネス・ルール・ディクショナリを開きます。

2. 図17-4に示すように、ツールバーに移動して「アクション」、「ディクショナリ設定」の順にクリックします。

3. 必要な変更を加えてから、「保存」をクリックします。

17.3.3 ビジネス・オブジェクトの同期

ビジネス・ルール・ディクショナリの作成時に使用したビジネス・オブジェクトのいずれかを変更した場合、その変更を有効にするには、ビジネス・ルール・エディタでビジネス・オブジェクトをリフレッシュまたは同期する必要があります。

ビジネス・オブジェクトを同期する手順は、次のとおりです。

1. ビジネス・オブジェクトを同期するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動して、図17-2に示されるように「アクション」、「同期ビジネス・オブジェクト」の順にクリックします。

選択したビジネス・ルール・ディクショナリで使用されるビジネス・オブジェクトが自動的に同期します。

17.3.4 Oracle Business Rulesディクショナリの比較およびマージ

「差異」ディクショナリ機能を使用すると、ディクショナリの最新バージョンと任意の旧バージョンとの差異を確認し、比較したバージョン以降の変更をロールバックできます。最新バージョンから見た差異が確認されます。

「マージ」ディクショナリ機能を使用すると、ベース・バージョンと最大3つの変更バージョンとの差異を確認し、それらの差異を解決またはマージできます。変更されたバージョンから見た差異が確認されます。

ディクショナリの「マージ」オプションと「差異」オプションは、図17-2に示すようにビジネス・ルール・エディタで使用できます。

Oracle Business Process Composerでのデザインタイムには、最大3つまでの個別ディクショナリを比較して、4つ目のディクショナリにマージできます。

ビジネス・ルール・エディタでは、ベース・バージョン(編集中のもの)を2つのそれぞれ個別に変更されたバージョン(ベース・バージョンに対して相対的)と比較して、選択した変更をベース・バージョンにマージできます(新規バージョンとしての保存が必要)。

ビジネス・ルール・ディクショナリの比較およびマージの手順は、次のとおりです。

複数のディクショナリの比較が必要な場合は、まずビジネス・ルール・エディタで新しい方のディクショナリを開いてから、「ディクショナリ・バージョン」ダイアログを使用して、比較対象の古いディクショナリを選択します。新しい方のディクショナリに存在しないものはすべて、新しいバージョンからの削除としてフラグが指定されます。

複数のディクショナリのマージが必要な場合は、まずビジネス・ルール・エディタで古い方のディクショナリを開いてから、「ディクショナリ・バージョン」ダイアログを使用して、マージする新しいディクショナリを選択します。古いディクショナリに存在しないものはすべて、最新バージョンでの追加としてフラグが指定されます。

1. ディクショナリの比較とマージを行うビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動し、図17-5に示すように「アクション」、「差異のマージ」の順にクリックします。

図17-5 ビジネス・ルール・エディタ: アクション - 差異のマージ

3. 「参照」をクリックして、ディクショナリの比較またはマージの基準とする適切なディクショナリを選択します。

4. 「OK」をクリックします。

2つのディクショナリ間のすべての差異に変更アイコンのフラグが指定されます。

5. 変更を受け入れるか、拒否します。

適切な変更アイコンをクリックすることで、ディクショナリの任意のレベルで差異の受入れまたは拒否ができます。また、すべてを受け入れるか拒否する方法もあります。

17.4 ディクショナリ・リンクの使用

データ・モデルを共有する場合、ディクショナリを別のディクショナリへのリンクとともに使用すると便利です。

- データモデルの共有: プロジェクト内のデータ・モデル部分を共有します。別のプロジェクトのディクショナリにリンクすると、それがローカル・プロジェクトにコピーされます。
たとえば、Oracle Business Rules関数をいくつか共有したいプロジェクトについて考えてみます。その関数を格納するディクショナリを作成し、DictCommonという名前を付けることができます。次に、DictApp1とDictApp2という2つのディクショナリを作成し、これらを両方ともDictCommonにリンクします。いずれも同じOracle Business Rules関数を使用でき、いずれかの関数の変更が必要になった場合は、DictCommon内のバージョンを変更するだけで済みます。次回、DictApp1またはDictApp2からRL言語が生成されるときに、両方のディクショナリで更新されたバージョンが使用されます。

Oracle Business Rulesでは、完全修飾されたディクショナリ名はDictionaryFQNと呼ばれ、次の2つの要素で構成されています。

- ディクショナリ・パッケージ: パッケージ名

- ディクショナリ名: ディクショナリ名

ディクショナリは、DictionaryFQNと別名を使用して、リンク先のディクショナリを参照します。Oracle Business Rulesでは、DictionaryFQNを使用してリンク先ディクショナリが検索されます。

結合ディクショナリに関する次のネーミング制約は次のとおりです。

- パッケージとディクショナリ名を含む個別の完全ディクショナリ名を使用する必要があります。
また、ディクショナリ別名も個別にする必要があります。

- たとえば、関数、Oracle RLクラス、値セットなど、特定の種類のデータ・モデル定義の別名は、ディクショナリ内で一意である必要があります。

- 直接含んでいるディクショナリの別名で定義を修飾できます。
最上位および組込みディクショナリ内の定義を修飾する必要はありません。別のディクショナリ内の定義は修飾する必要があり、この修飾はディクショナリ・リンクの「接頭辞リンク名」プロパティによって制御されます。

- ルールセット名はディクショナリ内で一意にする必要があります。
ルールセットのRL Languageを生成する場合、ディクショナリの別名は生成名の一部にはなりません。たとえば、DictApp1という名前のディクショナリがDictApp2にリンクして結合ディクショナリを作成し、DictApp1にrule_1を含むruleset_1が存在し、DictApp2にもrule_2を含むruleset_1が存在する場合、結合ディクショナリでは、これらのrule_1とrule_2の両方が同じルールセット(ruleset_1)に存在することになります。

- すべてのルールおよびデシジョン表には、ルールセット内で一意の名前が必要です。
たとえば、ディクショナリDictApp2にリンクするディクショナリDictApp1を含む結合ディクショナリ内では、ディクショナリDictApp1にrule_1を含むRuleset_1という名前のルールセットが存在する場合があります。ディクショナリDictApp2にもrule_2を含むRuleset_1という名前のルールセットが存在する場合、Oracle Business Rulesが結合されたリンク先ディクショナリからRL言語を生成すると、ルールrule_1とrule_2の両方が、Ruleset_1という1つのルールセットに存在することになります。この命名規則に違反し、結合ディクショナリ内のルールセット内で個別名を使用しない場合は、次のような検証警告がレポートされます。

RUL-05920: ルールセットRuleset_1に名前がrule_1のルールが2つあります

リンク先のディクショナリを表示する手順は、次のとおりです。

1. ディクショナリ・リンクを表示するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動し、図17-6に示すように「リンク」をクリックします。

図17-6 ビジネス・ルール・エディタ - リンク

17.5 ルールセットの使用

Oracle Business Process Composerを使用すると、ルールセットの編集、追加、削除ができます。

新規ビジネス・ルール・ディクショナリの作成時は、デフォルトのルールセットが自動的に作成されることに注意します。

17.5.1 ルールセットの追加および編集方法

ビジネス・ルール・エディタを使用すると、ビジネス・ルール・ディクショナリに含まれるルールセットの編集、追加または削除ができます。

ルールセットを追加および編集する手順は、次のとおりです。

1. プロジェクトの「ようこそページ」から、「コンポーネント」ペインに移動して、「ルール」を選択します。

2. 開くビジネス・ルール・ディクショナリの名前をクリックします。

図17-1に示すように、ビジネス・ルール・エディタにディクショナリが表示されます。プロジェクトが編集モードであることを確認します。

3. ビジネス・ルール・エディタに「ルールセット」ページがまだ表示されていない場合は、ツールバーに移動し、「ルールセット」をクリックします。

4. ページの左上部分にある「追加」ボタンをクリックします。

この操作によって、ルールセット1、ルールセット2といった名前でルールセットが自動的に作成されます。

5. 図17-7に示すように、「拡張プロパティ・エディタ」アイコンをクリックして、ルールセットのプロパティを編集します。

図17-7 ビジネス・ルール・エディタ: ルールセット - 拡張プロパティ・エディタ

6. 名前を編集して、説明を追加します。

説明は、ユーザーがルールセットを区別しやすくするため、名前を1文または2文で詳述するものです。

7. 「アクティブ」チェック・ボックスをクリックして、このルールセットをアクティブ化します。

8. このルールセットの有効日を定義します。次を選択します

- 常に

- 範囲: 有効開始および終了日時を定義

- 開始: 有効開始日時を定義

- 終了: 有効終了日時を定義

9. 「OK」をクリックします。

17.5.2 ルールセットへの一般ルールおよび動詞ルールの追加方法

ビジネス・ルール・エディタを使用して、ルールセット内のルールを追加、編集および削除します。

一般ルール、動詞ルールおよびビジネス・フレーズは、Oracle Business Process Management Studioの場合と同様の方法でBusiness Process Composerで作成します。ビジネス・フレーズの作成時のキーボードの使用方法など、GUIとの相互作用方法に少し違いがあります。

一般ルールおよび動詞ルールの構成の背景となる概念の詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計のルールの使用に関する項を参照してください。

17.5.2.1 ルールセットへのルールの追加

ルールセットにルールを追加するには:

1. ルールを追加するルールセットを含むビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動し、「ルールセット」をクリックして、このビジネス・ルールに定義されたルールセットのリストから、必要なルールセットを選択します。

3. 「新規ルール」アイコンをクリックして、「一般的なルール」と「動詞ルール」のいずれかの追加を選択します。

17.5.2.2 一般ルールの追加

一般ルールを追加する手順は、次のとおりです。

1. 図17-8に示すように、ルール名の右にある「拡張プロパティ・エディタ」アイコンをクリックして、新規ルールの名前を編集します。

図17-8 ビジネス・ルール・エディタ: ルールセット - 新規「一般的なルール」

2. IF領域で、「左の値」式アイコン、演算子のドロップダウン・リスト、「右の値」式アイコンを含む、コントロール、アイコンおよび選択ボックスを使用して条件を変更します。

3. ルールのTHEN領域でルール・アクションの横にある「アクションの追加」をクリックします。

17.5.2.3 動詞ルールの追加

動詞ルールを追加する手順は次のとおりです。

1. 図17-9に示すように、ルール名の右にある「拡張プロパティ・エディタ」アイコンをクリックして、新規ルールの名前を編集します。

図17-9 ビジネス・ルール・エディタ: ルールセット - 新規「動詞ルール」

2. IF領域で、「テストの追加」をクリックし、ビジネス・フレーズを入力してテストを指定します。

3. ルールのTHEN領域で、「アクションの追加」をクリックして、このルールに必要なアクションを追加します。

17.6 デシジョン表の使用

デシジョン表では、スプレッドシート形式の単一ビューに複数の関連するルールが表示されます。ビジネス・ルール・エディタのデシジョン表には、関連するビジネス・ルールのコレクションが条件行、ルールおよびアクションとともにわかりやすい表形式で表示されます。ビジネス・ユーザーは、各セルおよびそれぞれの値をすばやく比較でき、また、ビジネス・ルール・エディタでアイコンをクリックして値を選択することで、デシジョン表のルール分析機能を使用し、競合するケースや欠落しているケースを特定して修正できます。

デシジョン表の概念をわかりやすくするため、ローン申請の承認または拒否を決定するIF/THENルールを例にして考えてみましょう。

IF/THENルールは、次に従って処理されます。

if loanAmount < 10,000 and creditRating = poor then loanApprovalStatus = manual_approval
if loanAmount < 10,000 and creditRating = good then loanApprovalStatus = auto_approved
if loanAmount [100,000..500,000] and creditRating = poor then loanApprovalStatus = auto_rejected

図17-10は、これらのルールを含むデシジョン表を示し、デシジョン表の条件とアクションの領域を表示しています。

図17-10 条件とアクションを使用するサンプル・デシジョン表

ルールセットにはデシジョン表が含まれており、これによりデシジョン表をIF/THENルールとともにグループ化できます。ルールセットでルールとデシジョン表をグループ化すると、IF/THENルールとデシジョン表のルールのすべてが相互に関連付けられた1セットのルールとして実行されます。

デシジョン表内のルールには名前がありません。ビジネス・ルール・エディタではデシジョン表内のルールがR1、R2およびR3のようなラベル付きで表示されますが、これらのルール・ラベルは個別ルールの名前ではなく、デシジョン表内のルールの現行の順序付けから導出されたラベルです。したがって、ラベルR1が付いているルールを位置3に移動すると、ビジネス・ルール・エディタにより、このルールのラベルがR3に変更されます。

デシジョン表の条件

デシジョン表の「条件」領域には、1行以上の条件行が含まれています。各条件行には条件式が含まれ、ルールごとに条件セルがあります。条件式とは、ビジネス・ルール・エディタで構築する式です。条件式はファクト・プロパティまたは関数結果であることが多いのですが、値セットに関連付けられる型の式の場合もあります。指定された条件セルの値または範囲は、関連付けられたLOVまたは範囲の値セットの1つ以上の値または範囲から取得されます。

デシジョン表にはルールが値の順序で表示され、ルールの順序を変更するには値セット内の値の順序を変更する必要があります。したがって、条件行に関連付けられている値セット内の値の順序によって条件セルの順序が決まり、さらにルールの順序も決まります。デシジョン表でのルールの順序付けは、条件行に関連付けられているLOV値セット内の値の相対位置を変更することで制御できますが、範囲値の順序は変更できません。

デフォルトでは、条件行の作成時にビジネス・ルール・エディタにより条件セルが1つ作成され、そのセルに「?」値が割り当てられます。条件セルの値が「?」である場合は、そのセルの値が値セットでは未定義であることを示します。

デシジョン表のアクション

デシジョン表では、アクションはルールに関連付けられています。実行時には、条件セルについてファクトが一致すると、Rules Engineにより、そのルールに関連付けられているアクションの実行が準備されます。

表17-1は、「アクション」領域で選択可能なアクションのタイプを示しています。したがって、アクションでは、関数の呼出し、新規ファクトのアサート、ファクトのリトラクト、ファクトの変更などを実行できます。「アクション」領域では、ルールの個別アクションに対応するセルがアクション・セルと呼ばれます。

表17-1 デシジョン表のアクション

アクション

説明

新規アサート

新規ファクトのアサート

割当て

-

コール

関数のコール

変更

一致したファクトに関連付けられているデータ値の変更

リトラクト

ファクトのリトラクト

アサート

-

ツリーのアサート

-

新規割当て

-

式

-

戻る

-

スロー

-

複数のアクションを追加する場合、「アクション」領域で追加したアクションは順序付けされます。上位の行に表示されるアクションが実行されてから、下位の行のアクションが実行されます。

デシジョン表のアクション(modifyなど)では、条件セル内で一致したファクトを参照できます。「アクション」領域の一部のタイプのアクションには、パラメータ化されたチェック・ボックスが含まれています。このチェック・ボックスでは、そのアクションのプロパティとして、デシジョン表内のルールに関連付けられたアクション・セル内の値セットを設定できることが指定されます。パラメータ化されたチェック・ボックスが選択されると、アクション・セルに値が入力されていない場合に、「アクション」領域で、アクション内の式の値に入力した値がプロパティのデフォルト値になります。たとえば、図17-11を見ると、値GOODがアクション・プロパティloanApprovalStatusのデフォルト値として割り当てられています。

図17-11 デフォルト値が設定されたパラメータ化アクションが表示されているアクション・エディタ

デシジョン表の「アクション」領域では、特定のアクション・セルが何も実行しないように指定できます。この場合は、そのアクション・セルの選択を解除します。アクション・セルのチェック・ボックスの選択が解除されている場合は、パターンがデシジョン表内で指定された条件値に一致しても、このアクションが実行されないことを意味します。したがって、アクション・セルごとに、関連付けられているルールでアクションをアクティブにする必要があるかまたはアクションを実行しないかを指定できます。

17.6.1 デシジョン表をルールセットに追加する方法

デシジョン表を追加するには、複数のステップを実行します。次の手順が含まれます。

- デシジョン表の作成

- デシジョン表への条件の追加

- デシジョン表へのアクションの追加

- デシジョン表操作を使用した、デシジョン表の検証、修正および変更

デシジョン表を追加する手順は、次のとおりです。

デシジョン表では、スプレッドシート形式の単一ビューに複数の関連するルールが表示されます。

1. デシジョン表を追加するルールセットが含まれるビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動し、「ルールセット」をクリックして、このビジネス・ルールに定義されたルールセットのリストから、必要なルールセットを選択します。

3. 「新規ルール」アイコンをクリックして、デシジョン表の追加を選択します。

4. ルール名の右にある「拡張プロパティ・エディタ」アイコンをクリックして、新規ルールの名前を編集します。

5. 多数のルールが必要な場合は、図17-12に示すようにコントロール、アイコンおよび選択ボックスを使用してデシジョン表を作成します。

図17-12 ビジネス・ルール・エディタ: ルールセット - 新規デシジョン表の「ルール」

デシジョン表の作成方法および使用可能なツールの詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計のデシジョン表の使用に関する項を参照してください。

17.6.2 Microsoft Excelとの間のデシジョン表のエクスポートとインポート

ビジネス・ユーザーの場合は、Microsoft Excelを使用するとデシジョン表の編集が容易になることがあります。新機能を使用すると、デシジョン表をエクスポートしてExcelで編集してから、ディクショナリにデシジョン表をインポートして戻すことができます。デシジョン表は、Oracle Business Process Composerでのデザインタイムにエクスポートして編集できます。ビジネス・ルール・ディクショナリから同一のExcelワークブックに1つ以上のデシジョン表をエクスポートできます。ディクショナリにインポートして戻すときは、新規ディクショナリの作成、既存ディクショナリの上書きまたは差異のマージを実行できます。差異のマージを使用すると、ディクショナリの比較が可能になります。ディクショナリ比較の詳細は、「Oracle Business Rulesディクショナリの比較およびマージ」を参照してください。

Excelワークブックの構造は、図17-13に示すように複数のワークシートで構成されます。これらのシートは1枚のREADMEシート、1枚の値セットシートおよびエクスポートされた各デシジョン表に対応する1枚ずつのシートです。Excelで編集できるものはルールと値セットのみです。XLSM (デフォルト)またはXLSにエクスポートできます。

図17-13 Microsoft Excel - デシジョン表

スプレッドシートを開く際のデフォルトではマクロが無効化されています。マクロを有効にすると、「Oracle Business Rules」という新しいタブが表示されます。このタブを使用すると、ルールの追加と削除、セルのマージと分割、値セットの値の追加や削除が可能になります。また、強調表示の無効化または有効化、簡易モードまたは拡張モードの使用、READMEシートの非表示または表示も実行できます。

マクロを無効にした状態でも編集はできますが、次の実行はできません。

- 制限付きセルでのドロップ・リストからの値の選択

- フリー・フォーム・セルの編集

- セル範囲のコピーおよび貼付けによるルールまたは値セットの追加

- セル範囲の削除によるルールまたは値セットの削除

- セルの分割またはマージ

- 値セットの自動作成

- デシジョン表または値セットの構造の検証

事前定義済のマクロを使用すると、次の実行が可能になります。

- ルールの追加と削除

- セルの分割またはマージ

- 値セットの追加または削除

- 編集可能なセルには次が含まれます。

- ルール、条件、アクションの説明

- 条件およびアクション・ノード

- アクションの状態

- アクション・パラメータのパラメータ化オプション

- 編集不可のセルには次が含まれます。

- 条件式

- アクション式

- アクション・パラメータ

これらのセルを編集しようとすると、エラー・メッセージが表示されます。

Excelでは、共有値セットは存在しません。各条件に独自の値セットがあるため、Excelで変更可能な場合にエクスポート可能な値セットは1つのみになります。変更不可の値セットには、次が含まれます。

- リンク先のディクショナリ値セット

- 列挙

- ブール値セットなどの内部値セット

ワークシートでは、変更不可の値セットと関連付けられた条件のドロップダウンから値を選択することのみが可能です。強調表示メカニズムによって、変更不可の値セットに関連付けられている条件が示されます。

17.6.2.1 デシジョン表のMicrosoft Excelへのエクスポート

デシジョン表をMicrosoft Excelにエクスポートする手順は、次のとおりです。

1. デシジョン表をMicrosoft Excelにエクスポートするビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動し、図17-14に示すように「アクション」、「Excelにエクスポート」の順にクリックして、「デシジョン表のエクスポート」ダイアログを開きます。

図17-14 ビジネス・ルール・エディタ: アクション - Excelにエクスポート

3. ファイルに名前を付け、XLSまたはXLSM形式でファイルの保存を選択します。

4. エクスポートするデシジョン表を強調表示します。

5. 値セットを読取り専用にする場合は、「バケット・セットのみの読取り」(値セット)チェック・ボックスをクリックします。

6. 「エクスポート」をクリックして、ファイルをローカル・フォルダに保存します。

これでこのファイルは、Microsoft Excelを使用して開き、編集できます。

17.6.2.2 デシジョン表のMicrosoft Excelからのインポート

デシジョン表をMicrosoft Excelからインポートする手順は、次のとおりです。

1. デシジョン表をMicrosoft Excelからインポートするビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動し、図17-15に示すように「アクション」、「Excelからインポート」の順にクリックして、「デシジョン表のインポート」ダイアログを開きます。

図17-15 ビジネス・ルール・エディタ: アクション - Excelからインポート

3. ワークシートを保存したフォルダを参照して、更新したワークシートのファイルを選択します。

4. 「差異のマージ」ラジオ・ボタンはデフォルトで選択されています。

ファイルを比較するベース・ディクショナリを参照します。ベース・ディクショナリは、3方向の差異のマージに必要です。

5. 「差異のマージ」ラジオ・ボタンの選択を解除して、「新規作成」または「上書き」を選択します。

6. 「インポート」をクリックします。

デシジョン表がビジネス・ルール・エディタにインポートされ、変更の受入れまたは拒否を選択できます。

17.7 ファクトの使用

Oracle Business Rulesでは、ファクトはルールの基礎となるオブジェクトです。各ファクトはファクト・タイプのインスタンスです。ルールを作成する前に、ファクト・タイプを1つ以上インポートまたは作成する必要があります。ファクトの作成と編集は、BPM Studioで行います。コンポーザでファクトを表示できます。

Oracle Business Rulesの場合、ファクトはクラスのアサートされたインスタンスです。Oracle Business RulesランタイムまたはOracle Rules Language (RL)で記述する開発者は、RL言語のアサート関数を使用してファクトのインスタンスをOracle Business Rules Engineに追加します。

注意:

Oracle Rule Language (RL)は、Oracle Business Rulesのネイティブ言語です。

図17-16に示すように、ビジネス・ルール・エディタを使用して、ファクトを表示できます。

図17-16 ビジネス・ルール・エディタ - ファクト

ファクト・タイプは次をベースとします。

- XMLファクト: XMLファクトは、XMLスキーマを指定して既存のソースからインポートされます。
BPM Studioでは、ビジネス要件に応じて、インポートしたXMLファクトに別名を追加するか、XMLファクトをRLファクトと併用してデータ・モデルを変更できます。

- Javaファクト: Javaファクトは既存のソースからインポートされます。
BPM Studioでは、Javaファクトに別名を追加するか、RLファクトと併用し、データ・モデルの目標をビジネス要件に合せることができます。また、Javaファクトは、作成するルールまたはデシジョン表で使用する関連Javaクラスのインポートにも使用されます。

- RLファクト: RLファクトは、ユーザーが直接作成でき、外部ソースが存在しないタイプの唯一のファクトです。
他のすべてのタイプのOracle Business Rulesファクトはインポートされます。RLファクトは、リレーショナル・データベースの行またはプロパティを持つJavaBeanと似ています。RLファクトには、名前付きの型指定プロパティのセットが含まれます。プロパティ値には、文字列のようなプリミティブ、別の構造化ファクトまたはリストを使用できます。RLファクトは、迅速で独立的な開発およびデシジョン・ロジックのテストに役立ちます。インポートされたスキーマを使用可能にするか安定させるため、事前にRLファクトを使用して最終的にインポートされたファクト・タイプに由来する入力データ(XMLスキーマなど)を、モデル化できます。中間デシジョンはアプリケーションに返されません(顧客を優良または不良に分類するサブデシジョンなど)。通常は、デシジョンの入力および出力データに使用されるファクト・タイプをインポートすることが最適な方法です。RLファクトを使用すると、動的な仮想型を提供することでJavaアプリケーションのオブジェクト・モデルを拡張できます。

- ADFビジネス・コンポーネント・ファクト: ADFビジネス・コンポーネント・ファクトを使用すると、ルールおよびデシジョン表でADFビジネス・コンポーネントをファクトとして使用できます。
ADFビジネス・コンポーネントのファクトを使用することで、ルールのベースとして必要なビジネス・オブジェクトを表すビュー・オブジェクトのグラフをアサートし、Oracle Business Rulesにビュー・オブジェクトのグラフ内で各種の関連ビュー・オブジェクト間の関係管理に伴う複雑な処理を実行させることができます。

Oracle Business Rulesランタイムでは、このようなファクト・タイプ・インスタンスはファクトと呼ばれます。

17.8 値セットの使用

値セットを作成すると、指定したタイプの値のリストまたは値の範囲を定義できます。値セットを作成すると、値セットを一致するタイプのファクト・プロパティに関連付けることができます。Oracle Business Rulesでは定義した値セットを使用して、ルールまたはデシジョン表のファクト・プロパティに関連付けられた値に対する制限を指定します。

値セットを使用して、可変初期値および関数の戻り値または関数の引数値に対する制限を指定することもできます。

ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリの値セットの追加、編集、削除を実行できます。

17.8.1 値セットの追加方法

ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリに含まれる値セットの編集、追加または削除を実行できます。

新規値セットを追加する手順は、次のとおりです。

1. プロジェクトの「ようこそページ」から、「コンポーネント」ペインに移動して、「ルール」を選択します。

2. 開くディクショナリの名前をクリックします。

図17-1に示すように、ビジネス・ルール・エディタにディクショナリが表示されます。プロジェクトが編集モードであることを確認します。

3. ツールバーに移動して、「値セット」をクリックします。

これで図17-17に示されるように、選択したビジネス・ルールの値セットをリストする表が表示されます。

図17-17 ビジネス・ルール・エディタ - 値セット

4. 「値セットの追加」ドロップダウン・リストをクリックして、作成する値セットのタイプを選択します。

- 値セット

- 範囲値セット

5. リストから値セットを選択し、必要に応じて値セットを編集します。

値セットのタイプに応じて、適切な「値セットの編集」ページが表示されます。図17-17は、範囲値セットの例を示しています。

17.8.2 既存の値セットの編集方法

ビジネス・ルール・エディタで「値セット」を選択すると、ディクショナリ内の値セットをリストする表が表示されます。値セットを編集するには、適切な行を選択して、「編集」アイコンをクリックします。これで、値セットのタイプ、つまり範囲、列挙またはLOVに応じた適切な「値セットの編集」ページが表示されます。

メニュー・バーの「追加」をクリックしてタイプを選択すると、範囲値セットを作成できます。これで、値セット表に新しい行が追加されます。値を追加すると、範囲値のエンド・ポイントおよびLOV値の値がデータ型に基づいて自動的に追加されます。新たに追加された値のエンド・ポイントや値は変更できます。エンド・ポイントまたは値を変更した場合、エイリアスが変更されることに注意してください。

値セットを削除するには、行を選択して「削除」をクリックします。

値セットを編集する手順は、次のとおりです。

1. 値セットを編集するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動して、「値セット」を選択します。

これで、ディクショナリ内の値セットをリストする表が表示されます。

3. 適切な値セット行を選択し、「値セットの編集」アイコンをクリックします。

4. 値セット・エディタを使用して、値セット内の適切なフィールドを編集します。

5. 「OK」をクリックして、変更を確認します。

17.9 グローバル変数の使用

ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリのグローバル変数の追加、編集、削除を実行できます。グローバルの定義を使用すると、複数のルールと関数で情報を共有できます。

たとえば、複数のルールで10%割引を使用する場合は、グローバルGold Discountを作成し、このグローバルを使用してすべてのルールに適切な割引を適用できます。

17.9.1 グローバル変数の追加方法

ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリに含まれるグローバル変数の編集、追加または削除を実行できます。

新規グローバルを追加する手順は、次のとおりです。

1. プロジェクトの「ようこそページ」から、「コンポーネント」ペインに移動して、「ルール」を選択します。

2. 開くディクショナリの名前をクリックします。

図17-1に示すように、ビジネス・ルール・エディタにディクショナリが表示されます。プロジェクトが編集モードであることを確認します。

3. ツールバーに移動して、「グローバル」をクリックします。

これで図17-18に示されるように、選択したビジネス・ルール・ディクショナリのグローバルをリストする表が表示されます。

図17-18 ビジネス・ルール・エディタ - グローバル

4. 「名前」フィールドに名前を入力するか、またはデフォルト値を使用します。

5. 「値」フィールドで、値を入力するか、リストから値を選択するか、「式ビルダー」アイコンをクリックして式を入力します。

式の使用の詳細は、「式を使用したデータのコントロール」を参照してください。

6. 「値セット」フィールドで、リストから値を選択することもできます。

7. 「タイプ」フィールドで、リストからタイプを選択します。

8. グローバルがファイナルでない場合は、「final」チェック・ボックスの選択を解除します。

このオプションの選択を解除することは、Assignアクションなどで、グローバルを変更可能にすることを意味します。

9. グローバルが定数である場合は、「定数」チェック・ボックスを選択します。

このオプションを選択することは、グローバルが定数値であることを示します。詳細は、「finalおよび定数オプションについて」を参照してください。

17.9.1.1 finalおよび定数オプションについて

グローバル変数には、選択可能な定数およびfinalオプションが含まれています。グローバル変数の使用時は、次について考慮します。

- 「final」の選択を解除すると、アクションの割当てなどでグローバルが変更可能であると指定することになります。

- 「final」を選択すると、ルールのテストでそのグローバルの使用が可能であると指定することになります(finalでないグローバルはルールのテストで使用できません)。

- 「final」を選択することは、グローバルが実行時に一度初期化され、変更できないことを示します。

「定数」オプションを選択すると、グローバルを定数として指定することになります。Oracle Business Rulesの定数とは、文字列や数値リテラル、値が定数であるfinalグローバルまたは定数と+、-、*および/が含まれる単純な式です。

グローバルに対して「定数」オプションを選択すると、次の3つの影響があります。

- 文字列リテラルを二重引用符で囲む必要がありません。

- 式の値の選択リストに定数のみが表示されます。

- 式の値が有効な定数である必要があります。

「定数」オプションは必要に応じて選択します。値、値範囲エンドポイント、ルールセット・フィルタ値は常に定数であることに注意してください。

17.9.2 グローバルの編集方法

ビジネス・ルール・エディタで「グローバル」タブを選択すると、ディクショナリ内のグローバルをリストする表が表示されます。

グローバル変数を編集するには、適切な行および変数を選択します。「名前」、「説明」および「値」の各フィールドを編集できます。「値」フィールドでは、式ビルダーを使用して値を設定できます。

17.10 動詞ルールおよびビジネス・フレーズの使用

動詞ルールはビジネス・フレーズと連携して機能することで、ルールの柔軟なオーサリングを可能にし、自然言語文を使用して、会話言語と同様のドメイン固有文でルール・ロジックを表現できるようにします。ビジネス・フレーズは、動詞ルールの文構成で使用される条件の背景となるロジックを提供します。

動詞ルールのテストおよびアクションは、導出されたビジネス・フレーズおよびユーザー定義のビジネス・フレーズを使用して作成できます。導出されるビジネス・フレーズは、ファクト、グローバルおよびディクショナリのその他の情報を使用して自動的に作成されますが、ユーザー定義のフレーズは、明示的に作成して導出されたフレーズを補うことができます。さらに、ユーザー定義のフレーズは、事前作成することも、動詞ルールの構成時に必要に応じて作成することもできます。

動詞ルールの作成時は、提案されたビジネス・フレーズを使用したり、その場で独自にインスタンス化して後で実装詳細を指定することもできます。また、最初に動詞ルールで必要なビジネス・フレーズを作成してから、動詞ルールを完成する方法もあります。

ビジネス・フレーズ、動詞ルールとの連携およびサンプル・シナリオでの使用方法の詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計の「ルールセットおよびルールの使用」の章を参照してください。

17.10.1 ビジネス・フレーズの作成方法

ビジネス・ルール・エディタで「グローバル」タブを選択すると、ディクショナリ内のグローバルをリストする表が表示されます。

グローバル変数を編集するには、適切な行および変数を選択します。「名前」、「説明」および「値」の各フィールドを編集できます。「値」フィールドでは、式ビルダーを使用して値を設定できます。

ビジネス・フレーズを作成する手順は、次のとおりです。

1. ビジネス・フレーズを追加するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動して、「ビジネス・フレーズ」をクリックします。

3. 「フレーズの追加」アイコンをクリックして、「テスト」ビジネス・フレーズを追加します。

また、ドロップダウンから「テスト」または「アクション」ビジネス・フレーズを作成する方法もあります。

4. 図17-19に示すように、ビジネス・フレーズの詳細を入力します。

図17-19 ビジネス・ルール・エディタ - ビジネス・フレーズ

5. 「句」パネルに、ビジネス・フレーズの定義を入力します。

未定義のパラメータのプレースホルダは、その名前を中カッコで囲んで入力することで組み込むことができます。次に例を示します。

{customer} is single

対応するパラメータが「パラメータ」パネルに追加されます。

6. 「パラメータ」パネルで、パラメータを定義します。

「作成」(+)をクリックして、新しいパラメータを追加します。「名前」、「フォーム」および「タイプ」を指定します。「値セット」は、必要に応じて指定します。

7. ビジネス・フレーズ値にパラメータを追加するには、「句」パネルで「パラメータの挿入」をクリックして、ドロップダウン・リストからパラメータを選択します。

8. 「マッピング」パネルで、ビジネス・フレーズのタイプに応じてテストまたはアクションを追加して、ビジネス・フレーズに対するマッピングを定義します。

マッピングは、34Business Process Composerでの一般的なルール・テストやアクションの構成と同様の方法で、条件、ファクト、オペランドなどを検索および指定することで構成されます。「ルールセットへの一般ルールおよび動詞ルールの追加方法」を参照してください。

9. 必要に応じて、ビジネス・フレーズにドラフトのマークを付けます。

17.10.2 ドラフトのビジネス・フレーズと動詞ルール

ビジネス・フレーズは、ドラフト・ステータスとしてマークできます。

ビジネス・フレーズのドラフト・ステータスは、「ドラフトの作成」または「ドラフトのクリア」をクリックすることで、設定またはオーバーライドできます。

動詞ルールのドラフト・ステータスは参照するビジネス・フレーズから導出され、直接は操作できません。動詞ルールにドラフトとマークされたビジネス・フレーズが含まれる場合、このルールもドラフトとしてマークされます。動詞ルールの説明パネルに、その動詞ルールがドラフト・モードであることが示されます。動詞ルールで参照しているすべてのビジネス・フレーズからドラフトのマークがなくなった場合、動詞ルールのドラフト・モードは解除されます。

ドラフトのビジネス・フレーズおよび動詞ルールは、検証されず、実行用のディクショナリにも含まれません。これにより、ビジネス・フレーズおよび動詞ルールの改良時にも、ディクショナリの使用またはテストの続行が可能になります。

動詞ルールの作成時には、ディクショナリにまだ存在していないビジネス・フレーズを構成できます。これらは、ビジネス・フレーズのリストに自動的に追加され、ドラフトのマークが付けられ、さらに動詞ルールもドラフトとしてマークされます。

17.10.3 動詞ルールにおけるビジネス・フレーズの選択または追加

動詞ルールは、ビジネス・フレーズを使用してIFおよびTHENテストおよびアクションを指定します。

動詞ルールでテストまたはアクションを定義するときに、選択肢のドロップダウン・リストをトリガーするテキストを入力します。このリストから、ディクショナリに既存のビジネス・フレーズの選択、ビジネス・フレーズの自動生成、入力内容に基づく新規ビジネス・フレーズのインスタンス化を実行し、後から「ビジネス・フレーズ」タブで実装詳細を指定できます。

17.10.3.1 動詞ルール作成時の新規ビジネス・フレーズのインスタンス化

新規動詞ルールの作成時に、ビジネス・フレーズをドロップダウン・リストから選択するのではなく、テストまたはアクションに入力して「新規ビジネス・フレーズの追加」をクリックすることによって、新規ビジネス・フレーズをインスタンス化できます。これらのビジネス・フレーズはドラフトとマークされ、このフレーズを使用する動詞ルールもドラフトとマークされます。

「フレーズに移動」をクリックして、「ビジネス・フレーズ」タブでビジネス・フレーズにアクセスします。

17.10.3.2 動詞ルール作成時のビジネス・フレーズの選択

テストまたはアクションの作成時に、以前のユーザー定義ビジネス・フレーズと自動生成された導出ビジネス・フレーズの両方が含まれ、関連性に従ってソートされた堅牢なリストが自動的に提示されます。

ユーザー定義および導出されたビジネス・フレーズは、ドロップダウン・リストで相互を区別できません。

このリストは、必要に応じて絞り込むことができます。さらに多くの選択肢を表示するには、ビジネス・フレーズを選択して右矢印キーを押します。選択したビジネス・フレーズに関連するビジネス・フレーズがリストに移入されます。

17.11 デシジョン関数の使用

デシジョン関数は、ルールおよびルールセットを、複数のビジネス・プロセスから起動できる再利用可能なサービスとして公開するメカニズムです。ビジネス・ルールもルールセットも外部からはアクセスできないため、これは、ビジネス・ルールに保持されるビジネス・ロジックへのゲートウェイにすぎません。

デシジョン関数は、宣言的に構成される関数です。デシジョン関数では、次の操作が実行されます。

- Oracle Business Rules Engineの作業メモリーに入力をルール・ファクトとしてアサートします。

- 現在のデシジョン関数およびネストしたデシジョン関数で構成されたルールセットを順番に実行します。

- Oracle Business Rules Engineの作業メモリーから出力ファクトを返します。

デシジョン関数は、Javaまたはサービス指向アーキテクチャ(SOA)から(SOAコンポジット・アプリケーションまたはBPELプロセスから)ルールを起動するための規定を提供します。規定には、入力ファクト・タイプ、実行するルールセットおよび出力ファクト・タイプが含まれます。

デシジョン関数を表示および変更する手順は、次のとおりです。

1. ビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動して、「デシジョン関数」をクリックします。

3. 図17-20に示すように、デシジョン関数を選択します。

図17-20 ビジネス・ルール・エディタ - デシジョン関数

4. 「名前」フィールドにデシジョン関数名を入力します。

5. 必要に応じて、「説明」フィールド内の説明を変更します。

6. 「ルール起動制限」フィールドで、無制限値または整数値を選択します。

デシジョン関数をデバッグするときに、ルール起動制限の値の入力が必要になる場合があります。「ルール起動制限」は、指定数のルールを起動した後に実行を停止する場合にプライマリ・ルール処理でも使用できます。

7. デシジョン関数をルール・サービスとして起動する場合は、「サービス名」フィールドにサービス名を入力します。

8. 次のコントロールはコンポーザから編集できません。

- 名前

- ルール起動制限

- サービス名

- ルール・サービスとして呼出し: デシジョン関数をルール・サービスとして呼び出す場合。

- ルール・フローの確認: 次のことを確認して、検証警告を生成します。
デシジョン関数によって実行されるルールで必要とされるタイプは、デシジョン関数に対する入力であるか、他のルールによってアサートされます。

デシジョン関数によって実行されるルールで生成されるタイプは、他のルールに対する入力であるか、デシジョン関数に対する出力です。

ルール・フロー・チェックでは、ルールで使用されるJavaコードに広がるルール・フローの問題を特定できない場合があることに注意してください。このような場合は、フロー・チェックをオフにすることで警告を無視できます。

- ステートレス: デシジョン関数がステートレスであることを指定します
このチェック・ボックスが選択されている場合、ステートレス操作であるということです。ステートレス操作では、実行時に、デシジョン関数の起動が終わるたびにルール・セッションが解放されます。

- 1回のスタックのルールセット: 選択した場合、ルールセット・スタックから1回ポップされたルールセットはそれ以上評価されることはありません。このチェック・ボックスが選択されている場合、ステートレス操作であるということです。ステートレス操作では、実行時に、デシジョン関数の起動が終わるたびにルール・セッションが解放されます。

9. 「初期アクション」タブで、「追加」をクリックしてデシジョン関数の初期アクションを追加します。次を含むリストから選択します。

- アサーション

- 割当て

- if、while、Forなど

- 式

- 同期

- スロー

10. 次のタブはコンポーザから編集できません。

- 入力: 入力名を入力し、[Enter]を押すか、デフォルト名を使用します。

- 出力: リストから適切なファクト・タイプを選択します。

- ルールセット・デシジョン関数

17.12 テストの使用

ランタイムにはOracle Business Process Composerを使用してルールのリグレッション・テストを実行できます。これによって、変更後のルールで既存の機能が変更されるかどうかをすばやくチェックできます。

1つ以上のテスト・ケースでテスト・スイートを作成できます。テスト・スイートは、個別のデシジョン関数に対してのみ定義できます。

テスト・スイートの作成後にテスト・ケースを作成する必要がある場合は、「テスト・モデル」ツリーでテスト・スイート、「+」の順にクリックして「テスト・ケース」を作成するか、「テンプレートからのテスト・ケース」を作成します。

データは、「現在のタブでの変更を保存」タブを随時使用して保存できます。また、変更が完了した場合は「パブリッシュ」をクリックします。

「テスト・モデル」ツリーでテスト・ケースをクリックすると、そのテスト・ケースの入力および出力ドキュメントの確認もできます。ここでは、値を編集して入力および予期される出力を指定できます。

17.12.1 テスト・スイートおよびテスト・ケースの作成および管理

テスト・スイートおよびテスト・ケースの作成および管理手順は、次のとおりです。

1. テスト・スイートおよびテスト・ケースを追加するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動して、「テスト」をクリックします。

テストの検証をオフにする場合は、「ドラフト・テスト」チェック・ボックスをクリックします。

3. 「追加」アイコンをクリックして、新規テスト・スイートを作成します。

4. 「名前」および「説明」を入力して、「デシジョン関数」を選択します。

図17-21のようにテスト・スイートが表示されます。

図17-21 ビジネス・ルール・エディタ - テスト

5. テスト・スイートの作成後にテスト・ケースを作成する場合は、「テスト・モデル」ツリーでそのテスト・スイートをクリックして、「追加」アイコンをクリックし、「テスト・ケース」または「テンプレートからのテスト・ケース」で作成します。

6. 「テスト・モデル」ツリーでテスト・ケースをクリックして、そのテスト・ケースの入力および出力ドキュメントを確認します。

ここでは、値を編集して入力および予期される出力を指定できます。

「テスト・ケース」エディタでテスト・ケースの入力および予期される出力値を定義します。ここでの値には、単純な値、グローバル、関数などを使用する式を使用できます。

テスト入力および出力ファクト・ツリーは、デシジョン関数に指定された入力および出力に従って自動的に初期化されます。

入力および出力ファクト・ツリーは、デシジョン関数に対する変更(入力または出力の追加、削除、変更)またはファクト・タイプの変更(プロパティの追加、削除、変更)とも自動的に同期します。自動同期フラグおよび強調表示によって、デシジョン関数またはファクト・タイプで変更されたファクトおよびプロパティの値が無効化されます。入力および出力に対するこれらのフラグの表示は、テスト定義の特定および問題の修正に役立ちます。

7. 「編集」をクリックして、ツリー内のすべてのノードを編集可能にします。

8. ツリー内のフィールドを編集する場合は、「値の表示」をクリックすると、それらの値のみが表示されます。

9. 起動しないルールを実行のエラーとみなす場合は、「起動しないルールをエラーとしてフラグ設定」チェック・ボックスを選択します。

テスト・スイートおよびケースの設定が完了すると、実行可能になります。

17.12.2 テスト・テンプレートの作成

テスト・テンプレートを作成する手順は、次のとおりです。

テスト・テンプレートを使用すると、入力および出力値を再使用して、それらのフィールドおよび値のテストを反復できます。

1. テスト・スイートおよびテスト・ケースを追加するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動して、「テスト」をクリックします。

3. ナビゲーション・ツリーで「テスト・モデル」をクリックします。

「テスト・テンプレート」領域で、「追加」アイコンをクリックして、新規テスト・テンプレートを作成します。

4. 「名前」および「説明」を入力して、「デシジョン関数」を選択します。

17.12.3 テスト・スイートおよびテスト・ケースの実行方法

テストを実行すると、新しいタブが開き、診断コメント、例外およびテスト結果が表示されます。テストは、スイート、複数のテスト・ケースまたは個別のテスト・ケースとして実行できます。テストは、RL生成を介して実行されます。

テスト・スイートまたはテスト・テンプレートを実行する手順は、次のとおりです。

1. 実行するテスト・スイートまたはテスト・テンプレートを選択し、「実行」アイコンをクリックします。

「実行」アイコンは、テスト・スイートまたはテスト・ケース(またはテスト・テンプレート)が表から選択され、現在のディクショナリに検証警告が存在しない場合のみ、使用可能になります。

2. 新しい「結果」タブが表示されます。これをクリックして、テスト結果を表示します。

テスト・スイートの実行の場合、このタブにはデフォルトでテスト結果の概要が表示されますが、各テスト・ケースをクリックするとそれぞれのテスト結果を表示できます。テスト・ケースの実行の場合は、このタブにテスト結果が表示されます。

テストが失敗した場合、テスト結果には失敗原因に応じて診断コメント、出力差異または例外が表示されます。

17.13 エクスプローラの使用

「エクスプローラ」タブを使用して、ビジネス・ルール・ディクショナリ・アイテムを表示します。

「エクスプローラ」を使用してアイテムを表示する手順は、次のとおりです。

1. アイテムを編集するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動して、「エクスプローラ」をクリックします。

図17-22のように、選択したビジネス・ルール・ディクショナリに含まれるアイテムがリスト表示されます。

図17-22 ビジネス・ルール・エディタ - エクスプローラ

3. 「非表示項目の表示」を選択して、非表示のアイテムをリストに含めます。

17.14 変換の使用

「変換」タブには、選択したディクショナリに含まれるフレーズおよび変換された文字列が表示されます。

プロジェクトで追加言語を機能させるには、プロジェクトにその言語を追加する必要があります。

プロジェクトへの言語の追加方法の詳細は、「「プロジェクト情報」パネルの概要」を参照してください。

フレーズを翻訳する手順は次のとおりです。

1. フレーズを翻訳するビジネス・ルール・ディクショナリを開きます。

2. ツールバーに移動し、「変換」をクリックします。

選択したディクショナリに含まれるフレーズがリスト表示されます。図17-23のようにプロジェクトで指定した言語もリスト表示されます。

図17-23 ビジネス・ルール・エディタ - 変換

3. 翻訳するフレーズをクリックして、翻訳した文字列を適切な言語列に入力します。

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

ビジネス・ルール・タスクは、プロセス・モデル内にOracle Business Rulesを取り込むことができるOracle BPMN要素です。

ビジネス・カタログにビジネス・ルールを含むプロジェクト・テンプレートに基づいてプロジェクトを編集する場合、ビジネス・ルール・タスクにビジネス・ルールを割り当てることができます。

ビジネス・ルール・タスクにビジネス・ルールを割り当てるには:

1. 編集するビジネス・ルール・タスクを含むプロセスを開きます。

2. ビジネス・ルール・タスクを右クリックし、「プロパティ」を選択します。

3. 「実装」タブを選択します。

4. 「変更」をクリックします。使用可能なビジネス・ルールの表を含むビジネス・ルール・ブラウザが表示されます。

5. 表でルールをダブルクリックします。

6. 「OK」をクリックします。

17.16 ランタイム時の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. 「プロジェクト」メニューの「プロジェクトを閉じる」を選択します。

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

この章では、他のプロセスおよびサービスと通信するビジネス・プロセスを設計する方法について説明します。

この章の内容は次のとおりです。

- プロセスの入力と出力の定義

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

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

- 会話の定義

- サービスの使用

18.1 プロセスの入力と出力の定義

操作をBusiness Process Model and Notation (BPMN)プロセスに追加するときは、他のプロセスまたはサービスとの通信に使用できるポイントをプロセス内に定義します。通常、プロセスが他のプロセスまたはサービスと通信するときは、入力が要求され、出力が返されます。

BPMNプロセス操作の定義に使用するフロー・イベントでは、入力引数と出力引数を定義できます。これらの入力引数と出力引数によって、プロセスの入力と出力が定義されます。

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

メッセージ開始イベントから開始するプロセスを作成するときは、そのプロセスに渡される入力引数を定義する必要があります。

プロセスに入力引数を定義するには:

1. メッセージ開始イベントをプロセスに追加します。

2. メッセージ開始イベントを右クリックし、「プロパティ」を選択します。

3. トリガー・タイプには「メッセージ」を選択します。

Oracle Business Process Composerでは、デフォルトでトリガー・タイプ「なし」の開始イベントが作成され、「メッセージ」開始イベントとして実装するには、「プロパティ」ダイアログでトリガーを設定する必要があります。

4. 「実装」リンクをクリックして、「実装」タブに移動します。

5. 「インタフェースの定義」を選択します。

6. 「追加」アイコンをクリックします。

7. 名前と引数タイプを決定します。

8. 「変更の適用」をクリックします。

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

プロセスに入力引数を定義した後は、その内容をプロセス内のデータ・オブジェクトにマップする必要があります。

メッセージ開始イベントにデータ・アソシエーションを定義するには:

1. プロセスのメッセージ開始イベントを選択します。

2. 開始イベントを右クリックして、「データ・アソシエーション」をクリックします。

3. 右側のリストから「出力」の下にリストされたテキスト・ボックスに、データ・オブジェクトをドラッグします。

4. 「適用」をクリックします。

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

メッセージ終了イベントを含むプロセスを作成するときは、終了イベントごとに出力引数を定義する必要があります。それらはプロセスに対する出力引数になります。

プロセスに出力引数を定義するには:

1. メッセージ終了イベントをプロセスに追加します。

2. メッセージ終了イベントを右クリックし、「プロパティ」を選択します。

3. 「実装」タブをクリックします。

4. 「インタフェースの定義」を選択します。

5. 「追加」アイコンをクリックします。

6. 名前と引数タイプを決定します。

7. 「変更の適用」をクリックします。

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

プロセスの出力引数を定義した後は、その内容をプロセス内のデータ・オブジェクトにマップする必要があります。

メッセージ終了イベントにデータ・アソシエーションを定義するには:

1. プロセス内のメッセージ終了イベントを選択します。

2. 終了イベントを右クリックして、「データ・アソシエーション」をクリックします。

3. 右側のリストから「入力」の下にリストされたテキスト・ボックスに、データ・オブジェクトをドラッグします。

4. 「適用」をクリックします。

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

送信タスクおよび受信タスクを使用すると、他のBPMNプロセスを起動して、起動したプロセスからメッセージを受信できます。受信タスクによって開始され、送信タスクを含むプロセスは、Oracle Business Process Management (Oracle BPM)アプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

図18-1は、送信タスクおよび受信タスクを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作の概要を示しています。

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

次の手順は、送信タスクおよび受信タスクを使用してプロセス間で通信する場合のシナリオの例を示しています。

1. プロセスAが起動されます。

2. プロセスAのトークンが送信タスクに到達します。

3. 送信タスクによって、プロセスBが起動されます。
この動作は、送信タスクの実装によって定義されます。

4. プロセスAのトークンは、プロセスの次のフロー・オブジェクトに進みます。

5. 受信タスクによって、プロセスBのプロセス・インスタンスが開始されます。
受信タスクには、「インスタンスの作成」プロパティが定義されている必要があります。「受信タスクによるプロセスの開始」を参照してください。

6. 新しく作成されたトークンがプロセスBに沿って進みます。

7. プロセスの具体的な動作に応じて、次のシナリオが発生する場合があります。

a. プロセスAのトークンが、プロセスBからの送信タスクとペアになっている受信タスクに到達すると、プロセスAのトークンはレスポンスを受信するまで待機します。
レスポンスを受信した後、プロセスAのトークンは次のフロー・オブジェクトに移動します。

b. プロセスBのトークンが、プロセスA内の受信タスクとペアになっている送信タスクに到達すると、プロセスBはプロセスAにレスポンスを送信します。
プロセスBのトークンは、次のフロー・オブジェクトに移動します。

8. 両方のプロセスが引き続き実行されます。
この後に、さらに送信タスクと受信タスクのペアを使用して、2つのプロセス間での通信を定義できます。

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

スロー・イベントとキャッチ・イベントを組み合せて使用することによって、他のBPMNプロセスを起動したり、他のBPMNプロセスと通信できます。

スロー・イベントを使用して他のプロセスを起動する場合は、次の条件を満たしている必要があります。

- 起動されるプロセスは、非同期プロセスである必要があります。
メッセージ・スロー・イベントを使用して同期プロセスを起動することもできますが、起動したプロセスから同期的にメッセージをキャッチするメカニズムは用意されていません。

同期プロセスを起動する場合は、サービス・タスクを使用します。詳細は、サービス・タスクの概要を参照してください。

- 最初にメッセージ・スロー・イベントを使用する場合は、他のプロセスのメッセージ開始イベントとペアにする必要があります。
これは、プロセス・インスタンスをトリガーするために必要となります。インスタンスがトリガーされた後は、2つ目のプロセスによってキャッチされる後続のメッセージ・スロー・イベントを使用できます。

メッセージ開始イベントで開始し、メッセージ終了イベントで終了するプロセスは、Oracle BPMアプリケーション内の他のプロセスやサービスから使用できるサービスとして公開されます。

他のプロセスから起動されたプロセスは、子プロセスであるとはみなされません。このことは、強制終了イベントをプロセスの終了点として使用するプロセスを設計する場合に重要となります。たとえば、コール側プロセスの終了イベントでは、メッセージ・スロー・イベントによって起動されたプロセスは停止しません。

図18-2は、メッセージ・スロー・イベントおよびキャッチ・イベントを使用してプロセスを起動し、レスポンスを受信する場合の基本的な動作を示しています。

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

次の手順は、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントを使用してプロセス間で通信を行う場合のシナリオの例を示しています。

1. プロセスAが起動されます。

2. プロセスAのトークンが、プロセスBを起動するように構成されているメッセージ・スロー・イベントに到達します。

3. メッセージ・スロー・イベントからプロセスBのメッセージ開始イベントにメッセージが送信されます。

4. プロセスAのトークンは、次のフロー・オブジェクトに進みます。

5. メッセージ開始イベントによって、プロセスBのインスタンスがトリガーされます。

6. 新しく作成されたトークンがプロセスBに沿って進みます。

7. プロセスの動作に応じて、次のシナリオが発生する場合があります。

a. プロセスAのトークンが、プロセスBからのスロー・イベントとペアになっているキャッチ・イベントに到達すると、プロセスAのトークンはメッセージを受信するまで待機します。
メッセージを受信した後、プロセスAのトークンは次のフロー・オブジェクトに移動します。

b. プロセスBのトークンが、プロセスAのキャッチ・イベントとペアになっているスロー・イベントに到達すると、プロセスBはプロセスAにメッセージをスローします。
プロセスBのトークンは、次のフロー・オブジェクトに移動します。

8. 両方のプロセスが引き続き実行されます。
この後に、さらにキャッチ・イベントとスロー・イベントのペアを使用して、2つのプロセス間での通信を定義できます。

18.4 会話の定義

複数のプロセス間のメッセージ交換は、会話によってグループ化されます。プロセス間のメッセージ交換をコラボレーションと呼びます。1つのプロジェクト内に複数の会話を定義すると、そのプロジェクト内のプロセス間で再利用できます。

18.4.1 会話の概要

複数のプロセス間のメッセージ交換は、会話によってグループ化されます。プロセス間のメッセージ交換をコラボレーションと呼びます。1つのプロジェクト内に複数の会話を定義すると、そのプロジェクト内のプロセス間で再利用できます。

コラボレーション・ダイアグラムを使用すると、会話における他の参加者とプロセスの相互作用もプロセス・フローに表示できます。

デフォルトでは、BPMプロジェクトに1つの会話が定義されています。複数の会話を定義しない場合は、このデフォルトの会話を使用して、プロジェクト内のプロセス間のすべてのメッセージ交換を収集する必要があります。

プロジェクトごとに定義できるデフォルトの会話は1つのみです。ただし、デフォルトで使用する会話ではなく、別の会話をデフォルトとして使用するようにプロジェクトを変更できます。

様々なタイプの会話を使用すると、プロセスが他のプロセスやサービスとの間で確立できる各種の相互作用を指定できます。次に、各タイプの会話について説明します:

- インタフェースの定義: 他のサービスやプロセスでBPMNプロセスとの対話のために起動可能な操作の定義に使用します。

- インタフェースの使用: ビジネス・カタログのコンポーネントからのインタフェースを使用するようにプロセスを構成する場合に使用します。

- プロセス・コール: 別のBPMNプロセスの起動に使用します。

- サービス・コール: BPMプロジェクトに定義されているサービスの起動に使用します。

18.4.2 会話の使用

以降の項では、Oracle Business Process Composerを使用して会話を定義および構成する方法について説明します。

18.4.2.1 会話の定義方法

1. プロセスを開きます。

2. プロセス・エディタ・ツールバーで「会話の編集」ボタンをクリックします。

3. 会話の追加ボタンをクリックします。

4. 会話の名前を入力します。

5. 定義する会話のタイプを選択します。

6. 「OK」をクリックします。

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

1. プロセスを開きます。

2. プロセス・エディタ・ツールバーで「会話の編集」ボタンをクリックします。

3. リストから会話を選択し、「編集」ボタンをクリックします。

4. 「デフォルトの会話」チェック・ボックスをクリックします。

5. 「OK」をクリックします。

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

1. プロセスを開きます。

2. 次のいずれかのタイプのBPMNフロー・オブジェクトを右クリックします:

- メッセージ・イベント(スローおよびキャッチ)

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

- サービス・タスク

これらのBPMフロー・オブジェクトに対してのみ会話を定義できます。

3. 「実装」を選択します。

4. 「実装」タブで、「会話」テキスト・フィールドの隣にある「参照」ボタンをクリックします。

5. リストから会話を選択し、「OK」をクリックします。

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

プロセスのコラボレーション・ダイアグラムを表示するには、プロセス・エディタ・ツールバーで「コラボレーションの表示」ボタンをクリックします。

注意:

コラボレーション・ビューでプロセスの変更はできません。通常のプロセス編集に戻るには、「コラボレーションの表示」ボタンを再度クリックします。

18.5 サービスの使用

Oracle Business Process Composerでは、ビジネス・カタログに新しいサービスを作成できます。これらのサービスは、標準的なWebサービスに基づきます。

後続の項では、Oracle Business Process Composerを使用してサービスを作成する方法について説明します。

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

Webサービスに基づくサービスは、Webサービス記述言語(WSDL)ファイルを使用して定義されます。WSDLファイルは、Webサービスの実装方法を記述するために使用するXMLファイルです。Oracle Business Process Composerを使用して新規サービスを作成する場合は、コンピュータにローカルで格納されているWSDLファイルまたはオンラインで使用可能なWSDLファイルを指定できます。

WSDLファイルまたはURLの場所の指定は、プロセス開発者が担当します。

18.5.1.1 新しいサービスの作成

新しいサービスを作成する手順は、次のとおりです。

1. 新しいサービスを作成するプロジェクトを開きます。

2. メイン・メニューから「新規」を選択し、次に「新規サービス」を選択します。

3. 次の情報を指定します。

- 名前: ビジネス・カタログに表示するとおりに、サービスの名前を定義します。

- タイプ: 作成するサービスのタイプを定義します。

- WSDL: 新しいサービスの作成に使用するWSDLのソースとして、次のいずれかを指定できます:

- URL: WSDLのリモートURLを指定します。

- ファイル: ローカル・ファイル・システムにあるWSDLファイルまたはZIPファイルのいずれかを指定します。
ZIPファイルを使用する場合、そこに含めることができるのはWSDLおよびXSDファイルのみです。WSDLファイルには、有効な参照が必要です。

- ポート・タイプ: ポート・タイプには、使用するサービスを指定します。
WSDLファイルは1つ以上のポート・タイプを公開します。

- コールバック・タイプ: このWebサービスで使用するコールバック・タイプを指定します。
これは、非同期サービスにのみ適用可能です。

- トランザクション参加

- 「バージョン」。

4. 「OK」をクリックします。

18.5.1.2 プロセス・エディタでの新しいサービスの作成

プロセス・エディタで新規サービスを作成する手順は、次のとおりです。

1. BPMNからビジネス・カタログに、パレットを変更します。

2. サービスの近くにある+ボタンをクリックします。

「新規サービス」ダイアログが表示されます。

3. 必要な情報を入力します。

4. 「OK」をクリックします。

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

この章では、Oracle Business Process ComposerからBusiness Process Management (BPM)プロジェクトをデプロイする方法について説明します。権限を付与されたユーザーは、プロジェクトをランタイムに直接デプロイできます。

この章の内容は次のとおりです。

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

19.1 プロジェクトのデプロイ

Oracle Business Process Composerを使用して、Oracle BPMランタイムにプロジェクトをデプロイできます。

デプロイは、Oracle Business Process Composerアプリケーションのインストール環境と同じ環境内でのみ可能になります。

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

プロジェクト所有者権限が付与されているユーザーは、Oracle Business Process Composerを使用して、プロジェクトをOracle BPMランタイムに直接デプロイできます。「プロジェクトのデプロイ」画面が表示されたら、SOA管理ロール資格証明を入力します。SOA管理資格証明なしでは、デプロイメントが予期しないエラーで失敗します。

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

プロジェクト所有者は、プロジェクトを直接Oracle BPMランタイムにデプロイできます。

ランタイムにプロジェクトをデプロイするには:

1. プロジェクトの変更をすべて保存します。

2. プロジェクトを公開します。

未公開の変更を含むプロジェクトはデプロイしないでおきます。

3. メイン・メニューの「デプロイメント」を選択し、「プロジェクトのデプロイ」を選択します。

Oracle Business Process Composerでプロジェクトが検証されます。プロジェクトにエラーがない場合、デプロイ・プロセスが続行されます。

4. 図19-1に示すように、「プロジェクトのデプロイ」ダイアログに必要な情報を入力します。

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

「プロジェクトのデプロイ」ダイアログのプロパティは表19-1で説明します。

表19-1 「プロジェクトのデプロイ」ダイアログのプロパティ

プロパティ

説明

プロジェクト

プロジェクトの名前が表示されます。

バージョン

デプロイするプロジェクトのバージョンを選択する場合に使用します。プロジェクトの現行バージョンまたはプロジェクト・スナップショットを選択できます。

最終リビジョンID

プロジェクトの最新のデプロイ済バージョンのリビジョンIDが表示されます。

新規リビジョンID

デプロイしたアプリケーションのリビジョンIDを指定します。このIDは次の形式で指定する必要があります:

n0[.n1[.n2[.n3[.n4]]]][-milestone-name[milestone-number]/_patch-number

デフォルトのデプロイメント・バージョンのオーバーライド

デフォルトのデプロイメント・バージョンをオーバーライドします。

デプロイ担当ユーザー名

Oracle BPMプロジェクトをランタイムにデプロイするために使用します。

パスワード

前述のデプロイ担当ユーザー名に対応するパスワードを指定します。

コンポジット・リビジョンをデフォルトとしてマークします

現在のリビジョンをデフォルトのリビジョンとして定義します。

ターゲットのデプロイ

Oracle MDSで、SOAコンポジット・アプリケーションがデプロイされるフォルダを選択できます。

デプロイメント計画

デプロイ・プランを選択する場合に使用します。「参照」をクリックして、ローカル・ファイル・システムにあるデプロイ・プランを選択します。

5. 「デプロイ」をクリックします。

Oracle Business Process Composerによってプロジェクトがランタイムにデプロイされます。この操作には数分かかります。

6. デプロイメントの完了後、「OK」をクリックします。

プロジェクトはOracle BPMランタイムにデプロイされます。プロジェクトは、プロジェクト・ブラウザのデプロイ済プロジェクトのリストから使用できます。

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

デプロイ済のOracle BPMプロジェクトは、Oracle Business Process Composerを使用して編集できません。デプロイ済プロジェクトを編集するには、SOAデザイナ・ロールの付与およびSOAコンポーザの使用が必要です。

デプロイ済プロジェクトの編集の詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計で、Oracle Business RulesにおけるランタイムでのSOAコンポーザの使用に関する項を参照してください。

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

プロジェクトは、Oracle Business Process ComposerからSOAアーカイブ(SAR)ファイルとして生成できます。システム管理者はこのファイルを使用して、Oracle Enterprise Manager管理コンソールからプロジェクトをデプロイできます。

プロジェクトSARファイルを生成するには:

1. メイン・メニューの「デプロイメント」を選択し、「プロジェクトSARファイルの生成」を選択します。

Business Process Composerでプロジェクトが検証されます。プロジェクトにエラーが含まれている場合は、プロジェクトの「検証」タブに表示されます。

2. 図19-2のように、「プロジェクトSARファイルの生成」ダイアログに必要な情報を入力します。

図19-2 「プロジェクトSARファイルの生成」ダイアログ

- SARファイルの生成に使用するプロジェクト・バージョンを選択します。
プロジェクトの現行バージョンまたはプロジェクト・スナップショットを選択できます。

- リビジョンIDを入力します。

- 必要に応じて、デフォルトのデプロイメント・バージョンをオーバーライドします。

3. 「OK」をクリックします。

4. プロジェクトにエラーが含まれていない場合は、「OK」をクリックしてSARファイルをローカル・ファイル・システムに保存します。

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

デプロイメント計画とは、Oracle BPM StudioからBPMプロジェクトをデプロイする際に使用されるXML構成ファイルです。デプロイメント計画のXMLファイルを生成する際に、なんらかの予期しないエラーがOracle Business Process Composerで発生する場合があります。

注意:

デプロイメント計画を作成する前に、プロジェクトを検証してください。Oracle Business Process Composerでは、デプロイメント計画の生成時に検証は行われません。

デプロイメント計画を生成するには:

1. メイン・メニューから、「デプロイメント」を選択します。

2. デプロイメント計画の生成を選択します。

3. ローカル・ファイル・システム上の場所を選択し、「OK」をクリックします。

第VIII部 付録

この部では、フロー・オブジェクトの参照、WebフォームとWebフォーム・コントロール・プロパティの参照、Webフォーム・ルールの例について説明し、さらにOracle Business Process Management (Oracle BPM)へのインポートに向けたプロセスの準備方法について説明します。

第VII部には、次の付録が含まれます。

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

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

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

- Oracle BPMにインポートするためのプロセスの準備

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

この付録では、Oracle Business Process Management (Oracle BPM)でサポートされているBusiness Process Model and Notation 2.0 (BPMN 2.0)フロー・オブジェクトについて詳しく説明します。Oracle BPMにおけるBPMN 2.0標準の実装について説明します。正式な仕様を含むBPMNの詳細は、http://www.bpmn.orgを参照してください。

この付録で説明するBPMN 2.0フロー・オブジェクトは、ビジネス・プロセスで実行する必要があるタスクのタイプ別に構成されています。

この付録の内容は次のとおりです。

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

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

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

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

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

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

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

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

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

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

開始イベントは、プロセスの開始点を定義するBPMNフロー・オブジェクトです。一方、終了イベントはプロセスの終了点を定義します。

この項では、プロセスの開始と終了を定義するBPMN 2.0フロー・オブジェクトについて説明します。

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

開始イベントは、プロセスの開始点を定義するBPMNフロー・オブジェクトです。開始イベントには様々なタイプがあり、それによってプロセス・インスタンスの作成方法が定義されます。

一方、終了イベントはプロセスの終了点を定義します。終了イベントには様々なタイプがあり、それによってプロセス・インスタンス完了時の処理が定義されます。

注意:

Oracle BPMでは、すべてのBPMNプロセスに少なくとも1つの開始イベントと1つの終了イベントが必要です。

開始イベントではプロセスの始まりを定義するため、受信シーケンス・フローは含まれません。同じく、終了イベントには送信シーケンス・フローを含めることができません。

ただし、None開始イベントとNone終了イベント以外の開始イベントと終了イベントには、他のビジネス・プロセスおよびサービスとの間の入出力を含めることができます。

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

新しいプロセスを作成すると、Oracle Business Process Composerではメッセージ開始イベントとメッセージ終了イベントがデフォルトで作成されます。これらのデフォルトは、作成するビジネス・プロセスのタイプに応じて変更できます。表A-1は、各プロセス・タイプのデフォルトの開始イベントと終了イベントを示しています。

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

プロセス・タイプ

デフォルトの開始イベント・タイプおよび終了イベント・タイプ

非同期サービス

メッセージ開始イベントおよび終了イベント

同期サービス

メッセージ開始イベントおよび終了イベント

手動プロセス

None開始イベントおよび終了イベント

Oracle BPMでサポートされている様々なタイプのプロセスの詳細は、ビジネス・プロセスの概要を参照してください。

サブプロセスには、デフォルトでNone開始イベントおよびNone終了イベントが含まれています。これらは必須の開始イベントおよび終了イベントであり、変更できません。

イベント・サブプロセスには、デフォルトでメッセージ開始イベントおよびNone終了イベントが含まれています。ただし、処理するイベントのタイプに応じて、開始イベントを変更できます。

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

1つのBPMNプロセスに、複数の開始点を定義できます。複数の開始点を定義すると、使用される開始イベントに応じて、プロセス・インスタンスの複数の作成方法を指定できます。

図A-1は、メッセージ開始イベントとタイマー開始イベントの両方を含むプロセスの例を示しています。

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

このプロセスは、別のプロセスまたはサービスからのコール時にメッセージ・イベントを使用して起動できます。また、プロセス・インスタンスを自動的に作成する必要がある場合は、タイマー開始イベントを起動して一定の時間間隔に基づいて開始することもできます。

複数の開始イベントを使用すると、2つの異なるプロセスを作成することなく、1つのプロセスが複数の方法で開始されるようにできます。

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

終了イベントは、プロセス・パスの終わりを示します。プロセスに1つしか終了イベントがないときに、トークンがその終了イベントに到達すると、終了イベント到達時にプロセスが停止します。

注意:

メッセージ終了イベントを使用できるのは、メッセージ開始イベントによって開始したプロセスを終了する場合のみです。さらに、複数のメッセージ終了イベントを1つのメッセージ開始イベントに関連付けた場合、各メッセージ終了イベントには同じ数とタイプの出力引数を設定する必要があります。

複数の終了イベントを使用している場合は、1プロセス内で様々なトークンが様々なパスを経由する可能性があります。通常は、すべてのパラレル・パスが終了イベントに達して初めてプロセスが完了します。

ただし、次のような特別な場合には、すべてのプロセス・パスが完了する前にプロセス・インスタンスが停止することがあります。

- エラー終了イベント: エラー終了イベントに達すると、すべてのプロセス・アクティビティが停止します。
エラー・スロー・イベントと同様に、エラー終了イベントでは、プロセスのフローが停止されます。詳細は、エラー終了イベントの概要を参照してください。

- 強制終了イベント: 強制終了イベントが発生すると、プロセス上のすべての作業が即時に停止します。
エラー処理や、その他の実行中プロセスのクリーン・アップは行われません。詳細は、強制終了イベントの概要を参照してください。

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

Oracle BPMでは、プロセス・インスタンスをトリガーするために次の方法がサポートされています。

- メッセージ開始イベント、シグナル開始イベントまたはタイマー開始イベントを使用する方法。
詳細は、次の各項を参照してください。

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

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

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

- None開始イベントを使用し、その後で受信タスクを使用。
プロセス・インスタンスを作成するために受信タスクを構成する必要があります。詳細は、受信タスクの概要を参照してください。

- None開始イベントを使用し、その後でイニシエータ・パターンで定義したユーザー・タスクを使用。
詳細は、ユーザー・タスクの概要を参照してください。

- 新しいプロセス・インスタンスを作成するように構成されたイベント・ベース・ゲートウェイを使用する方法。
詳細は、ガイド付きビジネス・プロセスを使用したプロジェクトのマイルストンの作成を参照してください。

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

None開始イベントは、インスタンス・トリガーが明確に定義されていないときに使用します。プロセスの必要な開始イベントが不明か未定義であるか、または後でプロセス開発者によって定義および実装される場合、None開始イベントをプレースホルダとして使用できます。

図A-2は、None開始イベントのデフォルトの表記を示しています。

図A-2 None開始イベント

None開始イベントでは、プロセス・インスタンスが別のフロー・オブジェクトで作成される場合に、プロセスの始まりを指定することもできます。通常、None開始イベントは新しいプロセス・インスタンスの作成をトリガーしません。

ただし、次のタスクとともに使用する場合、None開始イベントは新しいプロセス・インスタンスをトリガーします。

- 受信タスク: 受信タスクでは、「インスタンスの作成」プロパティがtrueに設定されている必要があります。

- ユーザー・タスク: イニシエータ・パターンを使用して実装されたユーザー・タスク。

他の開始イベントと同様に、None開始イベントも受信シーケンス・フローを含むことはできません。含むことができるのは、デフォルトの送信シーケンス・フローのみです。

注意:

Noneイベントは、サブプロセスの開始を定義するときに常に使用されます。

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

図A-3は、営業見積サンプル・プロジェクト内のNone開始イベントの例を示しています。この例では、None開始イベントによってプロセスの開始が定義されています。また、プロセスにはイニシエータ・パターンを使用して実装されたユーザー・タスクが含まれているため、None開始イベントによってプロセス・インスタンスがトリガーされます。

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

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

None開始イベントでは、プロセスの入力引数を受け入れません。

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

メッセージ開始イベントは、メッセージを受信するとプロセス・インスタンスをトリガーします。このメッセージは、別のBPMNまたはBPELプロセス、あるいはサービスから送信されます。

メッセージとは、プロセス間で情報を交換するために使用されるタイプのデータです。データ・オブジェクトが、プロジェクト内で使用されるデータを定義するために使用されるのと同様に、メッセージは、プロセス間またはプロセスとサービスとの間で使用されるデータを定義するために使用されます。

図A-5は、メッセージ開始イベントのデフォルトの表記を示しています。

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

他の開始イベントと同様に、メッセージ開始イベントには受信シーケンス・フローを含めることができません。メッセージ開始イベントには、デフォルトの送信シーケンス・フローが必要です。

他のプロセスやアプリケーションがプロセスを起動できるように、BPMNプロセスをサービスとして公開できます。プロセスをサービスとして公開するには、プロセスをメッセージ開始イベントで開始する必要があります。また、プロセスへの入力引数(メッセージ開始イベントに渡されるデータ・オブジェクト)を定義する必要があります。詳細は、プロセスの入力と出力の定義を参照してください。

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

図A-5は、営業見積プロセスの修正バージョンを示しています。ここでは、プロセスは、プロセス・インスタンスを開始するメッセージ開始イベントから開始されています。

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

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

メッセージ開始イベントを使用すると、プロセスに対して入力引数および出力引数を指定できます。これらの引数では、他のプロセスやサービスがプロセスを呼び出すときに送信する必要があるメッセージが定義されます。プロセスの入力引数と出力引数を構成する方法については、プロセスの入力と出力の定義を参照してください。

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

シグナル開始イベントは、別のプロセスまたはサービスからの通信に基づくという点でメッセージ開始イベントに似ています。ただし、メッセージ開始イベントは、特定のプロセスに送信されたメッセージに応答します。対照的に、シグナル開始イベントは複数のプロセスにブロードキャストされたシグナルに対するレスポンスです。

シグナルは、BPMNプロセスからシグナル・スロー・イベントを使用してブロードキャストできます。シグナル・スロー・イベントとシグナル開始イベントを組み合せて使用すると、複数のプロセスを同時に起動できます。

シグナル開始イベントとシグナル・スロー・イベントは、プロセス開発者によってプロセスに追加されます。シグナル・スロー・イベントの実装の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のシグナル・イベントを使用したプロセス間通信の概要に関する項を参照してください。

図A-6は、シグナル開始イベントのデフォルトの表記を示しています。

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

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

シグナル開始イベントおよびシグナル・スロー・イベントは、プロセス開発者によってプロセスに追加され、実装されます。

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

タイマー開始イベントは、特定の時間条件に基づいてプロセス・インスタンスの作成をトリガーします。タイマー開始イベントは、次の内容に基づいてプロセス・インスタンスをトリガーするように構成できます。

- 特定の日付および時刻。
たとえば、12月31日の午後11時59分にプロセスをトリガーできます。

- 繰返し間隔。
たとえば、10時間ごと、5分ごと、32秒ごとにプロセスをトリガーできます。

図A-7は、タイマー開始イベントのデフォルトの表記を示しています。

図A-7 タイマー開始イベント

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

エラー開始イベントは、インライン・ハンドラの開始イベントとして使用されます。インライン・ハンドラを使用して、プロセス内で発生するエラーに対応する個別のプロセス・フローを定義できます。

図A-8は、None終了イベントのデフォルトの表記を示しています。

図A-8 エラー開始イベント

注意:

エラー開始イベントを使用できるのは、インライン・ハンドラ内のみです。通常のプロセス・フロー内では使用できません。

複数のインライン・ハンドラを指定して、エラーの状況に対応できます。ただし、同じ例外を使用するインライン・ハンドラを複数定義することはできません。

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

None終了イベントは、プロセス・パスの終わりを示すために使用します。トークンは、None終了イベントに到達すると消費されます。プロセス・インスタンス内に他のトークンがない場合は、インスタンスが完了します。

None終了イベントは、プロセス完了後にアクションを実行する必要がない場合に使用します。また、このイベントは、後で実装時にプロセス開発者が変更するためのプレースホルダとして、プロセス・アナリストが使用することもできます。

図A-9は、None終了イベントのデフォルトの表記を示しています。

図A-9 None終了イベント

None終了イベントは、サブプロセスおよびイベント・サブプロセスの終わりを示すときに常に使用されます。

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

図A-10は、営業見積サンプル内のNone終了イベントの例を示しています。この例では、営業見積サービス・タスクを使用して、営業見積に関する情報をデータベースに保存しています。

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

トークンがプロセスの終わりに到達した場合は、他の作業を実行できないため、None終了イベントが使用されています。プロセス・トークンがすべてNone終了イベントに到達すると、プロセス・インスタンスが完了します。

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

エラー終了イベントは、エラー状態が原因でプロセスを終了する場合に使用します。

通常、エラー終了イベントは、エラー境界イベントとともに使用します。エラー境界イベントは、特定のエラーに基づいてプロセス・フローを変更するために使用します。通常、エラー境界イベントを使用したフローは、エラー終了イベントを使用して終了します。エラー中間イベントの使用方法の詳細は、エラー・キャッチ・イベントの概要を参照してください。

図A-11は、エラー終了イベントのデフォルトの表記を示しています。

図A-11 エラー終了イベント

詳細は、Oracle Business Process Management Studioでのビジネス・プロセスの開発のサブプロセスまたは再使用可能なプロセスでの例外のスローを参照してください。

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

メッセージ終了イベントは、プロセス完了時に他のプロセスやサービスにメッセージを送信するために使用します。メッセージ終了イベントは、常にメッセージ開始イベントまたはメッセージ・キャッチ・イベントとともに使用します。

注意:

複数の終了イベントを持つプロセスを作成する場合は、メッセージ終了イベントに到達するすべてのトークンがメッセージ開始イベントによって作成されることを確認する必要があります。たとえば、タイマー開始イベントによって開始されたプロセス・インスタンスを終了するためにメッセージ終了イベントを使用することはできません。

図A-12は、メッセージ終了イベントのデフォルトの表記を示しています。

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

メッセージ終了イベントを使用してプロセスの出力引数を構成する方法については、プロセスの入力と出力の定義を参照してください。

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

強制終了イベントは、即時にプロセスを停止するために使用します。強制終了イベントに到達すると、プロセスは即時に停止します。エラー処理や、追加のクリーン・アップは行われません。

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

多くのビジネス・アプリケーションでは、組織内のプロセス参加者からの相互作用が必要です。相互作用は、フォームに情報を入力するなどの単純な操作の場合や、複数のワークフローおよび複数のユーザーが関与する場合があります。

この項では、プロセス参加者がビジネス・プロセスと相互作用する方法をモデリングするために使用されるBPMN 2.0フロー・オブジェクトについて説明します。内容は次のとおりです。

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

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

- 手動タスクの概要

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

多くのエンドツーエンドのビジネス・プロセスでは、プロセスとの手動による相互作用が必要です。承認、例外管理、ビジネス・プロセスを進めるために必要なアクティビティの実行などにユーザーの相互作用が必要となります。

Oracle Human Workflowでは、次の機能によってユーザーの参加が包括的にサポートされます。

- 適切なユーザーまたはグループに対するタスクの割当ておよびルーティングを含む、プロセスとの手動による相互作用

- タスクが適切なタイミングで実行されることを保証するために必要な期限、エスカレーション、通知およびその他の機能。

- プロセス参加者が各自のタスクを実行するときの生産性を向上するために必要な組織、フィルタ、優先順位付けおよびその他の機能。

- スーパーバイザおよびビジネス所有者がタスクのパフォーマンスを管理するために必要なレポート、再割当て、ロード・バランシングおよびその他の機能。

詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発のヒューマン・ワークフローの開始を参照してください。

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

ヒューマン・タスクは、Oracle Human Workflowのコンポーネントの1つです。ヒューマン・タスクを使用すると、エンドツーエンドのプロセス・フロー内のシステムおよびサービスとの接続を使用して、手動による相互作用をインタリーブできます。ヒューマン・タスクの役割は、ビジネス・プロセスに参加しているユーザーおよびグループのすべての相互作用を処理することです。これを行うために、組織内で該当するユーザーのタスクを作成して追跡しています。ユーザーは通常、ワークリスト・アプリケーション、電子メール、ポータル、カスタム・アプリケーションなどの各種クライアントを通じてタスクにアクセスします。

ヒューマン・タスクにより、開発者はプロセス参加者が、Oracle BPM SuiteおよびOracle Service-Oriented Architecture (SOA) Suiteを使用して作成されたプロセス・ベースのアプリケーションと相互作用する方法を定義できます。

プロセス開発者はヒューマン・タスクを使用して次の要素を作成することで、エンド・ユーザー相互作用のインタフェースとワークフローを定義できます。

- ロールと割当て

- 期限とエスカレーション

- プレゼンテーション

ヒューマン・タスクは、同じUIを使用する他のプロセス内で使用できる再使用可能なサービスです。ヒューマン・タスクは、Oracle BPM Studioを使用して作成されます。

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

ユーザー・タスクは、プロセス内で、プロセス参加者が作業を実行する必要がある部分を表します。ユーザー・タスクは、フォームへの入力などの単純な相互作用である場合もあれば、複数のプロセス参加者からの入力を必要とする複雑なワークフローの一部である場合もあります。

図A-13は、ユーザー・タスクのデフォルトの表記を示しています。

図A-13 ユーザー・タスク

Oracle BPM Suiteでは、プロセス参加者はプロセス・ワークスペースを使用してビジネス・アプリケーションと相互作用を行います。プロセス参加者に対して表示される画面やパネルなどの具体的なユーザー・インタフェース要素は、ヒューマン・タスクを使用して作成します。

プロセスの設計時には、多くの場合、プロセス・アナリストがユーザー・タスクをプロセス図に追加します。その後、プロセス開発者が必要なヒューマン・タスクを作成し、プロセスベースのビジネス・アプリケーション作成の構成要素として実装します。

トークンがユーザー・タスクに到達すると、対応するヒューマン・タスクが実行されます。トークンは、ヒューマン・タスクが完了するまで待機してから、次のフロー・オブジェクトに移動します。

ビジネス・カタログの要素をユーザー・タスクに割り当てる手順については、ビジネス・カタログのコンポーネントをフロー・オブジェクトに割り当てる方法を参照してください。

ユーザー・タスクの実装の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のヒューマン・タスクの使用に関する項を参照してください。

他のフロー・オブジェクトと同様、ユーザー・タスクには受信および送信データ・アソシエーションを含めることができます。

また、ユーザー・タスクには、受信シーケンス・フローおよびデフォルトの送信シーケンス・フローを含めることもできます。

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

営業見積サンプルでは、見積入力タスク(図A-14を参照)は見積情報を入力する作業を表します。

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

ユーザーが営業見積に関する情報を入力すると、プロセス・フローは送信シーケンス・フローに従ってプロセス内の次のフロー・オブジェクトに移動します。

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

Oracle BPM Studioを使用して、対話型アクティビティをコンポーネント・パレットからプロセスに直接追加できます。対話型アクティビティは、Oracle Human Workflowのタスク・ルーティング機能および承認機能に基づくショートカットです。詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』の 「ヒューマン・ワークフローのスタート・ガイド」を参照してください。

表A-2は、Oracle Business Process Composerのコンポーネント・パレットで利用できる対話型アクティビティを示しています。

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

パターン

説明

複合

ヒューマン・タスク内に定義されている複雑なルーティング・フローを使用します。

管理

スイムレーンに割り当てられたグループまたはロールに属するプロセス参加者の管理チェーン・パターンに割当て先を設定する管理チェーン・パターンを使用します。

FYI

割当てはスイムレーンに定義された参加者、ロールまたはグループに基づきます。FYIアクティビティはユーザー対話型アクティビティに類似していますが、完了を待機せずに処理を続行する点が異なります。

グループ

グループ投票パターンを使用します。タスクの割当て先はレーンに関連付けられたロールまたはグループに自動的に設定されます。この対話型アクティビティはロールまたはグループに関連付けられたスイムレーンにのみ追加できます。

イニシエータ

イニシエータ・パターンは、プロセス・インスタンスを作成するために使用します。

A.2.3 手動タスクの概要

手動タスクは、Oracle BPMのスコープ外のプロセス参加者が実行するタスクを表します。手動タスクはプロセス内のプレースホルダとして使用され、実行時にBPMNサービス・エンジンによって管理されない作業を示します。また、手動タスクはプロセス・ワークスペース・アプリケーションには表示されません。

注意:

手動タスクはOracle BPMによって管理されません。Oracle BPMランタイムでは、手動タスクの開始および完了は追跡されません。

図A-15は、手動タスクのデフォルトの表記を示しています。

図A-15 手動タスク

手動タスクでは、デフォルト受信シーケンス・フローとデフォルト送信シーケンス・フローをそれぞれ1つのみ使用できます。

多くのBPMN 2.0フロー・オブジェクトと異なり、手動タスクではデータ・オブジェクトを操作できません。以前のフロー要素に関連付けられたデータ・オブジェクトはそのままの状態で次のフロー要素に渡されます。

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

営業見積サンプルのコンテキストでは、図A-16に示すように正式な契約書を印刷して署名するための手動タスクを追加できます。

図A-16 手動タスクの例

この例では、正式な契約書への署名をビジネス・プロセスの一部として明示的に示す必要がありますが、署名はBPMNサービス・エンジンによって管理されないため、手動タスクが使用されています。

A.2.4 更新タスクの概要

更新タスクは、1つ以上のヒューマン・タスクに対して操作を実行する場合に使用します。たとえば、更新タスクを使用して、別のユーザーへのタスクの再割当てなどのアクションを実行できます。

図A-17は、更新タスクのデフォルトの表記を示しています。

図A-17 更新タスク

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

Oracle BPMでは、プロセス指向アプリケーション内のビジネス・プロセス間の相互作用を定義できます。以降の項では、プロセス間の通信のモデリングに使用されるBPMNフロー・オブジェクトについて説明します。

この項では、Oracle Business Process Composerを使用してプロセス・モデルを作成する場合のこれらのフロー・オブジェクトの使用方法について説明します。プロセス・ベースのアプリケーションにおけるこれらのフロー・オブジェクトの実装方法の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発を参照してください。

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

サービス・タスクを使用すると、他のプロセスおよびサービスと通信できます。プロセス・アナリストは、プロセスで外部サービスまたは外部プロセスを呼び出す必要がある場合、サービス・タスクを追加できます。

その後、プロセス開発者は必要なサービスを実装できます。サービス・タスクを使用して、次を呼び出すことができます。

- 他のBPMNプロセス

- BPELプロセス

- SOAサービス・アダプタ

- サービスとして公開されているメディエータ

ビジネス・カタログの要素をサービス・タスクに割り当てる手順の詳細は、「ビジネス・カタログ・コンポーネントをフロー・オブジェクトに割り当てる方法」を参照してください。

サービス・タスクの動作は、送信タスクと受信タスクのペアの動作、およびメッセージ・スロー・イベントとメッセージ・キャッチ・イベントのペアの動作と似ています。主な違いは、サービス・タスクがプロセスおよびサービスを同期的に起動するために使用される点です。サービス・タスクがプロセスやサービスを起動すると、レスポンスが返されるまで、トークンはサービス・タスクで待機します。レスポンスを受信した後、トークンはプロセス内の次のシーケンス・フローに移動します。

サービスおよびBPMNプロセスを使用したサービス・タスクの実装方法の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のサービス・タスクを使用した、サービスおよびBPMNプロセスの同期操作の起動に関する項を参照してください。

図A-18は、サービス・タスクのデフォルトの表記を示しています。

図A-18 サービス・タスク

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

図A-19は、完成した営業見積をデータベースに保存するために使用されるサービス・タスクの例を示しています。

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

A.3.2 通知タスクの概要

通知タスクはサービス・タスクに類似しています。通知タスクは、事前定義されたサービスを使用して、様々なタイプの通知を実行します。さらに、式を使用して、通知タスクで生成された通知を受信するユーザーまたはグループを決定できます。

次のようなタイプの通知があります:

- IM: インスタント・メッセージをユーザーまたはグループに送信します。
図A-20は、IM通知タスクのデフォルトの表記を示しています。

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

- 電子メール: 電子メールをユーザーまたはグループに送信します。
電子メールには添付ファイルを含めることもできます。図A-21は、電子メール通知タスクのデフォルトの表記を示しています。

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

- SMS: SMSメッセージをユーザーに送信します。
図A-22は、SMS通知タスクのデフォルトの表記を示しています。

図A-22 SMS通知タスク

- 音声: ボイスメールをユーザーに送信します。
図A-23は、ボイスメール通知タスクのデフォルトの表記を示しています。

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

- ユーザー: 使用可能な通知タイプに基づいて、通知をユーザーに送信します。
たとえば、ユーザーがボイスメールと電子メールの両方を構成している場合、通知タスクでは両方とも送信します。図A-24は、ユーザー通知タスクのデフォルトの表記を示しています。

図A-24 ユーザー通知タスク

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

コール・アクティビティを使用すると、再使用可能なプロセスを現在のプロセス内からコールできます。被コール側プロセスは、コール側プロセスの子プロセスになります。再使用可能なプロセスをコールしている場合、親プロセスのコール・アクティビティは、子プロセスが完了するまで待機してから処理を続行します。

図A-25は、コール・アクティビティのデフォルトの表記を示しています。

図A-25 コール・アクティビティ

詳細は、再使用可能なプロセス(再使用可能なサブプロセス)の概要を参照してください。

親プロセスのデータ・オブジェクトは、再使用可能なプロセスに対して自動的に使用可能になりません。データ・オブジェクトは、コール・アクティビティの引数マッピングを使用して、子プロセスとの間で受け渡す必要があります。

A.3.4 送信タスクの概要

送信タスクでは、現在のプロセス外部のシステムまたはプロセスにメッセージが送信されます。このメッセージが送信されると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

多くの場合、送信タスクは受信タスクと組み合せて使用され、プロセスまたはサービスを起動してレスポンスを受信します。送信タスクおよび受信タスクは非同期的にプロセスおよびサービスを起動するために使用します。プロセスおよびサービスを同期的に起動する場合は、サービス・タスクを使用します。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ開始イベントによって開始されるプロセスは、送信タスクを使用して起動できません。

図A-26は、送信タスクのデフォルトの表記を示しています。

図A-26 送信タスク

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発の送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義に関する項を参照してください。

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

A.3.5 受信タスクの概要

送信タスクとは対照的に、受信タスクでは、現在のプロセス外部のシステムまたはプロセスからのメッセージを待機します。このメッセージを受信すると、タスクは完了し、プロセスの実行はプロセス・フロー内の次のタスクに移動します。

図A-27は、受信タスクのデフォルトの表記を示しています。

図A-27 受信タスク

プロセスまたはサービスを起動するための送信タスクの実装の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発の送信タスクおよび受信タスクを使用した、BPMNプロセスでの同期操作の定義に関する項を参照してください。

プロセス間で通信するための送信タスクおよび受信タスクの使用方法の詳細は、「送信タスクおよび受信タスクを使用した、プロセス間の通信」を参照してください。

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

受信タスクを使用して、プロセスの開始をトリガーできます。これは、他のプロセスから送信タスクを使用してプロセスを起動する場合に役立ちます。

受信タスクを使用してプロセスを開始する場合は、次の条件を満たしている必要があります。

- 受信タスクの前にNone開始イベントがあること。

- プロセスに他の開始イベントが含まれていないこと。

- 「インスタンスの作成」プロパティが有効であること。

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

メッセージ・スロー・イベントを使用すると、他のプロセスまたはサービスにメッセージを送信できます。

図A-28は、メッセージ・スロー・イベントのデフォルトの表記を示しています。

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

次のタイプのプロセスおよびサービスを起動するには、メッセージ・スロー・イベントを使用します。

- 他のBPMNプロセス

- BPELプロセス

- SOAサービス・アダプタ

- サービスとして公開されているメディエータ

プロセス・アナリストは、プロセスにメッセージ・スロー・イベントを追加して、プロセスから他のプロセスやサービスを呼び出す必要がある位置を定義できます。ただし、他のプロセスとの接続の実装は、通常はプロセス開発者が担当します。また、メッセージ・スロー・イベントによって起動されるサービスの作成および実装も、通常はプロセス開発者が担当します。

メッセージ・スロー・イベントの実装方法の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のメッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信に関する項を参照してください。

多くの場合、メッセージ・スロー・イベントは、他のプロセスのメッセージ開始イベントを呼び出すことによって他のBPMNプロセスを起動するために使用します。詳細は、メッセージ開始イベントの概要を参照してください。

また、多くの場合、メッセージ・スロー・イベントは、起動したプロセスまたはサービスからレスポンスを受信するメッセージ・キャッチ・イベントとともに使用します。ただし、メッセージ・スロー・イベントは常に非同期的に使用されます。メッセージ・スロー・イベントから他のプロセスまたはサービスにメッセージが送信された後、トークンは即時にプロセスの次のフロー・オブジェクトに移動します。

プロセスで同期的にレスポンスを受信する場合は、サービス・タスクを使用してプロセスまたはサービスを起動します。詳細は、サービス・タスクの概要を参照してください。

注意:

送信タスクおよび受信タスクでは、メッセージ・スロー・イベントおよびメッセージ・キャッチ・イベントと同様の機能が実行されます。ただし、メッセージ受信タスクによって開始されるプロセスをメッセージ・スロー・イベントを使用して起動することはできません。

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

メッセージ・キャッチ中間イベントでは、別のプロセスまたはサービスからのメッセージを受信できます。

図A-29は、メッセージ・キャッチ・イベントのデフォルトの表記を示しています。

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

多くの場合、メッセージ・キャッチ・イベントは、他のBPMNプロセスと通信するためのメッセージ・スロー・イベントとともに使用されます。メッセージ・スロー・イベントとメッセージ・キャッチ・イベントを組み合せて使用する方法の詳細は、メッセージのスロー・イベントおよびキャッチ・イベントを使用した、プロセス間の通信を参照してください。

メッセージ・スロー・イベントの実装方法の詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発のメッセージ・イベントを使用した、他のBPMNプロセスおよびサービスとの通信に関する項を参照してください。

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

この項では、ビジネス・ルール・タスクを使用してビジネス・プロセス内にOracle Business Rulesを取り込む方法について説明します。

Oracle Business Process Composerを使用したOracle Business Rulesの操作の詳細は、「Oracle Business Rulesの使用」を参照してください。

A.4.1 Oracle Business Rulesの概要

ビジネス・ルールは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。

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

ビジネス・ルール・タスクでは、プロセス内にOracle Business Rulesを取り込むことができます。

図A-30は、ビジネス・ルール・タスクのデフォルトの表記を示しています。

図A-30 ビジネス・ルール・タスク

ビジネス・プロセス内にOracle Business Rulesを取り込むユースケースは、主に2つあります。

- 構造ルールの使用
構造ルールを使用すると、ビジネス・プロセス内で使用される計算を実行できます。たとえば、信用度を計算するためにビジネス・ルールを使用できます。

- 運用ルールの使用
運用ルールは、プロセスのフローを変更するために使用します。運用ルールの典型的な使用方法として、ルール・カタログ内のルール条件のチェックの実行があります。その後、出力データ・アソシエーションの一部として、式を使用してデータ・オブジェクトに値を割り当てます。

このシナリオでは、ビジネス・ルール・タスクの直後にゲートウェイが配置されます。このゲートウェイは、データ・オブジェクトの値に従ってプロセス・パスを分岐するために使用されます。

運用ルールの使用方法の詳細は、「コンテキスト内のビジネス・ルール・タスク」を参照してください。

ビジネス・カタログの要素をビジネス・ルール・タスクに割り当てる手順の詳細は、「ビジネス・カタログ・コンポーネントをフロー・オブジェクトに割り当てる方法」を参照してください。

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

図A-31は、営業見積サンプル・プロセス内のビジネス・ルール・タスクの例を示しています。

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

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

シーケンス・フローでは、プロセス内で作業が実行される順序(シーケンス)が定義されます。シーケンス・フローによって、プロセス内のフロー・オブジェクトが接続され、プロセス内でプロセス・トークンが移動するパスが特定されます。

この項では、シーケンス・フローを使用してビジネス・プロセスの動作を定義する方法を説明します。

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

受信シーケンス・フローは、フロー・オブジェクト内に移動するシーケンス・フローです。送信シーケンス・フローは、フロー・オブジェクトから外部に移動するプロセス・パスを特定するシーケンス・フローです。

多くのフロー・オブジェクトには、受信シーケンス・フローと送信シーケンス・フローの両方が含まれています。ただし、開始イベントと終了イベントは例外です。開始イベントには送信シーケンス・フローのみを含めることができます。終了イベントには受信シーケンス・フローのみ含めることができます。また、イベント・サブプロセスには、受信シーケンス・フローも送信シーケンス・フローも含まれません。

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

無条件シーケンス・フローは2つのフロー・オブジェクト間の典型的なパスです。デフォルトのシーケンス・フローは図A-32のように矢印線として表示されます。

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

ほとんどのフロー・オブジェクトでは、デフォルト送信シーケンス・フローを1つのみ使用できます。プロセスのパラレル・パスを表す複数の無条件シーケンス・フローを使用できるのは、パラレル・ゲートウェイのみです。

排他ゲートウェイ、包含ゲートウェイおよびConditional Gatewayには、無条件送信シーケンス・フローを使用できません。これらのゲートウェイでは、条件シーケンス・フローおよびデフォルト・シーケンス・フローを使用して、プロセスのフローを決定します。

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

条件シーケンス・フローは、特定の条件に基づいてプロセスのフローを制御するために使用します。無条件シーケンス・フローと同様に、条件シーケンス・フローは、矢印線として表示されます。

図A-33は、2つの送信条件シーケンス・フローと1つのデフォルト・シーケンス・フローを示しています。

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

送信条件シーケンス・フローを使用できないフロー・オブジェクトもあります。送信条件シーケンス・フローを使用できるのは、次のタイプのゲートウェイのみです。

- 排他ゲートウェイ

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

条件シーケンス・フロー内で使用される条件は、式を使用して定義されます。式エディタを使用した式の定義の詳細は、「式を使用したデータのコントロール」を参照してください。

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

条件シーケンス・フローと同様に、デフォルト・シーケンス・フローは排他ゲートウェイ、包含ゲートウェイおよびConditional Gatewayへの送信シーケンス・フローとして使用されます。デフォルト・シーケンス・フローは、いずれの条件もtrueと評価されない場合に、プロセスがこれらのゲートウェイから脱出するパスを表します。

デフォルト・シーケンス・フローは、図A-33のように一方の端にチック・マークが付いた矢印として表示されます。

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

ゲートウェイはプロセスのフローを定義するフロー要素です。ゲートウェイはトークンがプロセスを辿るパスを指定します。ゲートウェイはパスの分割とマージによってプロセス内の制御ポイントを定義します。

この項では、ゲートウェイを使用してプロセスのフローおよび動作を制御する方法を説明します。

A.6.1 ゲートウェイの概要

ゲートウェイはパスのスプリットとマージによってプロセス内の制御ポイントを定義します。プロセスのデフォルト・パスに対する例外または逸脱となるパスには、可能なかぎりゲートウェイを使用します。

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

次のゲートウェイには分割とマージのペアが必要です。

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

- 包含ゲートウェイ

- 複合ゲートウェイ

これらのゲートウェイのいずれかをBPMNプロセスに追加すると、Oracle BPM Studioは分割とマージのフロー・オブジェクトを自動的に作成します。

ゲートウェイのマージ部分は常に必要となりますが、必ずしも分割されたすべてのパスをマージ部分に戻す必要はありません。

ゲートウェイで分割されたプロセス・パスのうち、ゲートウェイでマージされないものがあってもかまいませんが、通常はお薦めしません。ゲートウェイのマージ動作の詳細は、後述の各ゲートウェイ・タイプの項を参照してください。

注意:

プロセスからマージ・ゲートウェイを削除すると、対応する分割ゲートウェイも削除されます。

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

Exclusive Gatewayでは、プロセスを複数のパスに分割できます。ただし、複数の送信シーケンス・フローが存在する場合でも、プロセスが経由するパスは、これらのパスのうちの1つのみです。排他ゲートウェイでは、条件送信シーケンス・フローを使用でき、少なくとも1つのデフォルト送信シーケンス・フローが必要です。

プロセスが条件シーケンス・フローを経由するかどうかを決定するために使用される式を定義できます。詳細は、「式を使用したデータのコントロール」を参照してください。

プロセスに排他ゲートウェイに対する複数の送信シーケンス・フローがある場合は、それらが評価される順序を定義できます。評価の順序は、排他ゲートウェイのプロパティで構成します。

複数の条件シーケンス・フローがtrueと評価される排他ゲートウェイがある場合、この順序に従って判断された最初の条件シーケンス・フローにプロセスが移動します。

排他ゲートウェイは、他のゲートウェイとは異なり、分割後、対応するマージをプロセス内に明示的に定義する必要はありません。

図A-34は、排他ゲートウェイのデフォルトの表記を示しています。

図A-34 排他ゲートウェイ

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

図A-35は、営業見積サンプル内で使用されている排他ゲートウェイの例を示しています。ここでは、排他ゲートウェイは、ビジネス実行のレビューが必要であるかどうかを評価するために使用されます。

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

この評価は、送信条件シーケンス・フローに定義された式によって決定されます。評価がtrueである場合、プロセス・フローは「はい」のパスを進みます。評価がfalseである場合、プロセス・フローは、デフォルト送信シーケンス・フローのパスを進みます。

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

トークンが排他ゲートウェイに到達すると、送信条件シーケンス・フローの1つがtrueに評価されるまで、送信条件シーケンス・フローが評価されます。排他ゲートウェイのプロパティを構成することによって、送信条件シーケンス・フローが評価される順序を定義できます。この構成に基づいて、最初の条件シーケンス・フローの評価がtrueである場合、トークンはこの送信シーケンス・フローに従って次のフロー・オブジェクトに移動します。複数の送信条件シーケンス・フローがある場合は、それらの評価順序を決定できます。trueと評価される送信条件シーケンス・フローが存在しない場合、トークンはデフォルト送信シーケンス・フローに従って移動します。したがって、排他ゲートウェイには、デフォルト送信シーケンス・フローを定義する必要があります。

排他ゲートウェイでは受信シーケンス・フローもマージできます。ただし、プロセス・フロー内の他のパスから受信する可能性がある他のトークンと同期されません。

注意:

他のトークンが排他ゲートウェイのマージに到達した場合、そのトークンもそのまま次のフロー・オブジェクトに渡されます。トークンを同期する場合や、受信シーケンス・フローで評価を実行する場合は、別のタイプのゲートウェイを使用する必要があります。

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

Inclusive Gatewayでは、プロセスを複数のパスに分割できます。ただし、排他ゲートウェイとは異なり、送信条件シーケンス・フローの評価結果に応じて、トークンは1つ以上のパスに移動する場合があります。

包含ゲートウェイの分割には、少なくとも1つのデフォルト・シーケンス・フローを定義する必要があります。包含ゲートウェイのスプリットには、複数の送信条件シーケンス・フローを指定できます。トークンは、trueと評価されたシーケンス・フローのみに沿って進みます。いずれのシーケンス・フローもtrueと評価されていない場合、トークンはデフォルト・シーケンス・フローに沿って進みます。

図A-36は、包含ゲートウェイのスプリットのデフォルトの表記を示しています。

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

図A-37は、包含ゲートウェイのマージのデフォルトの表記を示しています。

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

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

包含ゲートウェイでは、排他ゲートウェイと同様にプロセスがスプリットされますが、トークンが複数の送信シーケンス・フローを進むことができる点が異なります。トークンが包含ゲートウェイに到達すると、包含ゲートウェイの条件シーケンス・フローの式が評価されます。

次に、trueと評価された各条件シーケンス・フローに対してトークンが生成されます。trueと評価された条件シーケンス・フローがない場合のみ、デフォルトのシーケンス・フローに対してトークンが生成されます。

これらのトークンは、包含ゲートウェイのマージで結合されます。トークンがマージ・ゲートウェイに到達すると、分割によって生成されたすべてのトークンがマージに到達するまで待機します。すべてのトークンが包含ゲートウェイのマージに到達すると、マージが完了して、トークンはゲートウェイに続く次のシーケンス・フローに移動します。

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

Parallel Gatewayでは、プロセスを複数のパスに分割すると、プロセス・フローがすべてのパス上を同時に移動できます。パラレル・ゲートウェイは、プロセスで複数のタスクをパラレルに実行する必要がある場合に便利です。

図A-38は、パラレル・ゲートウェイのスプリットのデフォルトの表記を示しています。

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

図A-39は、パラレル・ゲートウェイのマージのデフォルトの表記を示しています。

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

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

営業見積のサンプルでは、プロセスの承認ステージでパラレル・ゲートウェイを使用しています。図A-40に、パラレル・ゲートウェイを使用して2つのプロセス・パスを同時に実行する方法を示します。

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

この例では、2つの異なるプロセス・パスが同時に実行されます。

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

トークンがパラレル・ゲートウェイに到達すると、パラレル・ゲートウェイでは各送信シーケンス・フローのトークンが作成されます。パラレル・ゲートウェイの分割では、送信シーケンス・フローは評価されません。

パラレル・ゲートウェイを使用して、パラレル・ゲートウェイによって分割されたプロセス・パスをマージすることもできます。パラレル・ゲートウェイのマージでは、各受信シーケンス・フローからのトークンの到着が待機されます。すべてのトークンが到着すると、1つのトークンのみが送信シーケンス・フローに渡されます。

注意:

パラレル・ゲートウェイのマージの各受信シーケンス・フローにトークンが到着するようにプロセスを設計してください。このように設計しないと、到着しないトークンをマージで待機し続け、プロセスがフリーズする可能性があります。

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

複合ゲートウェイでは、包含ゲートウェイと同様にプロセスが分割されます。ただし、複合ゲートウェイのマージにすべてのトークンが到着しない場合でもインスタンスを続行できるアクティブ化条件を定義できます。

たとえば、2つ以上のトークンが到着した後に続行する、複合ゲートウェイを構成できます。包含ゲートウェイの条件のうち2つのみがtrueと評価されると、プロセス・インスタンスは次のアクティビティに進みます。ただし、包含ゲートウェイではすべての条件シーケンス・フローが即時に評価されるため、これらのプロセス・パスのすべてのフロー・オブジェクトもすべて実行されます。

図A-41は、複合ゲートウェイのスプリットのデフォルトの表記を示しています。

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

図A-42は、複合ゲートウェイのマージのデフォルトの表記を示しています。

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

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

イベント・ベース・ゲートウェイを使用すると、イベントが発生する可能性に基づいてプロセス・フローを分岐できます。これは、コンテキストに応じて、様々なイベント・タイプの1つになります。

イベント・ベース・ゲートウェイでは、様々なタイプのイベントがプロセス内の特定の位置で発生する可能性を予想できます。これは排他ゲートウェイに類似していますが、式に基づいてパスを選択するのではなく、イベント・ベース・ゲートウェイではプロセス内でのイベントの発生に基づいてパスを選択します。

たとえば、注文処理プロセスでは、現在使用可能な在庫がない場合にプロセス内のある位置に移動できます。プロセスは、在庫が使用可能になるまで待機する必要がありますが、無限に待機することはできません。イベント・ベース・ゲートウェイを使用すると、プロセスは、(メッセージ・キャッチ・イベントを使用して)新しい在庫の到着を知らせるメッセージを待機したり、(タイマー・イベントを使用して)一定時間の経過後にメッセージを受信しない場合に処理を続行することができます。

図A-43は、イベント・ベース・ゲートウェイのデフォルトの表記を示しています。

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

イベント・ベース・ゲートウェイは、プロセス・フローに関する決定がデータ固有の条件ではなく、イベントに基づいている点が他のゲートウェイと異なります。

イベント・ベース・ゲートウェイは、次の要素から構成されます。

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

- 2つ以上のターゲット・イベント
これらのイベントには、次のタイプがあります。

- メッセージ・キャッチ・イベント
メッセージ・キャッチ・イベントを使用してプロセスを開始する場合は、メッセージ・スロー・イベントを使用してプロセスを起動する必要があります。

- タイマー・キャッチ・イベント
一般に、イベント・ベース・ゲートウェイに付随して単一のタイマー・イベントのみが使用されます。

- 受信タスク
イベント・ベース・ゲートウェイに付随して受信タスクを使用し、プロセス・インスタンスを開始できます。ただし、プロセスは、コール側プロセス内の送信タスクから起動する必要があります。

注意:

同じイベント・ベース・ゲートウェイ内にメッセージ・イベントと受信タスクを混在させることはできません。

ターゲット要素には、イベント・ベース・ゲートウェイからの受信シーケンス・フローのみを含めることができます。プロセスの他の部分からのシーケンス・フローを含めることはできません。イベント・ベース・ゲートウェイでは、プロセスにおいて発生する可能性のあるイベントを複数設定できますが、プロセス・インスタンス内でトリガーされるのは1つのイベントのみです。イベント・ベース・ゲートウェイで最初のイベントがトリガーされると、そのイベントに続くパスが使用されます。

プロセスにイベント・ベース・ゲートウェイを追加すると、デフォルトでタイマー・キャッチ・イベントおよびメッセージ・キャッチ・イベントも作成されます。

注意:

イベント・ベース・ゲートウェイを削除すると、すべての送信シーケンス・フローも削除されます。関連付けられたイベントは削除されません。

A.6.6.1 イベント・ベース・ゲートウェイを使用したプロセスの開始

プロセスの最初でイベント・ベース・ゲートウェイを使用して新しいプロセス・インスタンスを作成することもできます。これはプロセス内に複数の開始イベントを保持するのと同じです。

イベント・ベース・ゲートウェイを使用可能にして新しいプロセス・インスタンスを作成するには、次のことを確認する必要があります。

- イベント・ベース・ゲートウェイのInitiateプロパティが有効であること。

- イベント・ベース・ゲートウェイへの受信シーケンス・フローがないこと。

イベント・ベース・ゲートウェイは、新しいプロセス・インスタンスの作成に使用できますが、別のプロセスからのデータ入力は受け入れません。プロセス・インスタンスに渡す必要があるデータは、ターゲット・イベントを使用して構成する必要があります。

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

開始イベントおよび停止イベントとは異なり、中間イベントはプロセス・フローの最中に発生します。

この項では、中間イベント、および中間イベントを使用してプロセスのフローおよび動作を制御する方法について説明します。

A.7.1 中間イベントの概要

中間イベントには次の2つのタイプがあります。

- 標準フロー・イベント
標準フロー・イベントは、プロセスの一般的なフローで発生します。

- 境界イベント
境界イベントは、プロセスの中断をトリガーします。境界イベントはフロー・オブジェクトに関連付けられており、これらのオブジェクトの通常の動作を中断するように構成できます。

境界イベントは、プロセスが経由するフロー・オブジェクトのパスを特定するために使用されるという点で、シーケンス・フローと同様に動作します。

境界イベントは、連続しないタイプおよび連続するタイプの2つのタイプに分類されます。

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

タイマー捕捉イベントを使用すると、時間条件を使用してプロセスのフローを制御できます。次に、タイマー・キャッチ・イベントの使用例を示します。

- アクティビティ実行の前に遅延を作成する

- アクティビティの期限を構成する

- プロセスの期限を構成する

- 一定時間経過後に追加のアクティビティをトリガーする

図A-44は、タイマー・キャッチ・イベントのデフォルトの表記を示しています。

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

タイマー・イベントは、アクティビティの境界イベントとして使用できます。タイマー・イベントは、連続しない境界イベントまたは連続する境界イベントとして定義できます。

連続しないタイマー・イベントが発生した場合、トークンはメイン・プロセス・フローを離れて、タイマー・イベントによって定義されたフローを進みます。連続しないタイマー・イベントによって定義されたフローは、メイン・プロセス・フローに直接戻ることができます。

連続するイベントが発生した場合は、トークンのコピーが作成され、タイマー・イベントによって定義されたフローに渡されます。連続するイベントによって定義されたフローからメイン・プロセス・フローに戻ることはできません。

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

エラー・キャッチ・イベントは、プロセス・フロー内で発生したエラーを処理するために使用される中間イベントです。

注意:

インライン・ハンドラを使用して、プロセス内で発生するエラー状態に対応することもできます。

エラー・キャッチ・イベントは、常に境界イベントとして使用され、次のタスクやサブプロセスに添付できます。

- サービス・タスク

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

- ユーザー・タスク

- 送信タスク

- 受信タスク

- スクリプト・タスク

- ルール・タスク

- サブプロセス

エラー・キャッチ・イベントは常に割込みを実行します。つまり、このイベントによって、プロセスの通常のフローが中断されます。

図A-45は、サービス・タスクに境界イベントとしてアタッチされたエラー・キャッチ・イベントのデフォルトの表記を示しています。

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

サービスまたはプロセスでエラーが発生すると、エラー・キャッチ・イベントがトリガーされます。これにより、プロセス・フローはエラー・キャッチ・イベントの送信シーケンス・フローのパスに進みます。

このフローを使用して、エラーの処理方法を定義できます。エラーは、次の2通りの方法のいずれかで処理されます。

- プロセス・フローが、メイン・プロセス・フローに戻ります。
実行する必要があるすべての作業は、メイン・フローに戻る前にエラー・プロセス・フロー内で処理されます。

注意:

連続する境界イベントの場合、境界フローはメイン・フローに戻ることはできません。

- プロセス・フローは終了イベントに移動します。
プロセスは即時に停止されます。プロセスの制御は、そのプロセスを開始したサービスまたはプロセスに戻ります。

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

サブプロセスを使用して、ビジネス・プロセスを整理できます。サブプロセスによって、プロセスの機能領域をグループ化してプロセスをさらにわかりやすくできます。

Oracle BPMでは、次のタイプのサブプロセスがサポートされています。

- 再使用可能なプロセス

- 埋込み(インラインとも呼ばれる)サブプロセス

- イベント・サブプロセス(インライン・ハンドラとも呼ばれる)

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

Oracle BPMでは、再使用可能なプロセスというプロセス・タイプをサポートしています。BPMN用語では、再使用可能なサブプロセスと呼ばれることもあります。再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。

再使用可能なプロセスを使用すると、別のBPMNプロセスからコールできるプロセスを作成できます。たとえば、すべてのプロセスにクレジット・カード払いが必要な場合は、再使用可能なクレジット・カード払いのサブプロセスを作成できます。

再使用可能なプロセスには、次の特性があります。

- 単一のNone開始イベントで開始する必要があります。

- 複数の終了イベントを含めることができます。

- コールできるのは、別のBPMNプロセスのみです。

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

埋込みサブプロセスを使用すると、BPMNフロー・オブジェクトをグループ化して、プロセスをさらにわかりやすくできます。Oracle BPMでは、サブプロセスは埋込みのサブプロセスとなります。サブプロセスは、親サブプロセスの一部として包含されます。埋込みサブプロセスは、Noneイベントの開始で始まり、None終了イベントで終わる必要があります。

埋込みサブプロセスは拡張または縮小できます。図A-46は、プロセス内の縮小されたサブプロセスの表示を示しています。

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

図A-47は、プロセス内の拡張された埋込みサブプロセスの表示を示しています。埋込みサブプロセスを拡張すると、サブプロセス内のフロー・オブジェクトを編集できます。また、埋込みサブプロセス・ウィンドウの端をクリックしてドラッグすると、ウィンドウのサイズを変更できます。

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

他のタイプのプロセスと同様に、埋込みサブプロセスは開始イベントと終了イベントを持つことができ、別のプロセス・フローを含めることができます。埋込みサブプロセスは、None開始イベントで始まり、None終了イベントで終わる必要があります。埋込みサブプロセスにスイムレーンを含めることはできません。

また、埋込みサブプロセスはアクティビティと同様に動作します。受信シーケンス・フローおよび送信シーケンス・フローを使用できます。また、埋込みサブプロセス内で使用されるデータ・オブジェクトを定義するデータ・アソシエーションが含まれています。

埋込みサブプロセスには、タイマー境界イベント、メッセージ境界イベントおよびエラー境界イベントを含めることもできます。

必要に応じて、プロセスにはネストした埋込みサブプロセスを含めることができます。ただし、ネストした埋込みサブプロセスは、プロセスをわかりやすくするために必要な場合にのみ使用してください。

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

埋込みサブプロセス内のフロー・オブジェクトには、サブプロセス外部のフロー・オブジェクトに接続するシーケンス・フローを含めることができません。

他のフロー・オブジェクトと同様に、埋込みサブプロセスには、受信シーケンス・フローおよび送信シーケンス・フローがあります。

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

図A-48は、埋込みサブプロセスの例を示しています。この例では、埋込みサブプロセスは、営業見積の処理に使用されるサービス・タスクをグループ化するために使用されています。

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

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

プロセス・フローのコンテキスト内で、複数回繰り返すようにサブプロセスを構成できます。ループは、プロセスの設計時にプロセス・アナリストが検討する必要がありますが、実装はプロセス開発者が行います。

注意:

Oracle Business Process Composerではループを構成できません。埋込みサブプロセスのループ・プロパティを構成するには、Oracle BPM Studioを使用する必要があります。詳細は、Oracle Business Process Management Studioによるビジネス・プロセスの開発を参照してください。

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

イベント・サブプロセスはサブプロセスの1タイプで、通常のプロセス・フローの外部で発生しうる条件をモデル化できます。イベント・サブプロセスは、イベント・ハンドラとも呼ばれます。

イベント・サブプロセスは、次の開始イベントがあります。

- エラー開始

- タイマー開始

- メッセージ開始

インライン・ハンドラをプロセスに追加すると、デフォルトでは、メッセージ開始イベントで作成されます。開始イベントのタイプは、必要に応じて変更できます。

注意:

一連のインライン・ハンドラには、1つの開始イベントのみを使用できます。ただし、プロセス内では複数のインライン・ハンドラを使用できます。

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

この項では、スクリプト・タスクを使用してプロセス内のデータ・オブジェクトの値を変更する方法について説明します。

データ・オブジェクトの一般情報は、「データ・オブジェクトおよびデータ・アソシエーションの使用」を参照してください。

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

スクリプト・タスクは、プロセス内のデータ・オブジェクトの値を変更するために使用します。スクリプト・タスクは、値の変更をビジネス・プロセス内で明示的に表示する場合、または別のフロー・オブジェクトの外部でデータ・オブジェクトの値を変更する場合に使用します。多くの場合、スクリプト・タスクは、プロセス開始時にデータ・オブジェクトの初期値を設定するために使用します。

図A-49は、スクリプト・タスクのデフォルトの表記を示しています。

図A-49 スクリプト・タスク

スクリプト・タスクは、プロセスおよびプロセスベースのアプリケーション内におけるデータ・オブジェクトの動作の定義を担当する、プロセス開発者がプロセスに追加します。

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

図A-50は、営業見積サンプルの開始時に使用される2つのスクリプト・タスクの例を示しています。営業見積サンプルでは、プロセス・インスタンスの作成時にデータ・オブジェクトに対して初期値を設定し、いくつかのビジネス・インジケータに値を設定するスクリプト・タスクが使用されています。

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

プロジェクト・データ・オブジェクトは、プロジェクト内に定義するデータ・オブジェクトです。プロジェクト内のすべてのプロセスは、定義されているデータ・オブジェクトにアクセスしますが、実際の値はオブジェクトを使用するプロセスに応じて変化します。また、プロジェクトがビジネス・インジケータを使用するように構成されている場合には、ビジネス・インジケータとしてマークされたデータ・オブジェクトの値が、エンジンによってプロセス分析データベースに保存されます。

図A-51は、ビジネス・インジケータの初期値を設定するために使用されるデータ・アソシエーションを示しています。

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

データ・アソシエーションを受け入れる他のフロー・オブジェクトと同様に、式を使用してデータ・オブジェクトの値を変更できます。図A-52は、割引プロジェクト変数の値を変更する場合の式の使用方法を示しています。

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

注意:

BPM Studioを使用した変換を使用してスクリプト・タスクを実装した場合、それらのスクリプト・タスクは、Oracle Business Process ComposerでBPMプロジェクトを開く際には表示されません。

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

この付録では、WebフォームとWebフォーム・コントロールで使用可能なプロパティを説明します。

この付録の内容は次のとおりです。

- Webフォーム・プロパティ

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

B.1 Webフォーム・プロパティ

Webフォームの動作および外観を制御するには、そのプロパティを変更します。

プロパティの編集には、機能別にWebフォーム・プロパティをグループ化するタブ付きペインが含まれるプロパティ・エディタを使用します。

B.1.1 「設定」タブ

デザイナでWebフォームを選択すると、「プロパティ」コントロールの「設定」タブに、表B-1に示すプロパティが表示されます。

表B-1 プロパティ

プロパティ

説明

フォーム名

フォームの名前を定義します。

説明

Webフォームの説明を示します。デフォルトでは、すべてのフォームで、「この説明を変更するにはフォームを編集してください。」という記述が使用されます。この説明を、フォーム固有の内容に変更します。

フォーム・エディタで、フォームの共有アイコンの右側の領域にカーソルを重ねると、説明がツール・チップとして表示されます。また、個々の送信ドキュメントを表示した場合にも説明が表示されます。

要素名

デザイナ・パレットから作成されたフォームの発行xmlに、ルート要素名を指定します。有効なXML名である必要があります。

フォームの名前は、要素名から分離されます。

フォーム名に国際文字を含める場合、国際文字を「要素名」フィールドに入力する必要があります。

注意: 要素名を変更する場合、すべての既存の発行は無効になります。エラー・メッセージ。発行が無効です。「フォーム/フローに対して互換性のない変更が行われました。」と表示されます。

保存

このフォームのすべての送信内容がフォームの送信リポジトリに格納されます。このプロパティはデフォルトで有効になっています。

このチェック・ボックスの選択を解除した場合、フォーム送信は引き続き送信リポジトリに記録され、送信に関するメタデータ(送信日時、成功/失敗の条件)を表示できますが、フォーム・フィールドのデータは保存されません。

印刷可能

フォームの上部に印刷アイコンが表示されます。ユーザーがフォームを印刷できないようにするには、このチェック・ボックスの選択を解除します。フォームの各Webフォーム・コントロールで、「印刷可能」プロパティを使用して、PDF印刷ビューに表示されるフォーム・フィールドを制御できます。

PDFの保存

ユーザーはファイルをPDF形式で保存できます。このプロパティは、保存プロパティを有効にしている場合のみ有効化できます。

選択すると、ファイルのPDFイメージもフォーム送信リポジトリに保存されます。

装飾済

新しく追加されたコントロールが、コントロール・レベルのデコレータ・プロパティを設定または設定解除するかどうかを制御します。すでにフォームにあるコントロールには影響しません。

B.1.2 「スタイル」タブ

デザイナでWebフォームを選択すると、「プロパティ」コントロールの「設定」タブに、表B-2に示すプロパティが表示されます。

表B-2 要素

プロパティ

説明

幅

フォームの幅を指定します。デフォルトの「標準」の幅は600pxですが、ドロップダウンには細い(400px)および広い(800px)もあります。カスタム・オプションにより、幅を指定できる「幅」ドロップダウンの右側のボックスが有効になります。

高さ

フォームがブラウザにロードされる際の最初の高さを指定します。これにより実際の高さが決まることはありません。一般に、フォームのサイズは動的に変更されるため、フォームの「高さ」プロパティを編集する必要はありません。ただし、フォームが非常に小さい場合、フォームの実際の高さに設定しておけば、フォームがロードされた際に外観を改善できます。

コントロール

チェック・ボックスおよびラジオの各コントロールに対して定義したオプションを垂直または水平のどちらの方向に表示するかを決定します。

レイアウト

レイアウトを選択します。レイアウトはフォームの外観を変更します。レイアウトには次のものがあります。

- 新規 - 最新のCSSをサポートする新しいブラウザを利用します。モバイル機器で実行中のフォームまたはフローに最適です。

- 圧縮 - これは、コントロール間の垂直スペースを縮小する点を除いて、新規レイアウトとよく似ています。

- タイト - 垂直および水平スペースは大幅に削減されます。コントロールは互いに直面して配置されます。

スタイル

「スタイル」ドロップダウンから選択肢を選択して、スタイルをフォームに適用します。スタイルは主に色に関係していますが、フォント名、サイズおよび色などの他のプロパティを指定することもできます。選択肢には、「青」、「普通」、「緑」、「アクア」があります。

カスタム・スタイルを作成できます。カスタマイズされたスタイルも、事前定義済オプションとともにドロップダウン・リストに表示されます。

印刷フォント

このプロパティを使用して、PDFのレンダリング時に使用されるフォントを必要に応じて選択します。

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

各Webフォーム・コントロールの動作および外観を制御するには、そのプロパティを変更します。

プロパティの編集には、機能別にプロパティをグループ化するタブ付きペインが含まれるプロパティ・エディタを使用します。

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

「設定」タブでは、コントロールの一般的なプロパティを定義します。表B-3に、「設定」タブに表示されるすべてのコントロール・プロパティのリストをアルファベット順に示します。

注意:

「設定」タブのすべてのプロパティがすべてのWebフォーム・コントロールで使用されるわけではありません。

表B-3 コントロール・プロパティ - 「設定」タブ

プロパティ

説明

コントロール・タイプ

このWebフォーム・コントロールのタイプを定義します。ドロップダウン・リストからタイプを選択することで、Webフォーム・コントロールのタイプを変更できます。

このプロパティは次のWebフォーム・コントロールに適用されます。

- 選択コントロール(ドロップダウン・リスト、ラジオ、チェック・ボックス)。

- 大部分の入力コントロール(テキスト、テキスト領域、電子メール、電話番号、数量、数値)。

- 日付コントロール(日付、時間、日付/時間)。

初めてWebフォームにコントロールを追加すると、このプロパティが自動的に移入されます。フォーム内のコントロールを別のタイプのコントロールに切り替える場合は、このプロパティを変更できます。これにより、元のコントロールを削除せずに新規コントロールを内側にドラッグできます。

選択コントロールを入力コントロールに変更することはできません(逆も同様)。チェック・ボックスをドロップダウン・リストに切り替えることはできますが、このプロパティを使用してチェック・ボックスをテキスト・コントロールに変更することはできません。

また、このプロパティはフォーム内のコントロールの種類を検証するのに役立ちます。コントロールを内側にドラッグした後に新しいラベルをコントロールに割り当てます。このプロパティにより、ラベルに関係なく、フォーム内のコントロールの種類を確認できます。

スキーマ要素から生成されたコントロールには、「コントロール・タイプ」プロパティのかわりに「表示形式」プロパティが設定されます。

CSSクラス

コントロールのXHTMLマークアップ・クラス名を定義します。このCSSクラスを使用して、テーマをカスタマイズする際に任意のCSSでコントロールを参照できます。

組込みCSSクラス名'f-page-break'を使用して、新規ページの先頭にあるコントロールに追加することによって、フォームのPDFまたはTIFFの印刷ビューに改ページを追加します。

日付書式

フォームで使用する日付書式を定義します。

このプロパティは、日付コントロール、および日付/時間コントロールの日付部分にのみ適用されます。ヨーロッパの日付書式がサポートされています。フォームに入力された日付は選択した書式に従って変換され、選択した書式に合せて再度書式設定されます。

- フォーム・フィールドに入力された日付は、選択した日付書式に合せて再度書式設定されます。

- フォーム・フィールドに入力された日付は、選択した書式に従って変換されます。たとえば、ヨーロッパの書式である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フォームのエンド・ユーザーに対して表示するテキストに変更できます。

コントロールをクリックしてラベルを選択するか、プロパティ・ラベル・フィールドで任意の名前を重ねることで、フォーム自体でラベルをコントロールできます。

メッセージ・コントロールはラベルのない唯一のコントロールであり、静的テキストに使用されるため、静的テキストに加えてラベルも不要です。

ラベル名には、プレーン・テキストまたは任意のXHMTLを使用できます。

ラベル

コントロールのラベルを変更できます。ただし、スキーマ内のコントロールのXSD値は変更されません。つまり、フォームでユーザーに表示される内容は変更できますが、基礎となる値は変更できません。要素値を変更するためにパレット・コントロールに使用する[value=label]構文は使用できません。

このプロパティは、スキーマ要素から生成されたコントロールにのみ適用されます。(コントロールをパレットからドラッグした場合、「オプション」プロパティが設定され、コントロールがスキーマ要素から生成された場合、「ラベル」プロパティが設定されます。)

最大長

コントロールでユーザーが指定できる文字数を正の整数で示して制限します。「テキスト領域」コントロールでは、HTML制限のためこのプロパティはサポートしていません。ただし、ビジネス・ルールを使用してテキスト領域コントロールTextareaMaxLengthにこの機能を追加することは非常に簡単です。

このプロパティは、テキスト・コントロールおよび他の入力コントロールに使用できます。

メッセージ

フォームにメッセージを組み込むことができます。このプロパティ・フィールドには、通常のテキストに加えて、ブラウザによって書式設定および表示される任意のXHTMLマークアップを含めることができます。このプロパティはメッセージ・コントロールにのみ適用され、フォームに表示される静的テキストを入力します。

メッセージ・タイプ

プロパティ・パネルの「設定」タブにある「メッセージ・タイプ」ドロップダウンからメッセージ・タイプを選択すると、事前定義済の様々な背景色、デコレータまたは境界線を表示できます。これらの設定は、「BGの色」と「ラベルの色」に指定した値をオーバーライドします。これらの値を有効にするには、メッセージ・タイプとして「なし」を選択してください。

メッセージ・タイプには次の値があります。

- デフォルト

- なし

- 境界

- 成功

- 情報

- 警告

- エラー

最小数と最大数(繰返し)

繰返しコントロール内でコントロールが繰り返すことのできる最小と最大の回数を正の整数で指定します。

最小値は、エンド・ユーザーが追加または入力する必要があるコントロールの最小数を定義します。ユーザーがコントロールの最小数に対してデータを入力しなかった場合、送信ボタンが有効になりません。

最小数および最大数

ユーザーがコントロールに入力できる最小値と最大値を、正の整数で示して定義できます。

これらのプロパティは、表コントロールの一部として、またはフォームのコントロールの中に入力コントロールが含まれる場合に表示され、その入力コントロールに適用されます。最小値に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に基づくコントロールでは、パレットに基づくコントロールと同じルール(前述)が使用されます。

改行

「改行」プロパティは、12列幅セレクタを持つすべてのコントロールに存在します。「改行」を選択すると、レンダリングされたフォームの新規行にコントロールが表示されます。

トリガー・コントロールとリンク・コントロールでは、このプロパティがデフォルトで選択されています。

オプション

コントロールでユーザーに表示される選択肢の移入方法を定義します。このプロパティは、ドロップダウン、ラジオおよびチェック・ボックス・コントロールに対して表示されます。

オプション値と異なるオプション・ラベルがある場合があります。オプションの構文は、<value>=<label>です。<label>はフォームに表示される内容を指定し、<value>はユーザーがフォームを送信する際に選択した値として保存される内容を指定します。

これらのコントロールのいずれかをフォームに最初にドラッグしたとき、汎用的な値: オプション1、オプション2およびオプション3が割り当てられます。これは、「プロパティ」領域に表示される汎用テキストと一致します。独自の値を指定するには、「オプション」プロパティの値を目的の値で置き換えます。必要に応じてオプションを追加または削除します。

<value>=<label>構文を使用して<value>および<label>の両方を入力しない場合、値はデフォルトでラベルに設定されます。「オプション」プロパティから焦点を離すとすぐに、値のないオプションは自動的に構文に変換されます。

この場合、値なしでオプションを入力します。この場合、Oracle Web Formsによりデフォルトで値がラベルに設定されます。

コントロールでの選択肢の順序は、「プロパティ」領域での順序と一致します。論理的な順序を必要とする選択肢がある場合、「プロパティ」領域で順序が正しいことを確認してください。「オプション」プロパティ・フィールドに入力したテキストはソートできませんが、切取りと貼付けは可能です。

汎用オプション1、2および3の選択肢に加えて、ドロップダウン・コントロールにはデフォルトでリストの最初に表示される空白オプションも含まれます。この空白オプションは、「オプション」プロパティに指定したテキストに関係なく表示されます。空白オプションは削除できませんが、その他のオプションのいずれかをデフォルトに設定できます。

"="文字を含むオプション文字列を指定するには、文字列の前に"a="を付けます。たとえば、ラベル"good = gold"を指定するには、オプション文字列に"a=good = gold"を指定します。

アップロードされたスキーマから生成された選択肢は変更できません。これは、スキーマにより選択肢が指定されるためです。スキーマから生成されたコントロールでは、「プロパティ」領域に「オプション」プロパティは表示されません。ただし、「ラベル」オプションは変更できます。

パスワード

フィールドに入力したテキストが、パスワードの入力に適した方法で、入力したとおりにブロック・アウトされます。

このプロパティは、テキスト・コントロールおよび他の入力コントロールにのみ適用されます。「パスワード」チェック・ボックスを選択した場合、ユーザーが入力したテキストがアスタリスクとしてフォームに表示されます。ただし、通常のテキストとして送信されます。

パターン

ユーザーがコントロールに入力するデータのタイプについて、追加の制限事項を定義できます。

多くのコントロールでは、ユーザーが正しいデータ型を指定したことが自動的に確認されますが、パターンでは、ユーザーが特定のコントロールに入力する内容に対して柔軟に追加の制限を課すことができます。

「プロパティ」領域の「パターン」フィールドに、XMLスキーマの正規表現を使用してパターンを入力します。単純な例として、米国郵便番号として書式設定された文字列のみを許可するよう、テキスト・コントロールを制限するパターンがあります: \d{5}|\d{5}-\d{4}。この表現を「パターン」プロパティに入力した場合、フォームではこのフィールドに入力した値が、5桁、または5桁の後に'-'の文字、さらに4桁が続く場合にかぎり許可されます。

パターンを定義する場合、コントロールで自動処理される対象は制限する必要がありません。番号コントロールにはパターン[a-z]を入力する必要はありません。これは、ユーザーが数値フィールドに文字を入力できないためです。基本的にはコントロールで使用可能なデータ型を展開しようとしているため、Oracle Web Formsはこのパターンを入力した場合に無視します。

パターンを有効にするには、まずフォームを保存する必要があります。そのため、パターンはフォーム・デザイナではテストできず、使用モードでのみ可能となります。

プレースホルダ

このフィールドに入力したテキストは、データが入力されるまで入力コントロールに表示されます。データが削除されると、プレースホルダのテキストが再表示されます。この機能はIE8またはIE9では機能しません。

印刷可能

このフォーム・フィールドをフォームのPDFドキュメント・ビューに表示するかどうかを決定します。未選択の場合、フィールドはどちらのビューにも表示されません。

このプロパティは、セクション・コントロールに設定でき、セクション・コントロール内のすべてのコントロールに自動適用されます。多くの場合、これはWebフォーム・ルールで使用されます。

必須

コントロールが必須であることを指定します。すべての必須フィールドに有効な値が入力されるまで、「送信」ボタンは無効となり、フォームを送信できません。

必須のコントロールは黄色のグラデーションでマークされます。

グループ・コントロール(タブ、セクションおよびパネル)を必須とマークすることはできません。ただし、セクションは必須とマークできます。セクションの「必須」プロパティを選択した場合、設計モードと使用モードで、そのセクション内の必須コントロールの背景が黄色で表示されます。セクションの「必須」プロパティを選択しない場合は、設計モードと使用モードで、そのセクション内の必須コントロールの背景が黄色で表示されません。背景色が黄色になるのは、セクション内のいずれかの必須コントロールが入力された時点です。これにより、セクション内の他の必須コントロールの入力が必須になります。

コントロールの直接の子である(すぐ内側にある)入力コントロールも必須とマークできません。最小数と最大数のプロパティで、これが定義されるためです。ただし、コントロールがセクション、タブおよびパネル内にある場合は必須に設定できます。

アップロードされたスキーマから生成されたコントロールでは、必須のプロパティは編集できません。これは、スキーマでminOccurs属性によりすでにこれが指定されているためです。スキーマからのコントロールが必要に応じて表示され、必須にする必要がない場合は、XSDを編集し、minOccurs=0を設定します。XSDを再アップロードします。その結果、コントロールは必須表示されなくなります。

フォーム内の他の要素に応じてセクションを表示または非表示するルールを使用している場合、このプロパティは役立ちます。セクションを非表示にした場合、必須プロパティをfalseに設定する必要があることがあります。

機密

送信リポジトリに保存された値をWeb送信ユーザー・インタフェースでフォームに表示したときに非表示にするかどうかを制御します。この値は現在、データベースで暗号化されていません。このフィールドにユーザーが入力するデータに、ユーザー・インタフェースで表示する際に表示してはならない機密データが含まれる場合、このチェック・ボックスをクリックします。

時間書式

コントロールで使用される時間書式を指定します。

このプロパティは、日付コントロール・ドロップダウンから時間または日付/時間オプションを選択して作成される時間コントロールにのみ適用されます。これは標準および軍用時間書式をサポートしています。フォームに入力された時間エントリは選択した書式に従って変換され、選択した書式に合せて再度書式設定されます。

- フォーム・フィールドに入力された時間エントリは、選択した時間書式に合せて再度書式設定されます。

- フォーム・フィールドに入力された時間は、選択した書式に従って変換されます。たとえば、軍用時間書式hh:mm:ssを選択し、2:00 PMと入力した場合、時間値は14:00:00に変換されます。

表示可能

ユーザーが最初にフォームにアクセスしたときにコントロールを表示または非表示のどちらにするかを指定します。コントロールを動的に表示または非表示にするには、別のコントロールで入力されたデータに基づいて表示を制御するルールを記述します。

行数

テキスト領域の初期サイズを定義します。このプロパティはテキスト領域コントロールにのみ適用されます。指定した行数にユーザーが到達すると、スクロール・バーが自動表示されます。

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

「スタイル」タブを使用して、現在選択されているコントロールの表示固有のプロパティを定義します。表B-4に、「スタイル」タブで使用できるプロパティの全リストをアルファベット順に示します。

注意:

下にリストしたすべてのプロパティがすべてのWebフォーム・コントロールで使用できるわけではありません。

表B-4 プロパティ - 「スタイル」タブ

プロパティ

説明

BGの色

コントロールの背景に表示される色を指定できます。任意の有効なCSSカラー名またはそれに相当する16進RGBを入力します。たとえば、赤い背景を希望する場合、REDまたは#aa2211という語を入力できます。

太字

コントロールのラベルが太字になります。

ボタンの色

ボタン・コントロールの色を選択します。

中央

コントロールの内容をセンタリングします。メッセージ・コントロールに適用されます。

日付ピッカー

対話型のカレンダがポップアップ表示される日付ピッカー・コントロールを有効にします。日付コントロールに適用されます。

展開/折りたたみ

展開/折りたたみコントロールを有効にします。セクション・コントロールに適用されます。

イタリック

コントロール・ラベルが斜体で表示されます。

アイテムの幅

オプションのレイアウトを縦(1つのラジオまたはチェック・ボックスのボタンの下に次のボタン)から横に変更できます。これは長いフォームで縦のスペースを節約する場合に役立ちます。また、それぞれに同じオプション・セットが用意された質問を含むフォームについて、使いやすさを向上させる場合に役立ちます。

このプロパティは、ラジオおよびチェック・ボックス・コントロールで使用されます。

ラベルの色

フォームの特定のコントロールについて、フォント・サイズおよび色を変更できます。色を指定するには、有効なCSSカラー名またはそれに対応する16進数を入力します。

ラベル全体のサイズおよび色を同じにする場合はこれらのプロパティが便利ですが、より洗練されたラベルにするには、コントロールのラベル・プロパティ・フィールドにXHMTLを入力できます。たとえば、同じラベル内で異なる2つのフォント色を適用する場合は、XHMTLを使用します。また、ラベル・サイズのプロパティで選択できるのは汎用フォント・サイズ(小、中など)のみであるため、XMHTLを入力すると、フォントをより細かく指定できます。たとえば、ドロップダウンで小および中のオプションの間のフォント・サイズを必要とするコントロールが存在する場合があります。

ラベル・サイズ

ラベルのサイズ(ピクセル単位)を定義します。

幅

コントロールの幅を指定するために使用します。

入力コントロールでは、このプロパティによってユーザーがデータを入力する領域の幅を指定します。たとえば、郵便番号を入力する際に使用するコントロールを狭くしたり、名、ミドル・ネームおよび姓を含めたフルネームのコントロールを広げることができます。

すべてのコントロールの幅は列数で指定します。最小は1列、最大は12列です。1行でコントロール幅を任意に組み合せることができます(たとえば、3つのコントロールの幅をそれぞれ3、4、5グリッド列にしたり、4つのコントロールの幅をそれぞれ2、2、4、4グリッド列にしたりできます)。

幅を選択するには、「スタイル」タブでグリッドをクリックします。ほとんどのコントロールは、パレットからキャンバス上にドラッグ・アンド・ドロップすると、12列の幅になります。トリガー、リンクおよびパネル・コントロールは例外です。トリガー・コントロールとリンク・コントロールのデフォルトの幅は3列で、パネル・コントロールは6列です。幅を変更するには、グリッド上で、必要とするコントロールの幅に対応する数の区分をクリックします。

コントロールの幅をn列(6列など)にすると、そのコントロール全体で6列を占有します。結果として、スペースがある場合、コントロールは他のコントロールの横へ浮き上がります。この挙動は、「改行」プロパティを使用して回避できます。

デコレータは、コントロールの表示幅には影響しません。複数のコントロールの表示幅を合計すると別の1つのコントロールと同じ幅になる場合、両者の幅は正確に一致します。たとえば、2グリッド列幅のコントロールと4グリッド列幅のコントロールを足し合わせた幅は、6グリッド列幅のコントロールと同じ幅になります。

セクション・コントロールと表コントロールには「幅」プロパティがありません。これらの幅は常に12列です。繰返しコントロールの幅も常に12列です。

タブ・コントロールでは、タブ・グループで最後のタブの右側にあるラベル付けされていない領域をクリックすると、「幅」プロパティにアクセスします。指定した幅はグループ内の各タブに均一に適用されます。

コントロールの「幅」プロパティを設定する際には、標準CSS相対値、たとえば5%、5em、5exまたは5pxを使用できます。

コントロールの幅を明示的に指定しても、iPhoneとiPadでは無視されます。

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

この付録では、WebフォームでWebフォーム・ルールを使用するための例とユース・ケースを提供します。フォーム・ルールの全般情報は、「Webフォーム・ルールの使用」を参照してください。

この付録の内容は次のとおりです。

- 合計の計算

- 請求先住所の表示/非表示

- メッセージの表示/非表示

- 質問の有効化/無効化

- アイテムの小計の計算

- 請求合計の計算

- テキスト領域の最大長

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

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

- 選択したオプションのインデックスの検索

- 同期された選択

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

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

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

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

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

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

- チェック・ボックス

- コントロール内部のメッセージ・コントロールの表示

- 文字列の連結

- 表示/非表示

- 表示/非表示セクション

- 「Select」タブ

- 「Next」タブ

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

- 複数選択

- 動的オプション

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

- 値の変更と動的オプション

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

- ユーザーの検証

- 純資産の計算

- 日付と時間

- テナント、ロール、ユーザー

- アイテムの追加

- アイテムの追加 - 他のアイテムの縮小

- 表

- form.load

- form.unload

- 一意のID

- アイテムの初期化

- 初期ドキュメントによるItemAdded

C.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に無効な値を設定しようとすることになります。これによりエラーが生成されます。このルールで指定された値は設定されますが、フィールドは無効とマークされ、送信ボタンを無効にしたりコントロールの背景を赤で表示したりするなど適切なアクションが実行されます。

また、パレットからフォームにコントロールを追加する場合は、タイプが適切かどうかを確認することが重要です。たとえば、前述したような数値計算の場合、コントロールのタイプは数値である必要があります。

C.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のデフォルトを非表示にするのが一般的です。

C.3 メッセージの表示/非表示

次の例では、フォームにFacilityという名前のラジオ・コントロールがあり、選択したオプションに応じてメッセージを表示します。

if (Facility.value == 'Boston' ||
CompanyFacility.value == 'New York')
{
Msg.visible = true;
} else {
Msg.visible = false;
}

C.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のデフォルトを無効にするのが一般的です。

C.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より大きい各アイテムの小計が計算され、そのアイテムの小計フィールドに計算された値が入力されます。特定のアイテムに数量がない場合、小計は計算されません。

C.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) {;}

C.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;

ユーザーに許可される最大を超える文字数を示すエラー・メッセージです。

C.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;

C.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];
}

C.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;
}

C.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] + '';

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

このサンプルは、ドロップダウン・オプションを自動的に追加される空白のオプションにリセットします。

パレット・コントロールおよびスキーマから追加するドロップダウンの場合は、Oracle Web Formsによって自動的に空白のオプションが追加されるので、デフォルトでは始めはドロップダウンに何の選択も表示されません。ドロップダウンをリセットするには、ドロップダウン・コントロールの値を空の文字列ではなくnullに設定します。空の文字列は有効なオプションではないため、空の文字列は機能しません。このフォームは、製品オプションの値が変更されるたびに、サイズという名前のドロップダウンをリセットします。

if (product.value.length > 0) {
size.value = null;
}

C.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';
}

C.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...';
}

C.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に入力された値をフォーム送信時に含めたくない場合には、それを非表示にするときに値をクリアします。

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

チェック・ボックスのオプションは複数選択できるので、ルールを介して複数オプションを選択するには、次の構文を使用する必要があります。

この例ではCBという名前のチェック・ボックス・コントロールがあり、そのオプションがred、green、blueです。このルールは、オプションをすべて選択します。

CB.value = ['red', 'green', 'blue'];

CBという名前のコントロールで、チェックされたオプションをすべてクリアするには:

CB.value = [];

C.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;
}
}
}

C.18 繰返しチェック・ボックス

コントロールの内部のチェック・ボックスは、他の配列(繰返しチェック・ボックス・コントロール自体)の内部にあるチェック・ボックス・オプション値の配列(各チェック・ボックス・コントロールの値)として扱う必要があります。

このフォーム例では、繰返しセクションに2つのコントロールがあります。テキスト・コントロールであるMessageと、1つのオプション'yes'を持つチェック・ボックス・コントロールであるAreYouAttendingです。選択したオプションにアクセスする構文は、次のとおりです:

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;
}
}

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

繰返しコントロールの内部にメッセージ・コントロールを配置する場合は、ユーザーがクリックして新しい繰返しアイテムを追加したときにメッセージを繰返すルールをメッセージ・コントロールに追加する必要があります。

次の例で、1番目のアイテムではメッセージが正しく表示されますが、ユーザーが追加した2番目、3番目、それ以降のアイテムを表示するにはルールが必要です。

この場合、1番目のメッセージ・コントロールにある動的テキスト(Contest Nomination For: [Name])と、2番目のメッセージ・コントロールにある静的テキスト(By signing this consent form...)の両方をルールによって繰り返します。

if (Consent.itemAdded)
{
var index = Consent.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 acceptable to use a photo or video with your image.';
}

C.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;

C.21 表示/非表示

このルールは、ユーザーがnickName入力テキスト・コントロールに値を入力したときにメッセージ・コントロールnickNameThankYouを表示し、ユーザーがnickNameの値を削除したときにメッセージ・コントロールを非表示にします。

if (nickName.value.length > 0 )
{
nickNameThankYou.visible = true;
}
else
{
nickNameThankYou.visible = false;
}

C.22 表示/非表示セクション

多くの場合、セクション・コントロールには多くの内部コントロールがあります。たとえば、患者の病歴を記入するフォームがあるとします。このフォームには、患者が補聴器を使用しているかどうかを確認する質問があります。答えが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;
}

C.23 「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;
}

C.24 「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;
}

C.25 セクションの拡張/縮小

このフォームには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;
}

C.26 複数選択

このルールは、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;
}

C.27 動的オプション

選択コントロール・オプション(ラジオ、チェック・ボックス、ドロップダウン、T/F)は、コントロールのオプション・プロパティを使用して静的にするかわりに、ルールを使用して動的に設定できます。ただし、コントロールが標準のパレット・コントロールではなくXSDスキーマ・データ・ソースに由来する場合、デザイナはオプションがそのスキーマ要素で有効な範囲から外れないように注意する必要があります。

たとえば、XSDに文字列の列挙があり、red、green、blueという有効なリスト・オプションがある場合、ルールを使用してオプションを動的にsmall、medium、largeに設定しないでください。これを行うと、使用モードでフォームが正しく機能しません。ユーザーがsmallオプションを選択すると、フォームで検証エラーが発生します。これは、smallが基礎となるXSDスキーマで許可されているオプションではないためです。

C.28 トリガーと動的オプション

このルールは、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;
}

注意:

トリガーは、繰返しアイテムでは機能しません。

C.29 値の変更と動的オプション

このルールは、別のフォーム・フィールドで選択された値に基づいて、ドロップダウン・リストのオプションを動的に設定します。このフォームには、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;
}

C.30 動的コントロールの初期化

このルールは、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;

C.31 ユーザーの検証

このルールは、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;
}
}

C.32 純資産の計算

このフォームには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は、これを同じように扱います。これは、フォームの有効状態を動的に制御する際に適した方法です。

C.33 日付と時間

日付と時間の処理は、ほとんどのフォームでほぼ共通しています。次のサンプルでは、日付と時間を作成する最も一般的なビジネス・ロジックを作成する方法を示しています。

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とします。

C.33.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';
}
}

C.33.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とすると、コントロール値は東部タイムゾーンの現在の日時に設定されます。

C.33.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;

C.33.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;
}

C.33.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.";
}

C.33.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;
}

C.33.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;
}

C.33.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;
}
}

C.33.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;

C.34 テナント、ロールおよびユーザー

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 tenant 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;
}
}

C.35 繰返しアイテムの追加

このルールは、新しいアイテムがフォームに追加されたときに実行されます。

フォームにEmployeeという名前の繰返しセクションがあり、そこにEという名前があると仮定します。Eという名前は、セクション・コントロール上ではなくコントロール上で設定されることに注意してください。Employeeセクション・コントロールには、Name、Phoneなど多くのコントロールと、ManagerというラベルでMという名前が付いたドロップダウン・コントロールがあります。また、Employee Shift (名前はES)というラベルのラジオ・コントロールもあり、そのオプションはDayおよびEveningに設定されています。

ユーザーがフォームで「+」をクリックして新しいアイテムを追加するたびに、Oracle Web Formsはこのルールを実行します。Employee Shift ESのデフォルト値をDayに設定し、ManagerドロップダウンにはOracle Web Formsデータベース・コネクタからの値を動的に移入します。

通常は、フォーム上で最初のアイテムを表示するために、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;
}
}

//  item index 0 is on the form by default
M[0].options = opts;
ES[0].value = 'Day'; // default the employee shift to Day
}

ユーザーが「+」アイコンをクリックした結果として新しいアイテムが追加されたとき、データベースに戻って動的なオプションを取得するというオーバーヘッドが軽減されます。

if (E.itemAdded)
{
var index = E.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  item index 0 M[index].options = M[0].options; ES[index].value = 'Day'; // default the employee shift to day }

表は繰返しです。表コントロールにも同じルールを記述することができます。表の繰返しの名前は、常に<TableName>Repeatです。たとえば、表にChildrenという名前を付けた場合、繰返しはChildrenRepeatという名前になります。

C.36 繰返しアイテムの追加 - 他のアイテムの縮小

このルールは、新しいアイテムがフォームに追加されたときに実行されます。このフォームには、テンプレート化されたラベルを持つ繰返しセクションがあります。

新しいアイテムを追加するときには、リストが小さいグリッドに表示されるように、他のアイテムを縮小できます。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;
}
}

C.37 表

ビジネス・ルールで参照されるとき、表はコントロールと同じです。表は、繰返しアイテムのグリッド・レイアウトです。

. この章でsについて説明しているルールの例はすべて、表にも適用されます。1つ注意しなければならないのは、表の内部ではコントロールに明示的に名前を付けることができないということです。表の内部のコントロールは、自動的に<TableName>という名前が付けられるからです。たとえば、表の名前がExpenseであれば、コントロールの名前は自動的にExpenseとなります。Expense.itemIndexとExpense.itemAddedのルールは、表に追加されたアイテムと、そのアイテムの索引をそれぞれ参照します。

C.38 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;
}
}

C.39 form.unload

ルールを使用して、ユーザーがフォームの送信ボタンを押してから、フォームおよびドキュメント・アクションが実行されるまでの間に、フィールド値を初期化することができます。form.unloadを使用するルールは、フォーム・ユーザーが送信ボタンをクリックしたときにトリガーされます。また、ワークフローの場合にはユーザーが続行をクリックして次のアクティビティに進むか、完了をクリックしてフローを完了したときにトリガーされます。

代表的な例として、注文フォームの注文番号があります。注文を送信するたびに、一意の連番を注文番号として割り当てるとします。フォームの注文番号は、form.loadを使用してフォームがロードされたときに初期化することも可能です。しかし、別のユーザーが注文フォームの入力を開始したまま送信していない場合、連続する次の注文番号は、それが使用されないのであれば消費しないようにと考えます。form.unloadを使用すれば、送信ボタンがクリックされてから、フォーム・データが送信されるまでの間に番号を割り当てることができます。

ここで、OrderNumは非表示のコントロールの名前です。

if (form.unload)
{
eval('x=' + http.get('http://<webhost>/json/getNextOrdernum'));
OrderNum.value = x.num;
}

C.40 一意のID

請求書、納品書などのフォームは、一意のIDの記入が必要になることがあります。連番の例もその方法の1つですが、これには制限が伴います。まず、同時にフォームを入力するのは必ず1人であることを保証する必要があります。

一意のIDが連続していなくてもいい場合の簡単なメソッドを次に示します。form.idという名前のデータは、新しいフォーム・インスタンスごとに一意であることが保証されています。次のようにこれを使用するのみです。

if (form.load)
{
InvoiceNum.value = _data.getParameter('form.id');
}

C.41 繰返しアイテムの初期化

上のルールでは、新しく追加された繰返しコントロールを、デフォルトのオプション・リストで初期化する例を紹介しました。繰返しコントロールの値を初期化する場合にも、これと同じコンセプトが役に立ちます。

フォーム・デザイナで繰返しコントロールをフォームに追加するとき、デザイナに表示されている繰返しコントロールについてはデフォルト値を設定できます。しかし、ユーザーがフォームを使用中に「+」をクリックしてアイテムを追加する場合、フォーム・デザイナで指定されたデフォルト値はこの新しいアイテムで自動的に使用されません。これを行うために、次のような単純なルールを追加する方法があります。

このルールは、繰返しコントロールにあるフィールドの1つの値をデフォルトの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)を指定するのみです。

C.42 初期ドキュメントによるItemAdded

ItemAddedは、初期ドキュメントで見つかったアイテムをOracle Web Formsが追加するときにも実行されます。初期ドキュメントから追加したアイテムは初期化せず、ユーザーがフォーム上で「+」をクリックしたときに追加したアイテムのみを初期化したい場合もあります。

このフォームには、繰返しであるMailing Labelというフィールドがあります。ラベルごとに、一意のIDを割り当てる必要があります。ただし、フォームの送信後には、割り当てられたIDはフォームのドキュメントURIを介してデータベースに保存されます。フォームのロード時には、データベースの行から自動的にアイテムが追加されます。これにはすでにIDが割り当てられています。新しいIDを連続して割り当てる必要があるのは、ユーザーがフォーム上で「+」ボタンをクリックして手動で新しい宛名ラベルを追加するときです。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 Oracle BPMにインポートするためのプロセスの準備

この付録では、Microsoft VisioやXPDL (プロセス定義言語)をサポートするツールで作成されたプロセス・モデルのインポート結果を向上させる方法について説明します。

この付録の内容は次のとおりです。

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

- XSLTを使用したXPDLインポートのカスタマイズ

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

Visioファイルは、Business Process Composerに直接インポートできます。Business Process Composerでは、VisioMasterMap.xmlとVisioUserMap.xmlというマッピング・ファイルを使用して、Visioの要素をBusiness Process Model and Notation (BPMN)のフロー・オブジェクトにマッピングします。

ただし、Visioのマッピングを変更できるのは、Oracle JDeveloper内のBusiness Process Management (BPM) Studioを使用した場合のみです。

この項では、BPM Studioに対するマッピングをカスタマイズする方法について説明します。モデルをBPM Studioにインポートした後、プロジェクトをエクスポートしてBusiness Process Composerにインポートすることにより、モデルをBusiness Process Composerに移動できます。

マッピング・ファイルでは、Visioの各要素に対応するBPMNフロー・オブジェクトが定義されています。これらのファイルは、Fusion Middlewareホーム・ディレクトリ内の次のディレクトリに保存されています。

.../soa/plugins/jdeveloper/extensions/oracle.bpm.converter.

注意:

ファイルVisioMasterMap.xmlはアップグレード中に上書きされる可能性があるため、直接編集しないでください。このファイル内のマッピングをオーバーライドするには、VisioUserMap.xmlという別のファイルを作成して編集します。

VisioMasterMap.xmlで定義されているデフォルトのマッピングを変更するには:

1. VisioUserMap_SAMPLE.xmlというファイルを探し、ファイル名をVisioUserMap.xmlに変更します。

2. 名前変更後のファイルを編集して変更を加えます。

このファイルにより、マスター・マップが拡張またはオーバーライドされます。

注意:

このファイルは、VisioUserMap.xmlという名前を付けて、VisioMasterMap.xmlファイルと同じディレクトリに配置する必要があります。

3. VisioMasterMap.xmlの解析後、Business Process ComposerはVisioUserMap.xmlが存在するかどうかを調べます。

その後、ルールを適宜変更します。

VisioUserMap.xmlには、VisioMasterMap.xmlファイルで定義されているデフォルトと同じルート要素(VisioMasterMap.xsdへの参照など)が含まれている必要があります。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>

注意:

VisioUserMap.xmlには、拡張されるエントリまたはオーバーライドされるエントリのみが含まれている必要があり、元のすべてのエントリを含めることはできません。

D.1.1 Visio図形のマッピング作業

Microsoft Visioは、あらゆる種類の図を描画できる作図ツールです。ただし、Business Process Composerにインポートできるのはプロセス・モデルのみです。Visioには各種のプロセス・モデリング・テンプレートやステンシルが含まれており、サード・パーティからも多数提供されているため、コンバータではVisioの各図形オブジェクト(四角形、線、多角形など) から対応するBPMNシンボルへのマッピングを試みます。これには、VisioMasterMap.xmlファイルとVisioUserMap.xmlファイルが使用されます。

ステンシルからVisioの図面ページに追加された各図形には、その作成元となったマスター・オブジェクトの名前がタグ付けされています。たとえば、VisioのユーザーがTaskという名前の複数の四角形の図形をステンシルからページ上にドラッグし、名前を変更しても、各図形にはTaskというマスター名が関連付けられています。これをVisioで確認するには、メニューから「Format」→「Special」を選択します。

注意:

メニュー・アイテムの「Format」→「Special」が表示されない場合は、「Tools」→「Options」→「Advanced」を選択し、「Run in developer mode」チェック・ボックスを選択します。このオプションがある場所は、ご使用のVisioのバージョンによって異なることがあります。

図形にマスターがない場合(「Drawing」ツールバーから直接描画された単純な四角形や円などのオブジェクトがこれに該当)、コンバータは図形の「Name」フィールドを参照します。このフィールドも「Format」→「Special」ダイアログで確認できます。

その後、Oracle Business Process Composerは、VisioUserMap.xmlとVisioMasterMap.xmlで図形のマスター名と一致するエントリを検索します。たとえば、図形のマスターがTaskならば、コンバータは次のマップ・エントリを探します。

<Master Name="task">    <BPMNObject>Task</BPMNObject>  </Master>

このエントリは、マスターがTaskの図形をすべてBPMNのTaskシンボルとしてインポートするようコンバータに指示しています。

注意:

マスター名は大文字と小文字が区別されません。したがって、taskはVisioのtask、TaskおよびTASKマスターと一致します。

マスター・マップ・エントリでは、追加のBPMNプロパティも定義できます。次のエントリは、VisioのgatewayというマスターをBPMNのGatewayシンボルにマッピングしていますが、BPMN属性値もいくつか設定しています。

<Master Name="gateway">    <BPMNObject>Gateway</BPMNObject>    <Attributes>      <Attribute Name="ExclusiveType" Value="Data"/>      <Attribute Name="GatewayType" Value="Exclusive"/>      <Attribute Name="MarkerVisible" Value="false"/>    </Attributes>  </Master>

属性は、BPMN標準の要件に基づいてテキスト、数値、またはブール値(true/false)に設定できます。

属性値を、Visio図形自体で定義されているプロパティから導出することも可能です。Visio 2010 BPMNステンシルのタスク図形に対する次のマスター・マップ・エントリでは、BPMN属性のTaskTypeとImplementationを対応する図形プロパティから設定しています。

<Master Name="Vis2010 Task" Extends="Vis2010 Activity">    <BPMNObject>Task</BPMNObject>    <Attributes>        <Attribute Name="TaskType" Value="Prop.BpmnTaskType" SrcType="visio" />        <Attribute Name="Implementation" Value="Prop.BpmnImplementation" SrcType="visio" />    </Attributes>  </Master>

XML属性の「srcType」は、属性値の解釈の仕方をコンバータに指示します。srcTypeをvisioに設定すると、値がVisioオブジェクトの「シェイプシート」で定義されていることを示します。Visio図形のシェイプシートを表示するには、図形を選択し、「Window」→「Show ShapeSheet」を選択します。最もよく使用されるプロパティは、「Custom Properties」と「User-defined Cells」のセクションで定義されています。これらは、接頭辞のPropとUserにそれぞれ対応しています。プロパティ名は、*.vdx形式で保存したVisioファイルのXMLタグ階層から導出することもできます。

D.1.1.1 条件付きマッピング

マスター・マップ・ファイルは、条件付きマッピングもサポートしています。これが有効なのは、2つの異なるVisioステンシルで同じマスター名を使用しながらも、異なるVisioプロパティを使用してBPMN属性値を格納する場合です。たとえば、次のエントリでは、TrisoTech BPMNステンシルのIntermediate Event図形がThrowingイベントかCatchingイベントかを、条件を使用して調べています。

<Master Name="Intermediate Event" Extends="Triso Object">    <BPMNObject>IntermediateCatchEvent</BPMNObject>    <Conditions>      <Condition Name="Direction" Value="Prop.direction" SrcType="visio" Equals="Catching" />    </Conditions>    <Attributes>      <Attribute Name="Trigger" Value="Prop.IntermediateEvent_trigger" SrcType="visio" />    </Attributes>        </Master>

NotNull (大文字/小文字は区別されません)という特殊な条件属性を使用すると、特定のVisioプロパティの有無を検査できます。次のマスター・マップ・エントリは、マスター名がStart Eventであり、Prop.StartEvent_Triggerというプロパティが含まれている場合に一致します。

<Master Name="Start Event">    <BPMNObject>Event</BPMNObject>    <Conditions>      <!-- this condition confirms that this is from Trisotech stencil -->      <Condition Name="Is Triso shape" Value="Prop.StartEvent_Trigger" SrcType="visio" Equals="NotNull" />    </Conditions>    <Attributes>      <Attribute Name="EventType" Value="Start" SrcType="bpmn" />      <Attribute Name="Trigger" Value="Prop.StartEvent_Trigger" SrcType="visio" />      <Attribute Name="isInterrupting" Value="Prop.StartEvent_Interrupting" SrcType="visio" />    </Attributes>        </Master>

同名のマスター・マップ・エントリが複数ある場合は、最初に見つかった、条件がすべて真のエントリが使用されます。どの条件付きエントリも一致しない場合は、そのマスター名に対する最初の無条件マスター・マップ・エントリが使用されます。VisioUserMap.xmlファイルが先に処理されます。したがって、一致するマスター・マップ・エントリがこのファイルにあれば、VisioMasterMap.xmlにある同名の他のエントリはすべて無視されます。

「*」という特殊なマスター・マップ・エントリ名を使用すると、すべてのマスターに一致します。これは必ず条件と一緒に使用してください。これは、図形を図に追加した後でBPMNオブジェクト・タイプを(たとえば、タスクからサブプロセスへ)変更できるVisioテンプレートで便利です。このシナリオでは、図形が別のシンボルに見えるように変更されても、図形マスターは元のマスターに設定されています。たとえば、次のエントリでは「*」ワイルドカードを使用し、図形のプロパティ値にのみ基づいてエントリと一致させています。

<Master Name="*" Extends="Vis2010 Task">    <Conditions>        <Condition Name="Activity Type" Value="Prop.BpmnActivityType" SrcType="visio" Equals="Task" />    </Conditions>  </Master>  <Master Name="*" Extends="Vis2010 Subprocess">    <Conditions>        <Condition Name="Activity Type" Value="Prop.BpmnActivityType" SrcType="visio" Equals="Sub-Process" />    </Conditions>  </Master>

Visioのマスター名または図形名がVisioUserMap.xmlまたはVisioMasterMap.xmlにあるどのエントリにも一致しない場合は、図形の属性を調べてBPMNオブジェクト・タイプが判断されます。基本ルールは次のとおりです。

- 図形がコネクタの場合(通常、他の図形の接続には線が使用されます)、SequenceFlowとしてインポートされます。

- テキストを含む四角形の図形で、枠と塗りつぶしの色がないものは、テキスト注釈としてインポートされます。

- 円または楕円の図形はイベントとしてインポートされます。

- 他の図形を囲む四角形は、その図形の境界を横断するシーケンス・フローがなければ、拡張サブプロセスとしてインポートされます。
四角形の境界内の図形にシーケンス・フローがつながっている場合は、BPMNのGroupシンボルとして扱われますが、Oracle BPMではGroupシンボルがサポートされていないため無視されます。

- 前述のルールに一致しない図形はタスクとしてインポートされます。

注意:

Visioの「Group」コマンドを使用して図形を組み合せるときは注意が必要です。これはVisioで複数の図形を移動して並べ変えるときに便利な機能ですが、図形のグループはインポート時に単一のオブジェクトとして扱われ、マスターがないため、コンバータが混乱し、単一のタスクとしてインポートされる可能性が高くなります。

D.1.2 Visioのモデリングに関するヒント

Visioファイルの作成時には次のヒントを考慮に入れてください。

- 適切なステンシルを使用する。

- すべての図形がマスター図形に基づくようにする。

- 他の図形とのコネクタはすべて両端で接合させる。

- 短い線をつなぎ合わせてフローを作成しない。
フローごとに1本の連続したコネクタを使用する。

- オブジェクトを手動でグループ化しない。

- 図形と線には、選択と入力によって必ずラベルを付ける。
独立したテキスト・ボックスを作成しない。

- BPMNオブジェクトに正確に対応付けられない新しいシンボルを作成しない。

- 使用するすべてのマスターがVisioMasterMap.xmlまたはVisioUserMap.xmlで定義されていることを確認する。

- オンページ・コネクタ、オフページ・コネクタ、リンク・イベントを使用しない。
これらはBPMでサポートされていません。

D.1.3 VisioUserMap.XMLの更新

この項では、VisioファイルをBPMNプロセスにインポートする場合に考えられるシナリオについて説明します。

VisioUserMap.xmlを更新する手順は次のとおりです。

この例では、マスターがReportの図形が、元のVisioファイルに含まれており、これをSendタスクにマップします。Reportは現在VisioMasterMap.xmlでマッピングされていないため、この図形は抽象タスクとしてインポートされます。デフォルトでは、VisioMasterMap.xmlはこの図形をSendタスクにマップします。それを入力オブジェクトまたは出力オブジェクトとして厳密に使用すると、BPMNデータ・オブジェクトへのマップがより正確になります。

1. VisioMasterMap.xmlファイルで、次のようなマスター定義を検索します。

<Master Name="document" Extends="task">
<Attributes>
<Attribute Name="TaskType" Value="Send"/>
</Attributes>
</Master>

この定義の後に、Like属性を使用して最初の定義をクローニングし追加のVisioオブジェクトをマップする、次のような追加のマスター要素が続きます。

<Master Name="sequential data" Like="data object"/>
<Master Name="data" Like="data object"/>
<Master Name="report" Like="report" />

2. VisioのReport要素のマッピングを追加または変更するには、VisioUserMap.xmlファイルに次のコードを追加します。

<Master Name="Report" Like="report"/>

次に示すように、Extends属性を使用して、オブジェクトを追加の属性または異なる属性とともに既存のBPMNオブジェクトにマップできます。

<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に追加されています。

D.1.4 BPMN要素の有効な値

<BPMNObject>要素の有効な値は次のとおりです。

- Task:

- UserTask

- ManualTask

- ReceiveTask

- SendTask

- ServiceTask

- ScriptTask

- BusinessRuleTask

- Subprocess:

- AdHocSubprocess

- CallActivity

- Event:

- StartEvent

- EndEvent

- IntermediateCatchEvent

- IntermediateThrowEvent

- BoundaryEvent

- Gateway:

- ExclusiveGateway

- InclusiveGateway

- ParallelGateway

- ComplexGateway

- EventBasedGateway

- DataObject:

- DataObjectReference

- Group:

- Annotation

- TextAnnotation

- Lane

- Pool:

- Participant

- MessageFlow

- SequenceFlow

- Association

- null

注意:

Null値をVisioの要素に割り当てると、BPMNフロー・オブジェクトは作成されません。

D.1.5 BPMN要素の属性

次の表は、BPMNフロー・オブジェクトの基本的なBPMNタイプに基づいた、BPMN属性の有効な値を示しています。

タスクの属性と値

表E-1はBPMNタスクの有効な属性と値を示しています。

表D-1 タスクの属性と値

属性

値

TaskType

None、Script、Reference、Service、User、Manual、Send、Receive

LoopType

Standard、MultiInstance

isForCompensation

true、false

Implentation

任意のテキスト

OperationRef

任意のテキスト

サブプロセスの属性と値

表D-2はBPMNサブプロセスの有効な属性と値を示しています。

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

属性

値

isExpanded

true、false

isATransaction

true、false

LoopType

Standard、MultiInstance

isForCompensation

true、false

AdHoc

true、false

IsCollapsed

true、false

SubprocessType

Embedded、Reusable、Reference

ExpandedWidth

数値

ExpandedHeight

数値

ModelReference

テキスト

CalledElement

テキスト

TriggeredByEvent

true、false

LoopMaximum

数値

LoopCounter

数値

LoopCondition

テキスト

MultiInstanceCondition

テキスト

MultiInstanceIsSequential

true、false

イベントの属性と値

表D-3はBPMNイベントの有効な属性と値を示しています。

表D-3 イベントの属性と値

属性

値

EventType

Start、Intermediate、End

Trigger

Escalate、None、Message、Timer、Conditional、Signal、Multiple、Error、Cancel、Compensation、Link、Terminate

EventDirection

Throw、Catch

IsInterrupting

true、false

CancelActivity

true、false

TimeCycle

テキスト

TimeDate

テキスト

ゲートウェイの属性と値

表D-4はBPMNゲートウェイの有効な属性と値を示しています。

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

属性

値

GatewayType

Parallel、Inclusive、Exclusive、Complex

ExclusiveType

Event、Data

MarkerVisible

true、false

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

表D-5はBPMNシーケンス・フローの有効な属性と値を示しています。

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

属性

値

ConditionType

None、Expression、Default

ConditionExpression

テキスト

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

表D-6はBPMNデータ・オブジェクトの有効な属性と値を示しています。

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

属性

値

Direction

None、One、Both

AssociationDirection

None、One、Both

プールの属性と値

表D-7はBPMNプールの有効な属性と値を示しています。

表D-7 プールの属性と値

属性

値

BoundaryVisible

true、false

IsHorizontal

true、false

レーンの属性と値

表D-8はBPMNレーンの有効な属性と値を示しています。

表D-8 レーンの属性と値

属性

値

BoundaryVisible

true、false

IsHorizontal

true、false

D.1.6 外部テキストの処理

Business Process Composerは、Visioファイルをインポートするとき、ソース・ファイルで見つかったプールごとに別々のプロセスを作成します。BPMNモデルでは可視のプール境界がないプロセスも表現できるため、Visioのプールやレーンの内側にない図形(凡例、タイトルなど)も個別のプロセスに追加されます。このため、プロセス・オブジェクトではない外部要素のみがBPMプロセスに格納される場合があります。このような図形が変換されないようにするには、該当する図形マスターをnullにマッピングするエントリをVisioUserMap.xml fileに追加します。これにより、コンバータに図形を無視させることが可能です。図形にマスターがない場合、コンバータはVisioの「Format Special」ダイアログで定義されている図形名と一致するエントリを探します。たとえば、VisioファイルにSheetNameという名前のオブジェクトが含まれている場合、その値をVisioUserMap.xmlでnullにマッピングすれば、インポート時に無視されます。

<Master Name="SheetName">
<BPMNObject>null</BpmnObject>
</Master>

D.2 XSLTを使用したXPDLインポートのカスタマイズ

XPDLとは、Workflow Management Coalitionが策定した、ワークフロー自動化ツール間でプロセス・モデル情報を交換するための互換形式です。BPMでは、XPDLバージョン1.0、2.0、2.1および2.2のインポートをサポートしています。

現在、XPDLをサポートしているプロセス・モデリング・ツールは多数ありますが、すべてのツールでこの標準が同じように実装されているわけではありません。Oracle BPMでは、公式のXPDL仕様(http://www.xpdl.orgから入手可能)に厳密に準拠したXPDLファイルをサポートしており、非準拠の形式についてはExtensible Stylesheet Language Transformation (XSLT)を使用してBPMの所定の形式に変換します。XPDLインポータは様々な拡張属性も認識します。これにより、一般的な相違に応じた特別な変換ロジックがトリガーされるので、複雑なXSLTロジックは必要ありません。

D.2.1 一般的な変換要件

最も一般的な変換内容は次のとおりです。

- オブジェクトの座標を親コンテナに対する相対座標から図面ページの左上隅に対する相対座標に調整する。

- オブジェクトの左上隅を表すようにオブジェクト座標を調整する。

- シーケンス・フローのルーティングを再作成する。

- 欠けている要素と属性を作成する。

- 要素を削除する。

- 要素と属性の値をベンダー固有の名前空間からXPDL名前空間に移動する。

D.2.2 変換ロジックの概要

この項では、いくつかの一般的な要件を処理する手順について説明します。ここに示す例は、何か他の要件が発生した場合にそれを処理する独自の変換ルールを作成する際の参考になります。

BPM Studioを使用してXPDLファイルをインポートするとき、インポート・プロセスは次のフォルダにある特殊なファイルを使用します。

ORACLE_HOME>/soa/plugins/jdeveloper/extensions/oracle.bpm.converter

XSLFilePaths.xmlファイルは、各種のベンダー形式と変換用の適切なXSLファイルの間のマッピングとして機能します。次に、このファイルのエントリの例を示します。

<XSLFilePath Vendor="Bizagi Process Modeler">BizagiPatch.xsl</XSLFilePath>

Vendor属性は、ソース・ファイル内のXML要素/Package/PackageHeader/Vendorと一致する必要があります。次に、上の行に一致するBizagi XPDLファイルの断片を例示します。

<?xml version="1.0" encoding="utf-8"?><Package xmlns:xsd=http://www.w3.org/2001/XMLSchema      xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance      Id="bf8a25f5-275d-4546-8d07-dfa02666c51d"           Name="Sample" xmlns="http://www.wfmc.org/2009/XPDL2.2">  <PackageHeader>    <XPDLVersion>2.2</XPDLVersion>    <Vendor>Bizagi Process Modeler</Vendor>    <Created>2013-07-29T19:17:31.931003-07:00</Created>    <ModificationDate>2013-07-29T19:18:53.207857-07:00</ModificationDate>    <Description>Phases</Description>    <Documentation />  </PackageHeader>

Vendor属性のかわりにCondition属性を指定して、有効なXPATH式を記述することもできます。ソース・ファイルの式の評価結果が真ならば、対応するXSLファイルが使用されます。次にCondition条件の使用例を示します。

<XSLFilePath Condition="substring(/Package/PackageHeader/Vendor/text(), 0, 22)='Metastorm ProVision 6'">ProvisionPatch.xsl</XSLFilePath>

この式では、Vendor属性の最初の22文字を文字列「Metastorm ProVision 6」と比較しています。この手法は、たとえばVendorとVersionの組合せを照合するときなどに利用できます。

特定のXSLファイルが識別されると、インポータはソース・ファイルに対してXSLT変換を適用してから、変換後のXMLをインポートします。ソース・ファイルと一致するVendorまたはConditionがない場合、インポータはpatch.xslファイルを使用します。

D.2.3 特殊な属性

XPDLインポータは、XPDLの拡張性機能を使用して定義されたオプションの属性を検索します。これらの属性は、XSLTとしてのコーディングが困難な特殊ケースを処理するための、インポータに対する指示として機能します。これらの属性は、次のように/Package/ExtendedAttributesセクションに配置されている必要があります。

<Package>       <Extended Attributes>              <ExtendedAttribute Name="attribute name" Value="value" />       <Extended Attributes></Package>

表D-9 拡張属性と有効な値

属性名

有効な値

デフォルト値

説明

redrawConnections

true、false

false

シーケンス・フローのパス属性を無視し、新しいパスをプログラムによって作成します。

activitiesObjectPin

Upperleft

Lowerleft

中央

Upperleft

アクティビティ(フロー・ノード)のXY座標がシンボルの四角形の境界の左上角、左下角または中心のいずれに対応しているかを示します。

lanesRelativeToPools

true、false

false

レーン・オブジェクトのXY座標がその親プールに対する相対座標であることを示します。

activitiesRelativeToLanes

true、false

false

アクティビティのXY座標がその親レーンに対する相対座標であることを示します。

activitiesRelativeToPools

true、false

false

アクティビティのXY座標がその親レーンに対する相対座標であることを示します。注意: activitiesRelativeToLanesとactivitiesRelativeToPoolsを両方ともtrueには設定できません。

subProcessChildPositionRelative

true、false

false

サブプロセスの内側にあるアクティビティのXY座標がそのサブプロセスに対する相対座標であることを示します。

recalculatePoolsAndLanesPositions

true、false

false

プールおよびレーンのXY座標を先行するプールおよびレーンの位置と高さに基づいて計算するようインポータに要求します。ソース・モデルにプールとレーンの位置座標が含まれていない場合は、この属性をtrueに設定する必要があります。

D.2.3.1 オブジェクト座標

XPDL仕様書には、すべてのオブジェクト座標は、オブジェクトの境界を示す四角形の左上角を、ページの左上角を起点(0,0)とするページ座標系で指定すると明記されています。次の例では、図D-1のプール1の高さを100単位、プール2の高さを200単位、プール2内の各レーンの高さを100単位とします。

図D-1 BPMNプロセスの例

XPDL仕様のグローバル座標系を使用すると、図中の各オブジェクトのXY座標は次のようになります。

- プール 1 - (0,0)

- プール 2 - (0, 200)

- レーン 1 - (40, 200)

- レーン 2 - (40, 300)

- タスク 1 - (175, 15)

- タスク 2 - (175, 215)

- タスク 3 - (325, 315)

すべての座標がページの左上角を基準としているので、これらの座標を指定しているソース・ファイルは、変換の必要なく正しくBPMにインポートされます。

XPDLに保存されるオブジェクト座標がその親プールおよびレーンに対する相対座標であるツールについて考えてみましょう。この場合、各座標は次のように表されます。

- プール 1 - (0,0)

- プール 2 - (0, 200)

- レーン 1 - (40, 0)

- レーン 2 - (40, 100)

- タスク 1 - (175, 15)

- タスク 2 - (175, 15)

- Task 3 - (325, 15)

プール2の中のレーン1のY座標が0であることに注目してください。このツールではレーンの位置を親プールに対する相対座標として保存するため、0という値はレーンの上端がプールの上端と一致することを示しています。同様にレーン2のY座標は100ですが、これはプールの上端から100単位下に位置することを示しています。

また、各タスクのY座標は15ですが、これは左上角がそれぞれのレーンの上端より15単位下にあることを示しています。

この図を正しくOracle BPMにインポートするには、次の拡張属性値を設定する必要があります。

D-10 拡張属性値

属性名

値

lanesRelativeToPools

true

activitiesRelativeToLanes

true

これらの属性をXPDLに追加するXSLTコードは次のとおりです。

<xsl:template match="Package/ExtendedAttributes">
<xsl:copy>        <xsl:copy-of select="@*"/>                <ExtendedAttribute Name="lanesRelativeToPools" Value="true"/>           <ExtendedAttribute Name="activitiesRelativeToLanes" Value="true"/>        <xsl:apply-templates/>                                    </xsl:copy>  </xsl:template>

少し異なるバリエーションとして、レーンは親プールに対する相対座標であるが、アクティビティは親レーンではなく親プールに対する相対座標である場合が考えられます。この場合、オブジェクト座標は次のようになります。

- プール 1 - (0,0)

- プール 2 - (0, 200)

- レーン 1 - (40, 0)

- レーン 2 - (40, 100)

- タスク 1 - (175, 15)

- タスク 2 - (175, 15)

- タスク 3 - (325, 115)

プール 1 - (0, 0)

タスク3のY座標が15でなく115である点のみが異なります。この場合は、拡張属性を次のように設定する必要があります。

表D-11 拡張属性と値

属性名

値

lanesRelativeToPools

true

activitiesRelativeToPools

true

D.2.3.2 アクティビティのローカル座標系

XPDL仕様では、アクティビティの位置は、ページ座標系上の境界を示す四角形の左上隅の位置であると規定されています。しかし、ツールの中には、オブジェクトの中心をページ上の位置とするものもあります。これはオブジェクトのローカル座標系と呼ばれます。

これを理解する最も簡単は方法として、絵はがきをコルク版に画鋲で留めるところを想像してみてください。画鋲がコルク版に開ける穴がコルク版上のはがきの位置を表します。コルク版の左端から画鋲までの距離を測るとX座標が得られ、コルク版の上端から画鋲までの距離を測るとY座標が得られます。ただし、画鋲をはがきに刺す位置そのものも、はがきの正確な位置決めに影響してきます。画鋲をはがきの左上角に刺した場合と、はがきの中心に刺した場合とでは、位置が異なるでしょう。

図D-1のBPMNの例で言えば、アクティビティの中心をローカルの画鋲位置とするXPDLツールでは、タスクの座標が次のようになります。

- タスク 1 - (220, 50)

- タスク 2 - (220, 250)

- タスク 3 - (370, 350)

X座標が右へ45単位シフトしており (タスクの枠の幅は90単位)、Y座標は各レーンの縦方向の中心に位置しています(高さは00単位)。

インポータではすべての座標は左上隅の位置を示すと想定しているため、XPDLツールがアクティビティのページ上の位置基準をアクティビティの中心としている場合、BPMへのインポート後に、アクティビティはその幅の半分右へ、高さの半分下へシフトされます。この補正を行うには、次の属性を設定する必要があります。

activitiesObjectPin CENTER

このためのXSLTコードは次のとおりです。

<xsl:template match="Package/ExtendedAttributes">    <xsl:copy>        <xsl:copy-of select="@*"/>                <ExtendedAttribute Name="activitiesObjectPin" Value="CENTER"/>        <xsl:apply-templates/>                                    </xsl:copy>  </xsl:template>

D.2.3.3 非表示要素の削除

Oracle BPMでは、ソースXPDLファイルのすべてのグラフィカル要素は、その可視性がfalseに設定されている場合でも表示要素とみなされます。したがって、次に示すアクティビティ要素のように、以前は非表示になっていた要素が変換後のBPMNプロセスでは表示されるという違いが見つかることがあります。

<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にインポートすると、このアクティビティが表示されます。非表示要素を削除するには、それらを削除するためのテンプレートをスタイルシートに追加してください。

<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>

D.2.3.4 独自の名前空間の処理

XPDLツールの中には、標準のXPDL名前空間のほかに独自の名前空間を使用するものもあります。これは多くの場合、ツールの特殊な機能や属性をサポートするためのものですが、XPDL名前空間に保存されるべき情報が独自の名前空間に保存されることがあります。

次のXPDLファイル・ヘッダーでは複数の名前空間を定義しています。

<?xml version="1.0" encoding="UTF-8"?>    <Package Id="1"     xsi:schemaLocation="http://www.wfmc.org/2004/XPDL2.0alpha http://www.wfmc.org/standards/docs/TC-1025_bpmnxpdl_24.xsd"     xmlns="http://www.wfmc.org/2004/XPDL2.0alpha"     xmlns:xs="http://www.w3.org/2001/XMLSchema"     xmlns:xpdl="http://www.wfmc.org/2004/XPDL2.0alpha"     xmlns:ix="http://www.igrafx.com/2007/igrafx-document"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:igxpdl="http://www.igrafx.com/2008/igrafx-xpdl2">

XMLドキュメントの本文では、標準XPDL要素のデフォルトの名前空間を使用していますが、ドキュメント・ページの定義にigxpdlという名前空間を使用しています。

<igxpdl:Page Name="Update Spreadsheet" ID="Page1" IgnorePools="true">      <PageLayout xmlns:i="http://www.igrafx.com/2007/igxmldoc" xmlns="http://www.igrafx.com/2007/igrafx-document">        <Page UseDocumentSettings="false" Orientation="Landscape" Width="16837" Height="11905">          <FitTo PagesWide="1" PagesTall="1" />        </Page>      </PageLayout>    </igxpdl:Page>    <igxpdl:Page Name="Submit Instructions" ID="Page2" IgnorePools="true">      <PageLayout xmlns:i="http://www.igrafx.com/2007/igxmldoc" xmlns="http://www.igrafx.com/2007/igrafx-document">        <Page UseDocumentSettings="false" Orientation="Landscape" Width="16837" Height="11905">          <FitTo PagesWide="1" PagesTall="1" />        </Page>      </PageLayout>    </igxpdl:Page>  </igxpdl:Pages>

XPDLインポータは、XPDL名前空間以外の名前空間を認識せず、その名前空間にPages要素が存在することを要求します。この要件に対応するには、独自の名前空間の要素から情報をコピーしてXPDLのPages要素を作成するXSLTテンプレートを作成します。

<xsl:template match="//xpdl21:Package">            <xsl:copy>                <xsl:copy-of select="@*"/>                <xsl:if test="child::igxpdl:Pages">                    <xsl:element name="Pages">                        <xsl:for-each select="//igxpdl:Pages/igxpdl:Page">                            <xsl:element name="Page">                                <xsl:attribute name="Id">                                    <xsl:value-of select="./@ID"/>                                </xsl:attribute>                                <xsl:attribute name="Name">                                    <xsl:value-of select="./@Name"/>                                </xsl:attribute>                            </xsl:element>                        </xsl:for-each>                    </xsl:element>                </xsl:if>                <xsl:apply-templates/>            </xsl:copy>        </xsl:template>

結果として、デフォルトの名前空間に次のような新しいセクションが追加されます。

<Pages>      <Page Id="Page1" Name="Update Spreadsheet" />      <Page Id="Page2" Name="Submit Instructions" /></Pages>

D.2.3.5 複数のXPDLバージョンのサポート

新バージョンのXPDLをサポートするためにアップグレードしたツールを使用している場合、様々なXPDL形式で保存したモデルが混在することがあります。複数のXPDLバージョンに対応したXSLTテンプレートを作成するには、場合によっては名前空間ごとにルールを組み込む必要があります。

たとえば、あるツールでファイルをXPDL 2.1形式で保存した後、XPDL 2.2形式で保存したとします。名前空間には、それぞれxpdl21、xpdl22という異なる値が使用されています。XSLTファイルでは、両方の名前空間を定義する必要があります。これらの名前空間は、ツールのXPDLファイルに出現するものと一致していることが必要です。

<xsl:stylesheet version="1.0"                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"                xmlns:xpdl21="http://www.wfmc.org/2008/XPDL2.1"                xmlns:xpdl22="http://www.wfmc.org/2009/XPDL2.2">

その後、名前空間ごとに別々のテンプレートを定義します。次に例を示します。

<!-- Set extended Attribute for xpdl 2.1 -->     <xsl:template match="xpdl21:Package/xpdl21:ExtendedAttributes">    <xsl:copy>        <xsl:copy-of select="@*"/>                <xpdl21:ExtendedAttribute Name="subProcessChildPositionRelative" Value="true"/>        <xpdl21:ExtendedAttribute Name="activitiesObjectPin" Value="CENTER"/>        <xsl:apply-templates/>                                    </xsl:copy>  </xsl:template>    <!-- Set extended Attribute for xpdl 2.2 -->    <xsl:template match="xpdl22:Package/xpdl22:ExtendedAttributes">    <xsl:copy>        <xsl:copy-of select="@*"/>                <xpdl22:ExtendedAttribute Name="redrawConnections" Value="true"/>        <xpdl22:ExtendedAttribute Name="subProcessChildPositionRelative" Value="true"/>        <xpdl22:ExtendedAttribute Name="activitiesObjectPin" Value="CENTER"/>        <xsl:apply-templates/>                                    </xsl:copy>  </xsl:template>

各XPDL形式のロジックは、要件次第で同じであっても違っていてもかまいません

D.2.3.6 XSLTのテストとデバッグ

XSLTの検証や対話型実行をサポートするOracle JDeveloperなどのプログラミングIDE (Interactive Development Environment)を使用してカスタムXSLTを作成し、テストすることを強くお薦めします。これにより、出力されたXPDLを確認しながら、簡単に問題を解決できます。Oracle JDeveloperでのXSLTの編集およびデバッグ方法を説明したデモを視聴するには、ブラウザで次のリンク先を参照してください。

http://www.oracle.com/technetwork/developer-tools/jdev/xml-viewlet-swf-089240.htmlhttp://www.oracle.com/technetwork/developer-tools/jdev/xml-viewlet-swf-089240.html

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

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

保証免責

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

制限付権利について

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

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 Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

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

第三者のコンテンツ、製品、サービスに対する免責事項

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

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、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)を参照してください。