Ниже приводится один из простых и элегантных способов размещения фотографии пользователя в карточке пользователя Microsoft Dynamics CRM 2011.

Известно решение на базе Silverlight, в котором изображение хранится в примечании, а затем подгружается в форму. Однако добавить подобную функциональность можно проще, используя JScript и web ресурсы.

Краткое описание решения:

Фотография пользователя хранится в виде веб-ресурса.

Ссылка на веб-ресурс с фото помещается в поле photourl записи о пользователе, а значит, фото становится доступно во всех сущностях (и отчетах в том числе), в которых имеется привязка к пользователю.

Ссылка на фото (поле photourl) обновляется автоматически при открытии карточки пользователя и при обнаружении соответствующего веб-ресурса с фото.

Описанное решение пригодно, в первую очередь, для пользователей CRM, поскольку записи о пользователях хранятся от момента их регистрации до исключения из организации и не меняют своих Id. Регистрация пользователя в CRM – событие довольно редкое, поэтому можно себе позволить уделить немного времени на загрузку фото в виде веб-ресурса (с последующей публикацией ресурса).

Реализация.

  1. Выбираем фото неизвестного пользователя. Это фото будет загружено в виде веб-ресурса с именем UnknownUser, и затем будет отображаться в карточках тех пользователей, которые не имеют своих фотографий. Масштабируем и кадрируем фото, чтобы получить разрешение 100 х 133 пикселей (вы можете использовать другое разрешение на свое усмотрение).
  2. Выбираем фото пользователя. Масштабируем и кадрируем фото пользователя в разрешение 100 х 133. Для всех фото используем тип PNG.
  3. Создаем тестовое решение. В нем создаем ресурс для хранения изображения в формате PNG. Добавляем фото неизвестного пользователя:

  1. Открываем запись пользователя, фото которого мы подготовили, и копируем ссылку на запись. Секрет использования фото в виде веб-ресурса состоит в правильном именовании ресурса. Имя ресурса с фото образуется путем прибавления к префиксу уникального идентификатора записи пользователя, в котором убраны все знаки ‘-‘. Вот что должно получиться:

 

  1. Публикуем оба созданных веб-ресурса. А затем добавляем сущность Пользователь (systemuser).

 

  1. Открываем форму сущности Пользователь и вставляем в нее веб-ресурс – неизвестное фото. Параметры настройки веб-ресурса показаны ниже:

    

  1. Редактируем раскладку полей на форме на свой вкус. Например, так:

Не забываем добавить на форму поле photourl и скрыть это поле.

  1. Создаем и загружаем в CRMследующий JScript (логика его работы откомментирована):

 

  1. Публикуем и добавляем скрипт на форму; устанавливаем обработчик события открытия формы на функцию init().

  1. Публикуем решение и проверяем его работу:

 

Успехов! Sergiy.Yezhov@gmail.com