Записи с меткой «MS CRM 4.0»

PostHeaderIcon Как сделать размер строки адреса больше 50 символов

Если требуется сделать размер строки адреса (поля Улица, дом (строка 1,2,3)) более чем 50 символов, то нужно увеличить максимальное число знаков не только в исходной сущности (Контакт, Организация), но и в сущности Адрес. Иначе возникает ошибка при вводе данных в это поле.

Исходный пост – http://a-crm.blogspot.com/2008/06/generic-sql-error.html

PostHeaderIcon Ссылка на запись в CRM из отчета Reporting Services

Для формирования ссылки на форму записи в Dynamics CRM из отчетов, как вариант, можно использовать следующее выражение:

=iif(IsNothing(Parameters!CRM_URL.Value) , Nothing, Parameters!CRM_URL.Value+”?ID=”+Fields![GUID Field].Value.ToString+”&LogicalName=[Entity Type Name]#”)

Лучше описанного в SDK тем, что не привязываемся к коду сущности, который может быть различным между разными инстансами системы.

В выражении:

  • CRM_URL – текстовый параметр, заполняется CRM при формировании отчета
  • [GUID Field] – поле с GUID открываемой записи
  • [Entity Type Name] – текстовое наименование типа записи (account, contact, new_warehouse и пр.)

Выражение используется в параметре Jump to URL у элемента отчета.

PostHeaderIcon Ошибка “Ошибка при создании документа XML.”

При попытке программного создания записи возникает ошибка “Ошибка при создании документа XML.”.

  • Возникает ошибка но запись создается. Возможной причиной ошибки может быть связывание создаваемой записи с некоторой другой записью, у которой не указано значение основного атрибута (Primary Attribute). Как правило это атрибут name.
  • Причиной ошибки может быть попытка записать пустое значение в текстовое поле.

PostHeaderIcon Отправка электронной почты с указанием любого адреса

У клиента возникла задача выполнять отправку электронной почты из Dynamics CRM, в адресе оправителя которой (From) должен быть указан адрес, отличный от основного адреса пользователя системы.

Решение задачи – использование списков ожидания (Queues):

  1. В меню Управление бизнесом раздела Настройки зайдите в пункт Очереди.
  2. Создайте новую очередь, при этом название очереди должно соответствовать имени пользователя, а адрес электронной почты – тому ящику, который будет указан в поле From сообщения.

Теперь при создании сообщений, массовых рассылок, активностей маркетинговых кампаний указываете созданную очередь в качестве отправителя сообщения.

PostHeaderIcon Решение проблемы со стандартным фильтром CRM в сложных отчетах Reporting Services

При разработке комплексных отчетов для Dynamics CRM мы часто сталкиваемся с задачей сделать несколько запросов, в которых используется один и тот же фильтр CRM (CRMAF_). Если в запросах указать CRMAF_ для одного и того же типа записи несколько раз, то при формировании отчета пользователю приходится несколько раз выбрать одинаковые критерии фильтрации для одинакового типа записи.

Мы решаем эту проблему следующим образом. В каждом запросе (DataSet) отчета создаем временную таблицу с выборкой id нужного типа записи и далее используем эту таблицу для запроса вместо стандартного CRMAF_.

Пример для сущности Account:

--Get Customers ID From CRM Filter
DECLARE @SQL nvarchar(4000);
DECLARE @Accounts TABLE
(
  accountid uniqueidentifier
)
SET @SQL = 'SELECT accountid FROM ('+@CRM_FilteredAccount+') AS Accounts;'
INSERT INTO @Accounts EXEC (@SQL);

--Select Accounts Data
SELECT
   *
FROM FilteredAccount AS Account
WHERE 
  EXISTS (SELECT * FROM @Accounts AS AccountsFilter WHERE AccountsFilter.accountid=Account.accountid);

@CRM_FilteredAccount – стандартная переменная CRM, которая создается в шаблоне отчета для каждого фильтра, указанного в запросе как “CRMAF_”. В данном случае, эта переменная создается для записей типа Account, а для контактов будет @CRM_FilteredContact.

В результате можно использовать @Accounts в комплексном запросе и отсутствует проблема со стандартным фильтром CRM.

PostHeaderIcon Установка значений параметров DynamicEntity

Методы-расширения для упрощения установки значений параметров DynamicEntity.

Прочитать остальную часть записи »

PostHeaderIcon Отмена создания записи и отмена отправки письма

Бывают ситуации, когда, после проверки каких-то условий в плагине на стадии PreCreate, необходимо отменить создание записи. Сделать это можно только одним способом – вызвать исключение. Аварийное завершение плагина на PreCreate не позволит завершиться процессу создания записи. Воспользовавшись InvalidPluginExecutionException можно вывести пользователю текст с пояснением причин запрета создания записи.

Если нужно отменить отправку электронного письма, вызов исключения также является единственным решением. Никакие другие варианты (изменение состояния письма на Canceled, удаление получателя письма, удаление самого письма на стадии PostCreate) не дают возможности отменить отправку и письмо в отправляется адресату.