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?

XML 仮想ドキュメントのルール・セットの定義

この章では、ビジネス・プロセスで使用できるように、XML 仮想ドキュメントのルール・セットを作成する方法を示します。以下のトピックについて説明します。

ルール・セットを使用するようにビジネス・プロセスを構成するには、その [ビジネスルール名] 設定を指定します。前述した “XML 仮想ドキュメントを処理するためのビジネス・プロセスの追加” を参照してください。

ルール・セットの作成

XML 仮想ドキュメントのルール・セットを作成するには、以下の操作を行います。

  1. 必要に応じて、1 つまたは複数の適用可能な XML スキーマを Ensemble にロードします。

    このドキュメントで前述した “Ensemble への XML スキーマのロード” を参照してください。

  2. "ビジネス・ルールの開発" の説明に従って、管理ポータルまたはスタジオでルール・セット・エディタを使用します。

  3. ルール・セットの基本的な定義については、[タイプ][仮想ドキュメントのメッセージ・ルーティング・ルール] を使用します。

    この選択によって、[コンテキスト・クラス]EnsLib.MsgRouter.VDocRoutingEngineOpens in a new tab に設定されます。また、[ルール・アシスト・クラス]EnsLib.MsgRouter.VDocRuleAssistOpens in a new tab が設定されます。

  4. ルール・セットで何らかのルールの制約がある場合、以下の値を使用します。

    • [メッセージ・クラス] で、Ensemble で XML 仮想ドキュメントを示すための [EnsLib.EDI.XML.Document] を使用します。

    • [スキーマ・カテゴリ] で、必要に応じて Ensemble に事前にロードした XML スキーマを選択します。

      スキーマをロードしていない、またはスキーマを使用したくない場合は、この値を空白のままにしてください。

    • [ドキュメント名] で、必要に応じてそのスキーマで定義されているドキュメント・タイプを選択します。

      [スキーマ・カテゴリ] を指定していない場合は、この値を空白のままにしてください。

  5. このドキュメントで前述したように、XML プロパティ・パスを使用して、通常どおりルールを作成します。これには、以下の 2 つの基本的なシナリオがあります。

    • スキーマをロードし、ターゲット・ドキュメント・タイプを指定済みの場合は、Document を入力し始めると式編集機能による支援が得られます。

      generated description: rule assist

      これらのプロパティ・パスは、スキーマ依存パスであることに注意してください。ただし、何らかの理由で DOM スタイル・パスを使用する必要がある場合は、そのように編集することもできます。

    • スキーマをロードしておらず、ドキュメント・タイプを指定済みでない場合は、このパスを手動で入力する必要があります。スキーマ依存パスまたは DOM スタイル・パスのいずれかを使用できます。

ルール・セットを保存してコンパイルすると、ビジネス・プロセスで使用できるようになります。

以下に、単純なルール・セットのクラス定義を紹介します。このルール・セットには DOM スタイル・パスを使用する 1 つのルールが含まれており、<Patient> ドキュメントの <MRN> 要素がチェックされます。このルールでは、戻り値に応じてメッセージが FileOut1 または FileOut2 にルーティングされます。この場合、このルールの制約は XML スキーマまたはタイプを参照しないことに注意してください。

Class Demo09.MyRules Extends Ens.Rule.Definition
{

Parameter RuleAssistClass = "EnsLib.MsgRouter.VDocRuleAssist";

XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]
{
<ruleDefinition alias="" context="EnsLib.MsgRouter.VDocRoutingEngine">
<ruleSet name="" effectiveBegin="" effectiveEnd="">
<rule name="CheckMRN" disabled="false">
<constraint name="msgClass" value="EnsLib.EDI.XML.Document"></constraint>
<when condition="Document.{/$2:Patient/$2:MRN}=&quot;123456789&quot;">
<send transform="" target="FileOut1"></send>
<return></return>
</when>
<when condition="Document.{/$2:Patient/$2:MRN}!=&quot;123456789&quot;">
<send transform="" target="FileOut2"></send>
<return></return>
</when>
</rule>
</ruleSet>
</ruleDefinition>
}

}
FeedbackOpens in a new tab