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?

中かっこ {} の構文

中かっこ {} 構文を使用して仮想プロパティにアクセスする方法について説明します。

該当する場合

この構文は、ビジネス・ルール、検索テーブル、検索フィルタ、BPL 要素 (<code> と <sql> 以外)、および DTL 要素 (<code> と <sql> 以外) 内で使用できます。

中かっこの構文で解決する場合は、メッセージ構造を把握している必要があります。現在のコンテキストでメッセージ構造が不明の場合は、可能であれば、代わりに、角かっこ [] 構文を使用します。

詳細

中かっこ {} 構文を使用して仮想プロパティにアクセスするには、以下の構文を使用します。

message.{myVirtualPropertyPath}

説明 :

  • message は、現在のメッセージを参照している変数です。この変数の名前はコンテキストによって異なります。

  • myVirtualPropertyPath は、前述した仮想プロパティ・パスです。

前述した構文は、以下のメソッド呼び出しと等価です。

message.GetValueAt("myVirtualPropertyPath")

中かっこ {} 構文の方が単純なため、幅広く使用されています。

一斉コピー

BPL または DTL で中かっこ {} 表記を使用している場合、セグメント全体、セグメントのグループ、またはセグメント内の複合フィールド全体をコピーできます。これを実現するには、仮想プロパティ・パスのフィールド部分 (およびコロン・セパレータ) を削除します。したがって、以下の DTL <assign> 文はすべて有効です。

<assign property='target.{MSH}' value='source.{MSH}' />
<assign property='target.{DG1()}' value='source.{DG1()}' />
<assign property='target.{DG1(1):DiagnosingClinician}' value='"^Bones^Billy"'/>

Note:

ソースとターゲットのタイプが異なる場合は (EnsLib.HL7.MessageOpens in a new tab から EnsLib.EDI.XML.DocumentOpens in a new tab へのコピーなど)、構造が並列であるように見える場合でも、一斉コピーを使用してサブプロパティを割り当てることはできません。このようなコピーの場合は、構造の各リーフ・ノードを別々に割り当てて、For Each アクションをプロセス反復に追加する必要があります。

上の例の最後の行は、コンポーネントの区切り文字としてキャレット (^) を使用しています。各 EDI 形式の詳細は、以下を参照してください。

  • "Ensemble HL7 バージョン 2 開発ガイド" の参照節内の “セパレータ

  • "Ensemble ASTM 開発ガイド" の参照節内の “セパレータ

  • "Ensemble EDIFACT 開発ガイド" の参照節内の “セパレータ

  • "Ensemble X12 開発ガイド" の参照節内の “セパレータ

以下に BPL の例を示します。

<if condition='source.{MSH:9.1}="BAR"'>

以下に DTL の例を示します。

<transform targetClass='EnsLib.HL7.Message'
           targetDocType='2.3:ADT_A01'
           sourceClass='EnsLib.HL7.Message'
           sourceDocType='2.3:ADT_A01'
           create='copy'
           language='objectscript'>
  <assign property='target.{PR1grp(1).PR1:Anesthesiologist.nametype}'
          value='"M"'
          action='set'/>
</transform>

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

Document.Name
Document.Parent.DocType
Document.{PIDgrp.PV1grp.PV1:18}
Document.{PIDgrp.PID:PatientName.familylastname}
Document.{ORCgrp(1).OBRuniongrp.OBRunion.OBR:4.3}

以下は、検索テーブルからの引用です。

<Item DocType="" PropName="MSHControlID"
                 PropType="String:CaseSensitive" >{1:10}</Item>
FeedbackOpens in a new tab