powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Reporting Services. Перенос отчётов, обновление данных.
10 сообщений из 10, страница 1 из 1
Reporting Services. Перенос отчётов, обновление данных.
    #38444186
Roul_Duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток! Подскажите пожалуйста такой момент. Есть тестовая среда и рабочая.
Характеристики SQL серверов примерно идентичные. На тестовой создаём отчёты, тестируем и переносим на рабочую среду.
В самом отчёте вызывается табличная функция с параметрами, которая и является основным пулом данных для отчёта.

При переносе на боевую действовали так : копировали RDL файл, копировали script табличной функции. На боевой на web-морду,
закачивали RDL файл, настраивали на нужный DataSource и всё.

Хочется оптимизировать процесс и сделать набор скриптов, который обновит отчёт. RDL файл представляет собой XML структуру
Хранится структура отчёта в поле CONTENT(varbinary) таблицы Catalog базы данных ReportServer. Скажите, мысль такая - сделать на боевой
апдейт таблицы catalog, вставить в поле content данные с обновлённого отчёта на тестовом сервере.
Какие ещё сопутствующие таблицы нужно обновить и какие поля??
И я так понял что нужно очистить кэш, т.к. репортинг будет брать данные из кэша и изменений в отчёте не увидим, поправте если не так.
Заранее благодарен.
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38445643
Roul_Duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roul_Duke,
похоже, репортинг - страшная тема ;) инфы мало, опыта у разработчиков мало
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38445796
Andrews25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roul_Duke,
наоборот, тема популярная и часто обсуждаемая в конференциях, даже в этой, а тем более в этой http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/threads
есть утилита rs.exe
есть утилита rsscripter (не всегда, к сожалению, применимая)
есть возможности создания утилиты инсталляции отчетов на C
есть даже примеры на www.codeproject.com
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38447178
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря немного непонятна суть проблемы. В BIDS можно создать различные конфигурации (например, debug и release), на сервере отчетов создать 2 папочки с Data Sources (опять же для debug и release версий) и связать их с соотв. конфигурациями. Далее убираете галочки "overwrite data sources" при деплое (в настройках конфигураций). Ну и собственно все.
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38447228
Andrews25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Remind,

Не знаю, как у ТС, но у меня на тех серверах, куда ставится, никакого BIDSа нет - это все у клиентов, далеко-далеко.
Project-ов - 11 штук и там лежат отчеты разрабатываемой версии, а ставятся отчеты стабильной версии.
Кроме того, ставится несколько десятков linked report - в директории, отличные от оригинальных, и с измененными параметрами.
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38447256
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrews25,

Вы хотите сказать, что Вы (разработчик отчетов) не можете задеплоить отчет на рабочий сервер? У вас туда нет доступа или что?
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38447325
Andrews25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Remind,

Пользователи отчетов - сторонние организации, и потом, deployment с помощью bids не решает всех проблем, даже если bids наличествует
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38448282
Roul_Duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrews25,
вот, именно такая ситуация и у нас. Заказчик - сторонее лицо у которого студии нет.
У себя то я могу делать всё что угодно. И передаю заказчику, отчёт в виде RDL файла, который он подгружает самостоятельно на свою web-морду, и делает ALTER FUNCTION с данными, но отчётов штук 10, и это совсем не спортивно!
Идея такая, отдавать заказчику батничек, грубо говоря, в котором sql-скриптами происходит обновление отчётов.
Обновление по сути это - изменение поля CONTENT в котором находится сам RDL файл. НО этого мало( апдейта поля контент),
так как есть связующие таблицы типа Segment, ChunkSegment и прочее.
Я попробовал обновить поле content и влил туда бинарник с добвленным новым столбцом. Запустил отчёт, столбца там не увидел!
Вероятно нужно почистить кэш, вот я и спрашиваю, сталкивался кто-то с таким?? Сторонние вещи типа RS Scripter просьба не предлагать, хочется самостоятельно разобарться что к чему ;)

Ниже прикреплю попытку Удалить старый отчёт и создать новый(изменнёный). Результат такой - отчёт появляется, но не запускается, не сходится контрольная сумма MAGIC NUMBER.
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38448298
Roul_Duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roul_Duke,
--step1
declare
@Mach nvarchar(512),
@dat datetime,
@gui uniqueidentifier

select @Mach = cast(SERVERPROPERTY ('MachineName') as nvarchar(512));
select @dat= getdate();
select @gui = NEWID();

-- Удаляем существующий отчёт
exec DeleteObject @Path=N'/test222',@AuthType=1,@Prefix=N'/test222/%'

-- создаем запись в таблице SnapShot
exec InsertUnreferencedSnapshot @CreatedDate=@dat,@SnapshotDataID=@gui,@IsPermanentSnapshot=1,@ProcessingFlags=1,@SnapshotTimeoutMinutes=1440,@Machine=@Mach;



-- STEP 2
-- создаём запись в таблице SegmentedChunk связанную с таблицей SnapShot
declare @p9 uniqueidentifier
set @p9= newid()
exec CreateSegmentedChunk @SnapshotId=@gui,@IsPermanent=1,@ChunkName=N'CompiledDefinition',@ChunkFlags=1,@ChunkType=9,@Version=2,@MimeType=default,@Machine=@Mach,@ChunkId=@p9 output
select @p9

-- STEP 3
declare @p8 uniqueidentifier
set @p8=newid()
exec CreateChunkSegment @SnapshotId=@gui,@IsPermanent=1,@ChunkId=@p9,@StartByte=0,@Content=0xEFBBBF3...(большой бинарник),@LogicalByteCount=15593,@Length=7812,@SegmentId=@p8 output
select @p8


--Step4
-- собственно создаём сам отчёт, в таблице Catalog
declare @p10 uniqueidentifier
set @p10=newid()
exec CreateObject @ItemID=@p10, @Name=N'test222',@Path=N'/test222',@ParentID='9DD356CE-1C3E-40CD-A976-510FC40A68BB',@Type=2,@Content=0xEFBBBF3...(тот же бинарник),
@Intermediate=@gui ,@Property=N'<Properties>
<Language>en-US</Language>
<HasUserProfileQueryDependencies>False</HasUserProfileQueryDependencies>
<HasUserProfileReportDependencies>False</HasUserProfileReportDependencies>
<PageHeight>279.4</PageHeight>
<PageWidth>215.9</PageWidth>
<TopMargin>25.4</TopMargin>
<BottomMargin>25.4</BottomMargin>
<LeftMargin>25.4</LeftMargin>
<RightMargin>25.4</RightMargin>
</Properties>',@Parameter=N'<Parameters>
<UserProfileState>0</UserProfileState>
<Parameter>
<Name>p</Name>
<Type>String</Type>
<Nullable>False</Nullable>
<AllowBlank>False</AllowBlank>
<MultiValue>False</MultiValue>
<UsedInQuery>False</UsedInQuery>
<State>MissingValidValue</State>
<Prompt>p</Prompt>
<DynamicPrompt>False</DynamicPrompt>
<PromptUser>True</PromptUser>
</Parameter>
</Parameters>',@Hidden=0,@CreatedBySid=0x010500000000000515000000C714BB82AA08DBA19BEF51AC57040000,@CreatedByName=N'Administrator',@AuthType=1,@CreationDate=@dat,@ModificationDate=@dat,@SubType=default

-- Создаём Датасоурс и соединяем с нашим отчётом
declare @p11 uniqueidentifier
set @p11=newid()
exec AddDataSource @AuthType=1,@DSID=@p11,@ItemID=@p10,@Name=N'DataSource1',@LinkID='F914E719-4A80-44E7-AE7D-0F7457A83216',@LinkPath=N'/Data Sources/MyDataSource',@CredentialRetrieval=1,@Flags=11,@OriginalConnectStringExpressionBased=0,@Version=3

Всё это встроенные функции Reporting что хранятся в ReportServer, выудил я их, само собой Profiler-ом.

По сути меняется только поле Content зачем так много телодвижений со сторонними таблицами? ((
...
Рейтинг: 0 / 0
Reporting Services. Перенос отчётов, обновление данных.
    #38448522
Andrews25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roul_Duke,

Я бы не стала делать deployment с помощью SQL скрипта. Есть другие, более "документированные" способы

При написании собственного deployment'а я пользовалась вот этими ссылочками

http://www.codeproject.com/Articles/14394/Programmatically-Deploying-a-SQL-Reporting-Service

http://www.codeproject.com/Articles/43133/Deploying-Reports-in-Reporting-Services-Programmat
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Reporting Services. Перенос отчётов, обновление данных.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]