AXForum  
Вернуться   AXForum > Блоги > CRM, SharePoint и Черная Магия
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
  • Консалтинг
  • Проектирование
  • Разработка
  • Обучение


MVP 2010, 2011
Оценить эту запись

Автоматическое обновление профилей пользователя в CRM данными из Active Directory

Запись от Артем Enot Грунин размещена 03.02.2010 в 18:45

При создании пользователя в CRM мы указываем его имя в домене (Domain Name), после чего система услужливо "подтягивает" данные из его карточки. На этом синхронизация профилей CRM и AD "из коробки" заканчивается. В отличие от того же SharePoint Server, CRM 4.0 не следит за актуальностью данных профилей пользователей. В результате, данные в ней могут устареть, что чревато формированием неверных контактных данных при слиянии в Word или при отправке по почте. Как правило, ИТ-служба организации чутко следит за своевременным обновлением каталога организации, ведь данные оттуда попадают в адресные книги Exchange. Что касается "сторонних" систем, то о них чаще всего забывают, когда меняют номер телефона пользователя, а то и вовсе увольняют оного. Чтобы восполнить данное упущение, мной была написана небольшая утилита: "CRMUserPropertiesUpdater", исходный код которой прикреплен к данному посту.

В основе подхода лежит использование системного веб сервиса "UserManager.aspx", который используется CRM системой для получения данных пользователя из AD. Далее, полученные из него данные передаются в стандартный веб сервис системы "CrmService.asmx", для обновления записей всех активных пользователей системы. В исходном виде утилита активно логирует все свои операции, так что по завершении выполнения вы увидите полный отчет о работе программы. С логером, я, вероятно, перемудрил, так что будьте осторожны активируя все его опции!!!

Настройка параметров приложения осуществляется через "app.config" ("CRMUserPropertiesUpdater.exe.config"):
<setting name="OrgName" > Имя организации, к базе которой осуществляется подключение. Регистр учитывается.
<setting name="ServerURL" > Адрес сервера системы, например, "http://localhost:5555". Без "/" в конце!
<setting name="EmailEnabled" > Разрешить отправку логов по Email
<setting name="EmailAddress" > Адрес, или адреса электронной почты через ";" на которые слать отчет. Используется если отправка на Email разрешена.
<setting name="EmailHost" > Хост для отправки по почте (имя вашего почтового сервера). Используется если отправка на Email разрешена.
<setting name="EventLogEnabled" > Разрешить писать события в системный журнал (EventViewer).
<setting name="EventLogName" > Имя журнала, в которй будут записываться события. Используется если разрешена запись в системный журнал.
<setting name="LogFileEnabled" > Разрешить ведение лог файла.
<setting name="LogFilePath" > Каталог для записи лог файла. Используется если разрешено ведение лог файла. Если значение не задано, лог пишется в каталог с приложением. Имя лог файла - <ДатаСозданияЛога>_UserUpdater.log
<setting name="CrmServiceURL" ><value>http://notused.com > Параметр не используется. Не изменяйте его.
<setting name="UserManagerServiceURL" ><value>http://notused.com > Параметр не используется. Не изменяйте его.

Лог пишется как минимум в консоль, поэтому если вы запускаете утилиту вручную, нет необходимости использовать "EmailEnabled", "EventLogEnabled" или "LogFileEnabled".
Если вы используете эти команды, убедитесь в корректности соответствующих настроек (у учетной записи под которой запущена программа, должны быть права на доступ к каталогу в который пишется лог файл, на запись в журнал, или отправку почты), иначе ошибки будет вызывать само логирование. В случае ошибки логирования, вызвавшая ее опция будет отключена для текущего сеанса, а выполнение программы продолжится. Код ошибки будет записан в консоль.
В текущей версии в лог попадают все сообщения, в том числе об успешности выполнения операции, так что будьте осторожны с настройкой "EmailEnabled", иначе вас завалит сообщениями.

Для запуска приложения по расписанию, например, раз в месяц, вы можете воспользоваться планировщиком Windows (NT Job).

CRMUserPropertiesUpdater.rar - архив проекта в VisualStudio 2008. Приложение написано на языке C#.
CRMUserPropertiesUpdaterEXE.rar - только необходимые исполняемые файлы. Не забудьте правильно указать настройки в файле CRMUserPropertiesUpdater.exe.config!

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

p.s. Утилита была написана второпях и приурочена к организационно-структурным изменениям у заказчика. Не судите очень уж строго.
p.p.s. Если я увижу копию своей программы кое у кого в блоге без указания первоисточника, то непременно забаню его навечно!
Размещено в CRM, SharePoint
Просмотров 50217 Комментарии 0
Всего комментариев 0

Комментарии

 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:32.