MS CRM и IntelliSense
IntelliSense — технология автодополнения Microsoft (наиболее известная в Visual Studio). Дописывает название объектов, методов и функции при вводе их начальных букв. Рассмотрим пару приемов, с помщью которых, Вы сможете облегчить себе работу по разработке некоторых частей MS CRM…
JavaScript
Для хранения javascript-кода формы MS CRM Вы можете использовать помимо самой формы (т.е. различных еесобытий) использовать внешние js-файлы. А при загрузке (или при каком либо другом событии) динамически их подгружать. Например так:
var url = "'/ISV/" + ORG_UNIQUE_NAME + "/javascripts/" + crmForm.ObjectTypeName + ".js'"; script = document.createElement("<script src=" + url + " language='JavaScript'>"); h = document.getElementsByTagName("head"); h[0].insertAdjacentElement("beforeEnd", script);
З.Ы. В инете Вы сможете найти еще кучу других способов «подцепить» JS файлы к форме CRM.
Способ не поддерживаемый (по крайней мере тот, что приведен выше), но дает некоторые преимущества при разработке. Обычно наполнение таких JS-файлов происходит в Visual Studio. А следовательно Вы можете использовать javascript intellisense при написании кода. Но т.к. Visual Studio ничего не знает о MS CRM, Вы не сможете воспользоваться объектами, функциями и методами CRM (только стандартными javascript’овыми).
Решить эту маленькую проблему Вам поможет MS CRM Javascript Intellisense Generator. Этот инструмент генерирует файлы, которые будучи подключенными к VS, расширят стандартные возможность intellisense для работы с MS CRM. Рассмотрим как это работает:
- Скачайте и запустите MS CRM Javascript Intellisense Generator;
- Введите параметры подключения к Вашему CRM серверу и выберите нужную организацию из списка;
- Нажмите Save чтобы сохранить выходную информацию. В результате (по указанному пути) будет создана папка intellisense с js-файлами – по одному для каждого объекта;
- Создайте новый пустой ASP.NET сайт;
- Создайте в нем новую папку с именем «intellisense»;
- Подсоедините в эту папку js-файл созданные программой MS CRM Javascript Intellisense Generator (какой-нибудь конкретный или все, если нужно);
- Добавьте в проект новый js-файл;
- Поместите в него ссылку на какой-либо файл из папки intellisense – просто в начале кода пропишите такую строчку:
- Готово (в некоторых случаях Вам потребуется закрыть проект и повтороно его открыть, чтобы intellisense корректно подгрузились).
SiteMap и ISV.Config
Теперь активируем IntelliSense для SiteMap’а и ISV.Config’а:
- Скачайте и установите последнюю версию MS CRM SDK (если у Вас ее еще нет 🙂 );
- Откройте xml файл кастомизации (в котором находится либо SiteMap, либо ISV.Config) в Visual Studio;
- Нажмите F4, чтобы открылась панель свойств. Щелкните по копочке с троеточием справа от пункта Schemas;
- В открывшемся диалоговом окне добавьте ссылки на следующие файлы:
- <CRMSDK>\server\schemas\_root\SiteMapType.xsd
- <CRMSDK>\server\schemas\_resources\customizations.xsd
- <CRMSDK>\server\schemas\_resources\isv.config.xsd
- Теперь, когда Вы начинаете редактировать свой файл, Вы будете видеть IntelliSense для своих узлов, и любые уродливые узлы будут выдвинуты на первый план.
Огромное спасибо, очень пригодилось