Расписание отчетов SSRS 2016 — триггер T-SQL

У меня настроено несколько подписок SSRS, которые запускаются по запросу через (это просто запускает ранее существовавшее расписание)

EXEC msdb.dbo.sp_start_job = '0B5B5AB1-F475-4478-A3DA-3D602C4FDA4C'

В идеале я хотел бы иметь одну подписку SSRS, которую я мог бы передавать несколько раз с разными значениями параметров через хранимую процедуру, в настоящее время значения устанавливаются в самой подписке.

Например, у меня есть отчет с параметром @Client и 3 клиентами, 123, 124 и 125.

Поэтому я запускаю хранимую процедуру, которая будет выполнять подписку на SSRS и передавать указанный параметр. т.е. - 123. Пример ниже-

EXEC msdb.dbo.sp_start_job = '0B5B5AB1-F475-4478-A3DA-3D602C4FDA4C' @Client = 123

однако я не могу найти метод, который будет работать


person XDSA5286    schedule 02.06.2017    source источник


Ответы (1)


Возможно, я не совсем понял вашу проблему, поэтому заранее извиняюсь, если заберу вас в кроличью нору. Было сказано, что..

Учитывая вашу ситуацию, я бы настроил свои отчеты и их подписки именно так.

Я бы поместил параметр @Client в отчет и получил его значения из таблицы, назовем ее Client_Table, которая содержит один атрибут ClientCode, который будет определять, какие данные выбраны в отчете.

Затем я создал бы хранимую процедуру, внутри которой будет вложено EXEC msdb.dbo.sp_start_job = '0B5B5AB1-F475-4478-A3DA-3D602C4FDA4C', но я бы обрезал таблицу, содержащую значения @Client, только для клиента, для которого вы хотите выполнить это конкретное выполнение отчета. Что-то вроде этого..

create proc ProcNameHere @ClientID int

as

truncate table Client_table --Truncate values from previous run

Insert Client_Table 
Select @ClientID --add ClientID for this run

EXEC msdb.dbo.sp_start_job = '0B5B5AB1-F475-4478-A3DA-3D602C4FDA4C' -- run the report that takes clientid from Client_ID table 

Дайте мне знать, если это то, что вы имели в виду.

Таким образом, вы можете использовать EXEC ProcNameHere '123' для запуска отчета для клиента 123, так как это будет единственная запись в таблице, которая определяет выбор клиента в отчете.

person Herman    schedule 02.06.2017
comment
Да, вы меня поняли, на выходных меня осенило, и я придумал нечто очень похожее! Создание таблицы параметров по умолчанию, а затем изменение значения для каждого в курсоре плоской таблицы, чтобы при каждом запуске подписки параметр по умолчанию менялся. - person XDSA5286; 05.06.2017