Report Server
Literatur:
Die on-premise Lösung.
Einschränkungen und Unterschied zu Service
Wichtig: Es gibt eine spezielle PBI Desktop Version für den Report Server. Die Version muss zu der Version des RS passen, ansonsten kann der Bericht nicht veröffentlicht werden.
Zugriffsrechte und Rolen:
Role definitions – predefined roles – SQL Server Reporting Services (SSRS) | Microsoft Docs

Kurze Beschreibung der REST API
Reporting Services Tools: https://github.com/Microsoft/ReportingServicesTools
pbirs | 2.0 | microsoft-rs | SwaggerHub PowerShell Commands for SSRS (mssqltips.com)
REST API
Listet alle Reports: http://xeon/Reports/api/v2.0/PowerBIReports
new commands for SSRS API: in Powershell installieren Install-Module -Name ReportingServicesTools
Alle Module: Get-Command -Module ReportingServicesTools
neuer Ordner: New-RsFolder -ReportServerUri http://xeon/reports -Path / -Name Folder2 -Verbose
refresh:
# Declare URI
$reportServerUri = 'http://xeon/reports'
Start-RsRestCacheRefreshPlan -RSReport "/AdventureWorks" -ReportPortalUri $reportServerUri
Die Warnung „No XSRF Token detected! This might be due to XSRF token disabled“ kann ignoriert werden, da der XSRF Token nicht mehr verwendet wird.
Hier der Weg über einen Trigger im SQL Server:
Aufbau entsprechend https://towardsdatascience.com/game-changer-in-pbirs-setting-data-refresh-in-trigger-mode-62e594700b60
Beschreibung: Der PowerBi Bericht TriggerReport verwendet die Tabelle TriggerRefreshTest als Datenquelle.
Ein insert in die Tabelle „TriggerRefreshTest“ löst den Trigger aus, der dann in dem Bericht „TriggerReport“ einen EventType=’DataModelRefresh‘ startet.
Ablauf wurde auf einem Demosystem erfolgreich getestet.
Script für den Trigger:
-- ================================================
-- Template generated from Template Explorer using:
-- Create Trigger (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- See additional Create Trigger templates for more
-- examples of different Trigger statements.
--
-- This block of comments will not be included in
-- the definition of the function.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID
(
N'trigger_data_refresh'
) is not null
DROP TRIGGER trigger_data_refresh;
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE TRIGGER trigger_data_refresh
ON [Rechnungen] --Replace with your table name here
AFTER INSERT
AS
SET NOCOUNT ON;
DECLARE @REPORT_NAME NVARCHAR
(
50
),
@REPORT_ID VARCHAR
(
100
),
@SUBSCRIPTION_ID VARCHAR
(
100
)
SET @REPORT_NAME = 'TriggerTest' --Replace with your PBI report name.
SET @REPORT_ID =
(
SELECT TOP 1 [ItemID]
FROM [ReportServer].[dbo].[Catalog]
WHERE [Name] = @REPORT_NAME
)
SET @SUBSCRIPTION_ID =
(
SELECT TOP 1 SubscriptionID
FROM [ReportServer].[dbo].[ReportSchedule]
WHERE [ReportID] = @REPORT_ID
)
BEGIN
WAITFOR DELAY '0:0:3'
exec [ReportServer].dbo.AddEvent
@EventType='DataModelRefresh',
@EventData=@SUBSCRIPTION_ID
END
GO