Объединенные / вычисленные столбцы в представлении Dynamics CRM - PullRequest
5 голосов
/ 08 сентября 2010

Я новичок в MS Dynamics и хотел бы знать, есть ли способ добавить столбец в представление, которое является объединением некоторых других столбцов, например:

Firstname + ' ' + Lastname As Fullname

Кажется, что нет очевидного (элегантного) решения для этого, все предложения, которые я видел, предполагают использование javascript для поддержки нового атрибута.

Если сделать еще один шаг вперед, если я хочу получить или рассчитать столбец из другого столбца, например, возраст человека по дате его рождения, его нужно будет вычислять на лету при просмотре нагрузок. Опять же, я не могу сразу увидеть способ обеспечить эту простую функциональность с помощью инфраструктуры CRM. Возможно, я что-то упустил?

Любой совет будет высоко ценится.

Ответы [ 3 ]

7 голосов
/ 08 сентября 2010

Ты ничего не пропустил.Нет элегантного решения вашей проблемы.Если вы хотите, чтобы это было в виде, вам нужно добавить пользовательский столбец для его отображения.

Если оно действительно вычислено (сохранение фиксированного значения в базе данных может быть устаревшим, как в вашем примере возраста)затем вам нужно будет добавить плагин на шаге post сообщения Fetch, проанализировать XML, чтобы определить, возвращается ли ваша сущность, проанализировать атрибуты, которые должны быть вычислены, вычислить значение, а затем вставить ваш вычисленныйатрибут в результате xml.

Допустим, вы не отображаете поле даты рождения в представлении (вы просто хотите отобразить возраст), тогда вам также понадобится подключаемый модуль.на предварительном шаге сообщения извлечения проанализируйте XML, чтобы определить, является ли ваша сущность той, которую выбирают, определить, возвращается ли столбец возраста, и, если это так, вставить столбцы базы вычисления в возвращаемый набор столбцов.

Обратите внимание, что эти шаги плагина НЕ выполняются, если вы используете фильтрованное представление в отчетах SSRS, поэтому вам придется вычислять возраств TSQL в этих случаях.Я не думаю, что вы когда-либо сможете отобразить столбец возраста в отчетах мастера, созданного в CRM (вы не можете ввести TSQL здесь, и плагины не будут работать).

Учитывая все это, еслиу вас есть что-то, что МОЖЕТ быть исправлено (конкатенация), я бы вычислил это в плагине создания / обновления для этой сущности и сохранил бы его в пользовательском атрибуте (полное имя).В этом случае атрибут будет работать только для видов сетки, всех видов отчетов и т. Д.

3 голосов
/ 08 сентября 2010

В Dynamics CRM нет ничего похожего на вычисляемые столбцы. Benjynito прав в использовании плагинов, это жизнеспособное решение.

Но если этого достаточно для вычисления поля, отображаемого в форме, я обычно использую JavaScript для "подделки" атрибута.

Чтобы дать вам представление о том, как это сделать, вот фрагмент кода, где я использую jQuery для вставки метки и текстового поля только для чтения, чтобы отобразить значение поля родительских записей (номер телефона в моем случае).

// create label
$("#ad_contactid_c").next().next().find("label").text("Contact Phone:");
// create textbox
var phoneNumber = $(document.createElement("input")).addClass("ms-crm-Text ms-crm-ReadOnly").attr("contentEditable", "false").attr("id", "d_phoneNumber");
$("#ad_contactid_c").next().next().next().append(phoneNumber);
// fill textbox value
$("#d_phoneNumber").val(phone);
1 голос
/ 03 ноября 2010

Просто чтобы добавить это, а также опцию плагина и опцию javascript, есть также возможность планирования задачи для вычисления и установки атрибута. Я использовал эту технику для атрибута «истекшее время», например, где атрибут необходимо обновлять каждый день.

Задачей может быть пользовательская служба или запланированное консольное приложение, которое использует SDK для обновления данных, или задание Scribe (или аналогичное).

...