Показать сообщение отдельно
Старый 08.07.2011, 17:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,477 / 846 (79) +++++++
Регистрация: 28.10.2006
axforum blogs: Визуализация данных CRM в Visio Services 2010
Источник: http://axforum.info/forums/blog.php?b=265
==============

Недавно у меня возникла задача отобразить на схеме Визио данные из CRM. Задача, в общем-то, достаточно тривиальная, кроме того я уже не раз делал подобные вещи с другими источниками. И вот неожиданно столкнулся с ожесточенным противодействием системы! В настольной версии визио диаграмма работала как полагается, но веб версия при попытке обновить данные на диаграмме выдавала ошибку:



Visio Services was unable to refresh external data connections in this Web Drawing because of changes in the structure of an underlying data source. One or more rows in this data source have been deleted after this Web Drawing was last saved. To resolve this issue, restore the deleted rows or update the data connection information in this Web Drawing using Visio.

Бля буду, источник данных никто не трогал. Все попытки прогуглить ситуацию приводили лишь к инструкциям как настроить Visio на работу с SecureStore и хранение источников подключения к данным в библиотеках SharePoint. Ошибка при этом имеет некоторый плавающий характер. Во-первых, она не возникает в настольной версии визио, во-вторых, может не проявиться при первой загрузке схемы на сервер, но проявиться при повторном открытии! Сразу скажу, что она никак не связана с ошибками в источнике или проблемами авторизации. Проблема в гидропонике!
Найти ее мне помог данный выбкаст: http://go.microsoft.com/fwlink/?LinkId=196864 Который я нашел на странице Data authentication for Visio Services (SharePoint Server 2010). В нем подробно рассказывается процесс настройки подключения внешних источников к Visio, так что его я оставлю за пределами этого поста. Интересна фраза где-то посередине обзора: "Excel, в котором мы настраиваем соединение, поддерживает больше опций запросов, чем Visio". Второй момент: когда в Excel вставляется таблица данных из запроса из нее пропадают все столбцы идентификаторов! Office не знает такой тип данных как GUID!!! Итак, для того чтобы источник данных "никто не менял за пределами диаграммы", он должен удовлетворять следующим критериям:
  1. Запросы только типа Table. Select, Where и прочий SQL синтаксис - богохульство и работать не будет. Или будет но только на дектоп и только в определенных случаях.
  2. Идентификатор для привязки к фигуре не должен быть типа GUID. Используйте int или string.
С обоими пунктами можно успешно бороться, например, создавая на базе своих запросов собственные представления. В качестве фильтра нужно задать критерии отбора, а в качестве ID Код:
cast(guidfield as nvarchar(36)) as 'guidfield',
результат получится эффектным!




Источник: http://axforum.info/forums/blog.php?b=265
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.