Dynamics CRM 2011 Расчет коэффициентов

Я создал два рабочих процесса, которые подсчитывают количество лидов и количество пользовательского объекта под названием «Юридические дела». Я хотел бы придумать коэффициент для целей отчетности, который рассчитывает судебные дела/лиды. Рабочий процесс обновляет два поля в формах (интересы и обращения) каждый раз, когда создается один из объектов. Я попытался использовать следующий код:

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 не обновляется. Любые мысли или рекомендации?


person charlie-foxtrot117    schedule 09.12.2013    source источник
comment
Почему бы вам просто не выполнить обновление в WF вместо использования JS для установки значения?   -  person Andy Meyers    schedule 09.12.2013
comment
Привет, Энди. Как бы вы предложили использовать WF для расчета соотношения между двумя полями?   -  person charlie-foxtrot117    schedule 09.12.2013
comment
какого типа атрибут getlead_casetoleadratio?   -  person keerz    schedule 11.12.2013


Ответы (2)


Взгляните на https://stackoverflow.com/a/11923059/2295317. Я думаю, это именно то, что вы пытаетесь делать. В основном эта последняя строка должна быть:

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

Если это не сработает, попробуйте принудительно сохраниться, используя:

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

как показано здесь: https://stackoverflow.com/a/18635688/2295317

person Community    schedule 09.12.2013

Лучший способ показать арифметические вычисления — закодировать их непосредственно в отчетах. В любом случае, в CRM нет подходящего места для хранения этих расчетов, поскольку CRM знает, как хранить данные только для одной записи.

В конце концов, любое элегантное решение, которое требует вычислений помимо основ (максимум, среднее, минимум, сумма, количество, процент), потребует какого-то кода, которого вы, кажется, пытаетесь избежать.

Для записи, функции клиентской стороны (javaScript), которые вы включаете в свои формы, выполняются только внутри вашего браузера в контексте одной записи, которую вы создаете или обновляете. WF не будет/не сможет выполнять эти функции. Для функциональной работы в WF вам необходимо написать собственные действия рабочего процесса или подключаемые модули, например, с помощью C #.

person Adi Katz    schedule 09.12.2013