动态CRM 2011删除报价产品,并推出新的报价产品
本文关键字:2011 动态 CRM 删除 | 更新日期: 2023-09-27 18:05:37
我正在开发动态CRM SDK,以便从外部应用程序推送quote'产品。下面的代码可以很好地将产品推送到CRM。从外部应用程序从SQL数据库中提取产品并推送到动态crm。
DataSet DS = GetAllCRM_Details(oppid);
DataTable table = DS.Tables[0];
foreach (DataRow row in table.Rows)
{
string prodid = DbCommon.ToStr(row["txtcrmprodid"]);
double Qty = DbCommon.ToDouble(row["intquantity"]);
string Note = DbCommon.ToStr(row["txtproduct_note_internal"]);
string ProdDesc = DbCommon.ToStr(row["txtproductdiscription"]);
string qid = DbCommon.ToStr(row["txtcrmquoteid"]);
string UnitCrmID = DbCommon.ToStr(row["UnitID"]);
string price = DbCommon.ToStr(row["floatlistprice"]);
string lineid = DbCommon.ToStr(row["intQlinID"]);
string price_fltTotal = DbCommon.ToStr(row["floattotal"]);
string quotedetailid = DbCommon.ToStr(row["txtcrmquotedetailid"]);
string productname_qt = DbCommon.ToStr(row["txtproductname_qt"]);
decimal nprice = 0;
decimal ManualDiscountPrice = 0;
decimal pricefltotal = 0;
if (price != "")
{
nprice = Convert.ToDecimal(price);
}
if (price_fltTotal != "")
{
pricefltotal = Convert.ToDecimal(price_fltTotal);
}
ManualDiscountPrice = (nprice - pricefltotal) ;
decimal extamount = nprice * Convert.ToDecimal(Qty);
// Set the quote's product quantity to a negative value.
QuoteDetail quoteDetail = new QuoteDetail()
{
ProductId = new EntityReference(Product.EntityLogicalName, new Guid(prodid)),
IsProductOverridden = true,
ProductDescription = productname_qt,
IsPriceOverridden = true,
Quantity = Convert.ToDecimal(Qty),
PricePerUnit = new Money(nprice),
CTDescription = ProdDesc,
CTInternalNote = Note,
ManualDiscountAmount = new Money(ManualDiscountPrice),
QuoteId = new EntityReference(Quote.EntityLogicalName, new Guid(qid)),
UoMId = new EntityReference(UoM.EntityLogicalName, new Guid(UnitCrmID))
};
_quoteDetailId = _serviceProxy.Create(quoteDetail);
第一次尝试工作良好,当用户修改并尝试将产品推送到crm时,crm中的现有产品需要更新/删除现有产品并添加新产品。产品报价详细信息id(guid)存储在外部工具数据库中。请建议。
您在创建产品的正确轨道上。
更新请遵循以下步骤,
- 使用来自源的信息,从CRM检索信息以获得要更新的记录的GUID。你可以使用_serviceProxy.Retrieve()或_serviceproxy . retrievmultiple()方法。
- 一旦记录可用,为产品创建一个实体,并将该实体的id分配给我们在第一步中检索的记录,并使用_serviceProxy.Update()。这将更新您现有的产品。
现在,如果你想删除并创建一个新的记录,按照下面的步骤,
- 像Update一样检索记录。
- 使用_serviceProxy.Delete()方法从CRM中删除特定的记录
- 按照您现有的代码创建具有更新信息的新产品
建议更新记录,而不是总是删除和创建新记录。
希望这对你有帮助,如果你有任何疑问,请告诉我。
我们想删除报价的所有产品详细信息,并添加新产品将加快这一过程。我无法使用上面的代码。
代码示例会很有帮助。