我创建了两个工作流程,用于计算潜在客户数量和名为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字段似乎没有更新。有什么想法或建议吗?
答案 0 :(得分:0)
看看https://stackoverflow.com/a/11923059/2295317我认为这正是你要做的。基本上最后一行应该是:
Xrm.Page.getAttribute("getlead_casetoleadratio").setValue(result);
如果不这样做,那么可以尝试使用以下方式强制保存:
Xrm.Page.Data.Entity.Save();
答案 1 :(得分:0)
显示算术计算的最佳方法是直接在报告中编码。 无论如何,在CRM中存储这些计算都没有好的地方,因为CRM只知道如何按单个记录存储数据。
最终,任何需要计算超出基本要求(最大值,平均值,最小值,总和,计数,百分比)的优雅解决方案都需要某种编码,这似乎是您要避免的。
对于记录,您在表单中包含的客户端(javaScript)函数仅在您创建或更新的单个记录的上下文中在浏览器内运行。 WF不会/不能运行这些功能。要在WF中以功能方式运行,您需要使用c#编写自定义工作流活动或插件。