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?

Assign アクションの追加

この章では、DTL 変換にさまざまな assign アクションを追加する方法について詳しく説明します。この章は以下の節で構成されています。

Important:

仮想ドキュメントでは、データ変換内のエスケープ・シーケンスを手動で変更しないでください。これらは Ensemble によって自動的に処理されます。

その他の種類のアクションの追加方法は、次の章を参照してください。

概要

assign アクションには、setclearremoveappend、および insert の 5 種類があります。assign アクションを作成してから、そのタイプを変更できます。これを実現するには、[アクション] タブの [アクション] ドロップダウンで別の値を選択します。

Ensemble では、それぞれの assign アクションが DTL ダイアグラム内のコネクタ線で表現されます。

オブジェクトとオブジェクト参照

ソースとして別のオブジェクトの任意のオブジェクト・プロパティまたは最上位のソース・オブジェクトから assign する場合、ターゲットは、オブジェクト自体ではなくそのオブジェクトの複製されたコピーを受け取ります。これにより、オブジェクト参照の不注意な共有を避け、ユーザ自身が複製オブジェクトを生成する手間を省きます。

代わりに、ソースとターゲット間でオブジェクト参照を共有する場合は、ソースから中間一時変数に assign してから、その変数からターゲットに assign する必要があります。

ソース・メッセージのコピー

ソース・メッセージをコピーする assign アクションを作成するには:

  1. ソース・メッセージの右にある円形のタブをドラッグします。マウス・ボタンを押さえます。

  2. カーソルをターゲット・メッセージの左にある三角形のタブにそのボックスの色が変化するまでドラッグします。

  3. 左マウス・ボタンを放します。

ソース・プロパティからターゲット・プロパティへの値のコピー

ソース・プロパティからターゲット・プロパティに値をコピーする assign アクションを作成するには:

  1. ソース・プロパティからターゲット・プロパティに値をドラッグします。これを行うには、以下を実行します。

    1. ソース・プロパティの右にある丸いタブをクリックします。マウス・ボタンを押さえます。画面には以下のように表示されます。

      generated description: editor select source

    2. カーソルをターゲット・プロパティの左にある三角形のタブにそのボックスの色が変化するまでドラッグします。画面には以下のように表示されます。

      generated description: editor select drag

    3. 左マウス・ボタンを放します。画面には以下のように表示されます。

      generated description: editor select drop

    これで、ダイアグラムの下のテーブルに assign アクションの詳細が表示されます。

  2. オプションで、[アクション] タブで詳細を編集します。

この assign アクションでは set が使用されています。

すべてのサブプロパティの値のコピー

ソースとターゲット内の親プロパティが同じであり、ソースとターゲットが同じタイプの場合は、すべてのサブプロパティの値を一度に割り当てることができます。その場合、親プロパティを展開してサブプロパティを表示する必要はありません。ソース側の親プロパティからターゲット側の親プロパティにカーソルをドラッグするだけです。

以下の DTL ダイアグラムでは、ソース側とターゲット側の EVN プロパティ間の 1 つのコネクタに次の EVN のサブプロパティのすべてが含まれます。

  • EventTypeCode

  • RecordedDateTime とそのすべてのサブプロパティ

  • DateTimePlannedEvent とそのすべてのサブプロパティ

  • EventReasonCode

  • OperatorID、そのすべての反復、およびそのすべてのサブプロパティ

  • EventOccurred とそのすべてのサブプロパティ

generated description: editor all subproperties

この assign アクションでは set が使用されています。

Note:

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

ターゲット・プロパティへのリテラル値の割り当て

ターゲット・プロパティにリテラル値を割り当てるには:

  1. ターゲット・プロパティを選択します。

  2. [アクション追加] ドロップダウン・リストで [set] をクリックします。この操作の [アクション] タブが表示されます。

  3. [値] フィールドにリテラルの数値または文字列値を入力します。

    • 数値リテラルはただの数字です。例えば、42.3 などです。

    • 文字列リテラルは二重引用符で囲まれた文字列です。例えば、"ABD" などです。

      Note:

      この文字列には XML 予約文字を含めることができません。仮想ドキュメントの場合は、この文字列に仮想ドキュメント形式で使用されるセパレータ文字を含めることができません。詳細は、“構文ルール” の章を参照してください。

  4. [保存] をクリックします。

ターゲット・プロパティの値に対する式の使用

前の節で説明したリテラル値は単純な式の種類です。ターゲット・プロパティの値としてもっと複雑な式を使用したい場合があります。これを実現するには、以下のどちらかを実行します。

  • Ensemble 関数を使用した式を作成する場合は、[値] フィールドの横にある検索ボタン generated description: icon search をクリックします。これにより、以降の項で説明するデータ変換関数ウィザードが呼び出されます。

  • より複雑な式を作成する場合は、[値] フィールドに式を入力します。

    前述した “有効な式” を参照してください。データ変換用に選択されたスクリプティング言語で書かれた式が有効なことを確認します。前述した “変換詳細の指定” を参照してください。

データ変換関数ウィザードの使用法

データ変換関数ウィザードを使用するには:

  1. ドロップダウン・リストから [関数] を選択します。

    必要に応じて、式を定義するための複数のフィールドが表示されます。

    ドロップダウン・リストから [現在の関数を繰り返す] を選択した場合は、現在の関数のコピーがその関数自体のパラメータとして挿入されて、その関数の再帰呼び出しが作成されます。

  2. 必要に応じてフィールドを編集します。手順は、ダイアログ内のコンテキスト依存ヘルプを参照してください。

  3. [OK] をクリックして変更内容を保存し、ウィザードを終了します。

generated description: editor function wizard

コレクション項目への値の割り当て

この節は、次の種類のコレクションに適用されます。

  • 標準 Ensemble メッセージ内のコレクション・プロパティ

  • Ensemble XML 仮想ドキュメント内の繰り返しフィールド

コレクションから項目の値を変更するには:

  1. ターゲット・リスト・プロパティまたはターゲット配列プロパティを選択します。

  2. [アクション追加] ドロップダウン・リストで [set] をクリックします。この操作の [アクション] タブが表示されます。

  3. [プロパティ] フィールドで、変更する項目を指定するようにかっこ内の値を編集します。

    配列プロパティの場合は、配列項目のキーを使用します。リスト・プロパティの場合は、リスト項目のインデックスを使用します。Ensemble 仮想ドキュメント内の繰り返しフィールドの場合は、セグメントまたはフィールドのインデックスを使用します。

    例えば、以下のように表示されていたとします。

    target.MyArrayProp.(1)
    

    代わりに以下を含むようにフィールドを編集します。

    target.MyArrayProp("key2")
    
  4. リテラル値またはその他の有効な式を含むように [値] を編集します。

    前述した “有効な式” を参照してください。データ変換用に選択されたスクリプティング言語で書かれた式が有効なことを確認します。前述した “変換詳細の指定” を参照してください。

  5. [保存] をクリックします。

以下に例を示します。

generated description: collection item set

または、表示された値から最後の .(1) を削除するように [プロパティ] フィールドを編集します。その後で、次の節で説明するように、[キー] を使用して変更する項目を指定します。以下に例を示します。

generated description: collection item set alt

リスト項目の挿入

この節は、標準 Ensemble メッセージ内のリスト・プロパティに適用されます (配列プロパティには適用されません)。このアクションは XML 仮想ドキュメントでも使用できます。"Ensemble XML 仮想ドキュメント開発ガイド" を参照してください。

リストに項目を挿入するには:

  1. ターゲット・リスト・プロパティまたはターゲット配列プロパティを選択します。

  2. [アクション追加] ドロップダウン・リストで [insert] をクリックします。この操作の [アクション] タブが表示されます。

  3. [プロパティ] フィールドで、表示された値から最後の .(1) を削除します。

    例えば、以下のように表示されていたとします。

    target.MyListProp.(1)
    

    代わりに以下を含むようにフィールドを編集します。

    target.MyListProp
    
  4. リテラル値またはその他の有効な式を含むように [値] を編集します。

    前述した “有効な式” を参照してください。データ変換用に選択されたスクリプティング言語で書かれた式が有効なことを確認します。前述した “変換詳細の指定” を参照してください。

  5. [キー] で、新しい項目のインデックス位置を指定します。

    以下に例を示します。

    5
    
  6. [保存] をクリックします。

以下に例を示します。

generated description: collection item insert

リスト項目の追加

この節は、標準 Ensemble メッセージ内のリスト・プロパティに適用されます (配列プロパティには適用されません)。このアクションは XML 仮想ドキュメントでも使用できます。"Ensemble XML 仮想ドキュメント開発ガイド" を参照してください。

リストに項目を挿入するには:

  1. ターゲット・リスト・プロパティまたはターゲット配列プロパティを選択します。

  2. [アクション追加] ドロップダウン・リストで [append] をクリックします。この操作の [アクション] タブが表示されます。

  3. [プロパティ] フィールドで、表示された値から最後の .(1) を削除します。

    例えば、以下のように表示されていたとします。

    target.MyListProp.(1)
    

    代わりに以下を含むようにフィールドを編集します。

    target.MyListProp
    
  4. リテラル値またはその他の有効な式を含むように [値] を編集します。

    前述した “有効な式” を参照してください。データ変換用に選択されたスクリプティング言語で書かれた式が有効なことを確認します。前述した “変換詳細の指定” を参照してください。

  5. [保存] をクリックします。

以下に例を示します。

generated description: collection item append

コレクション項目の削除

この節は、標準 Ensemble メッセージ内のコレクション・プロパティ (リストと配列) に適用されます。このアクションは XML 仮想ドキュメントでも使用できます。"Ensemble XML 仮想ドキュメント開発ガイド" を参照してください。

コレクションから項目を削除するには:

  1. ターゲット・リスト・プロパティまたはターゲット配列プロパティを選択します。

  2. [アクション追加] ドロップダウン・リストで [remove] をクリックします。この操作の [アクション] タブが表示されます。

  3. [プロパティ] フィールドで、表示された値から最後の .(1) を削除します。

    例えば、以下のように表示されていたとします。

    target.MyArrayProp.(1)
    

    代わりに以下を含むようにフィールドを編集します。

    target.MyArrayProp
    
  4. [キー] で、削除する項目を指定します。

    配列プロパティの場合は、配列項目のキーを使用します。リスト・プロパティの場合は、リスト項目のインデックスを使用します。Ensemble 仮想ドキュメント内の繰り返しフィールドの場合は、セグメントまたはフィールドのインデックスを使用します。

    以下に例を示します。

    "key2"
    
  5. [保存] をクリックします。

以下に例を示します。

generated description: collection item remove

コレクション・プロパティの消去

この節は、標準 Ensemble メッセージ内のコレクション・プロパティ (リストと配列) に適用されます。このアクションは XML 仮想ドキュメントでも使用できます。"Ensemble XML 仮想ドキュメント開発ガイド" を参照してください。

コレクションの内容を消去するには:

  1. ターゲット・リスト・プロパティまたはターゲット配列プロパティを選択します。

  2. [アクション追加] ドロップダウン・リストで [clear] をクリックします。この操作の [アクション] タブが表示されます。

  3. [プロパティ] フィールドで、表示された値から最後の .(1) を削除します。

    例えば、以下のように表示されていたとします。

    target.MyArrayProp.(1)
    

    代わりに以下を含むようにフィールドを編集します。

    target.MyArrayProp
    
  4. [保存] をクリックします。

以下に例を示します。

generated description: collection clear

FeedbackOpens in a new tab