从ExecuteMultipleResponse方法中检索失败的实体

时间:2017-03-23 23:41:15

标签: c# dynamics-crm-online

我正在使用Execute Multiple Response类将Upsert的实体集合传递到Dynamics CRM中,我想知道如何将失败的实体名称添加到集合中,然后对每个实体使用异常处理。 / p>

1 个答案:

答案 0 :(得分:3)

假设您创建了ExecuteMultipleRequest这样的内容:

var entityCollection; // your EntityCollection
var requests = new ExecuteMultipleRequest();

foreach (var entity in entityCollection.Entities) {
    var upsertRequest = new UpsertRequest { Target = entity };
    requests.Requests.Add(upsertRequest);
}

您应该能够执行请求,遍历responses并且每个都确定是否发生了错误:

var responses = service.Execute(requests);
var errors = new List<Entity>();

foreach (var response in responses.Responses) {
    if (response.Fault != null) {
        var entity = entityCollection[response.RequestIndex];
        errors.Add(entity);
    }
}

response.RequestIndex用于通过匹配索引来访问响应的相应请求。

responses.Responses包含ExecuteMultipleResponseItem的集合。可以找到有关其属性的文档here