エンティティ マッピングおよび属性マッピングのカスタマイズ

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

エンティティの関連付けを持つエンティティ間で属性をマップできます。 これにより、他のレコードのコンテキストで作成したレコードの既定値を設定できます。 属性をマップするには、アプリケーションのカスタマイズ ツールを使用します。TechNet: CRM システムをカスタマイズする のトピック「TechNet: エンティティの関連付けの作成および編集: エンティティのフィールドのマッピング」を参照してください。 詳細については、エンティティのフィールド マッピングのセクションを参照してください。

既定のシステム エンティティとフィールドのマッピングを示す表については、TechNet: エンティティと属性のマッピング を参照してください。

このトピックの内容

アプリケーションの動作

エンティティおよび属性のマッピング データの使用

エンティティ間の属性の自動マッピング

エンティティ マッピングおよび属性マッピングの取得

アプリケーションの動作

Microsoft Dynamics 365 では、マッピングにより、別のレコードに関連付けられた新しいレコードを作成するときのデータ入力の効率が上がります。 エンティティに他のエンティティとのエンティティ関連付けがある場合、リボンの [関連項目の作成] タブを使用して新しい関連エンティティ レコードを作成できます。 この方法で新しいレコードを作成すると、主エンティティ レコードからマップされたデータが、新しい関連エンティティ レコードのフォームにコピーされます。 エンティティ属性をマップすることにより、コピーされるデータの種類は、2 つのエンティティ間の関連付けに新しいマッピングを追加して制御します。 主エンティティの関連ビューから作成する以外の方法でレコードを作成した場合、データはマップされません。

たとえば、取引先企業の住所フィールドと取引先担当者の住所フィールドの間にマッピングを設定して、 ユーザーが特定の取引先企業と関連付けられた取引先担当者を追加すると、取引先担当者の住所フィールドに自動的に入力されるようにすることができます。

1 つの属性を複数のターゲット属性にマップできます。 たとえば、取引先の住所情報を、受注の請求先住所と送付先住所の両方にマップできます。

マッピングは、新しい関連レコードが作成される前に適用されます。 ユーザーはレコードを保存する前にデータを変更することができます。 保存後に主レコードのデータに加えられた変更は、関連レコードに適用されません。

エンティティおよび属性のマッピング データの使用

エンティティ間のマッピングが存在する既存のレコードのコンテキストで新しいレコードを作成する場合、InitializeFromRequest メッセージを使用して、マッピングに指定された値を含む新しいレコードを定義できます。 その後で、IOrganizationService.Create メソッドを使用してレコードを保存できます。 この方法で、ユーザーが定義したあらゆるマッピングが適用されます。

エンティティの関連付けを作成すると、有効なエンティティ マップが作成されます。 エンティティ マップによって指定されたエンティティ ペアの属性マップを取得するには、entity_map_attribute_maps エンティティ関連付けを使用します。

属性マップのレコードを作成または更新できます。 その際、属性マップに関する以下の要件を満たす必要があります。

  • AttributeMetadata の型が一致している必要があります。

  • ターゲット フィールドの長さはソース フィールドの長さ以上にする必要があります。

  • 形式が一致している必要があります。

  • ターゲット フィールドが別のマッピングに使用されていない必要があります。

  • ソース フィールドがエンティティ フォーム上で表示可能である必要があります。

  • ターゲット フィールドが、ユーザーがデータを入力可能なフィールドである必要があります。

  • アドレス ID の値はマップできません。

  • AttributeMetadata.AttributeTypeAttributeTypeCode.PartyList の PartyList 属性はマッピングできません。

エンティティ間の属性の自動マッピング

マッピングをサポートするエンティティの関連付けに対して、エンティティ間の属性マッピングを編集できます。

各属性マップを手動で作成する以外に、AutoMapEntityRequest メッセージを使用して新しい属性マッピング セットを生成する方法もあります。 このメッセージは、ツール バーの [その他の操作] メニューの [マッピングの生成] の操作を実行します。 このメッセージにより、同じ属性名と種類を持つ 2 つの関連するエンティティ間の属性すべてがマップされます。 このメッセージでは、すべての属性マッピングを手動で追加する必要がないため、生産性が向上します。 一連の類似したマッピングを生成することで、要件に合わせて個々のマッピングを追加または削除するための手動による作業を削減できます。

注意

この方法でマッピングを自動生成することにより、以前に定義した、不要なマッピングが含まれている可能性がある属性マッピングは削除されます。

エンティティ マッピングおよび属性マッピングの取得

作成されているマッピングを確認する簡単な方法は、次の FetchXML クエリを使用することです。 このクエリの実行方法の詳細については、「FetchXML の使用によるクエリの作成」を参照してください。

<fetch version='1.0' mapping='logical' distinct='false'>
   <entity name='entitymap'>
      <attribute name='sourceentityname'/>
      <attribute name='targetentityname'/>
      <link-entity name='attributemap' alias='attributemap' to='entitymapid' from='entitymapid' link-type='inner'>
         <attribute name='sourceattributename'/>
         <attribute name='targetattributename'/>
      </link-entity>
   </entity>
 </fetch>

関連項目

Dynamics 365 メタデータと共に組織サービスを使用する
エンティティ マップ (EntityMap) エンティティのメッセージおよびメソッド
属性マップ (AttributeMap) エンティティのメッセージおよびメソッド
TechNet: カスタマイズ ガイド エンティティの関連付けの作成および編集: エンティティのフィールドのマッピング

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権