我正在尝试创建一个Azure函数,以从Dynamics 365 CE实例中删除一些数据。该计划是使用D365 WebAPI和批处理操作请求来建立的。
当前在创建批处理请求后发送请求时遇到问题。
我一直在参考Microsoft的以下文档: https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/webapi/execute-batch-operations-using-web-api
代码如下:
var batchId = Guid.NewGuid().ToString();
log.LogInformation($"Batch Request Id = {batchId}.");
HttpRequestMessage deleteBatchRequestMessage = new HttpRequestMessage(HttpMethod.Post, "$batch");
deleteBatchRequestMessage.Content = new MultipartContent("mixed", "batch_" + batchId);
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(d365Url);
// Default Request Headers needed to be added in the HttpClient Object
client.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
client.DefaultRequestHeaders.Add("OData-Version", "4.0");
client.DefaultRequestHeaders.Add("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
d365HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// Set the Authorization header with the Access Token received specifying the Credentials
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", d365Token);
HttpResponseMessage response = await client.SendAsync(deleteBatchRequestMessage);
var ass = await response.Content.ReadAsStringAsync();
但是我不断收到异常: “ Content-Type”标头丢失。必须为批处理消息的每个MIME部分指定'Content-Type'标头。“,” ExceptionMessage“:”“'Content-Type'标头丢失。必须为批处理邮件的每个MIME部分指定“ Content-Type”标头。“
答案 0 :(得分:0)
使用WebApi是否有任何原因?您可以使用SDK和IOrganizationService处理所有内容。这将使您的生活变得轻松
http://www.threadpunter.com/azure/using-azure-functions-to-call-dynamics-365/