ビジネス・ルールの開発

intersystems.com
  • No tags were found...

ビジネス・ルールの開発

ビジネス・ルールの 開 発Ensemble Version 2013.1 2013 年 07 月 02 日Copyright © 2012 InterSystems CorporationAll rights reserved.このドキュメントは、 Sun Microsystems、RenderX Inc.、 アドビ システムズ および ワールドワイド・ウェブ・コンソーシアム(www.w3c.org)のツールと情 報 を 使 用 して、 Adobe Portable Document Format (PDF)で 作 成 およびフォーマットされました。 主 要 ドキュメント 開 発 ツールは、InterSystemsが 構築 したCacheéと Javaを 使 用 した 特 別 目 的 のXML 処 理 アプリケーションです。, ,Caché WEBLINK, Distributed Cache Protocol, M/SQL, M/NET および M/PACT は InterSystems Corporation の 登 録 商 標 です。, , and ,InterSystems TrakCare, InterSystems Jalapeño Technology, Enterprise Cache Protocol, ECP および InterSystems Zen は InterSystems Corporation の登 録 商 標 です。ここで 使 われている 他 の 全 てのブランドまたは 製 品 名 は、 各 社 および 各 組 織 の 商 標 または 登 録 商 標 です。このドキュメントは、インターシステムズ 社 ( 住 所 :One Memorial Drive, Cambridge, MA 02142)あるいはその 子 会 社 が 所 有 する 企 業 秘 密 および 秘 密情 報 を 含 んでおり、インターシステムズ 社 の 製 品 を 稼 動 および 維 持 するためにのみ 提 供 される。この 発 行 物 のいかなる 部 分 も 他 の 目 的 のために 使用 してはならない。また、インターシステムズ 社 の 書 面 による 事 前 の 同 意 がない 限 り、 本 発 行 物 を、いかなる 形 式 、いかなる 手 段 で、その 全 てまたは一 部 を、 再 発 行 、 複 製 、 開 示 、 送 付 、 検 索 可 能 なシステムへの 保 存 、あるいは 人 またはコンピュータ 言 語 への 翻 訳 はしてはならない。かかるプログラムと 関 連 ドキュメントについて 書 かれているインターシステムズ 社 の 標 準 ライセンス 契 約 に 記 載 されている 範 囲 を 除 き、ここに 記 載 された 本 ドキュメントとソフトウェアプログラムの 複 製 、 使 用 、 廃 棄 は 禁 じられている。インターシステムズ 社 は、ソフトウェアライセンス 契 約 に 記 載 されている 事 項 以 外 にかかるソフトウェアプログラムに 関 する 説 明 と 保 証 をするものではない。さらに、かかるソフトウェアに 関 する、あるいはかかるソフトウェアの 使 用 から 起 こるいかなる 損 失 、 損 害 に 対 するインターシステムズ 社 の 責 任 は、ソフトウェアライセンス 契 約 にある 事 項 に 制 限 される。前 述 は、そのコンピュータソフトウェアの 使 用 およびそれによって 起 こるインターシステムズ 社 の 責 任 の 範 囲 、 制 限 に 関 する 一 般 的 な 概 略 である。 完全 な 参 照 情 報 は、インターシステムズ 社 の 標 準 ライセンス 契 約 に 記 され、そのコピーは 要 望 によって 入 手 することができる。インターシステムズ 社 は、 本 ドキュメントにある 誤 りに 対 する 責 任 を 放 棄 する。また、インターシステムズ 社 は、 独 自 の 裁 量 にて 事 前 通 知 なしに、 本 ドキュメントに 記 載 された 製 品 および 実 行 に 対 する 代 替 と 変 更 を 行 う 権 利 を 有 する。インターシステムズ 社 の 製 品 に 関 するサポートやご 質 問 は、 以 下 にお 問 い 合 わせください:Tel:Fax:Email:InterSystems Worldwide Customer Support+1 617 621-0700+1 617 374-9391support@InterSystems.com


目 次このドキュメントの 概 要 ...................................................................................................... 11 ビジネス・ルールについて .............................................................................................. 31.1 クラスとしてのルール ............................................................................................ 52 ルール・エディタの 概 要 ................................................................................................. 72.1 ビジネス・ルール・リスト .......................................................................................... 72.2 ビジネス・ルール・エディタ ..................................................................................... 72.2.1 ビジネス・ルール・ウィザード ......................................................................... 103 ルール・セットの 作 成 および 編 集 .................................................................................... 113.1 ルールの 追 加 .................................................................................................... 123.2 アクションの 追 加 ................................................................................................ 133.3 関 連 するエディタの 使 用 ...................................................................................... 133.3.1 ルール 制 約 エディタの 使 用 ......................................................................... 143.3.2 プロダクション 構 成 項 目 セレクタの 使 用 .......................................................... 153.3.3 send アクションの 変 換 とターゲットの 選 択 ....................................................... 153.3.4 式 編 集 の 使 用 ........................................................................................... 163.4 ビジネス・ルール 通 知 の 追 加 ................................................................................ 224 ルール・クラスの 例 ...................................................................................................... 234.1 汎 用 ビジネス・ルールの 例 ................................................................................... 234.2 HL7 メッセージ・ルーティング・ルールの 例 ............................................................. 244.3 汎 用 メッセージ・ルーティング・ルールの 例 .............................................................. 264.4 仮 想 ドキュメントのメッセージ・ルーティング・ルールの 例 ............................................ 275 ルーティング・ルールのデバッグ .................................................................................... 29付 録 A: Ensemble ユーティリティ 関 数 ................................................................................. 35A.1 組 み 込 み 関 数 ................................................................................................... 35A.2 関 数 の 呼 び 出 し 構 文 .......................................................................................... 39索 引 ............................................................................................................................ 41ビジネス・ルールの 開 発iii


図 一 覧図 5–1: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 A) .................................................... 30図 5–2: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 B) .................................................... 31図 5–3: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 C) .................................................... 32図 5–4: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 D) .................................................... 33ivビジネス・ルールの 開 発


このドキュメントの 概 要このドキュメントでは、ビジネス・プロセス・ロジックを 導 くビジネス・ルールの 定 義 方 法 について 説 明 します。このドキュメントの 内 容 は 以 下 のとおりです。• ビジネス・ルールについて• ルール・エディタの 概 要• ルール・セットの 作 成 および 編 集• ルール・クラスの 例• ルーティング・ルールのデバッグ• Ensemble ユーティリティ 関 数詳 細 な 概 要 は、 目 次 を 参 照 してください。以 下 のドキュメントでは、 関 連 する 情 報 について 説 明 しています。• "Ensemble のベスト・プラクティス" では、Ensemble プロダクションの 編 成 と 開 発 に 関 するベスト・プラクティスについて 説 明 します。• "Ensemble プロダクションの 開 発 " では、Ensemble プロダクションの 作 成 に 関 連 した 開 発 タスクの 実 行 方 法 について 説 明 します。• "Ensemble プロダクションの 構 成 " では、Ensemble プロダクションの 作 成 に 関 連 した 構 成 タスクの 実 行 方 法 について 説 明 します。• "Ensemble の 監 視 " では、Ensemble の 監 視 方 法 について 説 明 します。 特 に、“ビジネス・ルール・ログの 表 示 ” の章 を 参 照 してください。HL7 や X12 などの Electronic Data Interchange (EDI) 形 式 でのメッセージのルーティングおよび 変 換 に Ensemble プロダクションを 使 用 している 場 合 は、Ensemble 相 互 運 用 性 内 のドキュメントを 参 照 してください。一 般 情 報 は、"InterSystems ドキュメント・ガイド" を 参 照 してください。ビジネス・ルールの 開 発 1


1ビジネス・ルールについてビジネス・ルールを 使 用 すれば、 非 技 術 系 ユーザでも、 特 定 の 判 断 ポイントにおける Ensemble ビジネス・プロセスの 動作 を 変 更 できます。ルールのロジックは、 管 理 ポータルで Ensemble ルール・エディタを 使 用 してすぐに 変 更 できます。ルールの 変 更 には、プログラミング・スキルやダイアグラミング・スキルは 必 要 ありません。また、 変 更 内 容 を 有 効 化 するために、プロダクション・コードを 変 更 したり、コンパイルする 必 要 はありません。 以 下 の 図 は、ビジネス・ルールが 機 能 するしくみについて 示 しています。ある 企 業 では、Ensemble プロダクションを 実 行 して、 世 界 規 模 の 企 業 全 体 のローン 申 し 込 みを 一 貫 した 方 法 で 処 理 しているとします。 判 断 のプロセスは 全 世 界 で 共 通 していますが、 銀 行 は、 国 ごとに 地 域 条 件 を 調 整 する 必 要 があります。 以下 で 説 明 するように、ビジネス・ルールは、この 地 域 レベルでの 責 任 範 囲 をサポートします。ビジネス・ルールの 開 発 3


ビジネス・ルールについて1. ビジネス・プロセスの 開 発 者 は、ビジネス・プロセスの 代 わりに 判 断 を 行 うビジネス・ルールに 名 前 を 付 けて、この 判断 ポイントを 識 別 します。 開 発 者 が、ビジネス・プロセス 言 語 (BPL) コード 内 のそのビジネス・ルールのプレースホルダを 活 用 するには、ビジネス・プロセス 言 語 (BPL) 要 素 を 呼 び 出 します。 要 素 は、ビジネス・ルール名 、および 判 断 結 果 とその 結 果 の 理 由 (オプション) を 保 持 するパラメータを 指 定 します。ここでは、このルールをLoanDecision と 呼 びます。2. BPL ビジネス・プロセス 内 に 要 素 が 出 現 するたびに、プロダクション 内 に 対 応 するルール 定 義 が 存 在 する 必要 があります。 企 業 のユーザ ( 通 常 はビジネス・アナリスト) は、Ensemble ルール・エディタというブラウザベースのオンライン・フォームを 使 用 してルールを 定 義 できます。このフォームでは、ユーザにメッセージが 表 示 され、LoanDecision と 呼 ばれるビジネス・ルールの 定 義 で 必 要 とされる 簡 単 な 情 報 を 入 力 するように 促 します。この 情報 は、 構 成 データベースに 保 存 されます。Ensemble ルール・エディタに 習 熟 している 企 業 ユーザは、 管 理 ポータルにあるこのエディタへのアクセス 権 を 与 えられていれば、ルール 定 義 を 変 更 できます。 変 更 は 単 なるデータベースの 更 新 であるため、 実 行 中 のプロダクションに 即 座 に 適 用 できます。したがって、 各 地 域 のビジネス・アナリストは、Ensemble ルール・エディタを 実 行 してルールのコピーを 変 更 することによって、それぞれの 地 域 に 適 したその 地 域 固 有 の 基 準 を 別 途 作 成 できます。3. 実 行 時 には、BPL 文 に 到 達 すると、ビジネス・プロセスは、LoanDecision という 名 前 のルールを 呼 び 出 します。ルールは、 構 成 データベースから、 地 域 ごとに 異 なる 判 断 基 準 を 取 得 します。これらの 基 準 に 基 づいて、ルールは、ビジネス・プロセスに 回 答 を 返 します。ビジネス・プロセスは、この 回 答 に 基 づく 実 行 パスをリダイレクトします。4. 進 行 中 の 保 守 が 目 的 である 場 合 については、ルールを 変 更 する 必 要 があっても、ビジネス・プロセス 開 発 者 が 参 加する 必 要 はありません。どのルール 定 義 もビジネス・プロセス・コードとは 完 全 に 分 離 されています。ルール 定 義 はEnsemble の 構 成 データベース 内 にクラスとして 格 納 され、 実 行 時 に 評 価 されます。また、ルール 定 義 は、Ensembleインストール 間 でエクスポートおよびインポートできます。同 様 に、ビジネス・アナリストなどの 企 業 ユーザは、ビジネス・プロセスの BPL またはクラス・コードの 修 正 に 必 要 なプログラミングの 専 門 知 識 がなくても、 判 断 ポイントでビジネス・プロセスのオペレーションを 変 更 できます。Ensemble には、 以 下 に 示 す 4 種 類 のビジネス・ルール 定 義 が 用 意 されています。• 汎 用 ビジネス・ルール• HL7 メッセージ・ルーティング・ルール• 汎 用 メッセージ・ルーティング・ルール• 仮 想 ドキュメントのメッセージ・ルーティング・ルール各 タイプには、ルール・アシスト・クラスがそれぞれ 関 連 付 けられています。これらのアシスト・クラスによって、エディタの動 作 が 制 御 され、 編 集 作 業 中 に 右 側 のペインに [ルール・アシスタント] が 表 示 されます。定 義 対 象 のルールを 作 成 し、ルール・セットにグループ 化 します。 各 ルール 定 義 には 1 つ 以 上 のルール・セットを 割 り 当てます。 各 ルール・セットには、 有 効 期 間 開 始 日 時 と 終 了 日 時 を 関 連 付 けます。プロセスからのルールの 呼 び 出 し 時 には、 常 に 1 つのルール・セットのみが 実 行 されます。ビジネス・プロセス、データ 変 換 、およびビジネス・ルールで 使 用 可 能 なオプションが 重 複 していることに 注 意 してください。 違 いを 確 認 する 場 合 は、"Ensemble プロダクションの 開 発 " の “ビジネス・ロジック・ツールの 比 較 ” を 参 照 してください。このドキュメントの 以 下 の 各 章 では、ビジネス・ルールの 定 義 方 法 について 取 り 上 げ、Ensemble ルール・エディタを 使 用したルール・セットの 作 成 および 使 用 方 法 などについて 説 明 するとともに、BPL とビジネス・プロセス・ルーティング・エンジンのそれぞれを 使 用 したルールの 呼 び 出 し 方 法 について 説 明 します。4 ビジネス・ルールの 開 発


クラスとしてのルール1.1 クラスとしてのルール企 業 のビジネス・アナリストは、[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" ]{"F""C"}}スタジオでビジネス・ルールをクラスとして 開 き、ドキュメントを 編 集 して、 変 更 内 容 を 保 存 できます。スタジオで 保 存 した変 更 内 容 は、すぐに Ensemble ルール・エディタで 確 認 できます。 変 更 内 容 が 表 示 されない 場 合 は、ページを 更 新 してください。パッケージ・マッピング・ルール・クラスルールはクラスであるため、 他 のネームスペースにマッピングできます。ルール・クラスを 実 際 にマッピングする 場 合 は、マッピングしたすべてのルール・クラスを 使 用 先 の 各 ネームスペースでリコンパイルすることによって、 各 ネームスペースでローカル・メタデータを 確 実 に 使 用 できるようにする 必 要 があります。レガシー・ルールからアップグレードしたルールを 使 用 している 場 合 は、ルールのエイリアスが 一 意 でないことに 起 因 するコンパイル・エラーが 発 生 することがあります。このようなコンパイル・エラーは 手 動 で 修 正 する 必 要 があります。詳 細 は、"Caché オブジェクトの 使 用 法 " の “パッケージ” の 章 で “パッケージ・マッピング” を 参 照 してください。ビジネス・ルールの 開 発 5


2ルール・エディタの 概 要この 章 では、 管 理 ポータル 内 のルール・エディタについて 説 明 します。この 章 の 内 容 は 次 のとおりです。• ビジネス・ルール・リスト• ビジネス・ルール・エディタ2.1 ビジネス・ルール・リスト[Ensemble] > [ビジネス・ルール・リスト] ページには、アクティブな Ensemble ネームスペースに 定 義 されているビジネス・ルール・クラスのリストが 表 示 されます。このページに 移 動 するには、Ensemble の [リスト] メニューで [ビジネス・ルール]項 目 を 選 択 します。リボン・バーにある 以 下 のコマンドのいずれかのターゲットとするルール・クラスを 選 択 します。• [ 編 集 ] — クリックすると、ビジネス・ルール・エディタを 使 用 してルール 定 義 を 変 更 または 表 示 できます。• [ 削 除 ] — クリックすると、ルール 定 義 クラスを 永 久 に 削 除 できます。• [エクスポート] — クリックすると、 選 択 したルール・クラスを XML ファイルとしてエクスポートできます。• [インポート] — クリックすると、XML ファイルをルール・クラスにインポートできます。Ensemble の 他 のクラスと 同 じように、ルール・クラスもエクスポートおよびインポートできます。 管 理 ポータルの [システム]> [グローバル] ページを 使 用 することも、スタジオの [ツール] メニューにある [エクスポート] コマンドや [インポート] コマンドを 使 用 することもできます。2.2 ビジネス・ルール・エディタ[Ensemble] > [Ensemble ルール・エディタ] ページでは、あらゆるタイプのビジネス・ルールについて、ビジネス・ルール・クラス 定 義 を 作 成 および 編 集 できます。このページを 開 くと、ネームスペースで 最 後 に 開 いたルールが 表 示 されます。タイトル・バーの 左 側 にあるタブに、そのビジネス・ルール 定 義 クラスの 名 前 が 表 示 されます。このネームスペースでこのページを 初 めて 開 いたときには、 作 業 ペインは 空 白 になっています。 新 しいルールを 作 成 するか、 既 存 のルールを 開 く必 要 があります。“ルール・セットの 作 成 および 編 集 ” の 章 では、このエディタを 使 用 してビジネス・ルールおよびルーティング・ルールを定 義 する 方 法 について 詳 しく 説 明 するとともに、ユーザ・インタフェースが Ensemble ルール 構 造 とどのように 連 動 するかについて 説 明 します。ビジネス・ルールの 開 発 7


ルール・エディタの 概 要[Ensemble ルール・エディタ] ページのリボン・バーには、 以 下 のコマンドが 含 まれています。• [ 新 規 作 成 ] — クリックすると、ビジネス・ルール・ウィザードが 起 動 して、 新 しいビジネス・ルール 定 義 を 作 成 できます。• [ 開 く] — クリックすると、[ファインダダイアログ] が 起 動 して、 編 集 対 象 の 既 存 のビジネス・ルール 定 義 を 選 択 できます。• [ 保 存 ] — クリックすると、ルール 定 義 に 加 えた 変 更 内 容 を 保 存 およびコンパイルできます。• [ 名 前 を 付 けて 保 存 ] — ルール 定 義 を 編 集 した 後 にクリックすることによって、 変 更 内 容 を 新 しいビジネス・ルール・クラスとして 保 存 できます。[ 一 般 ] タブ作 業 ペインにルール 定 義 が 含 まれるようになると、 情 報 タブが 表 示 されます。[ 一 般 ] タブには、そのルール 定 義 に 関 する 以 下 のような 概 要 情 報 が 表 示 されます。説 明ルール 定 義 とその 目 的 を 示 すクラスの 説 明 。ルールタイプ/ルール・アシスト・クラス各 ルール・タイプには、ルール・アシスト・クラスがそれぞれ 関 連 付 けられています。これらのアシスト・クラスによって、ルールの 制 約 が 制 御 され、ルールの 編 集 作 業 中 にページの 右 側 のペインに 情 報 が 表 示 されます。以 下 のテーブルは、4 つのルール・タイプとそれぞれに 関 連 付 けられている Ens.Rule.Assist クラスを 示 しています。ルール・タイプ汎 用 ビジネス・ルールHL7 メッセージ・ルーティング・ルール汎 用 メッセージ・ルーティング・ルール仮 想 ドキュメントのメッセージ・ルーティング・ルールルール・アシスト・クラスEns.Rule.GeneralBusinessRuleAssistEnsLib.HL7.MsgRouter.RuleAssistEnsLib.MsgRouter.RuleAssistEnsLib.MsgRouter.VDocRuleAssistコンテキスト・クラスルールの 編 集 画 面 で [ 値 編 集 ] の 選 択 肢 としてどのオブジェクト・プロパティを 表 示 するかを Ensemble ルール・エディタに 指 示 する 情 報 を 格 納 するクラス。 汎 用 ルールの 場 合 、このクラスはビジネス・プロセス BPL クラスから生 成 され、 末 尾 に .Context が 付 きます。BPL プロセスのないルーティング・クラスの 場 合 、 通 常 、このクラスはルーティング・エンジン・ビジネス・プロセス・クラスです。ルール・エイリアス一 時 変 数ルール 定 義 がクラスとして Ensemble に 格 納 されるようになる 前 の 古 いリリースで 作 成 されたルールの 場 合 、このフィールドに 値 を 格 納 できます。ルールがアップグレードされたときに 古 い 名 前 がクラスの 命 名 規 則 に 準 拠 していない 場 合 、そのクラス 名 はエイリアスになります。このフィールドは、 以 前 の 命 名 規 則 を 継 続 して 使 用 する 場 合に 使 用 できます。 新 しいルールを 作 成 する 場 合 、このフィールドを 使 用 する 必 要 はありません。このフィールドに 一 時 変 数 を 指 定 できます。この 一 時 変 数 はビジネス・ルールに 使 用 できます。 複 数 の 変 数 を指 定 する 場 合 はカンマで 区 切 ります。 以 下 に 例 を 示 します。FreeShippingValue,ShipMethod,PremierMember8 ビジネス・ルールの 開 発


ビジネス・ルール・エディタ一 時 変 数 は、 名 前 の 先 頭 に @ (アットマーク) を 付 けてルール 内 で 使 用 します。 例 えば、@FreeShippingValueなどです。プロダクション 名このルーティング・ルールを 適 用 するプロダクションの 名 前 。ルール・セット・リスト以 下 の 情 報 を 示 す [ルール・セット] のリスト。• [ルール・セット 名 ] — そのセットを 識 別 する 名 前 。• [ 開 始 日 時 ] — ルールがアクティブになる 日 時 。 指 定 した 日 時 はアクティブな 期 間 に 含 まれます。 形 式 はYYYY-MM-DDTHH:MM:SS です。 時 刻 部 分 は 省 略 可 能 で、 省 略 した 場 合 は 00:00:00 になります。• [ 終 了 日 時 ] — ルールがアクティブでなくなる 日 時 。 指 定 した 日 時 はアクティブな 期 間 から 除 外 されます。 形式 は YYYY-MM-DDTHH:MM:SS です。 時 刻 部 分 は 省 略 可 能 で、 省 略 した 場 合 は 24:00:00 になります。[ルール・セット] タブ各 ルール・セットには 固 有 のタブがあり、それぞれのタブでルールのリストを 編 集 できます。 詳 細 は、“ルール・セットの 作成 および 編 集 ” の 章 を 参 照 してください。エディタのアイコンどちらのタブにも 次 のアイコン・セットがあります。ルール 定 義 、ルール・セット、ルール、およびルール・セット 内 の 節 に 対して、 以 下 のアイコンを 使 用 できます。アクションの 詳 細 は、 編 集 対 象 のエンティティに 応 じて 異 なる 場 合 があります。 以 下 のテーブルでは、 各 アイコンの 一 般的 なアクションについて 説 明 します。アイコンアクション[ 上 ] アイコンをクリックすると、 選 択 した 項 目 がリストの 上 方 向 に 移 動 します。[ 下 ] アイコンをクリックすると、 選 択 した 項 目 がリストの 下 方 向 に 移 動 します。[ 追 加 ] アイコンをクリックすると、リストから、または [ルール・アシスタント] 内 のアイコンの 下 から 選 択 した項 目 タイプが 追 加 されます。[ 削 除 ] アイコンをクリックすると、アイコンの 横 の 項 目 が 削 除 されます。[ 元 に 戻 す] アイコンをクリックすると、 最 後 に 行 った 変 更 が 元 に 戻 されます。[やり 直 し] アイコンをクリックすると、もとに 戻 した 最 後 の 変 更 が 再 適 用 されます。[ 関 数 ] アイコンをクリックすると、 選 択 したアクションに 関 連 付 けられたエディタが 開 きます。アクションが 使 用 できない 場 合 は、そのアイコンが 淡 色 で 表 示 されます。ビジネス・ルールの 開 発 9


ルール・エディタの 概 要[ルール・アシスタント]Ensemble ルール・エディタの 右 側 のペインにある 二 重 の 矢 印 を 使 用 して、[ルール・アシスタント] を 表 示 または 非 表 示にすることができます。ルール・セットの 編 集 時 には、 展 開 された [ルール・アシスタント] ペインに、 編 集 プロセスを 支 援する 情 報 が 提 供 されます。 選 択 されたアイテムの 説 明 と、アシスト・クラスに 基 づくオプションのリストが 表 示 されます。2.2.1 ビジネス・ルール・ウィザードこのウィザードでは、RuleDefinition という XData ブロックを 使 用 して、Ens.Rule.Definition クラスに 基 づく 新 しいビジネス・ルール 定 義 を 作 成 できます。 以 下 のフィールドの 値 を 入 力 します。[パッケージ][ 名 前 ][エイリアス][ 説 明 ][タイプ]パッケージ 名 を 入 力 するか、 矢 印 を 使 用 して 既 存 のパッケージ 名 を 選 択 します。ビジネス・ルール・クラスの 名 前 を 入 力 します。(オプション) このルールのエイリアス 名 を 入 力 します。 以 下 の 文 字 は 使 用 できません。; , : | ! * - $ ‘ “ < > &通 常 、これは、ルール 定 義 がクラスとして Ensemble に 格 納 されるようになる 前 の 古 いリリースで 作 成 されたルール 用 のフィールドです。 以 前 の 命 名 規 則 を 継 続 して 使 用 できるようにします。 新 しいルールを 作 成 する 場 合 、このフィールドを 使 用 する 必 要 はありません。(オプション) このルール 定 義 の 説 明 を 入 力 します。これはクラスの 説 明 になります。以 下 に 示 す 4 つのルール・タイプのいずれかを 入 力 します。• 汎 用 ビジネス・ルール• HL7 メッセージ・ルーティング・ルール• 汎 用 メッセージ・ルーティング・ルール• 仮 想 ドキュメントのメッセージ・ルーティング・ルール各 ルール・タイプには、ルール・アシスト・クラスが 関 連 付 けられています。これらのアシスト・クラスによって、ページの 右 側 のペインにルールの 入 力 を 支 援 する 情 報 が 提 供 されるとともに、エディタに 表 示 されるオプションが 制御 されます。[コンテキスト・クラス](オプション)このフィールドによって、ルールの 編 集 画 面 で [ 値 ] フィールドの 選 択 肢 としてどのオブジェクト・プロパティを 表示 するかが Ensemble ルール・エディタに 指 示 されます。 汎 用 ルールの 場 合 、このクラスは を 呼 び 出 すBPL ビジネス・プロセス・クラスから 生 成 されます。このクラスの 命 名 規 則 では、ビジネス・プロセス・クラス 名 に.Context 拡 張 子 を 付 加 した 名 前 が 使 用 されます ( 例 : Demo.ZenService.Bproc.WeatherReport.Context)。10 ビジネス・ルールの 開 発


3ルール・セットの 作 成 および 編 集この 章 では、Ensemble ルール・エディタを 使 用 してルール・セットを 開 発 する 方 法 について 説 明 します。以 下 に 示 す 2 つのタイプのルール・セットがあります。• 汎 用 ビジネス・ルール・セット — いずれか 1 つが 真 であることが 判 明 するまで 順 次 評 価 されるルールのリスト。“ 真 ”の 場 合 は、ルールを 呼 び 出 したビジネス・プロセスの 次 のアクションが 決 定 されます。どのルールも 真 でない 場 合 は、ルール・セットからデフォルト 値 が 返 されます。これは、BPL 要 素 を 使 用 して 呼 び 出 すルール・タイプです。• ルーティング・ルール・セット — メッセージ・ルーティング・プロダクションで 使 用 するルール・セット。ルーティング・ルール・セットでは、 受 信 メッセージ ( 制 約 ) のタイプと 内 容 に 基 づいて、 各 メッセージの 正 しい 宛 先 と、 送 信 前 にメッセージの 内 容 を 変 換 する 方 法 が 決 定 されます。このルール・セットを 呼 び 出 すには、ルーティング・エンジン・ビジネス・プロセスを 使 用 します。ルール・セットのプロパティルール・セットの 追 加 時 には、[ 名 前 ]、[ 有 効 期 間 開 始 日 時 ]、および[ 有 効 期 間 終 了 日 時 ] の 3 つのプロパティ・フィールドが 表 示 されます。これらのフィールドを 使 用 して、 同 じルール 定 義 内 のルール・セットを 区 別 できます。これらは [ 一 般 ]タブのルール・セット・リストに 表 示 される 値 です。ほとんどのビジネス・ルール 定 義 は、 常 に 有 効 なルール・セットを 1 つだけ 持 ちます。しかし、 複 数 のルール・バージョンを 定 義 し、 有 効 期 間 の 開 始 日 時 と 終 了 日 時 に 指 定 して、 異 なる 期 間 にそれらのバージョンをアクティブにすることもできます。プロセスからのルールの 呼 び 出 し 時 には、 常 に 1 つのルール・セットのみが 実 行 されます。ルール・セットを 追 加 するには、[ 一 般 ] タブでルール・セット・リストが 選 択 された 状 態 で 追 加 アイコンをクリックします。その 後 、そのルール・セットのタブをクリックするか、リストでそのルール・セットの 行 をダブルクリックすることによって、ルール・セットの 編 集 を 開 始 できます。ルール・セットを 編 集 するときには、そのルール・セットのタブの 上 部 にあるいずれかのアイコンをクリックするか、 展 開 された [ルール・アシスタント] ペインでいずれかのアイコン (または、 追 加 アイコンの 場 合は、 下 部 にあるラベル 付 きの 長 方 形 ) をクリックします。ルール・セット・エディタや、 開 発 しているルール・セットの 操 作 に 習 熟 してきたら、ルール・セットの 表 示 中 、プロパティ 名の 表 示 は 不 要 と 感 じるかもしれません。その 場 合 は、エディタ・ペインの 右 上 にある 緑 色 の 四 角 形 をクリックすることによって、プロパティ 名 の 表 示 / 非 表 示 を 切 り 替 えることができます。また、 編 集 プロセス 中 、いずれかのプロパティに 指 定 された 値 が 有 効 でない 場 合 は、プロパティ・ボックスの 右 上 に 感 嘆符 入 りの 小 さな 赤 い 円 マークが 表 示 されます。この 警 告 マークをダブルクリックすると、 有 用 なエラー・メッセージが 表 示されます。以 下 の 各 節 では、ルール・セットの 作 成 に 関 連 する 編 集 タスクについて 説 明 します。• ルールの 追 加• アクションの 追 加• 関 連 するエディタの 使 用ビジネス・ルールの 開 発 11


ルール・セットの 作 成 および 編 集• ビジネス・ルール 通 知 の 追 加3.1 ルールの 追 加各 ルール・セットには、ビジネス・プロセスの 特 定 の 機 能 を 満 たすために 定 義 された 1 つ 以 上 のルールが 含 まれます。ルールのプロパティルールの 追 加 時 には、 以 下 のプロパティが 表 示 されます。名 前無 効制 約このルールにオプションの 名 前 を 割 り 当 てて、 識 別 しやすくすることができます。Ensemble の 内 部 では、rule#n の 形 式 のルール 名 が 使 用 され、 順 番 に 番 号 が 割 り 当 てられます。Name プロパティに 値 を 入 力 すると、その 名 前 がクラス 定 義 に 表 示 されるとともに、ルール・ログで 内 部 ルール 名 の 横 にかっこ 入 りで 示 されます。ルール・セット 内 のルールの 順 序 を 変 えると、n の 値 が 変 わります。この 項 目 をダブルクリックすることによって、ルールの 有 効 化 と 無 効 化 を 切 り 替 えることができます。 真 の 値 は、そのルールが 無 効 であり、したがってルール・セットの 実 行 時 にはスキップされることを 意 味 します。(ルーティング・ルールの 場 合 のみ) — 制 約 プロパティはルーティング・ルールを 区 別 します。ルール・セットを 通過 するメッセージが、そのルールに 対 して 定 義 されている 制 約 と 一 致 すると、そのルール・ロジックが 実 行 されます。 制 約 の 定 義 に 関 する 詳 細 は、“ルール 制 約 エディタの 使 用 ” を 参 照 してください。各 ルールは、1 つ 以 上 の 一 連 の when 節 とオプションの otherwise 節 、およびいくつかのオプションのアクションで 構 成されます。ルールの 追 加 時 には、エディタでまず when 節 を 作 成 するよう 促 されます。そのルールがルーティング・ルールの 場 合 は、その 節 の return アクションも 提 示 されます。ルール・セットのルールの 開 発 時 に 留 意 すべき 一 般 的 な 考 慮 事 項 について 以 下 に 示 します。• ルール・セットの 実 行 で return アクションが 検 出 されると、ルール・セットの 実 行 は 終 了 し、そのルール 定 義 クラスを呼 び 出 したビジネス・プロセスに 戻 ります。• return を 省 略 することによって、ルール・セット 内 の 複 数 のルールの 実 行 を 制 御 できます。つまり、すべてのルールをチェックする 必 要 がある 場 合 は、どのルール 節 でも return アクションを 使 用 しないようにします。そして、どのルール 節 も 真 として 評 価 されなかった 場 合 のために、ルール・セットの 最 後 に return アクションで 値 を 提 供 します。• 1 つのルールに 複 数 の when 節 が 含 まれている 場 合 は、 真 として 評 価 された 最 初 の when が 示 すアクションのみが実 行 されます。どの when 条 件 も 真 でない 場 合 のアクションは、otherwise 節 を 使 用 して 実 行 できます。• when 節 ごとに 条 件 プロパティを 1 つ 指 定 します。 汎 用 ビジネス・ルール・セットの 一 般 的 な 設 計 は、 一 連 の when 条件 で 構 成 されるルールを 1 つ 組 み 込 み、どの 条 件 が 真 であるかに 応 じて 値 を 返 す、というものです。どの 条 件 も 真でない 場 合 にデフォルト 値 を 返 すには、otherwise 節 を return とともに 使 用 します。• ルーティング・ルール・セットの 一 般 的 な 設 計 は、 複 数 のルールを 使 用 してルールごとに 異 なる 制 約 を 定 義 し、 制 約に 一 致 したメッセージのルーティング 方 法 とルーティング 先 を 示 す when 節 を 各 ルールに 1 つ 組 み 込 むというものです。12 ビジネス・ルールの 開 発


アクションの 追 加3.2 アクションの 追 加ルール 内 の 各 節 には、ゼロ 個 以 上 のアクションを 関 連 付 けることができます。アクションは、 関 連 する when 条 件 が 真 の場 合 にのみ 実 行 されます。ルール・セットまたはルール 内 の when または otherwise 節 に 追 加 できるアクションには、 次のものがあります。アクションassignreturntrace説 明ビジネス・プロセスの 実 行 コンテキストのプロパティに 値 を 割 り 当 てます。 詳 細 は、"Ensemble ビジネス・プロセス 言 語 (BPL) リファレンス" の に 関 するエントリを 参 照 してください。ルールをそれ 以 上 実 行 せずにビジネス・プロセスに 戻 ります。また、 汎 用 ルールの 場 合 、 示 された値 を 結 果 ロケーションに 返 します。このルールの 特 定 の 部 分 が 実 行 されたときに、 入 力 された 情 報 がイベント・ログに 追 加 されます。詳 細 は、"Ensemble ビジネス・プロセス 言 語 (BPL) リファレンス" の に 関 するエントリを 参照 してください。一 部 のアクションはルール・セット・レベルで 追 加 できますが、 論 理 的 に 常 に 意 味 をなすわけではありません。ほとんどのアクションはルールの when 節 内 に 格 納 してください。この 節 の 外 部 にアクションを 配 置 して 意 味 をなすのは、ルール・セット 内 のどのルールも 実 行 されたなかったときに 適 用 するデフォルトの 戻 り 値 を 設 定 する 場 合 です。また、ルーティング・ルールには 以 下 のアクションを 追 加 できます。アクションsenddeletedelegate説 明必 要 に 応 じて 変 換 処 理 を 行 った 後 に、 特 定 のターゲットにメッセージを 送 信 します。 詳 細 は、“sendアクションの 変 換 とターゲットの 選 択 ” を 参 照 してください。現 在 のメッセージを 削 除 します。メッセージを 別 のルールに 委 託 します。3.3 関 連 するエディタの 使 用ルール 定 義 内 のいずれかの 項 目 のプロパティを 選 択 したときに、そのプロパティに 関 連 するエディタがある 場 合 は、( 関 数 アイコン) が 有 効 になります。 以 下 のテーブルでは、 項 目 、 節 、またはアクションのプロパティと、それぞれのプロパティをダブルクリックするか、ƒx をクリックしたときに 開 くエディタを 示 しています。項 目ルール・セットrulewhenPropertynameeffective begineffective endnamedisabledconstraintcondition関 連 するエディタまたは 編 集 処 理テキストを 入 力 します。日 時 セレクタテキストを 入 力 します。ダブルクリックして 真 と 偽 を 切 り 替 えます。ルール 制 約 エディタ式 編 集ビジネス・ルールの 開 発 13


ルール・セットの 作 成 および 編 集項 目assignreturntracesenddelegatePropertypropertyvalue値 ( 汎 用 ルール・セットの 場 合 のみ)valuetransformtargetrule name関 連 するエディタまたは 編 集 処 理この 割 り 当 てのターゲットであるコンテキスト・プロパティの名 前 を 入 力 します。これは、 実 行 コンテキスト・オブジェクトのプロパティである 必 要 があります。式 編 集式 エディタ式 編 集データ 変 換 セレクタプロダクション 構 成 項 目 セレクタルール・クラスの [ファインダダイアログ]otherwise 節 と delete アクションには、 編 集 対 象 のプロパティはありません。3.3.1 ルール 制 約 エディタの 使 用ルーティング・ルールには、それぞれのメッセージをどのルールを 介 してルーティングするか 決 定 するために 使 用 する 制約 プロパティがあります。このエディタを 使 用 して、 以 下 のプロパティから 成 るルールの 制 約 値 を 構 成 します。ソース以 下 の 項 目 のいずれかの 構 成 名 。• ビジネス・サービス (ルーティング・インタフェース 用 )• メッセージ・ルーティング・プロセス ( 別 のルールがこのルーティング・ルール・セットに 連 鎖 している 場 合 )[ソース] フィールドの 横 にある ([...]) をクリックしてプロダクション 構 成 項 目 セレクタを 呼 び 出 します。このセレクタには、[ 一 般 ] タブで 指 定 したプロダクションで 使 用 できるソース 項 目 のリストが 表 示 されます。[ソース] に 必 要 な項 目 をまだ 準 備 していない 場 合 は、このフィールドを 空 白 のままにし、 項 目 の 準 備 ができた 時 点 でここに 戻 ることができます。メッセージ・クラスこのルールによってルーティングする Ensemble メッセージ・オブジェクトを 指 定 します。このフィールドの 値 は、以 下 のルーティング・ルール・タイプに 応 じて 決 まります。• HL7 メッセージ・ルーティング・ルール — デフォルトで EnsLib.HL7.Message になります。 新 しいルール 定義 では、このプロパティの 入 力 オプションは 提 示 されません。• 汎 用 メッセージ・ルーティング・ルール — [メッセージ・クラス] フィールドの 横 にある [...] をクリックして [ファインダダイアログ] を 呼 び 出 し、 該 当 するメッセージ・クラスを 選 択 します。メッセージ・クラスのカテゴリを 選択 して、 選 択 肢 を 絞 り 込 むことができます。• 仮 想 ドキュメントのメッセージ・ルーティング・ルール — 定 義 されている 仮 想 ドキュメント・クラスのリストから 選択 します。エディタの 以 下 のフィールドは、HL7 または 仮 想 ドキュメントのルーティング・ルール・クラス (X12 や ASTM など) の 編 集時 にのみ 適 用 されます。 汎 用 メッセージ・ルーティング・ルールの 場 合 は、 各 制 約 フィールドへの 入 力 は 完 了 です。スキーマ・カテゴリそのメッセージ・クラスのメッセージ・カテゴリを 指 定 します。14 ビジネス・ルールの 開 発


関 連 するエディタの 使 用• HL7 メッセージ・ルーティング・ルール — 組 み 込 みスキーマ・カテゴリ・リストまたはカスタム・スキーマ 定 義の 名 前 から 選 択 します。• 仮 想 ドキュメントのメッセージ・ルーティング・ルール — 選 択 した 仮 想 ドキュメント・クラスに 対 して 定 義 されているカテゴリ・タイプのリスト ( 組 み 込 みのもの、またはインポートされたカスタムのスキーマに 基 づくもの) から 選 択 します。ドキュメント 名メッセージ 構 造 を 指 定 します。 許 容 値 はメッセージ・クラスに 応 じて 異 なります。• HL7 メッセージ・ルーティング・ルール — ソース・アプリケーションの MSH:9 フィールドに 指 定 された HL7メッセージ 構 造 (ADT_A08 や ORM_O01 など)。 容 易 に 検 索 できるよう、この MSH:9 の 値 は、Name というEnsLib.HL7.Message プロパティに 配 置 されます。• 仮 想 ドキュメントのメッセージ・ルーティング・ルール — 選 択 した 仮 想 ドキュメント・クラスに 対 して 定 義 されているカテゴリ・タイプのリスト ( 組 み 込 みのもの、またはインポートされたもの) から 選 択 します。[ドキュメント 名 ] テキスト 入 力 フィールドには、 複 数 の 値 を 入 力 します。これにより、ルールは、 指 定 した [ドキュメント 名 ] の 値 には 一 致 し、それ 以 外 には 一 致 しないようになります。いずれかのフィールドを 空 白 のままにすると、Ensemble はすべての 値 がそのルールに 一 致 しているとみなします。[ 制 約 エディタ] は、Ensemble 2012.1 より 前 のバージョンから 変 換 したルール・セットの 編 集 時 には、 通 常 とやや 異 なる 動作 をします。リストに 追 加 する 項 目 を 選 択 するボックス 付 きの [スキーマ・ドキュメント・タイプ] フィールドが 表 示 されることがあります。[スキーマ・カテゴリ] および [スキーマ・ドキュメント・タイプ] は 実 際 の HL7 メッセージ 構 造 を 表 します。これらの 値 はDocType と 呼 ばれる EnsLib.HL7.Message プロパティに 格 納 されます。DocType は、2.4:ADT_A08 のようにコロンで 区切 られた 2 つの 部 分 から 成 る 文 字 列 です。• 左 側 は [スキーマ・カテゴリ] です。これは、 組 み 込 みスキーマ・カテゴリの 名 前 またはカスタム・スキーマ 定 義 の 名 前です。• 右 側 は [スキーマ・ドキュメント・タイプ] です。これは、ADT_A08 や ORM_O01 など、 特 定 されたスキーマ 内 の HL7メッセージ 構 造 です。3.3.2 プロダクション 構 成 項 目 セレクタの 使 用このエディタでは、メッセージのソースまたはメッセージのルーティング・ターゲットとして 構 成 項 目 を 選 択 できます。[ 一般 ] タブで 入 力 したプロダクションで 定 義 されているプロダクション 構 成 項 目 のリストから 選 択 します。ルール 定 義 の [ 一般 ] タブでプロダクションを 選 択 していないと、このエディタの 呼 び 出 し 時 に 次 の 警 告 が 表 示 されます。No production name has been specified in the General tab of your rule. Be carefuland ensure that your chosen target(s) exist in your production.その 場 合 は、 現 在 のネームスペースで 定 義 されているプロダクション 構 成 項 目 のリストから 選 択 します。プロダクションのルールの 開 発 時 には、 構 成 項 目 の 名 前 を 入 念 に 確 認 してください。3.3.3 send アクションの 変 換 とターゲットの 選 択send アクションを 追 加 するときには、 以 下 のプロパティも 入 力 します。• Transform — (オプション) メッセージを Target に 送 信 する 前 に 変 換 する 場 合 は、1 つ 以 上 の DTL データ 変 換 の完 全 なパッケージおよびクラス 名 を 入 力 します。[ 変 換 ] フィールドをダブルクリックして [データ 変 換 セレクタ] を 呼 び出 し、ネームスペースで 定 義 されている 1 つ 以 上 のデータ 変 換 を 選 択 します。複 数 のデータ 変 換 は、 連 鎖 している 順 に 左 から 右 に 表 示 されます。ビジネス・ルールの 開 発 15


ルール・セットの 作 成 および 編 集• Target — 以 下 の 1 つ 以 上 のプロダクション 項 目 の 構 成 名 を 入 力 します。– ビジネス・オペレーション ( 外 部 アプリケーションへのメッセージのルーティング 用 )– ルーティング・プロセス ( 別 のルーティング・ルール・セットへの 連 鎖 用 )[ターゲット] フィールドをダブルクリックしてプロダクション 構 成 項 目 セレクタを 呼 び 出 し、1 つ 以 上 のプロダクション 構成 項 目 を 選 択 します。これらのフィールドに 入 力 する 項 目 がまだ 存 在 していない 場 合 、プロダクションに 実 際 にそれらの 項 目 を 含 めるときに、入 力 した 名 前 に 誤 りがないか 必 ず 確 認 してください。3.3.4 式 編 集 の 使 用条 件 または 値 を 選 択 してなります。をクリックすると、 式 編 集 が 起 動 します。 式 編 集 は 以 下 の 4 つのプロパティでアクティブに• when の condition — 詳 細 は、"When の 条 件 の 定 義 " を 参 照 してください。• assign の value• 汎 用 ビジネス・ルールの return の value• trace の value — これはトレース・メッセージのテキストです。この 値 には、リテラル 文 字 列 または 評 価 対 象 となる 式 を指 定 できます。 式 の 場 合 は、 該 当 する 要 素 の language 属 性 で 指 定 されているスクリプト 言 語 を 使 用 する必 要 があります。式 を 定 義 するときには、 以 下 のテーブルに 示 すアイコンを 使 用 して 複 数 の 条 件 をネストできます。アイコンアクションクリックすると、 選 択 したノードが 式 の 上 方 向 に 移 動 します。クリックすると、 選 択 したノードが 式 の 下 方 向 に 移 動 します。クリックすると、 選 択 したノードを 親 ノードとマージできます。クリックすると、リストから 演 算 子 を 選 択 し、 選 択 したノードをその 演 算 子 のオペランドにすることができます。クリックすると、リストから Ensemble 関 数 を 選 択 し、 選 択 したノードをその 関 数 の 引 数 にすることができます。クリックすると、 兄 弟 ノードを 追 加 できます。クリックすると、 選 択 したノードを 削 除 できます。アクションが 使 用 できない 場 合 は、そのアイコンが 淡 色 で 表 示 されます。 条 件 や 値 を 式 ダイアグラムに 追 加 するときには、エディタ 上 部 の 青 色 のバーに 式 のテキストが 表 示 されます。以 下 の 各 節 では、 式 の 値 の 入 力 について 詳 しく 説 明 します。• 式 の 値16 ビジネス・ルールの 開 発


関 連 するエディタの 使 用• 式 の 演 算 子• 式 の 関 数• 式 の 例3.3.4.1 when 条 件 の 定 義ルール 定 義 内 では、1 つの 条 件 は 2 つの 値 とこれらの 値 間 の 比 較 演 算 子 で 構 成 されます。 以 下 に 例 を 示 します。Amount


ルール・セットの 作 成 および 編 集1 つのルールの 中 に 複 数 の AND 演 算 子 または OR 演 算 子 が 存 在 する 場 合 、AND 演 算 子 が OR 演 算 子 よりも 優 先 されます。つまり、ルール 内 のすべての AND 演 算 が 先 に 実 行 されます。その 後 、OR 演 算 子 が 考 慮 されます。 例 えば、 以 下のようなロジックがあるとします。IF Amount 5OR CurrentCustomer = 1AND CreditRating >= 5このロジックは、 以 下 のように 処 理 されます。IF (Amount 5)OR (CurrentCustomer = 1 AND CreditRating >= 5)この 例 では、[ 式 編 集 ] ダイアログが 次 のように 表 示 されます。上 記 のルールは、 誰 かが 5,000 未 満 の 金 額 を 要 求 し、さらにその 人 の 信 用 等 級 が 平 均 よりも 優 れている 場 合 に 真 となります。またこのルールは、 現 在 の 銀 行 顧 客 の 誰 かが 任 意 の 金 額 を 要 求 し、さらにその 人 の 信 用 等 級 が 平 均 以 上 である場 合 に 真 となります。 両 方 の 条 件 が 真 であるか、これらのどちらかが 真 であることが 必 要 になります。 両 方 の 条 件 が 偽 の場 合 、 全 体 としてのルールは 偽 となります。上 記 のルールは 具 体 的 に 以 下 のように 機 能 します。1. 以 下 の AND 式 があるとします。IF Amount 5この 式 は、 真 または 偽 の 結 果 をもたらします。この 結 果 を “SafeBet” と 呼 びます。2. 以 下 の AND 式 があるとします。IF CurrentCustomer = 1AND CreditRating >= 5この 式 は、 真 または 偽 の 結 果 をもたらします。この 結 果 を “KnownEntity” と 呼 びます。3. ルール 内 の AND 演 算 が 完 了 すると、 以 下 のように OR 演 算 が 始 まります。IF SafeBet is trueOR KnownEntity is true18 ビジネス・ルールの 開 発


関 連 するエディタの 使 用4. OR ロジックに 関 する 知 識 に 基 づくと、このルール 全 体 は、 顧 客 が SafeBet であって KnownEntity でない 場 合 、または 顧 客 が SafeBet ではなく KnownEntity である 場 合 に 真 となります。さらに、 顧 客 が SafeBet と KnownEntity の 両方 である 場 合 にも、このルールは 真 となります。3.3.4.2 式 の 値条 件 、あるいは assign、return、または trace アクション 内 では、 値 は 以 下 の 項 目 のいずれかになります。• 数 値 ( 整 数 または 小 数 )。1.1 や 23000 など。• 文 字 列 値 。"NY" のように 二 重 引 用 符 で 囲 む 必 要 があります。• プロダクションが 要 素 を 使 用 して BPL ビジネス・プロセスからルールを 呼 び 出 す 場 合 、BPL で および 要 素 を 使 用 して 定 義 された 汎 用 永 続 変 数 context のプロパティを 指 定 できます。プロパティ 名 は大 文 字 と 小 文 字 が 区 別 されます。これを 引 用 符 で 囲 んではなりません。PlaceOfBirth• 使 用 可 能 なさまざまな 演 算 子 、リテラル 値 、および context のプロパティを 使 用 した 式 。 以 下 に 例 を 示 します。((2+2)*5)/154.3"hello" & "world"Age * 4(((x=1) || (x=3)) && (y=2))• Min()、Max()、Round(n,m)、SubString() などの、Ensemble の 組 み 込 み 関 数 。 関 数 名 にはかっこが 含 まれている 必 要があります。また、Round の 数 値 n や m などの 入 力 パラメータも 含 める 必 要 があります。 関 数 に 入 力 値 がない 場 合は、 中 身 が 空 の 左 右 のかっこを 含 める 必 要 があります。• メッセージ・オブジェクトを 表 す Document 変 数 。ルール・セットのタブでフィールドに 値 を 挿 入 する 場 合 には、テキスト・ボックスに 直 接 入 力 できます。 構 文 が 間 違 っているか、そのフィールドのデータ 型 として 不 適 切 な 場 合 には、 変 更 を 保 存 しようとしたときに 赤 いエラー 記 号 が 表 示 されます。ルール 定 義 で [コンテキスト・クラス] の 設 定 を 正 しく 入 力 していれば、 式 編 集 でプロパティを 選 択 したときに、BPL ビジネス・プロセスの [コンテキスト・クラス] に 指 定 されているビジネス・プロセス 実 行 コンテキストのプロパティが 選 択 肢 としてテキスト・ボックスに 表 示 されます。3.3.4.3 式 の 演 算 子式 編 集 で をクリックすることによって、リストから 演 算 子 を 選 択 し、 選 択 したノードをその 演 算 子 のオペランドにすることができます。使 用 可 能 な 算 術 式 は 以 下 のとおりです。演 算 子+–*/意 味加 算 (2 進 および 単 項 )減 算 (2 進 および 単 項 )乗 算除 算使 用 可 能 な 論 理 演 算 子 は 以 下 のとおりです。これらの 演 算 子 は 1 ( 真 ) または 0 ( 偽 ) の 整 数 値 を 返 します。ビジネス・ルールの 開 発 19


ルール・セットの 作 成 および 編 集演 算 子AND (&&)OR (||)!=!=>= =2. 乗 算 と 除 算 :3. 加 算 と 減 算 :4. 文 字 列 の 連 結 :5. 論 理 AND : &&6. 論 理 OR : ||3.3.4.4 式 の 関 数ルール 定 義 内 では、 式 には Ensembleユーティリティ 関 数 の 1 つへの 呼 び 出 しを 含 めることができます。このような 関 数には、 他 のプログラミング 言 語 で 使 い 慣 れている 数 学 的 な 処 理 関 数 または 文 字 列 処 理 関 数 などがあります。[ 式 編 集 ] で をクリックすることによって、リストから 関 数 を 選 択 し、 選 択 したノードをその 関 数 の 引 数 にすることができます。使 用 可 能 なユーティリティ 関 数 のリストとそれらをビジネス・ルールまたは DTL データ 変 換 で 使 用 するための 適 切 な 構文 については、"ビジネス・ルールの 開 発 " の “Ensemble ユーティリティ 関 数 ” を 参 照 してください。3.3.4.5 式 の 例ルール 定 義 内 では、 式 は、 値 とプロパティを 組 み 合 わせて 値 を 返 すための 公 式 です。 以 下 に 例 を 示 します。20 ビジネス・ルールの 開 発


関 連 するエディタの 使 用式((2+2)*5)/154.3"hello" & "world"Age * 41+2.5*22*5Min(Age,80,Limit)Round(1/3,2)x80Min(10,Max(X,Y))(((x=1) || (x=3)) &&(y=2))算 出 値0.129617628"helloworld"Age が、context プロパティ (BPL で および 要 素 を 使 用 して 定義 された 汎 用 永 続 変 数 context のプロパティ) で、その 数 値 が 30 である 場 合 、この式 の 値 は 120 です。610この 式 では、 組 み 込 み 関 数 Min が 使 用 されます。Age が 値 30 を 持 つ context プロパティであり、 同 じくプロパティである Limit の 値 が 65 であるとき、この 式 の 値 は30 になります。0.33。この 式 では、 組 み 込 み 関 数 Round が 使 用 されます。この 式 では、 演 算 子 の 優 先 順 位 規 則 が 使 用 されます ( 詳 細 は、" 式 の 演 算 子 " で 説明 します)。A が F の 文 字 列 値 を 持 つ context プロパティであり、 同 じくプロパティである x が 38 の 整 数 値 を 持 っている 場 合 、この 式 は 1 の 整 数 値 を 持 ちます。この 整数 値 には、Ensemble の 規 則 に 従 って、 真 または 偽 の 意 味 があります。つまり、 整 数値 1 は 真 、 整 数 値 0 は 偽 を 意 味 します。この 式 では、ユーティリティ 関 数 Min および Max が 使 用 されます。X が 数 値 9.125を 持 つ context プロパティであり、( 同 じくプロパティである) Y の 数 値 が 6.875 であるとき、この 式 の 値 は 9.125 になります。この 式 では、 複 雑 な 論 理 リレーションシップ 内 での 優 先 順 位 を 明 確 に 示 すため、かっこが 使 用 されます。その 値 として 式 を 取 るプロパティを 選 択 すると、ルール・セット・ダイアグラムの 上 部 に 空 白 のテキスト・フィールドが 表 示 されます。このフィールドには 任 意 の 文 字 列 を 入 力 できるため、 正 しい 構 文 を 入 力 するよう 注 意 してください。 式 を 作 成 するときのルールは 以 下 のとおりです。• 式 には、 前 述 のように、 数 値 、 文 字 列 、context プロパティ、 式 、 関 数 、またはこれらの 有 効 な 組 み 合 わせを 使 用 して、 任 意 の 値 を 記 述 できます。• 式 の 中 の 空 白 は 無 視 されます。• 前 述 の 任 意 の 演 算 子 を 使 用 できます。• デフォルトの 演 算 子 優 先 順 位 を 上 書 きするか、 式 を 読 みやすくする 場 合 は、かっこを 使 用 して 式 の 部 分 をグループにまとめ、 優 先 順 位 を 示 すことができます。 例 えば、 以 下 のようになっているとします。1+2.5*2 = 6これは 以 下 のように 変 更 できます。(1+2.5)*2 = 7• ビジネス・ルールでは、(((x=1) || (x=3)) && (y=2)) のように、かっこを 使 用 して 複 雑 な 論 理 式 をグループ化 できます。[ 式 編 集 ] を 呼 び 出 すと、 式 のグラフィック 表 現 の 上 部 に、その 式 のテキスト 表 現 を 示 す 青 色 のバーが 表 示 されます。ビジネス・ルールの 開 発 21


ルール・セットの 作 成 および 編 集3.4 ビジネス・ルール 通 知 の 追 加あるルールを 実 行 するたびに 特 定 のアクションが 実 行 されるようにルール 通 知 を 設 定 できます。ルールに 関 連 する 大 半のアクティビティとは 異 なり、 通 知 にはプログラミングが 必 要 です。Ens.Rule.Notification のサブクラスを 定 義 して、そのサブクラスの %OnNotify メソッドを 上 書 きする 必 要 があります。このメソッドのシグニチャは 次 のとおりです。ClassMethod %OnNotify(pReason As %String,pRule As Ens.Rule.RuleDefinition)As %Status使 用 可 能 な pReason の 値 は 次 のとおりです。• BeforeSave• AfterSave• Delete実 行 時 に Ensemble フレームワークは 自 動 的 に Ens.Rule.Notification のサブクラスを 検 索 し、%OnNotify 内 のコードを使 用 してルールの 実 行 時 に 行 う 操 作 を 判 断 します。22 ビジネス・ルールの 開 発


4ルール・クラスの 例Ensemble には、 各 種 ルール・タイプの 例 を 示 すさまざまなデモ・プロダクションが 含 まれています。 以 下 の 各 節 では、ルール・クラスの 例 をタイプ 別 に 示 します。• 汎 用 ビジネス・ルールの 例• HL7 メッセージ・ルーティング・ルールの 例• 汎 用 メッセージ・ルーティング・ルールの 例• 仮 想 ドキュメントのメッセージ・ルーティング・ルールの 例4.1 汎 用 ビジネス・ルールの 例Demo.ZenService.Bproc.WeatherReport.TempScale クラスは、 汎 用 ビジネス・ルールの 例 です。これは、ENSDEMOネームスペースの Demo.ZenService.Prod.GetTheWeather プロダクションの 一 部 です。以 下 の 図 は、Ensemble ルール・エディタにこのルール 定 義 がどのように 表 示 されるかを 示 しています。クラス 定 義 を 以 下 に 示 しています。ビジネス・ルールの 開 発 23


ルール・クラスの 例/// 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" ]{"F""C"}}4.2 HL7 メッセージ・ルーティング・ルールの 例Demo.HL7.MsgRouter.XYZRoutingRule クラスは、HL7 メッセージ・ルーティング・ビジネス・ルールの 例 です。これは、ENSDEMO ネームスペースの Demo.HL7.MsgRouter.Production プロダクションの 一 部 です。以 下 の 図 は、Ensemble ルール・エディタにこのルール 定 義 がどのように 表 示 されるかを 示 しています。24 ビジネス・ルールの 開 発


HL7 メッセージ・ルーティング・ルールの 例以 下 のコードはこのクラス 定 義 を 示 しています。/// Routing from the XYZ message source.Class Demo.HL7.MsgRouter.XYZRoutingRule Extends Ens.Rule.Definition{Parameter RuleAssistClass = "EnsLib.HL7.MsgRouter.RuleAssistCompatible";XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]{ビジネス・ルールの 開 発 25


ルール・クラスの 例}}4.3 汎 用 メッセージ・ルーティング・ルールの 例Demo.HL7.MsgRouter.AlertRule クラスは、 汎 用 メッセージ・ルーティング・ビジネス・ルールの 例 です。これは、ENSDEMOネームスペースの Demo.HL7.MsgRouter.Production プロダクションの 一 部 です。以 下 の 図 は、Ensemble ルール・エディタにこのルール 定 義 がどのように 表 示 されるかを 示 しています。以 下 のコードはこのクラス 定 義 を 示 しています。/// See the AlertTable lookup table for a mapping of alert sources to email addresses./// If no match is found in the lookup, EmailAlertTransformation sends the alert/// to the configured Recipient for the EMailAlertOperation.Class Demo.HL7.MsgRouter.AlertRule Extends Ens.Rule.Definition{Parameter RuleAssistClass = "EnsLib.MsgRouter.RuleAssist";XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]{26 ビジネス・ルールの 開 発


仮 想 ドキュメントのメッセージ・ルーティング・ルールの 例}}4.4 仮 想 ドキュメントのメッセージ・ルーティング・ルールの 例Demo.HL7v3.Rule.RouteAndTransform クラスは、 仮 想 ドキュメントのメッセージ・ルーティング・ビジネス・ルールの 例 です。これは、ENSDEMO ネームスペースの Demo.HL7v3.Production.InterfaceEngine プロダクションの 一 部 です。以 下 の 図 は、Ensemble ルール・エディタにこのルール 定 義 がどのように 表 示 されるかを 示 しています。以 下 のコードはこのクラス 定 義 を 示 しています。/// Test rule for HL7 version 3 productionsClass Demo.HL7v3.Rule.RouteAndTransform Extends Ens.Rule.Definition{Parameter RuleAssistClass = "EnsLib.MsgRouter.VDocRuleAssistCompatible";XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]{ビジネス・ルールの 開 発 27


ルール・クラスの 例}}28 ビジネス・ルールの 開 発


5ルーティング・ルールのデバッグこの 章 では、EDI メッセージ・ルーティング・プロダクションのルーティング・ルールのデバッグ 方 針 について 説 明 します。ルーティング・ルールで 発 生 する 大 きな 問 題 として、メッセージが 宛 先 に 届 かないという 症 状 があります。これは 多 くの 場合 、ルーティング・プロダクション 内 部 のビジネス・オペレーションやルーティング・プロセスなど、 途 中 のポイントにはメッセージが 到 達 しているものの、Ensemble 外 部 のアプリケーション・サーバに 存 在 することが 普 通 のターゲットの 宛 先 に 届かない 現 象 です。この 場 合 は、 次 の “ルーティング・ルールに 関 する 問 題 の 解 決 ” の 図 A、 図 B、 図 C、および 図 D に示 す 問 題 解 決 シーケンスに 従 うことができます。ビジネス・ルールの 開 発 29


ルーティング・ルールのデバッグ図 5–1: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 A)30 ビジネス・ルールの 開 発


ルーティング・ルールのデバッグ図 5–2: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 B)ビジネス・ルールの 開 発 31


ルーティング・ルールのデバッグ図 5–3: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 C)32 ビジネス・ルールの 開 発


ルーティング・ルールのデバッグ図 5–4: ルーティング・ルールに 関 する 問 題 の 解 決 ( 図 D)ビジネス・ルールの 開 発 33


AEnsemble ユーティリティ 関 数この 付 録 では、ビジネス・ルールと DTL データ 変 換 で 使 用 可 能 な Ensemble ユーティリティ 関 数 について 説 明 します。このような 関 数 には、 他 のプログラミング 言 語 で 使 い 慣 れている 数 学 的 な 処 理 関 数 または 文 字 列 処 理 関 数 などがあります。この 付 録 には 以 下 のトピックが 含 まれています。• 組 み 込 み 関 数• 関 数 の 呼 び 出 し 構 文独 自 の 関 数 を 定 義 するには、"Ensemble プロダクションの 開 発 " の “カスタム・ユーティリティ 関 数 の 定 義 ” を 参 照 してください。A.1 組 み 込 み 関 数以 下 のリストに、Ensemble に 組 み 込 まれているユーティリティ 関 数 を 示 します。注 釈ブーリアン 値 の 場 合 、1 は 真 、0 は 偽 を 示 します。Contains(val,str)val に 文 字 列 str が 含 まれる 場 合 は 1 ( 真 ) を 返 します。それ 以 外 は 0 ( 偽 ) を 返 します。ConvertDateTime (val,in,out,file)in 形 式 のタイム・スタンプとして 入 力 文 字 列 val を 読 み 取 り、その 値 を out 形 式 のタイム・スタンプに 変 換 して 返します。"Ensemble プロダクションの 構 成 " の “ファイル 名 に 関 するタイム・スタンプ 仕 様 ” を 参 照 してください。in および out のデフォルトは %Q です。out 引 数 の 中 の 任 意 の %f 要 素 は、file 文 字 列 に 置 き 換 えられます。valが in 形 式 に 適 合 しない 場 合 、out は 無 視 され、val は 変 換 されずに 返 されます。CurrentDateTime(format)指 定 されたフォーマットで 日 付 / 時 間 値 を 表 す 文 字 列 を 返 します。デフォルト・フォーマットは、サーバのローカル・タイムゾーンでの ODBC フォーマット (%Q) です。DoesNotContain(val,str)val に 文 字 列 str が 含 まれない 場 合 は 1 ( 真 ) を 返 します。ビジネス・ルールの 開 発 35


Ensemble ユーティリティ 関 数DoesNotIntersectList(val,items,srcsep,targetsep)指 定 されたソース・リスト (val) のアイテムがターゲット・リスト (items) に 表 示 されない 場 合 、1 ( 真 ) を 返 します。 引数 の 詳 細 は、IntersectsList を 参 照 してください。DoesNotMatch(val,pat)val のパターンが、pat で 指 定 されるパターンと 一 致 しない 場 合 は 1 ( 真 ) を 返 します。pat は、ObjectScript のパターン・マッチング 演 算 子 ? に 適 した 構 文 を 使 用 した 文 字 列 とする 必 要 があります。 詳 細 は、"CachéObjectScript の 使 用 法 " の “ 演 算 子 と 式 ” の 章 で “パターン・マッチング” を 参 照 してください。DoesNotStartWith(val,str)Exists(tab,val)If(val,true,false)In(val,items)InFile(val,file)InFileColumn(...)val が 文 字 列 str で 始 まらない 場 合 は 1 ( 真 ) を 返 します。Exists 関 数 は、Lookup 関 数 の 結 果 を 予 測 する 手 段 を 提 供 します。Exists は、val が tab で 指 定 されたテーブルの 中 で 定 義 されたキーであれば 1 ( 真 ) を 返 します。それ 以 外 は、0 ( 偽 ) を 返 します。引 数 val が 1 ( 真 ) に 評 価 されると、If 関 数 は true 引 数 の 文 字 列 値 を 返 します。それ 以 外 は、false 引 数 の 文 字列 値 を 返 します。カンマ 区 切 り 文 字 列 items の 中 に val がある 場 合 は 1 ( 真 ) を 返 します。特 定 された file の 中 に val がある 場 合 は 1 ( 真 ) を 返 します。関 数 InFileColumn can は、 最 大 8 個 の 引 数 を 指 定 できます。 完 全 な 関 数 のシグニチャは、 以 下 のとおりです。InFileColumn(val, file, columnId, rowSeparator, columnSeparator, columnWidth, lineComment, stripPadChars)InFileColumn は、テーブル 形 式 のテキスト・ファイル file の 中 の 指 定 された 列 に val がある 場 合 、1 ( 真 ) を 返 します。 引 数 の 詳 細 は、 以 下 のとおりです。• val ( 必 須 ) は 値 です。• file ( 必 須 ) はテキスト・ファイルです。• デフォルトの columnId は 1 です。• デフォルトの rowSeparator は ASCII 10 です。rowSeparator に 負 の 値 を 指 定 すると、 列 の 長 さを 示 します。• デフォルトの columnSeparator は ASCII 9 です。columnSeparator が 0 の 場 合 、ファイルのフォーマットを“ 位 置 基 準 ” といいます。この 場 合 、columnId は 文 字 の 位 置 、columnWidth は 文 字 カウントを 示 します。• デフォルトの columnWidth は 0 です。• デフォルトの lineComment は 空 文 字 列 です。• デフォルトの stripPadChars は、1 つの 空 白 文 字 とその 後 の ASCII 9 で 構 成 されます。36 ビジネス・ルールの 開 発


組 み 込 み 関 数IntersectsList(val,items,srcsep,targetsep)指 定 されたソース・リスト (val) のアイテムがターゲット・リスト (items) に 表 示 される 場 合 、1 ( 真 ) を 返 します。 引 数srcsep および targetsep は、ソース・リストとターゲット・リストにそれぞれリスト・セパレータを 指 定 します。 各 リスト・セパレータのデフォルトは ">


Ensemble ユーティリティ 関 数NotInFile(val,file)特 定 された file の 中 に val がない 場 合 、1 ( 真 ) を 返 します。NotLike(string,pattern)指 定 された 値 (string) が 指 定 されたパターン 文 字 列 (pattern) によって SQL Like 比 較 を 満 たさない 場 合 、1( 真 ) を 返 します。"Like" を 参 照 してください。Pad(val,width,char)入 力 文 字 列 val を 読 み 取 り、この 文 字 列 が width の 文 字 列 長 になるまで char の 文 字 を 追 加 します。width に正 の 値 を 指 定 すると、val 文 字 列 の 右 側 に 文 字 が 追 加 されます。width に 負 の 値 を 指 定 すると、val 文 字 列 の 左側 に 文 字 が 追 加 されます。Piece(val,char,from,to)区 切 り 文 字 char が 文 字 列 val の 中 にあると、ここで 文 字 列 が 分 断 されます。 文 字 列 が 複 数 に 分 断 される 場 合 、返 される 分 断 文 字 列 の 範 囲 を from と to で 指 定 します。 最 初 の 分 断 文 字 列 が 1 になります。 複 数 の 分 断 文 字列 が 返 される 場 合 、 返 される 文 字 列 には 入 力 文 字 列 と 同 じ 区 切 り 文 字 が 使 用 されます。 以 下 に 例 を 示 します。Piece("A,B,C,D,E,F") は "A" を 返 します。Piece("A!B!C!D!E!F","!",2,4) は "B!C!D" を 返 します。デフォルトの char はカンマ、デフォルトの from は 1、デフォルトの to は from です (1 ピースのみを 返 します)。詳 細 は、"Caché ObjectScript リファレンス" の "$PIECE" 関 数 を 参 照 してください。ReplaceStr(val,find,repl)入 力 文 字 列 val を 読 み 取 り、 文 字 列 find があったらすべて repl に 置 き 換 えて、その 文 字 列 を 返 します。注 釈Replace 関 数 は 廃 止 されたため、 代 わりに ReplaceStr を 使 用 してください。Round(val,n)val の 値 を 小 数 点 以 下 n 桁 に 丸 めて 返 します。n が 指 定 されていない 場 合 (Round(val)) は、 小 数 点 以 下 の 桁を 切 り 捨 て、1 の 位 に 丸 めることで、 整 数 が 生 成 されます。Rule(rulename,context,activity)ルール・ログに 対 して 指 定 された context オブジェクトと 指 定 された activity ラベルを 使 用 して、rulename に 指定 されたルールを 評 価 します。Schedule(ScheduleSpec, ODBCDateTime)指 定 された ScheduleSpec 文 字 列 の 状 態 、ODBCDateTime により 指 定 された 時 点 で 指 定 された Schedule または Ruleの 状 態 を 評 価 します。ScheduleSpec が '@' で 始 まる 場 合 は、スケジュール 名 またはルール 名 を 示 します。そうでない 場 合 は、 生 の Schedule 文 字 列 を 示 します。ODBCDateTime が 空 白 の 場 合 は、 現 在 の 時 刻 に 対して 評 価 が 行 われます。StartsWith(val,str)val が 文 字 列 str で 始 まる 場 合 、1 ( 真 ) を 返 します。Strip(val,act,rem,keep)入 力 文 字 列 val を 読 み 取 り、act テンプレートおよび rem 文 字 列 で 指 定 したカテゴリに 適 合 する 文 字 をすべて削 除 し、keep 文 字 列 にある 文 字 はすべて 残 します。その 結 果 の 文 字 列 を 返 します。 詳 細 は、"Caché ObjectScriptリファレンス" の "$ZSTRIP" 関 数 を 参 照 してください。38 ビジネス・ルールの 開 発


関 数 の 呼 び 出 し 構 文SubString(str,n,m)ToLower(str)ToUpper(str)文 字 列 str の 部 分 文 字 列 を 返 します。 開 始 位 置 n と 終 了 位 置 m を 数 字 で 指 定 します。 数 字 の 1 は 文 字 列 の最 初 の 文 字 を 示 します。m が 指 定 されていない 場 合 (SubString(str,n)) は、 位 置 n から 文 字 列 の 最 後 までの 部分 文 字 列 を 返 します。文 字 列 str を 小 文 字 に 変 換 して 返 します。文 字 列 str を 大 文 字 に 変 換 して 返 します。Translate(val,in,out)入 力 文 字 列 val を 読 み 取 り、 文 字 列 in にある 1 文 字 を、 文 字 列 out の 同 じ 位 置 にある 文 字 にすべて 変 換 して返 します。注 釈これらの 関 数 は、Ens.Util.FunctionSet クラス 内 のメソッドで 定 義 されます。A.2 関 数 の 呼 び 出 し 構 文ビジネス・ルールまたは DTL データ 変 換 で Ensemble 関 数 を 参 照 する 場 合 、 構 文 には 必 ずかっこが 含 まれます。また、数 値 関 数 Min、Max、Round の 数 値 などの 入 力 パラメータも 含 める 必 要 があります。 関 数 に 入 力 値 がない 場 合 は、 中 身が 空 の 左 右 のかっこを 含 める 必 要 があります。次 に、 有 効 な 関 数 の 構 文 の 例 を 示 します。式Min(Age,80,Limit)Round(1/3,2)Min(10,Max(X,Y))算 出 値Age が 値 30 を 持 つプロパティであり、 同 じくプロパティである Limit の 値 が 65 であるとき、この 式 の 値 は 30 になります。0.33X が 数 値 9.125 を 持 つプロパティであり、 同 じくプロパティである Y の 数 値 が 6.875であるとき、この 式 の 値 は 9.125 になります。関 数 への 値 の 入 力 が、 数 値 で 始 まる 文 字 列 である 場 合 、 文 字 列 内 の 数 値 以 外 の 文 字 は 破 棄 され、 数 値 部 分 のみが 使用 されます。 文 字 列 "3a" は、3 の 数 値 として 取 り 扱 われるため、 関 数 Min("3a","2OfThem") からは 2 の 値 が 返 されます。"a123" のような 数 字 以 外 の 文 字 で 始 まる 文 字 列 の 場 合 は、 数 値 0 となります。ビジネス・ルールのユーティリティ 関 数 の 構 文 は、 以 下 のように 大 幅 に DTL 構 文 と 異 なります。• ビジネス・ルールは、ユーティリティ 関 数 を 単 純 に 名 前 で 参 照 します。ToUpper(value)• DTL では 関 数 名 の 直 前 に 2 つのドットを 使 用 して、 関 数 をメソッドのように 扱 います。..ToUpper(value)以 下 の DTL データ 変 換 では、ユーティリティ 関 数 ToUpper() を 使 用 して 文 字 列 をすべて 大 文 字 に 変 換 します。この 文 は、クラスのメソッドのように、ダブルドット 構 文 を 使 用 して ToUpper() を 参 照 します。ビジネス・ルールの 開 発 39


Ensemble ユーティリティ 関 数Class User.NewDTL1 Extends Ens.DataTransformDTL{XData DTL{}}40 ビジネス・ルールの 開 発


索 引シンボル[Ensemble ルール・エディタ] ページルール・リスト, 7アクション, 13クラスビジネス・ルール, 5セット, ルール, 11ビジネス・ルールBPL, 7otherwise 節 , 12when 節 , 12アクション, 13インポートとエクスポート, 7クラス, 5タイプ, 4ルーティング・ルール・セット, 11ルール, ルール・セット, 12ルール・セット, 11ルール 定 義 のリスト, 7値 , ルール 定 義 , 19式 の 例 , 20条 件 , 17概 要 , 3追 加 , 7関 数 , 20ビジネス・ルール ページ, 7ビジネス・ルール・エディタ ページ, 7ルーティング・ルール・セット, 4ルール, ビジネス次 を 参 照 ビジネス・ルールルール・セット, 4, 11値 , 19次 も 参 照 ビジネス・ルール; ステータス式 の 例 , 20条 件 , 17表 示ルール 定 義 のリスト, 7設 定ビジネス・ルール, 7追 加ビジネス・ルール, 7関 数 , 20BBPLビジネス・ルール, 7Ootherwise 節 , 12Wwhen 節 , 12ビジネス・ルールの 開 発 41

More magazines by this user
Similar magazines