api:map

Version 25.3.9411


api:map


api:map キーワードを使用して、あるアイテムのアトリビュートを別のアイテムのアトリビュートにマップします。アトリビュートは、あるアイテムから読み取られ、マップ文字列で指定された新しい名前で別のアイテムに書き込まれます。api:map キーワードは、同期先アイテムを削除するのではなく、新しいアトリビュートを追加します。もしくは、同期先アイテムにアトリビュートが存在する場合には、そのアトリビュートは上書きされ、他のアトリビュートはそのまま残ります。

パラメータ

  • to:アトリビュートを書き込むアイテムの名前。
  • from:アトリビュートを読み取るアイテムの名前。
  • map:同期先アイテムのアトリビュート名を指定し、続いてソースアイテムのアトリビュートを指定するアトリビュート名のリスト。例えば、ある接頭辞を持つアトリビュートを別の接頭辞を持つアトリビュートにマップするには、次の構文を使います:

    customer:\* = soap:\*

    有効なアトリビュート名でない文字はすべて無視され、名前の終わりを区切るために使用されます。

アトリビュートの制御

None

3つのアトリビュートをマップします:マップは、to アトリビュート名の後にfrom アトリビュート名が続きます。

<api:set item="item1" attr="var1" value="x"/>
<api:set item="item1" attr="var2" value="y"/>
<api:set item="item2" attr="attr1" value="z"/>
<api:map to="item2" from="item1" map="attr1=var1, attr2=var2"/>

前の例では、item1var1 およびvar2 アトリビュートは、item2attr1およびattr2 アトリビュートにそれぞれマップされます。item2 の値z で設定されているattr1 アトリビュートは、item1var1 の値であるx で上書きされます。item2 に存在しないattr2 アトリビュートは新たに作成され、item1var2 の値であるy に設定されます。

複数のアトリビュートを、ある接頭辞を持つアイテムから別の接頭辞を持つアイテムにマップすることができます。これは、アプリケーション接頭辞(例えばsoap:*)をビジネスドメイン接頭辞(例えば customer:*)に変更する際に便利です。次の例では、soapout アイテム内のすべてのsoap:* アトリビュートから、customer アイテム内のcustomer:* 接頭辞を持つアトリビュートへのマッピングを作成します。

<api:map from="soapout" to="customer" map="customer:* = soap:*"/>

1つのアイテムから別のアイテムにすべてのアトリビュートをコピーします:

<api:map from="copyfrom" to="copyto" map="* = *"/>

関連項目

  • api:set:アイテムのアトリビュートを設定する。