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 では部分的にしか解釈されません。仮想ドキュメントの目的を理解するには、Ensemble メッセージをもう少し詳しく調べる必要があります。すべての Ensemble メッセージが次の 2 つの部分から構成されています。

  • メッセージ・ヘッダには、Ensemble 内でメッセージをルーティングするために必要なデータが含まれています。メッセージ・ヘッダは、常に同じタイプのオブジェクトです。これは、永続オブジェクトです。つまり、Ensemble データベース内のテーブルに保存されます。

  • メッセージ・ボディには、メッセージ・データが含まれています。標準メッセージの場合は、メッセージ・ボディが永続オブジェクトです。仮想ドキュメントの場合は、後述するように、メッセージ・ボディが別の方法で実装されます。

オブジェクトは、データの各断片を別々のプロパティとして表現します。これには、オブジェクト内の任意の値に簡単にアクセスできるというメリットがあります。コードを記述するときは、値を取得するために、名前でクラス・プロパティを参照します。

EDI (Electronic Data Interchange) 形式の場合は、このアプローチが扱いにくく、不要なものになります。これは、大量のプロパティ (数百個になる場合もある) が必要となり、オブジェクトのインスタンスの作成プロセスに時間がかかる可能性があるためと、アプリケーションが多くても、ドキュメント内で実際に使用可能なフィールドのほとんどが使用されないためです。

これらの問題を解決するために、Ensemble には仮想ドキュメントと呼ばれる別の種類のメッセージ・ボディが用意されています。仮想ドキュメントを使用すれば、ドキュメントの内容を正式なプロパティのセットとして保持するためのオブジェクトを作成せずに、ドキュメントの内容そのままを Ensemble メッセージの x ボディとして送信できます。仮想ドキュメント内のデータは内部使用グローバルに直接保存されるため、処理速度が向上します。

仮想ドキュメント・アプローチは XML ドキュメント (標準メッセージとして処理することもできる) に対しても有効です。

仮想ドキュメントの種類

Ensemble では、以下の種類のドキュメントを仮想ドキュメントとして処理できます。

ドキュメントの種類 参照先
ASTM ドキュメント Ensemble ASTM 開発ガイド
EDIFACT ドキュメント Ensemble EDIFACT Development Guide
HL7 バージョン 2 メッセージ Ensemble HL7 バージョン 2 開発ガイド
X12 ドキュメント Ensemble X12 開発ガイド
XML ドキュメント Ensemble XML 仮想ドキュメント開発ガイド

XML ドキュメントを標準メッセージとして処理することもできます。これを実現するには、対応する XML スキーマからクラスを生成する必要があります。詳細は、"Caché XML ツールの使用法" を参照してください。

相互接続セット内のその他のドキュメントには仮想ドキュメントの記述がありません。

仮想ドキュメントの内容へのアクセス

仮想ドキュメント内のデータを操作するには、その中の特定のデータ項目を識別できる必要があります。このデータ項目を仮想プロパティといいます。仮想プロパティ・パスは Ensemble で仮想プロパティの場所を指定するために使用される構文です。仮想プロパティ・パスは、特に、以下の場所で使用できます。

  • ビジネス・ルール。以下に例を示します。

    generated description: busrule example

    仮想プロパティ・パスが中かっこで囲まれています。

  • データ変換。以下に例を示します。

    generated description: dtl example

    [プロパティ][値] の両方に関して、仮想プロパティ・パスが中かっこで囲まれています。

結果的に、プロダクションでは、標準メッセージとほとんど同じように仮想ドキュメントを操作できます。

詳細は、後述する “仮想プロパティ・パス” の章を参照してください。

フィルタと検索のサポート

標準のメッセージ本文の場合、管理ポータルでメッセージの各プロパティを直接検索することができます。つまり、ユーザは、プロパティのパスを知らなくても、プロパティを検索やフィルタリングに使用することが可能です。

デフォルトで、メッセージ識別子を除いて、管理ポータルでは、仮想ドキュメント内のデータを直接検索することはできません。そのため、ユーザがデータ項目を検索やフィルタリングに使用するには、その項目のプロパティ・パスを知っている必要があります。

ユーザを支援するために、以下のメカニズムを使用して、仮想プロパティを直接検索可能にできます。

  • 検索テーブル・クラスを定義します。このクラスでは、仮想プロパティ・パスを使用して検索可能プロパティを定義します。

  • 検索テーブル・クラスを使用するうえで適用可能なビジネス・ホストを構成してください。

    ビジネス・ホストでメッセージが受信されると、Ensemble によってそれらのプロパティが標準メッセージ本文内のプロパティであるかのようにインデックスが割り当てられます。

これにより、ユーザは使用するプロパティ・パスを知らなくても、それらのプロパティを直接使用できるようになります。以下に例を示します。

generated description: search table using

検索テーブルの定義方法は、後述する “検索テーブルの定義” を参照してください。

FeedbackOpens in a new tab