Home > SQL Reporting Services > Deployment-независимые ссылки в отчетах MS CRM 4.0

Deployment-независимые ссылки в отчетах MS CRM 4.0

В отчетах MS CRM 4.0 есть хорошая возможность отображать форму редактирования записи при нажатии на связанные с этой записью данные. Например, при нажатии на имя контакта в таблице – открывать форму редактирования этого контакта. Для этого в свойствах контрола (или колонки таблицы, как в вышеприведенном примере) нужно указать действие (Action) при нажатии – “Переход по ссылке”.  В стандартных отчетах ссылка формируется так:

=IIf(IsNothing(Fields!ContactId.Value),
     Nothing,
     String.Format(System.Globalization.CultureInfo.InvariantCulture,
                   "{0}?ID={1}&OTC={2}",
                   Parameters!CRM_URL.Value,
                   Fields!ContactId.Value,
                   2))

 Как видно из примера, для формирования ссылки используется стандартный параметр отчета CRM_URL. У ссылки два параметра – ID, идентификатор записи, и OTC, уникальный код сущности. В данном случае OTC=2, что соответствует контакту. Для стандартных сущностей CRM все работает отлично, для кастомных – появляются проблемы. Во-первых, этот код нужно узнать. Во-вторых, при каждом развертывании коды кастомных сущностей могут меняться.

Решение этой проблемы – указывать в drilldown-ссылке не ОТС, а имя сущности. Делается это следующим образом:

=IIf(IsNothing(Fields!ContactId.Value),
     Nothing,
     String.Format(System.Globalization.CultureInfo.InvariantCulture,
                   "{0}?ID={1}&LogicalName={2}",
                   Parameters!CRM_URL.Value,
                   Fields!ContactId.Value,
                   "contact"))

 Надеюсь, это поможет избежать некоторых проблем при переносе отчетов между средами разработки и эксплуатации.

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: