Я пытаюсь развернуть отчеты, которые подключаются к кубу SSAS в качестве общего источника данных. Проблема, с которой я столкнулся, связана с тем фактом, что даже если я изменю исходный каталог в строке подключения SSAS, все запросы MDX в файлах rdl по-прежнему ссылаются на старый куб SSAS по имени.
Это особая проблема, потому что названия этих кубов часто меняются (будут отличаться практически для каждого клиента, для которого мы устанавливаем наше программное обеспечение). Если имя куба, с которым разработчик написал отчет, жестко закодировано в запросе, то лучший ли способ сделать это, чтобы выполнить поиск / замену в файлах rdl перед попыткой развертывания?
Вот пример одного из простых запросов MDX:
WITH MEMBER [Measures].[ParameterCaption]
AS [Time Dim].[Year].CURRENTMEMBER.MEMBER_CAPTION MEMBER [Measures].[ParameterValue]
AS [Time Dim].[Year].CURRENTMEMBER.UNIQUENAME MEMBER [Measures].[ParameterLevel]
AS [Time Dim].[Year].CURRENTMEMBER.LEVEL.ORDINAL
SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]}
ON COLUMNS , [Time Dim].[Year].ALLMEMBERS ON ROWS FROM [Data Warehouse]
Итак, скажем, что «Хранилище данных» - это имя базы данных, в которой хранятся данные для куба SSAS на компьютере разработчика. Но в производстве он называется «Prod DW». Несмотря на то, что я меняю источник данных, чтобы он указывал на новый куб, запросы все равно смотрят на старый. Единственный способ изменить его - вручную редактировать файлы rdl или редактировать их в Visual Studio.