在MS Dynamics CRM 2015 SDK中调用xrm.ConvertSalesOrderToInvoice()后,如何计算发票总额?

时间:2015-09-21 11:36:02

标签: dynamics-crm dynamics-crm-online dynamics-crm-2015

我正在使用CRM 2015门户SDK(来自NuGet的Microsoft.CrmSdk.Extensions 7.1.0),并尝试根据现有销售订单创建发票。我可以创建发票,但总数始终为零,直到有人使用Dynamics CRM UI查看发票 - 我找不到任何方法强制通过SDK重新计算。

SDK文档(例如它!)是SDK下载中包含的一个非常棒的CHM文件,它是根据XMLDoc注释生成的 - 很少有描述或示例。还有https://msdn.microsoft.com/en-us/library/gg309408.aspx的内容,其中包括一些演练,但没有详细介绍。

这是我正在运行的代码 - 这是在ASP.NET MVC 5项目中的Action方法中:

public ActionResult CreateInvoice(Guid id) {
  var xrm = new SpotlightXrmServiceContext("ConnectionStrings.Crm2015.Spotlight");
  var order = xrm.SalesOrderSet.FirstOrDefault(o => o.Id == id);
  var columns = new ColumnSet(true);
  var invoiceEntity = xrm.ConvertSalesOrderToInvoice(order.Id, columns);
  return(View(invoiceEntity));
}

运行此代码后,发票存在于CRM数据库中,我可以通过导航到Sales>看到它在CRM UI中列出。发票 - 但发票总额为零。如果我单击CRM UI中的发票来查看它,则幕后的某些内容会强制重新计算,因为当发票加载时,总额为154英镑(这是原始销售订单的总金额)

有问题的网络应用是我们付款服务提供商的付款后重定向,因此我需要从我的网络应用程序中执行以下操作:

  1. 找到现有销售订单
  2. 创建与该订单相关联的发票
  3. 将发票标记为付费
  4. 将销售订单标记为已履行
  5. 我似乎在第一道障碍时摔倒了。有什么想法吗?

0 个答案:

没有答案