Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
![](http://www.axforum.info/forums/blog_attachment.php?attachmentid=80&stc=1&d=1296211379)
![](http://www.axforum.info/forums/blog_attachment.php?attachmentid=100&stc=1&d=1296211379)
MVP 2010, 2011
- Консалтинг
- Проектирование
- Разработка
- Обучение
MVP 2010, 2011
"Глубокие" запросы на гридах формы.
Запись от Артем Enot Грунин размещена 06.10.2012 в 00:01
Обновил(-а) Артем Enot Грунин 06.10.2012 в 14:22
Обновил(-а) Артем Enot Грунин 06.10.2012 в 14:22
Теги bug, customization, form, grid, unsupport
В свое время мое внимание привлек вот этот пост в официальном блоге разработчиков: Deep queries for subgrids - Microsoft Dynamics CRM Team Blog - Site Home - MSDN Blogs.
Его функциональность показалась мне интересной, однако подобных задач тогда передо мной не вставало, так что я отложил изучение данного феномена.
Суть его состоит в том, что путем несложных манипуляций с существующими технологиями, можно отразить во встроенной в форму сетке (и только в ней, для панели навигации функционал не доступен) не только записи непосредственно связанные с данной формой (объектом, открытым в форме), но и записи, которые связаны опосредованно - через связи с другими объектами, которые связаны с формой.
Например, у вас есть иерархия Организация - Заказ - Платеж. Используя данную технологию можно, например, показать в гриде платежи по всем заказам организации. Раньше для этого потребовалось бы создать служебную связь между Платежом и Организацией.
Недавно мне пришлось вспомнить про этот пост, так как необходимость в таком функционале возникла. Первое на что я обратил внимание - это дополнение, которого не было в момент публикации поста:
“Please note that the methods described here are not documented in the SDK and therefore are not officially supported by the CRM product team. This works in the context used in the Wealth Management solution and may work in other scenarios, but is not a pattern that is guaranteed to work in other scenarios.”
Ранее упоминалось лишь то что функционал был добавлен в UR7, но пока не был документирован.
К сожалению, в моем случае он не заработал и мне пришлось использовать гарантированно неподдерживаеммые методы. Позже я провел исследование, чтобы выяснить возможные сценарии работы. Для этого я настроил в системе следующую иерархию объектов:
![Название: model.png
Просмотров: 501
Размер: 10.2 Кб](//axforum.info/forums/blog_attachment.php?s=52ea9d35bdb84248fb2beea33e89778c&attachmentid=260&d=1349465903)
Для объекта A я создал набор форм со встроенными гридами.
Рабочие сценарии:
Не работающие сценарии:
Сообщение об ошибке гласит: dependentAttributeName must be specified. К сожалению, информацию как это исправить не удалось добыть даже внутри Microsoft. Возможно, когда функционал станет поддерживаемым, это исправят. Сейчас же можно использовать старый добрый ансапорт, например вот такой: Filtering records in the sub grid in Microsoft Dynamics CRM 2011. - I am the techie - Site Home - TechNet Blogs.
Как и почему это работает понять очень сложно. К сожалению, крос-браузерную версию системы так и не выпустили, а пророщенные вглубь InternetExplorer HTC контролы понимает только он один (причем о их устройсте не осведомлен даже дебагер!). Как бы там ни было, это полезное удобное решение.
Ниже приложены управляемое и неуправляемое решение, на которых можно поиграть с данным функционалом.
Его функциональность показалась мне интересной, однако подобных задач тогда передо мной не вставало, так что я отложил изучение данного феномена.
Суть его состоит в том, что путем несложных манипуляций с существующими технологиями, можно отразить во встроенной в форму сетке (и только в ней, для панели навигации функционал не доступен) не только записи непосредственно связанные с данной формой (объектом, открытым в форме), но и записи, которые связаны опосредованно - через связи с другими объектами, которые связаны с формой.
Например, у вас есть иерархия Организация - Заказ - Платеж. Используя данную технологию можно, например, показать в гриде платежи по всем заказам организации. Раньше для этого потребовалось бы создать служебную связь между Платежом и Организацией.
Недавно мне пришлось вспомнить про этот пост, так как необходимость в таком функционале возникла. Первое на что я обратил внимание - это дополнение, которого не было в момент публикации поста:
“Please note that the methods described here are not documented in the SDK and therefore are not officially supported by the CRM product team. This works in the context used in the Wealth Management solution and may work in other scenarios, but is not a pattern that is guaranteed to work in other scenarios.”
Ранее упоминалось лишь то что функционал был добавлен в UR7, но пока не был документирован.
К сожалению, в моем случае он не заработал и мне пришлось использовать гарантированно неподдерживаеммые методы. Позже я провел исследование, чтобы выяснить возможные сценарии работы. Для этого я настроил в системе следующую иерархию объектов:
Для объекта A я создал набор форм со встроенными гридами.
Рабочие сценарии:
X++:
A - 1:N - B - N:1 - //работает, но может вернуть дубли! A - 1:N - B - 1:N - C //работает
X++:
A - N:1 - C - 1:N - D //ошибка A - N:1 - C - N:1 - B //ошибка
Как и почему это работает понять очень сложно. К сожалению, крос-браузерную версию системы так и не выпустили, а пророщенные вглубь InternetExplorer HTC контролы понимает только он один (причем о их устройсте не осведомлен даже дебагер!). Как бы там ни было, это полезное удобное решение.
Ниже приложены управляемое и неуправляемое решение, на которых можно поиграть с данным функционалом.
Всего комментариев 0