Web API を使用したエンティティの関連付けと関連付け解除

 

公開日: 2017年1月

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

エンティティの関連付けと関連付け解除に使用できる方法はいくつかあります。 どの方法を適用するかは、エンティティを作成または更新するかどうか、参照先エンティティまたは参照元エンティティのコンテキストのいずれで動作しているかにより異なります。

このトピックの内容

コレクション値ナビゲーション プロパティへの参照の追加

エンティティへの参照の削除

単一値ナビゲーション プロパティでの参照の変更

作成時にエンティティを関連付ける

更新時にエンティティを関連付ける

コレクション値ナビゲーション プロパティへの参照の追加

次の例は、00000000-0000-0000-0000-000000000002 という accountid 値を含むアカウント エンティティのコレクション値 opportunity_customer_accounts ナビゲーション プロパティに 00000000-0000-0000-0000-000000000001 という opportunityid 値と既存の営業案件エンティティを関連付ける方法を示しています。 これは、1:N の関連付けですが、N:N の関連付けに対しては同じ操作を行うことができます。

  • 要求

    POST cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref HTTP/1.1 
    Content-Type: application/json 
    Accept: application/json 
    OData-MaxVersion: 4.0 
    OData-Version: 4.0
    
    {
    "@odata.id":"cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)"
    }
    
  • 応答

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

エンティティへの参照の削除

DELETE 要求を使用して、エンティティへの参照を削除します。 それを行う方法は、コレクション値ナビゲーション プロパティまたは単一値ナビゲーション プロパティに参照しているかどうかによって異なります。

  • 要求
    コレクション値ナビゲーション プロパティについては、以下を使用します。

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts/$ref?$id=cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    

    または、これを使用します。

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)/opportunity_customer_accounts(00000000-0000-0000-0000-000000000001)/$ref HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 要求
    単一値ナビゲーション プロパティでは、$idクエリ文字列パラメーターを削除します。

    DELETE cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • 応答
    いずれの場合でも、正常な応答にはステータス 204 があります。

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

単一値ナビゲーション プロパティでの参照の変更

PUT 要求を使用して単一値ナビゲーション プロパティの値を設定することによってエンティティを以下のパターンに関連付けることができます。

  • 要求

    PUT cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001)/customerid_account/$ref HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "@odata.id":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)"
    }
    
  • 応答

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

作成時にエンティティを関連付ける

1 回の操作で関連するエンティティを作成するで説明したように、新しいエンティティは、ディープ挿入使用する関連で作成できます 。

更新時にエンティティを関連付ける

基本的な更新 で記載された同じメッセージを使用して更新時のエンティティを関連付けることができますが、@odata.bind 注釈を使用して単一値ナビゲーション プロパティの値を設定する使用する必要があります。 次の例では、customerid_account 単一値ナビゲーション プロパティを使用して営業案件に関連付けられた取引先企業を変更します。

  • 要求

    PATCH cc_WebAPI_ServiceURI/opportunities(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
     "customerid_account@odata.bind":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)"
    }
    
  • 応答

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

関連項目

Web API 基本操作のサンプル (C#)
Web API 基本操作のサンプル (クライアント側の JavaScript)
Web API を使用して演算を実行する
HTTP 要求の作成とエラーの処理
Web API を使用したクエリ データ
Web API を使用してエンティティを作成する
Web API を使用してエンティティを取得する
Web API を使用したエンティティの更新と削除
Web API 関数の使用
Web API アクションの使用
Web API を使用してバッチ操作を実行する
Web API を使用して別のユーザーを偽装する
Web API を使用する条件付き演算を実行する

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権