|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Доброе время суток! Подскажите пожалуйста такой момент. Есть тестовая среда и рабочая. Характеристики SQL серверов примерно идентичные. На тестовой создаём отчёты, тестируем и переносим на рабочую среду. В самом отчёте вызывается табличная функция с параметрами, которая и является основным пулом данных для отчёта. При переносе на боевую действовали так : копировали RDL файл, копировали script табличной функции. На боевой на web-морду, закачивали RDL файл, настраивали на нужный DataSource и всё. Хочется оптимизировать процесс и сделать набор скриптов, который обновит отчёт. RDL файл представляет собой XML структуру Хранится структура отчёта в поле CONTENT(varbinary) таблицы Catalog базы данных ReportServer. Скажите, мысль такая - сделать на боевой апдейт таблицы catalog, вставить в поле content данные с обновлённого отчёта на тестовом сервере. Какие ещё сопутствующие таблицы нужно обновить и какие поля?? И я так понял что нужно очистить кэш, т.к. репортинг будет брать данные из кэша и изменений в отчёте не увидим, поправте если не так. Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 21:55 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Roul_Duke, похоже, репортинг - страшная тема ;) инфы мало, опыта у разработчиков мало ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2013, 18:08 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Roul_Duke, наоборот, тема популярная и часто обсуждаемая в конференциях, даже в этой, а тем более в этой http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/threads есть утилита rs.exe есть утилита rsscripter (не всегда, к сожалению, применимая) есть возможности создания утилиты инсталляции отчетов на C есть даже примеры на www.codeproject.com ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2013, 19:53 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Честно говоря немного непонятна суть проблемы. В BIDS можно создать различные конфигурации (например, debug и release), на сервере отчетов создать 2 папочки с Data Sources (опять же для debug и release версий) и связать их с соотв. конфигурациями. Далее убираете галочки "overwrite data sources" при деплое (в настройках конфигураций). Ну и собственно все. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2013, 17:38 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Remind, Не знаю, как у ТС, но у меня на тех серверах, куда ставится, никакого BIDSа нет - это все у клиентов, далеко-далеко. Project-ов - 11 штук и там лежат отчеты разрабатываемой версии, а ставятся отчеты стабильной версии. Кроме того, ставится несколько десятков linked report - в директории, отличные от оригинальных, и с измененными параметрами. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2013, 17:54 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Andrews25, Вы хотите сказать, что Вы (разработчик отчетов) не можете задеплоить отчет на рабочий сервер? У вас туда нет доступа или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2013, 18:03 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Remind, Пользователи отчетов - сторонние организации, и потом, deployment с помощью bids не решает всех проблем, даже если bids наличествует ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2013, 18:37 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
Andrews25, вот, именно такая ситуация и у нас. Заказчик - сторонее лицо у которого студии нет. У себя то я могу делать всё что угодно. И передаю заказчику, отчёт в виде RDL файла, который он подгружает самостоятельно на свою web-морду, и делает ALTER FUNCTION с данными, но отчётов штук 10, и это совсем не спортивно! Идея такая, отдавать заказчику батничек, грубо говоря, в котором sql-скриптами происходит обновление отчётов. Обновление по сути это - изменение поля CONTENT в котором находится сам RDL файл. НО этого мало( апдейта поля контент), так как есть связующие таблицы типа Segment, ChunkSegment и прочее. Я попробовал обновить поле content и влил туда бинарник с добвленным новым столбцом. Запустил отчёт, столбца там не увидел! Вероятно нужно почистить кэш, вот я и спрашиваю, сталкивался кто-то с таким?? Сторонние вещи типа RS Scripter просьба не предлагать, хочется самостоятельно разобарться что к чему ;) Ниже прикреплю попытку Удалить старый отчёт и создать новый(изменнёный). Результат такой - отчёт появляется, но не запускается, не сходится контрольная сумма MAGIC NUMBER. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2013, 13:34 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
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 зачем так много телодвижений со сторонними таблицами? (( ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2013, 13:42 |
|
Reporting Services. Перенос отчётов, обновление данных.
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2013, 15:32 |
|
|
start [/forum/topic.php?fid=31&fpage=29&tid=1533896]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 167ms |
0 / 0 |