この付録では、ルール・レポータAPIを使用して、ルール・ディクショナリの内容のリストまたはレポートを作成する方法について説明します。
この付録の内容は次のとおりです。
Oracle Business Rulesディクショナリが大きくなり、複雑さが増すと、ディクショナリの文書化およびルール・ディクショナリの内容についての他のユーザーとの伝達が重要になります。RuleReporter
クラスを使用すると、ルール・ディクショナリの内容に関するリストまたはレポートを作成できます。これらのレポートを使用して設計を文書化し、ディクショナリの内容について伝達できます。
ルール・レポータを使用するには、次の2つの方法があります。
コマンドラインでRuleReporter
を実行します。
JavaプログラムでRuleReporter
APIを使用して、カスタム・レポートを作成します。
ルール・レポータはMarkupBuilderクラスを使用してGroovyプログラミング言語で記述されているため、単にフォーマットが異なるHTMLが必要か、またはまったく別のマークアップ言語を使用するかに関係なく、カスタム・レポータを容易に作成できます。GroovyはJavaに類似した動的言語であり、JVM上で実行され、Javaオブジェクトとシームレスに相互作用します。
JDEV_INSTALL
/jdeveloper/soa/modules/oracle.rules_11.1.1/reporter.jar
ファイルには、スタイルシートoracle/rules/tools/reporter/style.css
が含まれています。このファイルをルール・レポータによって生成されるHTML出力ファイルと同じディレクトリに置くと、ページのレンダリングに使用される定義が提供されます。スタイルシートを変更して、HTMLレイアウトを変更できます。
RuleReporter
APIの詳細は、『Oracle Fusion Middleware Java API Reference for Oracle Business Rules』を参照してください。
コマンドラインまたはJava APIでルール・レポータを使用するには、クラスパスに必須JARファイルがすべて含まれている必要があります。
コマンドライン・スクリプトを実行すると、ディクショナリの内容をルール・レポートを使用して表示できます。
コマンドライン・スクリプトを実行すると、ディクショナリの内容をルール・レポートを使用して表示できます。
コマンドラインを使用してルール・レポータでディクショナリの内容をリスト表示する手順は、次のとおりです。
システム上でターミナル・シェル・ウィンドウを開きます。
例F-1に示すように、クラスパスを更新してRuleReporter
の依存性を含めます。
詳細は、第F.1.3項「ルール・レポータの依存Jarファイルに関する必知事項」を参照してください。
例F-1に示すように、次のコマンドラインでRuleReporter
を実行します。
java oracle.rules.tools.reporter.RuleReporter
DICT-NAME
DEST-FILE
LINK-PATHS
各項目の意味は次のとおりです。
DICT-NAME
: レポートの生成対象となるルール・ディクショナリの名前。
例: C:\JDeveloper\mywork\GradeApp\Grades\oracle\rules\grades\OracleRules1.rules
DEST-FILE
: 生成されたルール・レポータ出力の宛先ファイルの名前。通常は拡張子.html
が付きます。
例: C:\Temp\report.html
LINK-PATHS
: ファイル・システムにおいて、DICT-NAME
のリンク先となるディクショナリが含まれている可能性のある場所のリスト。
例: C:\Temp
DICT-NAME
がどのディクショナリにもリンクしない場合でも、パスは1つ以上指定する必要があります。
例F-1に、ディクショナリに関するレポートの生成方法を示します。
例F-1 コマンドラインでのRuleReporterの実行
C:\> set CLASSPATH=%CLASSPATH%;C:\Oracle\Middleware\jdeveloper\modules\oracle.adf.model_ 11.1.1\adfm.jar;C:\Oracle\Middleware\jdeveloper\modules\oracle.adf.model_ 11.1.1\groovy-all-1.5.4.jar;C:\Oracle\Middleware\wlserver_ 10.3\server\lib\ojdbc6.jar;C:\Oracle\Middleware\jdeveloper\soa\modules\oracle.rules_ 11.1.1\rules.jar;C:\Oracle\Middleware\jdeveloper\modules\oracle.xdk_11.1.1\xmlparserv2.jar C:\> java oracle.rules.tools.reporter.RuleReporter C:\JDeveloper\mywork\GradeApp\Grades\oracle\rules\grades\OracleRules1.rules C:\Temp\report.html C:\Temp
必要に応じて、JDEV_INSTALL
/jdeveloper/soa/modules/oracle.rules_11.1.1\reporter.jar
ファイルのoracle/rules/tools/reporter/style.css
を
HTML出力ファイルと同じディレクトリにコピーします。この例では、style.css
ファイルをC:/Temp
にコピーします。
これにより、Webブラウザでは、この定義を使用してページがレンダリングされます。図F-1に示すように、このスタイルシートを変更してHTMLの視覚的レイアウトを変更できます。
oracle.rules.tools.reporter.RuleReporter
クラスを使用すると、Javaアプリケーションを使用してディクショナリの内容に関する基本的なレポートをすばやく容易に作成できます。
RuleReporter
クラスを使用すると、ディクショナリの内容をリスト表示できます。このクラスoracle.rules.tools.reporter.RuleReporter
は、次に示すように、いくつかの引数を使用します。
RuleReporter ruleReporter = new RuleReporter(DICT-NAME
,DEST-FILE
,LINK-PATHS
);
各項目の意味は次のとおりです。
DICT-NAME
: レポートの生成対象となるルール・ディクショナリの名前。
例: C:\\JDeveloper\\mywork\\GradeApp\\Grades\\oracle\\rules\\grades\\OracleRules1.rules
DEST-FILE
: 生成されたルール・レポータ出力の宛先ファイルの名前。通常は拡張子.html
が付きます。
例: C:\\Temp\\report.html
LINK-PATHS
: ファイル・システムにおいて、DICT-NAME
のリンク先となるディクショナリが含まれている可能性のある場所のリスト。
例: new ArrayList<String>(Arrays.asList("C:\\Temp"))
DICT-NAME
がどのディクショナリにもリンクしない場合でも、パスは1つ以上指定する必要があります。
これらの引数を指定してRuleReporter.report()
メソッドを呼び出すと、指定したディクショナリのディクショナリ・レポートが生成されます。
Javaを使用してルール・レポータでディクショナリの内容をリスト表示する手順は、次のとおりです。
Oracle JDeveloperを起動します。Oracle JDeveloperの開始ページが表示されます。
「アプリケーション・ナビゲータ」で、アプリケーションを作成していない場合は「新規アプリケーション」をクリックします。アプリケーションを作成している場合は、「アプリケーション」をクリックしてリストから「新規アプリケーション」を選択します。
「アプリケーションの作成」ウィザードで、アプリケーションの名前と場所を入力します。
「アプリケーション名」フィールドに、アプリケーション名を入力します。たとえば、ReportApplication
と入力します。
ディレクトリ名を入力または参照するか、デフォルトを使用します。
アプリケーション・パッケージ接頭辞を入力するか、デフォルトの接頭辞なしを受け入れます。
この接頭辞はグローバルで一意である必要があり、通常は自社が所有しているドメイン名を使用します。この接頭辞とそれに続くピリオドは、アプリケーションの初期プロジェクトで作成されるオブジェクトに適用されます。
このサンプルでは、接頭辞com.example
を使用します。
このOracle Business Rulesプロジェクトの場合、図F-2に示すように、アプリケーション・テンプレートとして「汎用アプリケーション」を選択します。
「次へ」をクリックします。
図F-3に示すように、「汎用アプリケーションの作成 - 「汎用」プロジェクトの名前付け」ページで、プロジェクトの名前および場所を入力します。
「プロジェクト名」フィールドに、アプリケーション名を入力します。たとえば、ReportProject
と入力します。
ディレクトリ名を入力または参照するか、デフォルトを使用します。
「プロジェクト・テクノロジ」タブの「選択可能」リストで「Java」を選択し、「追加」をクリックして「選択済」領域に追加します。
「終了」をクリックします。
Oracle JDeveloperで、「ReportProject」というプロジェクトを選択します。
右クリックしてリストから「プロジェクト・プロパティ」を選択します。
「ライブラリとクラスパス」項目を選択します。
ライブラリのAdfm Designtime API、JAXB、ADF Model Runtime、Oracle XML Parser v2、Oracle JDBCおよびOracle Rulesを追加します。
「OK」をクリックします。
Oracle JDeveloperで、「ReportProject」というプロジェクトを選択します。
右クリックし、リストから「新規」を選択します。
「新規ギャラリ」の「カテゴリ」領域で「一般」を選択します。
「新規ギャラリ」の「項目」領域で「Javaクラス」を選択します。
「OK」をクリックします。
図F-4に示すように、「Javaクラスの作成」ウィンドウで次のプロパティを構成します。
「名前」に値Report
を入力します。
次のチェック・ボックスを選択します。
パブリック
mainメソッド
「OK」をクリックします。
例F-2に示すように、Oracle JDeveloperにJavaクラスが表示されます。
例F-3に示すように、RuleReporter
クラスを使用します。RuleReporter
コンストラクタの最初の引数を、ディクショナリの場所で置き換えます。
例F-3 完成したReport.java
package com.example; import java.util.List; import java.util.Arrays; import java.util.ArrayList; import oracle.rules.sdk2.exception.SDKException; import oracle.rules.tools.reporter.RuleReporter; public class Report { public Report() throws SDKException { try { RuleReporter ruleReporter = new RuleReporter( "C:\\JDeveloper\\mywork\\GradeApp\\Grades\\oracle\\rules\\grades\\OracleRules1.rules", "C:\\Temp\\report.html", Arrays.asList("C:\\Temp") ); ruleReporter.report(); } catch (Exception e) { System.out.println(e); } } public static void main(String[] args) throws SDKException { Report report = new Report(); } }
「アプリケーション・ナビゲータ」で、「ReportProject
」を右クリックして「メイク」を選択します。
「アプリケーション・ナビゲータ」で、「Report.java
」を右クリックして「実行」を選択します。
この例では、Report.java
クラスでC:\Temp\report.html
にレポートが生成されます。
必要に応じて、JDEV_INSTALL
/jdeveloper/soa/modules/oracle.rules_11.1.1\reporter.jar
ファイルのoracle/rules/tools/reporter/style.css
スタイルシートをHTML出力ファイルと同じディレクトリにコピーします。この例では、style.css
ファイルをC:/Temp
にコピーします。
これにより、Webブラウザでは、この定義を使用してページがレンダリングされます。図F-5に示すように、このスタイルシートを変更してHTMLの視覚的レイアウトを変更できます。