안녕하세요, ms dynamics crm 2011 용 플러그인을 작성하려고합니다. 플러그인이 계약서에서 관련 레코드를 가져온 후 인보이스 라인에 대한 레코드를 생성해야합니다. 실재. fetchxml에 의해 하나의 레코드가 반환되는 경우 코드가 완벽하게 실행되지만 계약선이 둘 이상인 계약에 대해 루프를 돌리면 다음 오류가 throw됩니다.다이나믹 CRM 비즈니스 프로세스 오류 동일한 키가있는 항목이 이미 추가되었습니다
비즈니스 프로세스 오류 동일한 키가있는 항목이 이미 있습니다 추가되었습니다
내 생각 엔 각 레코드 또는 뭔가에 대한 고유 한 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");
}
감사하고, 지금 해결되는 코드에 내 머리를하고 내가 원하는 실행되면! – harri