Oracle® Fusion Middleware Oracle Business Process Managementによるビジネス・ルールの設計 12c (12.2.1.1) E79348-01 |
|
前 |
次 |
この章では、Oracle JDeveloperを使用して、ルール対応非SOA Java Enterprise Edition (EE)アプリケーションを作成する方法について説明します。また、Oracle Business Rulesを使用してJava EEアプリケーションとして動作するサンプル・アプリケーションJava Servletについて説明します(SOAコンポジットなしのOracle Business Rulesの使用方法を説明します)。
この章の内容は以下のとおりです。
Oracle Business Rules固有のサンプルとSOAのサンプルのソースコードは、Oracle SOA Suiteのサンプル・ページからオンラインで入手できます。
等級アプリケーションは、Java Servlet内Oracle Business Rulesのサンプル使用を示しています。サーブレットでは、Rules SDKデシジョン・ポイントAPIが使用されます。
このサンプルは、次のことを示しています。
データ・モデルの入力データ、出力データおよびファクトを定義するXSDスキーマを使用した、Oracle Business Rulesディクショナリへのルールの作成。この場合、ファイルgrades.xsd
でXSDスキーマを指定します。
入力である各テスト・スコアについて、等級の判別にOracle Business Rulesを使用するサーブレットの作成。
入力であるテスト・スコアを提供して、データを等級サーブレットに送信するためのテスト・ページの作成。
アプリケーションのデプロイと実行、テスト値の送信および出力の表示。
もう1つの例があります。詳細は、「レンタカー・サンプル・アプリケーションとプロジェクトを開く方法」を参照してください。
次の手順に従って、等級サンプル・アプリケーションを作成できます。
注意:
スクリーン・ショットは、前のバージョンを反映していますが、内容は現在のリリースにも当てはまります。
等級サンプル・アプリケーション用のアプリケーションおよびプロジェクトを作成する手順は、次のとおりです。
Fusion Webアプリケーション(ADF)を作成します。
アプリケーション内でプロジェクトを作成します。
データ・モデルの入力、出力およびオブジェクトを定義するスキーマを追加します。
プロジェクト内でOracle Business Rulesディクショナリを作成します。
Oracle Business Rulesで作業しJava EEアプリケーションを作成するには、まずOracle JDeveloperでアプリケーションを作成する必要があります。
Fusion Webアプリケーション(ADF)を作成する手順は、次のとおりです。
アプリケーションを作成します。そのためには、「アプリケーション・ナビゲータ」で「新規アプリケーション」を選択するか、または「アプリケーション」メニューのリストから「新規アプリケーション」を選択します。
「アプリケーションの名前付け」ダイアログで、図9-1に示すようにアプリケーションのオプションを入力します。
「アプリケーション・テンプレート」領域で「Fusion Web Application」を選択します。
「アプリケーション名」フィールドに、アプリケーション名を入力します。たとえば、GradeApp
と入力します。
「ディレクトリ」フィールドで、ディレクトリ名を指定するか、またはデフォルトを使用します。
「アプリケーション・パッケージの接頭辞」フィールドに、アプリケーション・パッケージの接頭辞を入力します。たとえば、com.example.grades
と入力します。
この接頭辞とそれに続くピリオドは、アプリケーションの初期プロジェクトで作成されるオブジェクトに適用されます。
「終了」をクリックします。アプリケーションを作成すると、図9-2に示すようなファイルのサマリーがOracle JDeveloperに表示されます。
Oracleソフトウェアには、http://www.oracle.com/accessibility/standards.html
にある標準の解説を使用した、Web Content Accessibility Guidelines (WCAG) 1.0 Level AAの標準が実装されています。
ADF Facesのユーザー・インタフェース・コンポーネントには、視覚的および身体的な障害のあるユーザーのために、組込みのアクセシビリティ・サポートが用意されています。スクリーン・リーダーのような非視覚的なメディアへのレンダリングを行うWebブラウザなどのユーザー・エージェントにより、コンポーネントのテキスト説明が読み上げられ、障害を持つユーザーに有益な情報が提供されます。アクセス・キー・サポートは、キーボードのみを使用してコンポーネントやリンクにアクセスする代替の方法を提供します。ADF Facesのアクセシビリティ監査ルールにより、アクセス可能なHTMLマークアップを使用して、アクセス可能なイメージ、表、フレーム、フォーム、エラー・メッセージおよびポップアップ・ウィンドウの作成が指示されています。
アクセス可能なADF Facesページの開発方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』のアクセス可能なADF Facesページの開発に関する項を参照してください。
等級サンプル・アプリケーションでは、ModelまたはViewControllerプロジェクトは使用しません。等級サンプル・プロジェクト用にアプリケーションでプロジェクトを作成します。
Gradesプロジェクトを作成する手順は、次のとおりです。
GradeAppアプリケーションで、「アプリケーション・ナビゲータ」の「アプリケーション」メニューから「新規プロジェクト」を選択します。
「新規ギャラリ」の「項目」領域で、「汎用プロジェクト」を選択します。
「OK」をクリックします。
「プロジェクトの名前付け」ページで、図9-3に示すように値を入力します。
「プロジェクト名」フィールドに名前を入力します。たとえば、Grades
と入力します。
ディレクトリ名を入力または参照するか、デフォルトを使用します。
「プロジェクト・テクノロジ」タブを選択します。
「使用可能」領域で「ADFビジネス・コンポーネント」をダブルクリックして、この項目を「選択済」領域に移動します。これにより、図9-3に示すようにJavaも「選択済」領域に追加されます。
「終了」をクリックします。これにより、Gradesプロジェクトが追加されます。
Gradesサンプル・アプリケーションを作成するには、次に示すサンプルのgrades.xsd
スキーマのように、grades.xsd
ファイルを使用する必要があります。スキーマ・ファイルをローカルで作成し保存してから、Oracle JDeveloperを使用してファイルをプロジェクトにコピーできます。
<?xml version= '1.0' encoding= 'UTF-8' ?> <xs:schema targetNamespace="http://example.com/grades" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://example.com/grades" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:extensionBindingPrefixes="xjc" jaxb:version="2.0"> <xs:element name="TestScore"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="testName" type="xs:string"/> <xs:element name="testScore" type="xs:double"/> <xs:element name="testCurve" type="xs:double"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="TestGrade"> <xs:complexType> <xs:sequence> <xs:element name="grade" type="tns:Grade"/> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="Grade"> <xs:restriction base="xs:string"> <xs:enumeration value="A"/> <xs:enumeration value="B"/> <xs:enumeration value="C"/> <xs:enumeration value="D"/> <xs:enumeration value="F"/> </xs:restriction> </xs:simpleType> </xs:schema>
XMLスキーマをGradesプロジェクトに追加する手順は、次のとおりです。
Oracle JDeveloperでプロジェクトを作成した後、Gradesプロジェクト内でビジネス・ルールを作成します。
ビジネス・ルールをOracle JDeveloperで使用する手順は、次のとおりです。
ビジネス・ルールをプロジェクトに追加し、grades.xsd
スキーマをインポートします。
入力変数と出力変数を作成します。
プロジェクト内でOracle Business Rulesディクショナリを作成します。
ビジネス層にビジネス・ルール・ディクショナリを作成する手順は、次のとおりです。
新しいディクショナリのビジネス・ルール検証ログ領域に、検証警告がいくつか表示されることに注意してください。これらの検証警告メッセージは、後のステップでディクショナリを変更すると消去されます。
次の手順に従って、等級サンプル・アプリケーション用のデータ・モデル要素とルールを作成します。
等級サンプル・アプリケーション用にデータ・モデルとビジネス・ルールを作成する手順は、次のとおりです。
等級用値セットを作成します。
等級用デシジョン表の追加によるルールの作成
デシジョン表の分割およびルールに対するアクションの追加
デフォルトのデシジョン関数名の変更
この例では、ファクト・タイプと値セットを関連付けます。これは、(デシジョン表の条件について)デシジョン表の各セルについて値の描画方法を指定する値セットを定義する必要があるデシジョン表の使用をサポートしています。
等級サンプル・アプリケーション用の値セットを作成する手順は、次のとおりです。
Grade Scale
と入力し、[Enter]を押してその値セット名を受け入れます。デシジョン表を作成する準備のため、グローバル値セットをデータ・モデル内のファクト・プロパティに関連付けることができます。これにより、デシジョン表の作成時に、デシジョン表の「条件」領域にある条件セルで値セットを使用できるようになります。
値セットをファクト・プロパティに関連付ける手順は次のとおりです。
デシジョン表で、入力ファクトを処理して出力ファクトを生成するか、暫定的な結論を生成するため、ルールを作成します。暫定的な結論は、Oracle Business Rulesにより他のルールを使用するか別のデシジョン表内でさらに処理できます。
このアプリケーションでルールにデシジョン表を使用するには、テスト・スコアを表すファクトで作業します。次に、デシジョン表を使用して、テスト・スコアに基づいて等級を生成するルールを作成します。
等級アプリケーション用のデシジョン表を追加する手順は、次のとおりです。
testScore
」を選択します。これにより、条件C1の式TestScore.testScore
が入力されます。 ルール検証ログを表示すると、警告メッセージが表示されます。これらの警告メッセージは、後のステップでデシジョン表を変更すると削除されます。
デシジョン表にアクションを追加する手順は、次のとおりです。
新しいGradeファクトをアサートするため、デシジョン表にアクションを追加します。
次に、デシジョン表にルールを追加し、ルールごとにアクションを指定します。
デシジョン表の分割操作を使用して、デシジョン表の条件行に関連付けられた値セットに関するルールを作成できます。これにより、値ごとに1つルールが作成されます。
デシジョン表を分割するには、デシジョン表で、「表の分割」ボタンをクリックし、リストから「表の分割」を選択します。分割操作により、考慮されないセルが表から消去されます。図9-10に示すように、これで表にはすべての範囲を対象とする5つのルールが表示されています。
これらのステップでは、欠落している式があるアクション・セルに関する検証警告が生成されます。これらの問題は、後のステップで各ルールに対するアクションを定義する際に修正します。
デシジョン表内のルールごとにアクションを追加する手順は、次のとおりです。
デシジョン表の「アクション」領域で、各アクション・セルのTestGradeに関連付けられているgradeプロパティの結果の値を指定します。各gradeプロパティに可能な選択肢は、有効な等級です。このステップでは、各ルールについて値を入力します。入力した値は、デシジョン表の各ルールを構成する条件に対応します。
Rules SDKデシジョン・ポイントでデシジョン関数を使用するときに指定する名前は、ディクショナリ内のデシジョン関数の名前と一致する必要があります。名前を一致させるために、デシジョン関数を任意の名前に変更できます。この例では、デフォルトのデシジョン関数をGradesDecisionFunction
という名前に変更します。
デシジョン関数の名前を変更する手順は、次のとおりです。
「名前」
フィールドでデシジョン関数名を編集し、値GradesDecisionFunctionを入力して[Enter]を押します。等級サンプル・アプリケーションには、Rules Engineを使用するサーブレットが含まれています。
このサーブレットをOracle Business Rulesで追加するには、重要なRules SDKメソッドを理解する必要があります。したがって、ルール・デザイナで作成したOracle Business Rulesディクショナリを使用する手順は、次のとおりです。
サーブレットのinit
ルーチンで1度実行する初期化ステップの作成
Rules SDKデシジョン・ポイントAPIを使用したサーブレットのservice
ルーチンの作成
サーブレット・コードをプロジェクトに追加するステップの実行
Rules SDKデシジョン・ポイントAPIの詳細は、「スタンドアロン(非SOA/BPM)シナリオでのルールの使用」を参照してください。
「HTTPサーブレット作成」ウィザードを使用して、Gradesプロジェクトにサーブレットを追加します。
Oracle JDeveloperでGradesプロジェクトにサーブレットを追加する手順は、次のとおりです。
前の例には、MDSリポジトリを使用してディクショナリにアクセスするOracle Business Rulesデシジョン・ポイントが含まれています。詳細は、「本番環境でのデシジョン・ポイントの使用に関する必知事項」を参照してください。
等級サンプル・アプリケーションに示すようにサーブレットを追加するときは、次の点に注意します。
init()
メソッドでは、Oracle Business Rules用にサーブレットでRules SDKデシジョン・ポイントAPIが使用されます。デシジョン・ポイントAPIの使用方法の詳細は、「スタンドアロン(非SOA/BPM)シナリオでのルールの使用」を参照してください。
DecisionPointBuilder()
では、次に示すように、デシジョン関数名を含む引数が必要であり、本番環境でMDSリポジトリ内のディクショナリにアクセスするためのディクショナリFQNが必要です。
m_decisionPoint = new DecisionPointBuilder() .with(DF_NAME) .with(DICT_FQN)
デシジョン・ポイントAPIの使用方法の詳細は、「スタンドアロン(非SOA/BPM)シナリオでのルールの使用」を参照してください。
次の手順に従って、等級サンプル・アプリケーション用のHTMLテスト・ページを作成します。
等級サンプル・アプリケーションには、「Rules SDKコールを含む等級アプリケーションのサーブレットの追加」で作成したサーブレットを起動するために使用するHTMLテスト・ページが含まれています。
サーブレットにHTMLページを追加するには、「HTMLファイルの作成」ウィザードを使用します。
HTMLテスト・ページを追加する手順は、次のとおりです。
ビジネス・ルールは、Oracle JDeveloperでデプロイメント・プロファイルの作成対象となるアプリケーションの一部としてデプロイされます。
アプリケーションのデプロイ先はOracle WebLogic Serverです。
JDeveloperをOracle WebLogic Serverとともに使用して、GradeAppサンプル・アプリケーションをデプロイします。
等級サンプル・アプリケーション用のWARファイルを作成する手順は、次のとおりです。
「アプリケーション・ナビゲータ」で、「Grades」プロジェクトを選択します。
Gradesプロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。プロジェクトの「プロジェクト・プロパティ」ダイアログが表示されます。
図9-17に示すように、「プロジェクト・プロパティ」ナビゲータで「デプロイ」項目を選択します。
「プロジェクト・プロパティ」ダイアログで、「新規」をクリックします。
「デプロイメント・プロファイルの作成」ダイアログが表示されます。
「デプロイメント・プロファイルの作成」ダイアログの「アーカイブ・タイプ」で、リストから「WARファイル」を選択します。
図9-18に示すように、「デプロイメント・プロファイルの作成」ダイアログの「名前」フィールドにgrades
と入力します。「名前」の値には、「等級サンプル・アプリケーション用HTMLテスト・ページの追加」の手順8でform
要素のaction
属性に指定したパッケージ値を使用することに注意してください。
「OK」をクリックします。
「WARデプロイメント・プロファイルのプロパティの編集」ダイアログが表示されます。
「WARデプロイメント・プロファイルのプロパティの編集」ダイアログで「一般」を選択し、図9-19に示すように「一般」ページを構成します。
「WARファイル」をC:\JDeveloper\mywork\GradeApp\Grades\deploy\grades.war
に設定します。
「Webアプリケーションのコンテキスト・ルート」領域で、「Java EE Webコンテキスト・ルートを指定」を選択します。
「Java EE Webコンテキスト・ルートを指定」のテキスト入力領域に、grades
と入力します。
「デプロイメント・クライアントの最大ヒープ・サイズ[単位:MB]」で、リストから「自動」を選択します。
「WARデプロイメント・プロファイルのプロパティの編集」ダイアログで「OK」をクリックします。
図9-20に示すように、JDeveloperによりgrades (WAR File)
というデプロイメント・プロファイルが作成されます。
「プロジェクト・プロパティ」ダイアログで、「OK」をクリックします。
これで、等級サンプル・アプリケーションをOracle WebLogic Serverにデプロイして実行できるようになりました。