2017-08-23 7 views
1

c#からCRMでupsert操作を実行する最適な方法は何ですか?C# - CRMに挿入または更新がある場合

新しいレコードを挿入する前にレコードが存在するかどうかを確認するために毎回レコードをフェッチする必要がありますか、それとももっと良い方法がありますか?パフォーマンスに影響はありますか?

誰かがその例を持っていれば、

答えて

4

ブーム...ブーム。 Microsoft Dynamics CRMオンライン組織の場合はUpsertRequest

//use alternate key for product 
    Entity productToCreate = new Entity("sample_product", "sample_productcode", productCode); 

    productToCreate["sample_name"] = productName; 
    productToCreate["sample_category"] = productCategory; 
    productToCreate["sample_make"] = productMake; 
    UpsertRequest request = new UpsertRequest() 
    { 
     Target = productToCreate 
    }; 

     // Execute UpsertRequest and obtain UpsertResponse. 
     UpsertResponse response = (UpsertResponse)_serviceProxy.Execute(request); 
     if (response.RecordCreated) 
      Console.WriteLine("New record {0} is created!", productName); 
     else 
      Console.WriteLine("Existing record {0} is updated!", productName); 

、この機能は、組織が、この機能は、Dynamics CRMの(オンプレミス)には使用できませんオンライン2015ダイナミクスCRMへのアップデート1を更新した場合にのみ使用可能です。

あなたがオンプレミスまたはそれ以前のバージョンの場合、レコードの作成/更新の前にレコードが存在するかどうかを確認するためにRetrieveを呼び出す必要があります。

+0

Upsertsのカスタムキーを設定することもできます(GUIDに頼る必要はありません)。 – jasonscript

+0

正しいです。すでに使用可能かどうかを確認するために代替キーが使用されます。 –

関連する問題