Полями двойного типа я называю поля поиска, которые могут содержать идентификаторы записей различных типов.
Например, поле Потенциальный клиент в Возможной сделке может содержать идентификатор записи типа Организация и типа Контакт. Если нажать на кнопку поиска в этом поле, то CRM предложит нам определиться с типом записи:

Такая, безусловно, удобная функциональность вносит определенные проблемы при разработке бизнес-процессов.
Рассмотрим это на примере обработки экземпляра Возможной сделки (ВС) в бизнес-процессе (БП).
Читать полностью »
Часть 2. Разработка бизнес-процессов
Наконец-то появилось немного свободного времени (и как всегда – в выходные L), чтобы выполнить данное в прошлой статье обещание: рассказать о собственно разработке бизнес-процессов (БП) для автоматизации сделки. Итак, приступим…
Создание нового решения
Для написания БП нам понадобится настроить несколько сущностей: изменить существующие поля. Такую кастомизацию лучше всего выполнять в отдельном решении. Что такое Решение и как с ним работать – отдельная тема. И я надеюсь, вы ее уже освоили.
Создадим новое решение с именем Automation (отображаемое имя Автоматизация сделки).

и включим в него две сущности: Возможную сделку и Задачу.
Читать полностью »
Часть 1. Почему нужно автоматизировать ведение сделки и бизнес-процессы с ожиданием
Сегодня мы поговорим о правильном построении бизнес-процессов (БП) в CRM.
Наиболее известный из них – это автоматизация ведения Возможной сделки. Суть БП заключается в разбивке процесса продажи на несколько этапов, отличающихся вероятностью осуществления сделки.
В Интернете можно найти некий классический подход в построении БП сопровождения сделки в CRM. Обычно выделяют 6 этапов БП: Встреча (10%), Переговоры (20%), Договор (50%), Счет (70%), Заказ (90%), Реализация (95%). В скобках указана вероятность реализации сделки на каждом из этапов. Конкретные значения, естественно, целиком зависят от специфики бизнеса. Например, в нашей компании принято считать, что заключение договора – это еще полдела: ведь заказчик может заплатить не все деньги или вообще расторгнуть договор из-за отсутствия финансирования (с гос.структурами сегодня это происходит все чаще).
Для чего нужен этот БП в CRM?
Читать полностью »
В MS CRM 2011 Form Assistant по умолчанию отключен во всех сущностях, кроме трех:
- Case (incident)
- Product
- Service Activity (serviceappointment)
Для этих сущностей Form Assistant можно отключить установкой <form> (FormXML)enablerelatedinformation атрибута в false.
Или же воспользоваться JavaScript:
document.getElementById(‘tdRelatedInformationPane’).style.display = ‘none’;
Данная функция делает поле динамически обязательным или рекомендуемым. Скопируйте функцию в событие OnLoad и вызовите как указано в комментариях в примере:
//****************************************************
gSetFieldRequired = function (field, src, height, width){
/*
Description: This function is used to dynamically make a field required, recommended in JavaScript
Params: field = name of the field
src = url with image eg. /_imgs/frm_required.gif
height = number, optional e.g. 50
width = number optional e.g. 50
Returns: nothing
Example 1 : gSetFieldRequired(, 'new_partweight', 'required'); = add *-sign to label
Example 2: gSetFieldRequired( 'new_partweight', 'recommended'); = add +-sign to label
Example 3: gSetFieldRequired(, 'new_partweight', 'none'); = no image
Calls: nothing
Author: Geron Profet
*/
var attribute = document.getElementById(field);
if (!attribute){return};
switch(src.toLowerCase())
{
case 'required':
src = '/_imgs/frm_required.gif';
attribute.setAttribute('req', 2);
break;
case 'recommended':
src = '/_imgs/frm_recommended.gif';
attribute.setAttribute('req', 1);
break;
case 'none':
src = ''
attribute.setAttribute('req', 0);
break;
}
//if src is passed add image
if (src != '') {
var img = document.createElement("img");
img.setAttribute('src', src);
//check if custom height and width
if (height && height != '' ){img.setAttribute('height', height);}
if (width && width != '' ){img.setAttribute('height', width);}
//img.setAttribute('width', width);
var objLabel = document.getElementById(field+'_c');
if (objLabel){objLabel.appendChild(img)};
}
else{
document.getElementById(field+'_c').innerHTML = document.getElementById(field+'_c').innerText;
}
}
Источник