Dynamics CRM 2011计算比率

时间:2013-12-09 15:45:18

标签: dynamics-crm-2011 crm microsoft-dynamics dynamics-crm-online

我创建了两个工作流程,用于计算潜在客户数量和名为Legal Cases的自定义实体的数量。我想提出一个用于报告目的的比率来计算法律案例/线索。每次创建一个实体时,工作流都会更新表单(潜在客户和案例)上的两个字段。我尝试使用以下代码:

function calculate()

{

 var val1 = Xrm.Page.entity.attributes.get['getlead_casecounters'].getValue();

 var val2 = Xrm.Page.entity.attributes.get['getlead_leadcounter'].getValue();

     if(val1==null)return;

     if(val2==null)return;


     var result = val1 / val2;

 Xrm.Page.entity.attributes.get['getlead_casetoleadratio'].setValue(result);

}

问题是casetoleadratio字段似乎没有更新。有什么想法或建议吗?

2 个答案:

答案 0 :(得分:0)

看看https://stackoverflow.com/a/11923059/2295317我认为这正是你要做的。基本上最后一行应该是:

Xrm.Page.getAttribute("getlead_casetoleadratio").setValue(result);

如果不这样做,那么可以尝试使用以下方式强制保存:

Xrm.Page.Data.Entity.Save();

如此处所示:https://stackoverflow.com/a/18635688/2295317

答案 1 :(得分:0)

显示算术计算的最佳方法是直接在报告中编码。 无论如何,在CRM中存储这些计算都没有好的地方,因为CRM只知道如何按单个记录存储数据。

最终,任何需要计算超出基本要求(最大值,平均值,最小值,总和,计数,百分比)的优雅解决方案都需要某种编码,这似乎是您要避免的。

对于记录,您在表单中包含的客户端(javaScript)函数仅在您创建或更新的单个记录的上下文中在浏览器内运行。 WF不会/不能运行这些功能。要在WF中以功能方式运行,您需要使用c#编写自定义工作流活动或插件。