Dynamics CRMを更新するためにput要求を使用しようとしています。次のPythonコードを実行すると、204の応答が返されますが、値を更新する代わりに、応答がクリアされます。たとえば、firstnameは "WebApiUpdate"の代わりにnullに更新されます。Microsoft Dynamics CRM 2016 Web API Put要求がクリアされます。
import adal
import json
import urllib2
import requests
endpoint = "https://login.microsoftonline.com/00000000-0000-0000-0000-000000000002"
username = "[email protected]"
password = "password"
resource_uri = "https://orgname.crm.dynamics.com"
token_response = adal.acquire_token_with_username_password(endpoint,username,password,resource= resource_uri)
print token_response['accessToken']
payload = { "value": "WebApiUpdate"}
url = "http://xxxxx.crm.dynamics.com/api/data/v8.0/contacts(00000000-0000-0000-0000-000000000001)/firstname"
headers = {"Authorization":"Bearer "+token_response['accessToken']}
r = requests.put(url,data=payload,headers=headers)
print r.content
で見つかったリクエストメソッドhere上のドキュメントを参照してください。連絡先にプラグインまたは同期ワークフローが登録されていますか?調査の別の手段:システムレベルで監査をオンにし、連絡先の監査をオンにして、要求を再発行してから、監査ログでレコードを調べます。それは、 "WebApiUpdate"が記録に残した後、一掃されたことを示していますか? – Polshgiant