Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

ビジネス・ルールについて

ビジネス・ルールを使用すれば、非技術系ユーザでも、特定の判断ポイントにおける Ensemble ビジネス・プロセスの動作を変更できます。ルールのロジックは、管理ポータルで Ensemble ルール・エディタを使用してすぐに変更できます。ルールの変更には、プログラミング・スキルやダイアグラミング・スキルは必要ありません。また、変更内容を有効化するために、プロダクション・コードを変更したり、コンパイルする必要はありません。以下の図は、ビジネス・ルールが機能するしくみについて示しています。

generated description: rule engine

ある企業では、Ensemble プロダクションを実行して、世界規模の企業全体のローン申し込みを一貫した方法で処理しているとします。判断のプロセスは全世界で共通していますが、銀行は、国ごとに地域条件を調整する必要があります。以下で説明するように、ビジネス・ルールは、この地域レベルでの責任範囲をサポートします。

  1. ビジネス・プロセスの開発者は、ビジネス・プロセスの代わりに判断を行うビジネス・ルールに名前を付けて、この判断ポイントを識別します。開発者が、ビジネス・プロセス言語 (BPL) コード内のそのビジネス・ルールのプレースホルダを活用するには、ビジネス・プロセス言語 (BPL) 要素 <rule> を呼び出します。<rule> 要素は、ビジネス・ルール名、および判断結果とその結果の理由 (オプション) を保持するパラメータを指定します。ここでは、このルールを LoanDecision と呼びます。

  2. BPL ビジネス・プロセス内に <rule> 要素が出現するたびに、プロダクション内に対応するルール定義が存在する必要があります。企業のユーザ (通常はビジネス・アナリスト) は、Ensemble ルール・エディタというブラウザベースのオンライン・フォームを使用してルールを定義できます。このフォームでは、ユーザにメッセージが表示され、LoanDecision と呼ばれるビジネス・ルールの定義で必要とされる簡単な情報を入力するように促します。この情報は、構成データベースに保存されます。

    Ensemble ルール・エディタに習熟している企業ユーザは、管理ポータルにあるこのエディタへのアクセス権を与えられていれば、ルール定義を変更できます。変更は単なるデータベースの更新であるため、実行中のプロダクションに即座に適用できます。したがって、各地域のビジネス・アナリストは、Ensemble ルール・エディタを実行してルールのコピーを変更することによって、それぞれの地域に適したその地域固有の基準を別途作成できます。

  3. 実行時には、BPL <rule> 文に到達すると、ビジネス・プロセスは、LoanDecision という名前のルールを呼び出します。ルールは、構成データベースから、地域ごとに異なる判断基準を取得します。これらの基準に基づいて、ルールは、ビジネス・プロセスに回答を返します。ビジネス・プロセスは、この回答に基づく実行パスをリダイレクトします。

  4. 進行中の保守が目的である場合については、ルールを変更する必要があっても、ビジネス・プロセス開発者が参加する必要はありません。どのルール定義もビジネス・プロセス・コードとは完全に分離されています。ルール定義は Ensemble の構成データベース内にクラスとして格納され、実行時に評価されます。また、ルール定義は、Ensemble インストール間でエクスポートおよびインポートできます。

    同様に、ビジネス・アナリストなどの企業ユーザは、ビジネス・プロセスの BPL またはクラス・コードの修正に必要なプログラミングの専門知識がなくても、判断ポイントでビジネス・プロセスのオペレーションを変更できます。

Ensemble には、以下に示す 4 種類のビジネス・ルール定義が用意されています。

  • 汎用ビジネス・ルール

  • HL7 メッセージ・ルーティング・ルール

  • 汎用メッセージ・ルーティング・ルール

  • 仮想ドキュメントのメッセージ・ルーティング・ルール

各タイプには、ルール・アシスト・クラスがそれぞれ関連付けられています。これらのアシスト・クラスによって、エディタの動作が制御され、編集作業中に右側のペインに [ルール・アシスタント] が表示されます。

定義対象のルールを作成し、ルール・セットにグループ化します。各ルール定義には 1 つ以上のルール・セットを割り当てます。各ルール・セットには、有効期間開始日時と終了日時を関連付けます。プロセスからのルールの呼び出し時には、常に 1 つのルール・セットのみが実行されます。

ビジネス・プロセス、データ変換、およびビジネス・ルールで使用可能なオプションが重複していることに注意してください。違いを確認する場合は、"Ensemble プロダクションの開発" の “ビジネス・ロジック・ツールの比較” を参照してください。

このドキュメントの以下の各章では、ビジネス・ルールの定義方法について取り上げ、Ensemble ルール・エディタを使用したルール・セットの作成および使用方法などについて説明するとともに、BPL とビジネス・プロセス・ルーティング・エンジンのそれぞれを使用したルールの呼び出し方法について説明します。

クラスとしてのルール

企業のビジネス・アナリストは、Ensemble, Ensemble ルール・エディタ を使用することによって、ビジネス・プロセスで行う論理的な決定を体系的に構築できます。この構築には、プログラミングのスキルは不要です。

ただし、その代わりにビジネス・プロセス開発者が、スタジオを使用してビジネスルールをクラスとして定義することもできます。以下の図は、この形式を示しています。

/// Business rule responsible for mapping an input location 
/// to "F" for Fahrenheit or "C" for Celsius temperature scale.
Class Demo.ZenService.Bproc.WeatherReport.TempScale Extends Ens.Rule.Definition
{

Parameter RuleAssistClass = "Ens.Rule.GeneralBusinessRuleAssist";

XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]
{
<ruleDefinition alias="" context="Demo.ZenService.Bproc.WeatherReport.Context">
<ruleSet name="" effectiveBegin="" effectiveEnd="">
<rule name="" disabled="false">
<when condition="(Location=&quot;US&quot;)||(Location=&quot;USA&quot;)">
<return>"F"</return>
</when>
<otherwise>
<return>"C"</return>
</otherwise>
</rule>
</ruleSet>
</ruleDefinition>
}

}

スタジオでビジネス・ルールをクラスとして開き、ドキュメントを編集して、変更内容を保存できます。スタジオで保存した変更内容は、すぐに Ensemble ルール・エディタで確認できます。変更内容が表示されない場合は、ページを更新してください。

パッケージ・マッピング・ルール・クラス

ルールはクラスであるため、他のネームスペースにマッピングできます。ルール・クラスを実際にマッピングする場合は、マッピングしたすべてのルール・クラスを使用先の各ネームスペースでリコンパイルすることによって、各ネームスペースでローカル・メタデータを確実に使用できるようにする必要があります。レガシー・ルールからアップグレードしたルールを使用している場合は、ルールのエイリアスが一意でないことに起因するコンパイル・エラーが発生することがあります。このようなコンパイル・エラーは手動で修正する必要があります。

詳細は、"Caché オブジェクトの使用法" の “パッケージ” の章で “パッケージ・マッピング” を参照してください。

FeedbackOpens in a new tab