C# 在插件中复制合同产品-Dynamics CRM
我正在编写一个插件,将合同产品从合同复制到新创建的opportunity。它似乎可以复制现有产品,但如果有任何写入产品,就会出现问题。write-in opportunity产品似乎复制正确,但当我尝试打开它时,会收到一条消息,说明发生了错误。该插件似乎已成功完成 有人知道会发生什么吗 代码如下:C# 在插件中复制合同产品-Dynamics CRM,c#,dynamics-crm-2011,C#,Dynamics Crm 2011,我正在编写一个插件,将合同产品从合同复制到新创建的opportunity。它似乎可以复制现有产品,但如果有任何写入产品,就会出现问题。write-in opportunity产品似乎复制正确,但当我尝试打开它时,会收到一条消息,说明发生了错误。该插件似乎已成功完成 有人知道会发生什么吗 代码如下: //Operate on each contract product found foreach (var contProd in contProdCollection.Entities) {
//Operate on each contract product found
foreach (var contProd in contProdCollection.Entities)
{
//Create the new opp product
Entity newOppProd = new Entity("opportunityproduct");
//Get comm rate from the old connection
ColumnSet contProdCols = new ColumnSet("isproductoverridden", "productid", "uomid", "ispriceoverridden", "quantity", "priceperunit", "extendedamount", "new_costperunit", "new_totalcost");
Guid contProdId = contProd.Id;
Entity contProd2 = service.Retrieve("quotedetail", contProdId, contProdCols);
newOppProd.Attributes["opportunityid"] = newOpp;
//check whether the product is a write in or not
if (contProd2.GetAttributeValue<Boolean>("isproductoverridden") == false)
{
//product is existing
//fill in the details of the new opp product
newOppProd.Attributes["isproductoverridden"] = contProd2.Attributes["isproductoverridden"];
if (contProd2.Contains("productid") == true)
{
newOppProd.Attributes["productid"] = contProd2.Attributes["productid"];
}
if (contProd2.Contains("uomid") == true)
{
newOppProd.Attributes["uomid"] = contProd2.Attributes["uomid"];
}
if (contProd2.Contains("ispriceoverridden") == true)
{
newOppProd.Attributes["ispriceoverridden"] = contProd2.Attributes["ispriceoverridden"];
}
if (contProd2.Contains("quantity") == true)
{
newOppProd.Attributes["quantity"] = contProd2.Attributes["quantity"];
}
if (contProd2.Contains("priceperunit") == true)
{
newOppProd.Attributes["priceperunit"] = contProd2.Attributes["priceperunit"];
}
if (contProd2.Contains("extendedamount") == true)
{
newOppProd.Attributes["extendedamount"] = contProd2.Attributes["extendedamount"];
}
if (contProd2.Contains("new_costperunit") == true)
{
newOppProd.Attributes["new_customerrate"] = contProd2.Attributes["new_costperunit"];
}
if (contProd2.Contains("new_totalcost") == true)
{
newOppProd.Attributes["new_customercost"] = contProd2.Attributes["new_totalcost"];
}
service.Create(newOppProd);
}
else
{
//product is write in
newOppProd.Attributes["isproductoverridden"] = contProd2.Attributes["isproductoverridden"];
if (contProd2.Contains("productdescription") == true)
{
newOppProd.Attributes["productdescription"] = contProd2.Attributes["productdescription"];
}
if (contProd2.Contains("ispriceoverridden") == true)
{
newOppProd.Attributes["ispriceoverridden"] = contProd2.Attributes["ispriceoverridden"];
}
if (contProd2.Contains("quantity") == true)
{
newOppProd.Attributes["quantity"] = contProd2.Attributes["quantity"];
}
if (contProd2.Contains("priceperunit") == true)
{
newOppProd.Attributes["priceperunit"] = contProd2.Attributes["priceperunit"];
}
//if (contProd2.Contains("extendedamount") == true)
//{
// newOppProd.Attributes["extendedamount"] = contProd2.Attributes["extendedamount"];
//}
if (contProd2.Contains("new_costperunit") == true)
{
newOppProd.Attributes["new_customerrate"] = contProd2.Attributes["new_costperunit"];
}
if (contProd2.Contains("new_totalcost") == true)
{
newOppProd.Attributes["new_customercost"] = contProd2.Attributes["new_totalcost"];
}
service.Create(newOppProd);
}
}
//对找到的每个合同产品进行操作
foreach(contProdCollection.Entities中的var contProd)
{
//创建新的opp产品
实体newOppProd=新实体(“机会主义产品”);
//从旧连接获取通信速率
ColumnSet contProdCols=新列集(“isProductOverrided”、“productid”、“uomid”、“isPriceOverrided”、“quantity”、“priceperunit”、“extendedamount”、“new_costperunit”、“new_totalcost”);
Guid contProdId=contProd.Id;
实体contProd2=service.Retrieve(“quotedetail”、contProdId、contProdCols);
newOppProd.Attributes[“opportunityid”]=newOpp;
//检查产品是否为写入式
if(contProd2.GetAttributeValue(“isProductOverrided”)==false)
{
//产品已存在
//填写新opp产品的详细信息
newOppProd.Attributes[“isProductOverrided”]=contProd2.Attributes[“isProductOverrided”];
if(contProd2.Contains(“productid”)==true)
{
newOppProd.Attributes[“productid”]=contProd2.Attributes[“productid”];
}
if(contProd2.Contains(“uomid”)==true)
{
newopprod.Attributes[“uomid”]=contProd2.Attributes[“uomid”];
}
if(contProd2.Contains(“isPriceOverrided”)==true)
{
newOppProd.Attributes[“isPriceOverrided”]=contProd2.Attributes[“isPriceOverrided”];
}
if(contProd2.Contains(“数量”)==true)
{
newopprod.Attributes[“quantity”]=contProd2.Attributes[“quantity”];
}
if(contProd2.Contains(“priceperunit”)==true)
{
newOppProd.Attributes[“priceperunit”]=contProd2.Attributes[“priceperunit”];
}
if(contProd2.Contains(“extendedamount”)==true)
{
newOppProd.Attributes[“extendedamount”]=contProd2.Attributes[“extendedamount”];
}
if(contProd2.Contains(“new_costperunit”)==true)
{
newOppProd.Attributes[“new_customerrate”]=contProd2.Attributes[“new_costperunit”];
}
if(contProd2.Contains(“new_totalcost”)==true)
{
newOppProd.Attributes[“new_customercost”]=contProd2.Attributes[“new_totalcost”];
}
创建(newopprod);
}
其他的
{
//产品正在写入
newOppProd.Attributes[“isProductOverrided”]=contProd2.Attributes[“isProductOverrided”];
if(contProd2.Contains(“productdescription”)==true)
{
newOppProd.Attributes[“productdescription”]=contProd2.Attributes[“productdescription”];
}
if(contProd2.Contains(“isPriceOverrided”)==true)
{
newOppProd.Attributes[“isPriceOverrided”]=contProd2.Attributes[“isPriceOverrided”];
}
if(contProd2.Contains(“数量”)==true)
{
newopprod.Attributes[“quantity”]=contProd2.Attributes[“quantity”];
}
if(contProd2.Contains(“priceperunit”)==true)
{
newOppProd.Attributes[“priceperunit”]=contProd2.Attributes[“priceperunit”];
}
//if(contProd2.Contains(“extendedamount”)==true)
//{
//newOppProd.Attributes[“extendedamount”]=contProd2.Attributes[“extendedamount”];
//}
if(contProd2.Contains(“new_costperunit”)==true)
{
newOppProd.Attributes[“new_customerrate”]=contProd2.Attributes[“new_costperunit”];
}
if(contProd2.Contains(“new_totalcost”)==true)
{
newOppProd.Attributes[“new_customercost”]=contProd2.Attributes[“new_totalcost”];
}
创建(newopprod);
}
}
我看不出代码中有任何错误。你犯了什么错误?当您试图在CRM中导航到新创建的Opportunity产品时,您说您得到了它?在我看来,这很可能是javascript错误或select插件错误。@Daryl它只给出了一条通用的“Microsoft Dynamics CRM遇到错误”消息。没有比这更有用的了。是的,在尝试查看新Opportunity ProductNo Download File选项时会发生这种情况?您是否有任何在OnLoad中运行的Javascript?可能希望填充ProductId?