3
Execute Multiple Responseクラスを使用してUpsert for Entity CollectionをDynamics CRMに渡していますが、失敗したエンティティ名をコレクションに追加してから例外処理を使用する方法を知りたいこれらのエンティティのそれぞれ。ExecuteMultipleResponseメソッドから失敗したエンティティを取得する
Execute Multiple Responseクラスを使用してUpsert for Entity CollectionをDynamics CRMに渡していますが、失敗したエンティティ名をコレクションに追加してから例外処理を使用する方法を知りたいこれらのエンティティのそれぞれ。ExecuteMultipleResponseメソッドから失敗したエンティティを取得する
あなたはこのようなあなたの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です。
レスポンスDaveに感謝します。フォローアップの質問のカップル。要求[response.RequestIndex]はExecuteMultipleRequestのインデックスです。エンティティをインデックスからどのように取得しますか?私のerrors.Add(エンティティ)は "オブジェクトから 'Microsoft.Xrm.Sdk.Entity'に変換できません。 –
私の間違いは、エンティティを' ExecuteMultipleRequest.Requests'からではなく 'EntityCollection'から取得する必要があります。したがって、行は次のようになります。 'var entity = entityCollection [response.RequestIndex];' –