DTL <subtransform>
構文
<subtransform class='class-name'
targetObj='target-value}'
sourceObj='source-value'/>
属性
属性 | 説明 | 値 |
---|---|---|
class |
必須項目。呼び出されるデータ変換を含むクラスの名前です。このクラスは、これを呼び出すクラスと同じネームスペースにあることが必要です。 多くの場合、このトピックの例で示すように、class は、DTL <transform> 要素を使用して定義される DTL データ変換です。 または、class で、Transform メソッドを実装して DTL を使用しない Ens.DataTransformOpens in a new tab のカスタム・サブクラスを指定することができます。 |
完全なパッケージとクラスの名前。 |
sourceObject |
必須項目。変換されるプロパティを指定します。これには、オブジェクト・プロパティまたは仮想ドキュメント・プロパティを指定できます。これは通常、対応する <transform> 要素の sourceClass および (仮想ドキュメントの場合は) sourceDocType によって指定されるソース・オブジェクトのプロパティです。この場合、以下のようにドット構文を使用して参照されます。 source.property または source.{propertyPath} |
プロパティ名。仮想ドキュメントおよびそのセグメントの場合は、仮想プロパティ構文を使用します。 |
targetObject |
必須項目。変換された値を書き込むプロパティを指定します。これには、オブジェクト・プロパティまたは仮想ドキュメント・プロパティを指定できます。これは通常、対応する <transform> 要素の targetClass および (仮想ドキュメントの場合は) targetDocType によって指定されるターゲット・オブジェクトのプロパティです。この場合、以下のようにドット構文を使用して参照されます。 target.property または target.{propertyPath} [作成] がnew または copy として設定されている subtransform の場合は、既存のターゲット・オブジェクトを持っている必要がありません。 |
プロパティ名。仮想ドキュメントおよびそのセグメントの場合は、仮想プロパティ構文を使用します。 |
要素
要素 | 目的 |
---|---|
<annotation> | オプション。<subtransform> 要素について記述するテキスト文字列。 |
説明
<subtransform> 要素は、別のデータ変換を呼び出します。<subtransform> を呼び出すことによって、対応する <transform> 要素が他のデータ変換を呼び出し、その作業のセグメントを完了させることができます。これにより、開発者は、再利用可能な一連の DTL 変換コードをより柔軟に保持できます。
<subtransform> 要素が利用できるようになる前は、すべての DTL <transform> が孤立していました。同じ一連のアクションを含む複数の DTL 変換を記述するには、コードの該当部分を、クラス間でコピーして貼り付ける必要がありました。現在、これらの DTL クラスではそれぞれ、繰り返される行を <subtransform> 要素に置き換えることにより、別のクラスを呼び出して必要なシーケンスを実行できるようになりました。
<subtransform> のソース・オブジェクトまたはターゲット・オブジェクトは、通常の InterSystems IRIS オブジェクト、仮想ドキュメントのメッセージ・オブジェクト、または仮想ドキュメント・メッセージ内の個々のセグメントを示す仮想ドキュメントのセグメント・オブジェクトです。<subtransform> は、Electronic Data Interchange (EDI) 形式を扱うインタフェース開発者にとって特に重要です。EDI 形式のメッセージやドキュメントにはそれぞれ、変換が必要な独自のセグメントが多くあるためです。<subtransform> を使用することにより、変換を呼び出すためにコードをコピーせずに、再利用可能なセグメント変換のライブラリを作成して必要に応じて呼び出すことができます。
仮想ドキュメントおよびそのセグメントの場合、以下の例のように、中かっこ {} の構文などの仮想プロパティ構文を使用する必要があります。かっこ内のプロパティ・パスは、セグメントやセグメントのグループ内にあるフィールドではなく、特定のセグメントを参照する必要があります。背景情報は、"プロダクション内での仮想ドキュメントの使用法" を参照してください。詳しい説明は、"仮想プロパティ・パス" にあります。