-1

以外の任意の一意のフィールドを使用して、更新フィールド私はHttpClientを使用してPATCH/PUTを使用してContactエンティティのfirstnameフィールドを更新します。Dynamics CRMの365 - GUIDフィールド

私はこれをとPATCHを使用して試しました。しかし、私は以下のURLで同じしようとした場合:

ベースURL /連絡先(myorg_contactnumber = '113')

ベースURL /連絡先( '113')

ベースURL /連絡先(myorg_contactnumber = "113 ")

しかし、それはBad Requestエラーを投げています。

+0

あなたができるように、コンタクトエンティティのセットアップ代替キーに必要な、そして連絡先レコードを参照するためにそのキー名を使用します。 –

+0

このリクエストを行うためのコードを含めてください。 –

答えて

0

あなたのコードを見ずに、Jatinが言ったように - 恐らく唯一のものはAlternate key setupです。このようなPATCH要求に

いいところは、デフォルトでは、それが存在する場合、それは記録を更新する、またはそれが存在しない場合、それは記録を作成すること、です。

url: /api/data/v8.2/contacts(new_alternatekey='12345') 
method: PATCH 
body: { 
    "name": "Alternate key contact updated" 
} 

また、あなたは、C#をタグ付けするので、thisような何かしてみてください:

JObject contact1Add = new JObject(); 
    contact1Add.Add("firstname", "Jack"); 

    HttpRequestMessage updateRequest1 = new HttpRequestMessage(
     new HttpMethod("PATCH"), contact1Uri); 
    updateRequest1.Content = new StringContent(contact1Add.ToString(), 
     Encoding.UTF8, "application/json"); 
    HttpResponseMessage updateResponse1 = 
     await httpClient.SendAsync(updateRequest1); 
    if (updateResponse1.StatusCode == HttpStatusCode.NoContent) //204 
    { 
    Console.WriteLine("Contact '{0} {1}' updated with " + 
     "firstname", contact1.GetValue("firstname"), 
     contact1.GetValue("lastname")); 
    } 
    else 
    { 
    Console.WriteLine("Failed to update contact for reason: {0}", 
     updateResponse1.ReasonPhrase); 
    throw new CrmHttpResponseException(updateResponse1.Content); 
    } 
関連する問題