Данная функция делает поле динамически обязательным или рекомендуемым. Скопируйте функцию в событие OnLoad и вызовите как указано в комментариях в примере:
//****************************************************
gSetFieldRequired = function (field, src, height, width){
/*
Description: This function is used to dynamically make a field required, recommended in JavaScript
Params: field = name of the field
src = url with image eg. /_imgs/frm_required.gif
height = number, optional e.g. 50
width = number optional e.g. 50
Returns: nothing
Example 1 : gSetFieldRequired(, 'new_partweight', 'required'); = add *-sign to label
Example 2: gSetFieldRequired( 'new_partweight', 'recommended'); = add +-sign to label
Example 3: gSetFieldRequired(, 'new_partweight', 'none'); = no image
Calls: nothing
Author: Geron Profet
*/
var attribute = document.getElementById(field);
if (!attribute){return};
switch(src.toLowerCase())
{
case 'required':
src = '/_imgs/frm_required.gif';
attribute.setAttribute('req', 2);
break;
case 'recommended':
src = '/_imgs/frm_recommended.gif';
attribute.setAttribute('req', 1);
break;
case 'none':
src = ''
attribute.setAttribute('req', 0);
break;
}
//if src is passed add image
if (src != '') {
var img = document.createElement("img");
img.setAttribute('src', src);
//check if custom height and width
if (height && height != '' ){img.setAttribute('height', height);}
if (width && width != '' ){img.setAttribute('height', width);}
//img.setAttribute('width', width);
var objLabel = document.getElementById(field+'_c');
if (objLabel){objLabel.appendChild(img)};
}
else{
document.getElementById(field+'_c').innerHTML = document.getElementById(field+'_c').innerText;
}
}
Источник
Задача очень простая – отображать только активные записи (в этом примере – продукты) в лукапе при работе с расширенным поиском.
Сначала я попробовал изменить вручную экспортированный файл кастомизации сущности product, добавив условие фильтра
<filter type="and">
<condition attribute="statecode" operator="eq" value="0" />
</filter>
и импортировав его обратно не получил требуемого результата. После чего я решил написать плагин, который бы перехватывал сгенерированный fetch xml и заменял его на нужный мне. Вот, что получилось:
Читать полностью »
В случае необходимости вывода значений picklist из MS CRM для своего aspx веб-приложения можно использовать данный код

picklist to dropdownlist
Читать полностью »
Как вы знаете для Microsoft Dynamics CRM можно создавать отчеты, которые будут доступны для определенных типов записей: контактов, организаций, заказов и др. Для это необходимо использовать фильтрованные представления в базе данных: FilteredContact, FilteredAccount … и указать в настройке отчета необходимые данные в пунктах: «Связанные типы записей» и «Отобразить в».
Например, такой запрос:
select name
from FilteredAccount CRMAF_FilteredAccount
будет трансформировать системой в запрос вида
select name
from FilteredAccount CRMAF_FilteredAccount
where CRMAF_FilteredAccount.accountid = '{0000000-0000-0000-0000-000000000000}'
т.е. идентификатор выбранной записи будет подставлен автоматически.
Проблема может возникнуть, когда в вашем отчете используется несколько DataSet. Почему-то идентификатор записи будет передаваться только в 1й DataSet, а в остальные нет. Поэтому если есть необходимость использовать полученный идентификатор в нескольких DataSet, то придется выполнить следующие шаги:
Читать полностью »
Недавно была задача установить Microsoft Dynamics CRM E-mail Router, казалось бы, ничего сложного – скачал необходимые файлы и запустил установку. Но на первом же шаге я получил ошибку в компоненте Microsoft Application Error Reporting с сообщением «В процессе установки произошла критическая ошибка».

Microsoft Application Error Reporting Installation failed
Обновления для роутера так же не помогли решить данную проблему, решение оказалось как всегда простым – удалить данный компонент и установить его заново.
Решение было найдено здесь Андреем Бутенко. Спасибо