Расширенная функциональность
11
Дек
9

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

Панели мониторинга

Роли безопасности

В CRM 2013 Панелям мониторинга можно назначать Роли (так же как и формам), тем самым, управляя их доступностью для Пользователей. Делается это так:

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


Дефолтные Панели мониторинга

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

Глобально

Для глобальной настройки:

  • Перейдите Параметры – Настройка – Настроить систему – Панели мониторинга;
  • Выделите нужную Панель мониторинга и нажмите кнопку По умолчанию.

Локально

Локально, для каждой области, дефолтная панель мониторинга задается в SiteMap’е:

  • Выгрузите сайтмап;
  • Скопируйте в нужную область определение (SubArea) существующей панели мониторинга (или отредактируйте у уже существующей);
  • В DefaultDashboard укажите GUID Панели мониторинга.
    <SubArea Id="nav_dashboards" ResourceId="Homepage_Dashboards" DescriptionResourceId="Dashboards_Description" Icon="/_imgs/area/18_home.gif" Url="/workplace/home_dashboards.aspx" GetStartedPanePath="Dashboards_Web_User_Visor.html" GetStartedPanePathAdmin="Dashboards_Web_Admin_Visor.html" GetStartedPanePathOutlook="Dashboards_Outlook_User_Visor.html" GetStartedPanePathAdminOutlook="Dashboards_Outlook_Admin_Visor.html" DefaultDashboard="2701de60-8f2a-48a4-8262-4a35ca7441fa" />
    


Формы

Новые типы форм

Форма быстрого создания

Основные объекты

В CRM 2013 вернулась, когда-то утраченная, форма быстрого создания. Данная форма позволяют создавать различные новые записи почти из любого места системы. Например, Вы работаете над определенной Возможной сделкой и вам позвонили по другому поводу. Чтобы не уходить из Возможной сделки, Вы можете открыть форму быстрого создания и внести ключевую информацию.

Кнопка бстрого создания (в виде плюсика) записи расположена справа на панели навигации. По нажатию на нее раскрывается список записей, которые можно «быстро» создать. После выбора объекта, сверху-вниз раскроется форма быстрого создания, которую Вам и нужно будет заполнить.

Формы быстрого создания могут быть настроены, как и любые другие (хотя и с некоторыми ограничениями) и полностью поддерживают клиентский код (т.е. JavaScript для событий onChange, onLoad и onSave):

  • Для начала переместитесь к настройкам нужного объекта и поставьте галку Разрешить быстрое создание (если она еще не установлена);
  • Откройте форму с типом «Быстое создание формы» (в списке форм) или создайте новую, если таковой еще нет;
  • Ну, а дальше добавляйте/удаляей поля с формы.

При этом учтите следующие моменты:

  • На форме быстрого создания может быть только одна вкладка. Эта вкладка разделена на три столбца и этого не изменить;
  • Вложенные Представления, iFrames не доступны для формы быстрого создания.



Действия

Отдельным особнячком на этой панелли быстрого создания выделяются действия. Они выделены красным и сгрупированны в левой части панели и в, отличии от других объектов, для Действий всегда открывается полная Форма.

При этом кастомные Действия пока нельзя добавить в этот список.

Форма быстрого просмотра

Если вкратце, то форма быстрого просмотра предназначена для вставки формы одно объекта на форму другой. Т.е. к примеру, у нас имеется лукап на форме, в котором выбрана какая-либо запись. Чтобы просмотреть по ней информацию раньше необходимо было открыть эту запись. Теперь же имеется возможность смотреть информацию по этой записи прямо на форме, где расположен лукап.

Чтобы проделать это:

  • Передите к настрйкам объекта (в данному примере это test), форму которого необходимо разместить на форме другого объекта;
  • Создайте новую форму с типом Экспресс-форма и заполните ее нужными полями;
  • Переместитесь к объекту на который необходимо поместить форму быстрого просмотра и создайте лукап на первый объект (если его еще нет);
  • Откройте основную форму второго объекта, перейдите на закладку ХХХ и нажмите ХХХ – откроется окно вставки формы быстрого просмотра:
    • Задайте имя для контрола;
    • Выберите объект (и лукап из которого тянуть данные), форму которого нужно разместить на текущей;
    • Выбирите саму форму (их может быть несколько для одного объекта);
    • Также не забудьте вынести лукап на форму, чтобы в нем можнол было выбрать запись.
  • Сохраняем, публикуем и смотрим.

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

Примечания:

  • На форме быстрого просмотра может быть только одна вкладка с одной колонкой;
  • Вы также можете вынести вложенные Представления на форму быстрого просмотра;
  • Форма быстрого просмотра будет видима только когда в соответствующем лукапе выбрана запись.



Два не очевидных способа применения:

  • Т.к. на формы быстрого просмотра можно выводить вложенные Представления, то их можно целиком заменить Диаграммами. Что в свою очередь позволяет просматривать Диаграммы по связанной записи на текущей форме;
  • Вы можете использовать форму быстрого просмотра, чтобы добавить контекстную справку на форму. Например, если у Вас стадии процесса меняются с промощью лукапа (отдеьный справочник), то можете на нем забить комментарии и инструкции к каждой стадии и вынести их на формы где она выбирется.

Поля и связи

Композитные поля

Композитные поля — это новые элементы управления, которые позволяют более эффективно использовать пространство формы. Эти поля выводят на экран информацию из нескольких полей (составляющих композитное поле) в одной строке. Когда Вы редактируете композитное поле редактирование активируется по щелчку на нему), оно «раскрывается» в виде всплывающего DIV’а, чтобы Вы смогли внести информацию в его отдельные поля.

Существует два стандартных композитных поля:

      • Полное имя (Fullname) – форматирование данного поля в виде одной строки определяется правилом форматирования Полного имени в настройках системы.
        • Используеся на объектах: Интрес и Контакт;
        • Не используется: Пользователь.
      • Адрес – состоит из полей:
        • Улицы;
        • Город;
        • Область, край, регион;
        • Почтовый индекс;
        • Страна.

        Форматирование адреса в одну строку (т.е. в какой последовательности и в каком виде адрес будет представлен) захардкодено и зависит от страны, которая указана в этом адресе.

        • Используеся на объектах: Организация, Контакт, Интерес, Конкурент, Предложение, Заказ и Счет;
        • Не используется: Пользователь, Подразделение и Место.

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

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

Примечания:

      • Так как каждое отдельное составное поле композитного поля фактически не находится на форме, мы не можем непосредственно добавить обработчик события onChange к одному из них. Однако можно повесить onChange событие к самому композитному полю. Если же Вам все же нужно добавить onChange к отдельным полям и одновременно оставить композитное поле, то можете вынести эти составные поля в скрытую секцию и повесить на них onChange. И эти onChange будут срабатывать при изменении аналогичных полей в композитном поле, даже до закрытия всплывающей формы;
      • Методы работы с составными полями через JS и Бизенс-правила (такие как задание значения, скрытие и задание обязательности заполнения) не однозначны и не всегда логичны (и не всегда одинаковы по результату), но тем не менее почти все необходимы действия можно выполнить, хотя иногда и не поддерживаемым способом.


Лукапы

Новые возможности лукапов:

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

Если формы быстрого создания для объекта лукапа не существует, то откроется простая новая форма создания записи.

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

Примечание: для лукапов с множественным выбором (Party list) и клиентов (Customer) по умолчанию открывается форма быстого создания Конаткта. За исключением лукапа Родителького контакта (тип Customer) на форме Контакта – для этого лукап откроется форма быстрого создания Организации.


Битовое поле

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

Но этот стиль форматирования работает только для радиобаттонов. Ниспадающие списки и чекбоксы остались без изменений.

Телефон

Skype & Lync

У строковых поле появился новые формат (в дополнение к электропочте, например) – телефонные номера. При щелчке по такому полю произойдет вызов через Lync или Skype.

Что именно откроется (Lync или Skype), выберается в настройках системы. Тут же задается превикс кода страны, который будет по умолчанию использоваться.
При щелчке по телефонному номеру в Социальной панели также откроется своя собственная форма быстрого создания телефонного звонка.



Поиск по телефону

При создании Звонка, если в поле поулчателя и отправителя вбить телефонный номер, то система попытается найти запись (среди объектов которые можно подставить) с таким телефонным номером.


Свойства

Всплывающие подсказки

У всех полей на форме CRM есть стандартные HTML-подсказки. Они появляются при наведении курсора на поле. В стандартной поставке они всегда равны описанию поля заданному в его свойствах. Но в предыдущих версиях CRM изменение поисания поля не меняло подсказку выводимую на форме – она оставалась такой же, как и была при установке CRM.

Теперь же разработчики CRM исправили эту пичальку и изменение описания поля ведет к смене подсказки на форме.


Для поиска

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


Фото

Все объекты теперь могут включать в себя картинки. Хранится они будут в новом поле с типом Изображение. А выводятся в верхний левый угол формы (и только туда).

Варианты применения довольно разнообразны: фото Контакта или Пользователя, логотип Бизнес-партнеров, фото Продукта и т.д. Можно даже использовать его как индикатор, например, в Возможных сделках – будет показывать цветом вероятность заключения сделки (а меняться само изображение будет кодом).

Чтобы задать картинку для записи щелкните в области где она выводится и выберите изображение.

Если у объекта нет картинки, то создайте для него новое поле с типом Изображение. Затем откройте редактор форм, откройте Свойства форм и поставьте на вкладке Отобразить галку Показать изображение на форме.

Ограничения изображений:

  • На один объект может быть только одно поле-изображение;
  • На форме поле с изображением может быть выведено только в верхний левый угол формы (в заголовок);
  • Поле с изображением не может быть добавлено в Представления;
  • В изображения могут быть загружены только следующие форматы: JPG, PNG, GIF, ICO;
  • Размер изображения ограничен 144x144px. При попытке загрузить в CRM изображение большего размера (по высоте или ширине), то оно будет пропорционально уменьшено и/или обрезано;
  • Имя схемы поля с изображением всегда EntityImage;
  • Максимальный размер загружаемого изображения – 5 Mb;
  • Изображения нельзя добавлять в некоторые системные сущности.

По умолчанию поле с изображением добавлено к 24 объектам и на 8 из них выведено на форму.



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

  • EntityImage_Timestamp: значение обновляется, когда происходит обновление изображения, что позволяет CRM проверять, что используется последняя версия изображения, загруженная и закэшированная на клиенте;
  • EntityImage_URL: абсолютный URL к изображению, примерно такого вида:
    {0}/image/download.aspx?entity={1}&attribute={2}&id={3}&timestamp={4}

    • 0 : URL организации;
    • 1 : имя объекта;
    • 2 : имя атрибута;
    • 3 : идентификатор изображения;
    • 4 : значение поля EntityImage_Timestamp.

    Что примено будет выглядеть вот так:

    https://myorg.crm.dynamics.com/image/download.aspx?attribute=entityimage&amp;entity=contact&amp;id={ECB6D3DF-4A04-E311-AFE0-00155D9C3020}&amp;timestamp=635120312218444444
  • EntityImageId: идентификатор изображения.

Чтобы обновить изображение программно, необходимо передать свойству EntityImage.Value байтовый массив (byte[]), который представляет собой двоичное значение изображения. Также учтите, что Columns.AllColumns не возвращает поля с изображениями (в целях повышения производительности) – их нужно определить принудительно в списке возвращаемых полей.

Автосохранение

В CRM 2013 пользователям больше не потребуется сохранятся каждый раз при изменении записей. Теперь CRM автоматически сохраняет изменения каждые 30 секунд (по умолчанию). И на сервер отправляются только измененные данные.

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

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

Что особенно важно – автоматическое сохранение проходит через обычный конвейер сохранения. Это означает, что все события, связанные с сохранением (как на стороне клиента, так и на стороне сервера) будут инициированы.

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

  • Щелчок по кнопке Сохранить в командной панели:
  • Щелчок по кнопке Сохранения в строке состояния;
  • Перемещение со страницы:
    • Щелчок по ссылке другой записи;
    • Щелчок по кнопке Назад или Веперед в браузере;
    • Закрытие окна;
    • Перемещение к связанному Представлению.

Примечания:

  • Автоматическое сохранение применяется только на Основной форме;
  • Автоматическое сохранение не применимо к мобильным веб-формам;
  • Эта опция работает только для объектов с новым пользовательским интерфейсом.

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

  • Глобально (для всех объектов), через настройки:
    • Перейдите Настойка – Администрирование – Системные параметры;
    • Отключите прпметр Select default option for auto save на вкладке Общие.
  • Для определенных объектов с помощю JS-кода
    Можно использовать метод getSaveMode чтобы определить способ сохранения.
    Повесьте на OnSave объекта такой код и поставьте галку «Pass execution context as first parameter»:

    function stopAutoSave(context) {
        var saveEvent = context.getEventArgs();
        if (saveEvent.getSaveMode() == 70) { //Form AutoSave Event
            saveEvent.preventDefault(); //Stops the Save Event
        }
    }
    

    Фактически мы не отключаем сохранение, а просто каждый раз когда оно происходит мы его отклоняем.
    А чтобы другие действия не выполнялись при событии OnSave поместите отмену автосохранения на самый верх и добавьте следующий код в начало каждой фукнции на событии OnSave (и поставили галку «Pass execution context as first parameter»):

    if (context.getEventArgs().isDefaultPrevented()) { return; }
Комментарии (9)
  • Павел 11.12.2013

    Привет, спасибо за статью.

    В 2011 версии CRM можно было получить доступ к форме, с которой была открыта текущая форма с помощью примерно следующего кода:
    window.top.opener.Xrm.Page.getAttribute(‘name’)

    Сейчас же в 2013 все формы открываются на одной странице. Есть сейчас какой-нибудь способ получить данные аналогично?

    Потому как, например, если на форме Opportunity есть поле с ссылкой на Account, то при переходе на него даже полностью меняются хлебные крошки и получить данные с формы Opportunity не удается.

  • slivka_83 11.12.2013

    Добрый день.
    Пока таких фокусов не знаю. Но нужно обязательно разведать — очень полезная штука 🙂

  • Павел 11.12.2013

    Добрый вечер.

    Свою проблему решил получением данных с сервера из джаваскрипта гет-запросом.

    Примерное описание есть вот тут:
    http://mscrmblogger.com/2012/05/10/lookup-data-from-a-related-entity-lookup-using-jscript-and-the-xrmservicetoolkit/

  • Александр 11.12.2013

    Добрый день!
    Подскажите пожалуйста, CRM 2013.
    Есть форма обращение, там есть лукап на клиента.
    При переходе на карточку клиента, карточка сообщения исчезает и открывается клиент, каким образом можно снова вернуться на карточку ранее открытого обращения?

  • slivka_83 11.12.2013

    Добрый день.
    С помощью кнопки «назад» браузера.

  • Александр 11.12.2013

    Добрый день!
    Дак дело в том что нет, этих кнопок в окне CRM 2013, есть только на основном окне.

  • Александр 11.12.2013

    Всем спасибо.
    Начал использовать для CRM, Google Chrome. Там все есть.

  • Михаил 11.12.2013

    Добрый день,
    возможно ли изменить размер окна самого ниспадающего списка, например, растянуть его по высоте?

    И есть ли какие то варианты решения подобных задач и с другими модальными окнами? т.к. в crm2011 каждое окно открывалось по сути в отдельном окне браузера и его можно было растянуть если что то не «влазиет» в стандартные размеры. в 2015-2016 это делать нельзя что доставляет неудобства.

  • slivka_83 11.12.2013

    >Михаил
    Добрый день.
    Насколько я знаю, подобные вещи не редактируются. И каких-либо воркэраундов я не встречал.

*

code