こんにちは、ms dynamics crm 2011 のプラグインを作成しようとしています。プラグインは、契約明細から関連レコードを取得し、請求書明細エンティティのレコードを作成することになっています。fetchxml によって返されるレコードが 1 つだけの場合、コードは完全に実行されますが、複数の契約行を持つ契約でループすると、次のエラーがスローされます。
ビジネス プロセス エラー 同じキーを持つアイテムが既に追加されています
各レコードに一意の ID が必要か、以下のコードをご覧ください。
Entity invoiceline = new Entity("invoicedetail");
foreach (Entity contractdetail in contractdetails.Entities)
{
tracingService.Trace("loop no. " + loopint + " " + "InvoiceID: " + stringinvoiceid);
loopint++;
invoiceline["invoiceid"] = new EntityReference("invoice", invoiceid);
//collect data from fetchxml
var title = contractdetail.Attributes["title"];
decimal quantity = Convert.ToDecimal(contractdetail.Attributes["initialquantity"]);
var price = contractdetail.Attributes["price"];
bool booleanover = true;
//add to invoiceline array
invoiceline.Attributes.Add("productdescription", title);
invoiceline.Attributes.Add("quantity", quantity);
invoiceline.Attributes.Add("priceperunit", price);
invoiceline.Attributes.Add("isproductoverridden", booleanover);
//invoiceline.Attributes.Add("invoicedetailid", invoiceid);
//add too database
service.Create(invoiceline);
tracingService.Trace("Created:" + title + " record");
}