Я публиковал счётчик записей в начале этого года - http://crmmagic.blogspot.com/2010/02/record-counter-for-microsoft-dynamics.html.
Пользователи, которые устанавливали его себе сообщили мне о возникающих ошибках. Теперь эти ошибки исправлены и Вы можете скачать последнюю версию счётчика здесь:
Также я добавил возможность контролировать вид строки итога. Это делается при регистрации плагина в плагинрегистраторе:
Execute step:
RetrieveMultiple step:
Моё имя - Бутенко Андрей (Аззик для друзей). Я работаю разработчиком под Microsoft Dynamics CRM. В этом блоге я буду публиковать мысли, идеи и интересные решения связанные с Microsoft CRM.
четверг, 26 августа 2010 г.
вторник, 13 июля 2010 г.
воскресенье, 20 июня 2010 г.
Расширенная обработка OnSave для форм в которых есть диалоги закрытия
Все разработчики кто занимался скриптами для CRM читал эту статью. Но в этой статье нет ни слова о том, как можно доступиться к данным из полей диалога закрытия (например в Возможной сделке. Я провёл небольшое исследованиями и пришёл к таким результатам:
пятница, 18 июня 2010 г.
Интеграция Google Maps v.3 в Microsoft Dynamics CRM 4.0
В этом посте я опишу как можно интегрировать Google Maps v.3 в Microsoft Dynamics CRM 4.0 используя IFrame.
Ярлыки:
Custom Page,
Customization,
JavaScript,
Maps,
Microsoft Dynamics CRM 4.0
среда, 16 июня 2010 г.
Форматирование даты и времени в бизнес процессах в Microsoft Dynamics CRM 4.0
В процессе работы с бизнес процессами CRM выяснилась одна интересная особенность - никоим образом отформатировать поле даты/времени при вставке в текстовое поле нельзя. Результат можно посмотреть на скриншоте:
воскресенье, 13 июня 2010 г.
Изменение отображения по умолчанию в сервисном календаре Microsoft Dynamics CRM 4.0
Один из моих клиентов сделать так, чтобы в сервисном календаре Microsoft Dynamics CRM 4.0 открывалось отображение 'Facility/Equipment'. Я не смог найти ни одного поддерживаемого способа сделать это, посему я решил применить неподдерживаемый способ - вставка JavaScript в страницу сервисного календаря.
пятница, 28 мая 2010 г.
Как отобразить данные полученные из Microsoft Dynamics CRM 4.0 в GridView на кастомной ASP.Net странице
Я видел эту статью одного из моих колег Hassan Hussain. Я решил прибегнуть к другому подходу для отображения данных в GridView - вместо BusinessEntitiesCollection я использовал Fetch.
Ярлыки:
ASP.Net,
C#,
Custom Page,
Microsoft Dynamics CRM 4.0
вторник, 20 апреля 2010 г.
Использование маппинга атрибутов сущностей из JavaScript
Я - активный участник нескольких форумов посвящённых Microsoft Dynamics CRM. На этих форумах видел немало вопросов про маппинг - что это такое и как он работает. Особенность маппинга - что он срабатывает только раз - в момент, когда выполняется создание дочерней карточки из родительской. Если же в дочерней карточке обновить поле-лукап, ссылающееся на родительскую карточку - ничего не произойдёт. Я решил исправит данную ситуацию при помощи следующего скрипта:
вторник, 13 апреля 2010 г.
Отчёт использования CRM пользователями системы
Один из моих клиентов пожелал иметь возможность просматривать лог работы пользователей в CRM. Я знал, что MVP Дэвид Дженнавей (David Jennaway) создал такое решение основываясь на логах IIS. Но как я не бился - у меня не получилось заставить IIS записывать лог в базу. Также данный подход не будет работать в сценарие IFD, так как данная схема аутентификации (на уровне форм) не позволит нам отличить одного пользователя от другого.
Ярлыки:
.Net,
Microsoft Dynamics CRM 4.0,
Plugin,
Reporting Services,
Reports,
T-SQL
понедельник, 29 марта 2010 г.
Изменение порта, на котором работает Reporting Services
У одного из моих клиентов возникла следующая проблема
SQL сервер и Microsoft CRM были установлены на один сервер. CRM был развёрнут на порту 5555. Потом на этот же сервер был установлен Апач на порт по умолчанию (80).
SQL сервер и Microsoft CRM были установлены на один сервер. CRM был развёрнут на порту 5555. Потом на этот же сервер был установлен Апач на порт по умолчанию (80).
воскресенье, 21 февраля 2010 г.
Счетчик записей для Microsoft Dynamics CRM 4.0
Я разработал новую версию счётчика записей. Теперь счётчик работает не только в основных отображениях, но и в ассоциированных.
суббота, 20 февраля 2010 г.
Становлюсь независимым консультантом
5 марта станет последним мои рабочим днём в компании, где я работаю на данный момент. С уходом из компании я становлюсь независимым консультантом.
Если Вам необходимо установить/обновить/доработать Microsoft CRM - обращайтесь по почте, ICQ, MSN или Skype.
Мой опыт Microsoft Dynamics CRM:
- подготовка ИТ-инфраструктуры компании для разворачивания;
- установка и администрирование;
- импорт данных из других систем;
- настройка и разработка (настройка сущностей, разработка скриптов, настройка бизнес-правил, разработка плагинов и custom workflow activities, разработка отчётов).
Если Вам необходимо установить/обновить/доработать Microsoft CRM - обращайтесь по почте, ICQ, MSN или Skype.
Мой опыт Microsoft Dynamics CRM:
- подготовка ИТ-инфраструктуры компании для разворачивания;
- установка и администрирование;
- импорт данных из других систем;
- настройка и разработка (настройка сущностей, разработка скриптов, настройка бизнес-правил, разработка плагинов и custom workflow activities, разработка отчётов).
воскресенье, 14 февраля 2010 г.
TechDays: Первый доклад
Начал выкладывать свои доклады по разработке под Microsoft Dynamics CRM 4.0. И параллельно буду складывать ссылки здесь под тегом доклады на Techdays.
PS - Никогда не мог подумать, что у меня такой препротивный голос =)
PS - Никогда не мог подумать, что у меня такой препротивный голос =)
четверг, 11 февраля 2010 г.
Кастомный шаг бизнес процесса, который позволяет получить запись закрытия возможной сделки основываясь на возможной сделке.
Все данные, которые вы вводите при закрытии возможной сделки хранятся в отдельном объекте и недоступны из бизнес процесса. Я попытаюсь исправить это.
вторник, 26 января 2010 г.
понедельник, 25 января 2010 г.
Трудности перевода или опять про локализацию
У моего клиента возникла проблема с русскоязычной локализацией Microsoft Dymanics CRM при наполнении документов, а именно - отображение документов выглядит примерно таким образом:
Казалось бы при чём тут заголовок документа и Должность... Но видимо тем, кто переводил - виднее. Задался вопросом как переименовать это поле, но наткнулся на ряд проблем:
1. У клиента развёрнут только один язык (русский), а следовательно добраться до значения того поля через Параметры-Импортировать метки для трансляции - не является возможным.
2. Сущность Документ (salesliteratureitem) является некастомизируемой и потому её нельзя даже выгрузить в виде файлов кастомизации, чтобы отредактировав xml файла кастомизации, импортировав обратно в CRM и опубликовав - получить требуемый результат (как делалось уже не раз с другими сущностями).
Отсюда вывод, что необходимо редактировать непосредственно место, где данные метки хранятся.
Всем метки перевода (как опубликованные так и нет) лежат в таблице MetadataSchema.LocalizedLabel.
При помощи следующего запроса я получил идентификатор метки:
После чего прямым обновлением я установил значение на то, на которое хотел поменять:
После этого выполнил iisreset и получил требуемый результат:
Помните, что данная кастомизация является неподдерживаемой, так что бэкапируйтесь перед подобными манипуляциями.
Казалось бы при чём тут заголовок документа и Должность... Но видимо тем, кто переводил - виднее. Задался вопросом как переименовать это поле, но наткнулся на ряд проблем:
1. У клиента развёрнут только один язык (русский), а следовательно добраться до значения того поля через Параметры-Импортировать метки для трансляции - не является возможным.
2. Сущность Документ (salesliteratureitem) является некастомизируемой и потому её нельзя даже выгрузить в виде файлов кастомизации, чтобы отредактировав xml файла кастомизации, импортировав обратно в CRM и опубликовав - получить требуемый результат (как делалось уже не раз с другими сущностями).
Отсюда вывод, что необходимо редактировать непосредственно место, где данные метки хранятся.
Всем метки перевода (как опубликованные так и нет) лежат в таблице MetadataSchema.LocalizedLabel.
При помощи следующего запроса я получил идентификатор метки:
Select
LocalizedLabelId
From
MetadataSchema.LocalizedLabel Where
ObjectId =
(Select AttributeId From MetadataSchema.Attribute
Where
EntityId = (Select EntityId From MetadataSchema.Entity Where LogicalName = 'salesliteratureitem')
And name = 'title')
And ObjectColumnName = 'DisplayName'
And LanguageId = 1049
После чего прямым обновлением я установил значение на то, на которое хотел поменять:
Update
MetadataSchema.LocalizedLabel
Set Label = 'Заголовок'
Where LocalizedLabelId = '90D8A218-2341-1049-898A-0007E9E17EBD'
После этого выполнил iisreset и получил требуемый результат:
Помните, что данная кастомизация является неподдерживаемой, так что бэкапируйтесь перед подобными манипуляциями.
пятница, 22 января 2010 г.
Обёртка для работы с 1С на .Net
Была найдена в интернете следующая ссылочка - http://umsoft.ru/news.aspx?ID=10. Со странички можно скачать обёртки на .Net для работы с объектами 1С. Думаю, что данная обёрка упростит разработчикам организацию взаимодействия и обмена данных между своими приложениями и 1С.
среда, 20 января 2010 г.
Кастомизация которая позволяет поле описания сделать обязательным для заполнения в диалоге закрытия возможной сделки
Это неподдерживаемая кастомизация, так что будьте аккуратны при её выполнении.
Откройте каталог с сайтом в котором развёрнут CRM. Откройте подкаталог SFA\opps. Откройте файл dlg_closeopp.aspx file при помощи notepad или другого текстового редактора и найдите в нём следующую функцию:
Откройте каталог с сайтом в котором развёрнут CRM. Откройте подкаталог SFA\opps. Откройте файл dlg_closeopp.aspx file при помощи notepad или другого текстового редактора и найдите в нём следующую функцию:
четверг, 7 января 2010 г.
Установка описания аттрибута в качестве всплывающей подсказки в Microsoft Dynamics CRM 4.0
Чтобы сделать это возможным просто необходимо следующий код поместить в обработчик onLoad формы любой сущности:
И собственно скриншот, который показывает результат работы данного скрипта:
SetTooltips = function()
{
var request = "" +
"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
GenerateAuthenticationHeader() +
" <soap:Body>" +
" <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
" <Request xsi:type=\"RetrieveEntityRequest\">" +
" <RetrieveAsIfPublished>true</RetrieveAsIfPublished>" +
" <EntityItems>IncludeAttributes</EntityItems>" +
" <LogicalName>" + crmForm.ObjectTypeName + "</LogicalName>" +
" </Request>" +
" </Execute>" +
" </soap:Body>" +
"</soap:Envelope>";
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/MetadataService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", request.length);
xmlHttpRequest.send(request);
var result = xmlHttpRequest.responseXML;
for(var i = 0; i < crmForm.all.length; i++)
if(crmForm.all[i].title != null && crmForm.all[i].title != 'undefined')
{
var fieldName = crmForm.all[i].id;
var desc = result.selectSingleNode("//EntityMetadata/Attributes/Attribute[LogicalName='" + fieldName + "']/Description/UserLocLabel/Label");
try
{
if(desc != null)
{
crmForm.all[fieldName + '_c'].title = desc.nodeTypedValue;
crmForm.all[fieldName + '_d'].title = desc.nodeTypedValue;
}
}
catch(e) {}
}
}
SetTooltips();
И собственно скриншот, который показывает результат работы данного скрипта:
вторник, 5 января 2010 г.
Обработка Rollup сообщения плагинами в Microsoft Dynamics CRM 4.0
Как известно, сообщение Rollup отсутствует в списке поддерживаемых сообщений в SDK. Приведённый далее приём позволит разработчикам обрабатывать данное сообщение своими плагинами.
суббота, 2 января 2010 г.
Удостоен статуса MVP
Я стал обладателем стауса MVP по Microsoft Dynamics CRM.
Большое спасибо семье, друзьям, коллегам и конечно Microsoft.
Корпорация Майкрософт присваивает статус MVP (Most Valuable Professionals) специалистам в области технологий за их выдающийся вклад в жизнь всемирного технического сообщества.
Мой профиль - https://mvp.support.microsoft.com/profile/Andriy.Butenko
Большое спасибо семье, друзьям, коллегам и конечно Microsoft.
Корпорация Майкрософт присваивает статус MVP (Most Valuable Professionals) специалистам в области технологий за их выдающийся вклад в жизнь всемирного технического сообщества.
Мой профиль - https://mvp.support.microsoft.com/profile/Andriy.Butenko
пятница, 1 января 2010 г.
Плагин для копирования примечаний и файлов из интереса в контакт/компанию при конвертации интереса
Мне дали задание написать плагин, который при конвертации интереса в контакт все файлы-вложения и примечания скопирует в полученный контакт. Далее код плагина, который выполняет это:
Подписаться на:
Сообщения (Atom)