公開日: 2016年11月
対象: Dynamics CRM 2015
基本的なデータ操作に加えて、Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム の REST エンドポイントを使用して、さらにいくつかの特別なデータ操作を実行できます。
このトピックの内容
複合型を Null に設定
ディープ挿入の使用
個別のプロパティの更新
レコードの関連付けと関連付け解除
複合型を Null に設定
Microsoft Dynamics CRM の複合型 を null に設定するには、その内部の各プリミティブ型を明示的に null に設定する必要があります。
たとえば、エンティティ参照 型を null に設定するには、Id、LogicalName、および Name の各プロパティを null に設定する必要があります。OptionSetValue、金額、および BooleanManagedProperty についても同様です。
ディープ挿入の使用
ディープ挿入を使用すると、複数の関連する新しいレコードを同じ操作で作成できます。
次のサンプルに、jQuery を使用して取引先企業と 2 つの関連タスクを定義する JavaScript コードを示します。 詳細については、「JQuery の使用」を参照してください。 タスクが、関連するタスクを表す Account_Tasks プロパティに割り当てられ、POST 要求を使用して /AccountSet URI に送信されると、取引先企業と 2 つの関連タスクが 1 つの操作で作成されます。
var account = new Object();
account.Name = "Sample Account";
var task1 = new Object();
task1.Subject = "Sample Task 1";
var task2 = new Object();
task2.Subject = "Sample Task 2";
var tasks = new Array();
tasks.push(task1);
tasks.push(task2);
account.Account_Tasks = tasks;
var jsonAccount = window.JSON.stringify(account);
$.ajax({ type: "POST",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: ODataPath + "/AccountSet",
data: jsonAccount,
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {},
error: function (XMLHttpRequest, textStatus, errorThrown) {}
});
ディープ挿入はエンティティ関係のどちらの側からでも動作します。 前の例では、新しい取引先企業レコードのコンテキストで新しいタスクが作成されます。 これを逆にして、POST 要求を /TaskSet URI に送信することにより、新しい関連タスク作成のコンテキストで新しいアカウント レコードを作成することができます。
個別のプロパティの更新
特定の属性のアドレスを指定する URI を使用して HTTP PUT 要求を使用し、要求の本体で新しい値を渡すことで、レコードの個別の属性値を更新できます。
/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/Name
この URI を HTTP PUT 要求で使用し、本体で取引先企業の新しい名前を指定すると、そのプロパティだけの値が更新されます。
レコードの関連付けと関連付け解除
レコードの関連付けまたは関連付けの解除の方法には 2 つあります。それは、参照プロパティのデータを他のプロパティの種類であるかのように更新する方法と、リンク リソースの URL を使用する方法です。
N:1 エンティティ関係の多の側でレコードの関連付けまたは関連付け解除を行うときは、$links URI を使用します。 N:N および 1:N のエンティティ関係の場合は、$links を除いた URI を使用します。
次に、URI で指定されている取引先企業レコードに関連づけられている営業案件レコードの URI を返す URI のサンプルを示します。
/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/opportunity_customer_accounts
既存の営業案件レコードをこの取引先企業と関連付ける場合は、その営業案件の URI が本体に含まれる HTTP POST 要求で、この URI を使用する必要があります。
注意
N:1 エンティティ関係の多の側でレコードを関連付けると、参照が単一の値のみをサポートする場合は、既存の値が上書きされます。
同様に、営業案件の関連付けを解除するには、特定のリンク リソースへの参照を含む HTTP DELETE 要求を使用する必要があります。 次に、ParentAccountId エンティティ参照プロパティを使用して、別の取引先企業に関連付けられている特定の取引先企業レコードを URI が表すサンプルを示します。
/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/Referencedaccount_parent_account(guid'b0e5a4a6-8996-df11-a7c2-00155dba380d')
この URI に対する HTTP DELETE 要求は、関連付けを削除します。
注意
何らかのエンティティ関係が必要です。 必須の関係のデータを削除しようとするとエラーが発生します。
関連項目
OData エンドポイントを使用して基本的なデータ操作を実行する
Web リソースで OData エンドポイントを使用する
Ajax および JScript Web リソースで OData エンドポイントを使用する
サンプル: OData エンドポイントと JavaScript を使用したレコードの関連付けおよび関連付け解除
© 2017 Microsoft. All rights reserved. 著作権