Расширенная функциональность
03
Мар
12

CRM 2015 или найди 10 отличий… Функционал, эпизод II

Иерархическая модель безопасности

В CRM 2015 Microsoft представляет новую модель безопасности – Иерархическая модель безопасности. Она позволит более «дозированно» раздавать Пользователям права на записи в соответствии с произвольной иерархией (отличной от иерархии Подразделений).

Примечание: Иерархическая модель безопасности никак не связана с визуальной иерархией. Точнее не более чем с другими моделями безопасности.

И сначала ее нужно настроить…

Перейдите Параметры – Безопасность (новая область) – Иерархическая безопасность:

  • Поставьте флажок Включение моделирование иерархии;
  • Выберете одну из двух моделей иерархии:
    • Иерархия руководителей: в этом случае иерархия выстраивается на основе существующего поля Руководитель в карточке Пользователя;
    • Настраиваемая Иерархия положений: тут иерархия строится на основе взаимосвязей специального объекта – Положение, который Вам необходимо будет настроить далее.
  • Устанавливает глубину иерархии – сколько записей вниз по иерархии вы сможете видеть (обратите внимание, что чем выше данный параметр, тем хуже производительность);
  • Перечень объектов, для которых действует модель безопасности на основе иерархии.

Далее, если Вы выбрали в качестве модели Иерархию руководителей, то все, что Вам требуется –на карточке Пользователей просто заполнить лукап Руководитель по всей цепочке иерархии. Серьезное ограничение этой модели – пользователь должен находиться в том же Подразделении, что и подчиненный, или в родительском Подразделении по отношению к Подразделению подчиненного, чтобы Иерархия руководителей работала. Один из интересных кейсов использования данной опции – замещение сотрудников на время отпусков.


Если же Вы выбрали Иерархию положений, то Вам необходимо выстроить иерархию с помощью специальной сущности Положения. Для этого перейдите Параметры – Безопасность – Положения.

Создайте необходимое количество записей Положение, каждая из которых – отдельное звено в цепочке иерархии. При этом укажите родительскую запись Положения, а также добавьте к Положению необходимых Пользователей.

Иерархия положений, в отличии от иерархии руководителей, позволяет настраивать иерархию между Пользователями, находящимися в разных Подразделениях.
Как для иерархии руководителей, так и для иерархии положений Вы можете просмотреть визуальное отображение иерархии нажав соответствующую кнопку.


Примечание:

  • Чтобы Иерархическая модель безопасности работала, необходимо чтобы у Пользователя в Ролях была привилегия хотя бы читать свои записи в рамках соответствующего объекта;
  • Конечный пользователь может иметь только одного Руководителя или находится только в одном Положении.

Пользователь получит доступ к следующим записям Пользователей, находящимся ниже по иерархии:

  • Записи находящиеся в непосредственном владении подчиненных;
  • Записи расшаренные на подчиненных;
  • Записи принадлежащие Рабочим группам, в которые входят подчиненные Пользователи;
  • Записи расшаренные на Рабочие группы, в которые входят подчиненные Пользователи.

С точки зрения привилегий иерархическая модель безопасности дает следующие полномочия тем, кто в ней задействован:

  • Чтение на протяжении всей цепочки иерархии в соответствии с заданным в настройках уровнем просмотра;
  • Обновление (в том числе и Добавления) только для прямого «родителя» (Пользователя или Положения).

Строго рекомендуется, чтобы Иерархическая безопасность использовалась вместе с другими средствами обеспечения безопасности (Ролями безопасности, Рабочими группами подразделения, и т.д.). Поскольку масштабное использовать данного функционала и большой глубиной просмотра может негативно сказать на производительности.

Поиск

Кросс-объектный поиск

CRM 2015 появилась долгожданная возможность кросс-объектного поиска.

Для начала его необходимо настроить:

  • Параметры – Администрирование – Системные параметры;
  • В области настрое быстрого поиска щелкните Выбрать, чтобы выбрать объекты для поиска и порядок их вывода. Кросс-объектный поиск может производится максимум по 10 объектам.

Использовать его довольно просто… В зависимости от размеров экрана на панели навигации будет либо поле для ввода, либо кнопка в виде лупы. Если ввести в поле значение или щелкнуть на лупе, то откроется отдельная страница, в которой необходимо ввести искомое значение. Найденные записи будут выведены по столбцам, каждый из которых представляет собой отдельный объект. Порядок вывода объектов задается в настройках поиска. Поиск осуществляется на основе параметров Быстрого поиска соответствующего объекта. Для каждой записи выводится первые 3 столбца Представления Быстрого поиска.

При этом Вы можете вывести результат только по одному объекту, воспользовавшись фильтром рядом с полем поиска.

Клик по записи откроет ее карточку. Щелкнуть на кнопке + (плюс), рядом с названием объекта откроет форму создания записи (если есть Быстрая форма создания, то ее; если нет, то обычную форму).

З.Ы. Также как и в Быстром поиске можно использовать символ звездочки (*), чтобы задать маску поиска.


Расширенный поиск

Кнопка вызова Расширенного поиска для удобства теперь вынесена на панель навигации.

З.Ы. Маленькая странность – при открытии Расширенного поиска из Представления открывается обычное новое окно, а при открытии Расширенного поиска с формы открывается модальное окно.


Поля

В CRM 2015 поля обзавелись парой интересных свойств…

Свертка полей

Свертка полей – новая функциональность, которая позволяет агрегировать данных из дочерних записей в родительскую. Свертка полей может использоваться только на следующих числовых типах данных:

  • Целое число;
  • Число с плавающей точкой;
  • Десятичное число;
  • Валюта;
  • Дата и время.

Свертка задается в свойствах поля. Для начала в списке Тип поля выберите Свертка и нажмите кнопку Изменить рядом с ним. Откроется форма настройки свертки:

  • Исходный объект: поменять нельзя – он всегда равен тому, на котором расположено агрегирующее поле;
  • Иерархия: если установлен в Да, то агрегироваться данные будут не только для текущей записи, но и для связанных по цепочке иерархии. Например, если у Вас настроена иерархия для Организаций, то в головную Организацию можно подтянуть доход со всех Возможных сделок, связанных со всеми Организациями в иерархии;
  • Дочерний объект (только 1:N), с которого будем агрегировать данные. Тут же Вы можете настроить фильтрацию записей, т.е. среди доступного множества записей отобрать еще более узкую выборку на основе определенные критерии;
  • Далее нужно выбрать поле с которого будем агрегировать данные (тип исходного и агририруемого поля должны иметь одинаковый тип), а также агрегирующую функцию, которая будет определять, каким образом будут собираться данные с дочерних записей:
    Тип поля Счет Макс Мин Сумма
    Целое число x
    Десятичное число x x x x
    Валюта x x x
    Дата/время x x
  • Сохраните и закройте настройки.

А теперь плохие новости: свертка полей не вычисляется автоматически при создании/добавлении/обновлении дочерних записей. Свертка работает только в трех случаях:

  • Вручную – Вы должны нажать кнопку Обновить рядом полем свертки, чтобы обновить агрегированное значение;
  • Поля свертки вычисляются автоматически асинхронным процессом один раз в час;
  • Можно использовать SDK, чтобы принудительно вычислить значение поля свертки.

Таким образом, поля свертки можно с ограничениями использовать в Бизнес-процессах, с SDK или при импорте данных. Также учтите, что на момент просмотра данные в полях свертки могут быть неактуальны.


Примечания:

  • После создания поле его Тип поля (Свертки в данном случае) поменять нельзя;
  • Для полей Свертки Аудит не работает;
  • Поля Свертки нельзя изменить вручную на форме;
  • Плагины и Бизнес-процессы не срабатывают на изменение полей Свертки;
  • Свертка работает только для связи 1:N;
  • Свертка не может использовать сложные Вычисляемые поля (см. ниже), либо другие поля Свертки.

На техническом уровне каждое поле Свертки состоит из трех физических полей (которые можно вынести на форму):

  • Fieldname: хранит расчетное значение;
  • Fieldname_date: хранит время прошлого обновления;
  • Fieldname_state: отслеживает состояние поля Свертки. Возможные значения:
    • 0 – NotCalculated: значение еще не рассчитывается
    • 1 – Calculated: значение было рассчитано
    • 2 – OverflowError: расчет значения приводит к ошибке переполнения (overflow)
    • 3 – OtherError: расчет значения завершился неудачно из-за внутренней ошибки, следующий запуск расчета, скорее всего, это исправит
    • 4 – RetryLimitExceeded: расчет значения не удался, поскольку превышено максимальное количество попыток расчета (скорее всего всего из-за большого количества параллелизма и конфликтов блокировки)
    • 5 – HierarchicalRecursionLimitReached: расчет значение не удался, потому что был достигнут максимальный предел глубины иерархии для расчета
    • 6 – LoopDetected: расчет значение не удался, потому что был обнаружен рекурсивный цикл в иерархии записи

Каждое поле Свертки хранится как запись в таблице RollupPropertiesBase. У этой таблицы есть различные свойства, описывающие поле Свертки.

Автоматическое вычисление

При создании поля Свертки система создает рекурсивные Системные задания, по одному для каждого поля Свертки с Типом «Масс-расчет поля свертки» и по одному с Типом «Расчет поля свертки» для каждого объекта, в котором задействовано поле Свертки. Для второго Системного задания «Масс-расчет поля свертки» можно задавать период выполнения (увеличить), таким образом изменяя время вычесления поля Свертки (но для всех полей Свертки одного объекта).

Для этого перейдите Параметры — Системные задания — выберите Представление Повторяющиеся системные задания — откройте Системное задание с именем «Рассчитать поля свертки для сущности <имя_объекта>«. Нажмите Действия — Изменить интервал повторения. Задайте необходимый интервал и нажмите Ок.


Вычисляемые поля

Вычисляемое поле – это поле, значение которого вычисляется автоматически на основе заданной формулы. Вычисление происходит синхронно на стороне сервера каждый раз, когда системе требуется вычисляемый атрибут: при загрузке или обновлении формы, отображения Представления или любого другого действия.

Для вычисления поддерживаются следующие типы полей:

  • Однострочное текстовое поле;
  • Пиклист;
  • Битовое поле;
  • Целое число;
  • Десятичное число;
  • Дата/время.

Так же, как и Свертка, Вычисляемое поле задается в свойствах поля. Для этого в списке Тип поля выберите Вычисляемое и нажмите Изменить. Откроется окно настройки правила вычисления, аналогичное настройке Бизнес-правил:

  • Сначала Вы можете задать условия при которых должен происходить расчет;
  • Далее в специальном редакторе Вам нужно задать формулу, по которой будет происходить вычисление. При написании выражения Вы можете использовать любое поле текущего объекта или любого объекта N:1. Также Microsoft предоставила некоторые функции, которые Вы можете использовать при написании формул:
    Тип Операция
    Математические
    • =
    • +
    • /
    • *
    Строковые
    • CONCAT(строка, строка, строка …)
    • TRIMLEFT(строка, целое число)
    • TRIMRIGHT(строка, целое число)
    Дата/время
    • ADDHOURS(целое число, дата/время)
    • ADDDAYS(целое число, дата/время)
    • ADDWEEKS(целое число, дата/время)
    • ADDMONTHS(целое число, дата/время)
    • ADDYEARS(целое число, дата/время)
    • SUBTRACTHOURS(целое число, дата/время)
    • SUBTRACTDAYS(целое число, дата/время)
    • SUBTRACTWEEKS(целое число, дата/время)
    • SUBTRACTMONTHS(целое число, дата/время)
    • SUBTRACTYEARS(целое число, дата/время)

    Комбинируя поля и формулы Вы можете составлять довольно сложные выражения. А чтобы облегчить Вам жизнь, редактор поддерживает intellisense, поэтому при написании формул Вы будете видеть подсказки.

На техническом уровне Вычисляемые поля сильно отличаются от полей Свертке поскольку они – виртуальные – их значения не хранятся в базе данных. Вместо этого в базе данных MSCRM хранится выражение (формула) в виде пользовательской функции. И каждый раз, когда требуется получить значение Вычисляемого поля будет выполняться соответствующая функция.



Примечания:

  • Вычисляемые поля могут использовать в своих выражениях поля Свертки;
  • Вычисляемые поля могут использовать в своих выражениях другие Вычисляемые поля при условии, что те не ссылаются на них же (т.е. нет циклических ссылок);
  • Значение Вычисляемого поля не доступно в контексте плагина;
  • Т.к. Вычисляемые поля – виртуальные, то никакие плагины или Бизнес-процессы не могут на них срабатывать;
  • При написании выражений Вы можете выбрать поля из записей в лукапах (т.е. N:1);
  • Нельзя изменить значение Вычисляемого поля вручную или программно;
  • Вычисляемые поля не доступны оффлайн.

Модуль Сервиса

В Весеннем обновлении CRM 2013 впервые появилась функциональность SLA. Теперь в CRM 2015 появился новый ее подвид – Расширенный SLA. А «старый» будет называться Стандартным SLA.

Примечание: весь ранее созданный SLA будет отмечен как Стандартный, а весь новый SLA, созданный в 2015 CRM, будут считаться Расширенным. Стандартный SLA не может быть преобразован в Расширенный SLA.

Для Расширенного SLA доступны следующие новые функции…

Автоматическая приостановка/возобновление SLA

В CRM 2015 администраторы могут задать определенные активные значение Статуса Обращения, при которых автоматически остановится таймер SLA. Смена Статуса на любой другой таймер возобновит свою работу. При этом для каждой записи Обращения отслеживается время «простоя».

Настройка осуществляется в: Параметры – Управление сервисом – Настройка сервиса – вкладка Сервис. Эта функциональность доступна только для Расширенного SLA.

Тут же Вы можете полностью Отключить SLA. Например, это может понадобится при проведении технического обслуживания или при импорте Обращений, чтобы SLA не был применен к Обращениям.


Действия успеха

В CRM 2013 для каждого Элемента SLA Вы могли задавать условия применения и критерии успеха, теперь к этом списку добавились Действия при успехе, в котором Вы можете определить шаги, которые будут автоматически выполняться каждый раз при достижении критериев успеха.


Экземпляр KPI по SLA

В Стандартном SLA значения Первый ответ и Разрешить к и других полей хранились в виде полей на записи Обращения. В Расширенном SLA эта информация хранится в связанном объекте Экземпляр KPI по SLA (выведенном в виде вложенного Представления на форму Обращения), что позволяет вести историю их изменений, а также отслеживать время простоя.

А формы Быстрого просмотра используются, чтобы выводить основную информацию на карточку Обращения.


Лукап на Экземпляр KPI по SLA

В Стандартном SLA Элемент SLA привязывается к полям даты/времени имеющимися в Обращении. В Расширенный SLA Элемент SLA привязывается к лукапу в Обращении, который ссылается на объект Экземпляр KPI по SLA.

Вы можете создать сколько угодно кастомных лукапов, ссылающихся на объект Экземпляр KPI по SLA. Таким образом Вы можете отслеживать дополнительные KPI помимо стандартных Первого ответа и Разрешить к.

Эти новые Экземпляр KPI по SLA также можно использовать для составления диаграмм и в Панелях мониторинга, чтобы иметь графическое представление о состоянии Ваших Обращений.


Справка

CRM 2015 позволяет настраивать и управлять содержанием справки. Справку можно изменить как для всей организации, так и для определенных кастомных объектов.
Перво-наперво Вам нужно создать свою справку в виде HTML страницы и разместите ее где-нибудь: шарик, Веб-ресурсы CRM, IIS и т.д.

Чтобы переопределить Справку на уровне организации:

  • Перейдите Параметры — Администрирование – Системные параметры — вкладка «Общие»;
  • В разделе Задать URL настраиваемой справки переключите флажок Использовать настраиваемую справку – это включает глобальную справку для всех кастомных объектов в системе. Также после этого станут доступны два других параметра:
    • URL-адрес: путь к месту где распологается Ваша кастомна справка (поддерживается относительный URL, что будет полезно если Вы размещаете справку в Веб-ресурсах HTML);
    • Присоединить параметры: если установлено в Да, то при открытии справки в URL будет автоматически добавляться контекстная информация:
      • entrypoint – тип страницы, с которой была открыта справка. Данный параметр будет отсутствовать, если справка открыта из Представления. Возможные значения: form, hierarchychart;
      • formid – GUID формы или представления иерархии, с которой была открыта справка;
      • typename – логическое имя объекта, с которого была открыта справка;
      • userlcid – код языка, который используется текущем пользователем током.

Справка на уровне объекта включается в настройках соответствующего объекта. Для этого нужно поставить галку Использовать настраиваемую справку и задать путь к HTML-странице. При этом в URL будут автоматически включатся все контекстные параметры.



Примечания:

  • Кастомная справка не доступна для планшетов;
  • Если кастомная справка будет отключена, то для стандартных объектов будет выводиться стандартная справка. А для кастомных – пустая справка.

Безопасность на уровне полей

Начиная с версии 2015 можно Безопасность на уровне полей можно задавать не только для кастомных полей, но и для большинства стандартных. Но ее по-прежнему нельзя включить для таких полей как первичный ключ и состояние/статус.

Другое снятое ограничение для Безопасность на уровне полей – возможность задавать ее на такие подтипы как адреса электронной почты и поля адреса.
Примечание: чтобы помочь администраторам отслеживать поля, для которых включена Безопасность на уровне полей в Представлении полей добавлен столбец Безопасность поля.


Прочее

Вложенное Быстрое создание

Раньше при попытке создать запись с формы быстрого создания (через форму лукапа) открывалась полная форма другого объекта. Теперь же с формы быстрого создания также можно открывать формы быстрого создания других объектов – они будут просто накладываться друг на друга, а после создания возвращаться на предыдущую форму быстрого осздания.


Обзор навигации

В CRM 2013 появилось начальное окно, которое рассказывает пользователям о навигации в CRM. Чтобы отключить ее надо было добавить специальный ключ в реестр. В CRM 2015 в системных параметрах появился отдельный переключатель (на вкладке Общие сведения), отключающий это окно.


Языки

CRM 2015 поддерживает большее количество нативных языков. 44 против 40 в CRM 2013.

Панель администрирования

Панель администрирования была разделена на две панели: функции касающиеся вопросов безопасности были перенесены в отдельную область Безопасность.


Social Listening

N-ное время назад Microsoft выпустила мощный инструмент мониторинга социальных сетей – Social Listening – и интегрировала его с CRM. Изначально только у CRM Online была возможность встроить компоненты Social Listening в CRM, но теперь и локальная версия CRM обзавелась такой возможностью.

Используя простой мастер диаграммы Social Listening можно добавить к Панелям мониторинга или формам объектов.

Комментарии (12)
  • Katsiaryna 03.03.2015

    Слава, подскажи, пожалуйста, какой «специальный ключ» надо добавить в реестр, чтобы отключить Обзор навигации?

  • slivka_83 03.03.2015

    Привет 🙂
    Вот тут написано http://mmcrm.ru/?p=5265.
    Ключ DisableNavTour.

  • Katsiaryna 03.03.2015

    Спасибо большое! 🙂

  • Kipetcoff 03.03.2015

    После прочтения про вычисляемые поля и сверку у меня остался вопрос. Очень часто нужно в шапку документа выводить сумму строк документа. На сколько я вижу проблема так и не решилась до конца. По идее этим должна заниматься сверка, но значение вычисляется как вы написали с периодичностью или нужно что-то нажимать. Этот вариант не подходит, потому что будет вводить в заблуждение, поскольку никто ничего нажимать не будет. До этого момента я вычисления делал в плагине или в клиентском скрипте собирал по всем строкам связанных строк. Что-то упростилось в итоге или так и не изобрели ещё подходящего функционала? Что значит вычисление с использованием SDK в бизнес процессах?

  • slivka_83 03.03.2015

    Все верно 🙂 Если асинхронное/ручное обновление Вас не устраивает, то нужно кодить 🙂

  • CRMист 03.03.2015

    Подскажите неопытному 🙂

    Необходимо создать вычисляемое поле в котором будет отображаться ко-во дней между полями «Дата с» и «Дата по».
    Возникает ошибка «Нельзя использовать «имя_поля» (с типом dateTime) с текущим оператором».
    Заранее благодарю.

  • slivka_83 03.03.2015

    Если Вы используете что-то вроде Вычисляемых полей, то тут не подскажу — активно использовать не приходилось.

  • Дима 03.03.2015

    Не совсем понял, свертка поля настраивается на родительской таблице. И это поле сразу видно на всех дочерних? Где его там увидеть?

  • slivka_83 03.03.2015

    Свертка настраивается не на таблице. А в свойствах поля. И агрегирует она данные не в дочерние записи, а в родительскую с дочерних.

  • vibo90 03.03.2015

    Спасибо за статью! Одно маленькое уточнение: тип поля «свертка» не можно применить к типу данных число с плавающей точкой.

  • Миша 03.03.2015

    Добрый день,
    можно ли с помощью БП блокировать поля(после их заполнения) и делать их доступными только для чтения?
    если нет, то какие альтернативные варианты?
    только Бизнес-Правила?

  • slivka_83 03.03.2015

    Добрый день.
    С помощью БП нельзя — это серверная логика. Остаются либо Бизнес-правила либо скрипт.

*

code