Reports Exporter

Übertragen der Berichte aus dem Berichtsbuch in BI Point

Um Berichte aus dem Berichtsbuch in BI Point zu übertragen, wird der Berichts-Migrator verwendet. Die Anwendung ist unter dem Namen Reports Exporter im Ordner bin\rbexporter verfügbar:

Für das Funktionieren der Anwendung ist die Verbindung zur META-Datenbank erforderlich. Hierfür ist die Schaltfläche Connect to META zu betätigen. Im neuen Fenster soll der Servername eingegeben und die META-Datenbank aus der Dropdownliste ausgewählt werden. Standardmäßig vorgegeben ist die Windows-Authentifizierung, bei der das Konto des aktuell angemeldeten Benutzers verwendet wird. Nach Auswahl von ‘QL Server Authentication sollen Anmeldeinformationen des SQL-Benutzers mit Zugriffsrechten auf die bestimmte Datenbank angegeben werden.

Nach Herstellung der Verbindung zur META-Datenbank werden Berichte in der Anwendung als eine Baumstruktur angezeigt, genauso wie im Berichtsbuch. Hier sollen die in die Datei zu exportierenden Berichte ausgewählt werden. Anschließend ist die Schaltfläche Export zu betätigen. Darauf wird ein Standard-Fenster zur Eingabe des Speicherorts der Datei angezeigt.

Uwaga
OLAP-, SQL- und Tabellenberichte können exportiert werden.
Uwaga
Kein Export von MDX-Kennzahlen, zusätzlichen Kennzahlen und SQL-Funktionen möglich.

Nach Auswahl des Speicherorts wird das Fenster zur Eingabe des Passworts zum Schutz der Datei angezeigt. Das Passwort wird beim Import der Berichte in BI Point erforderlich. Nach Eingabe des Passworts und Drücken der Schaltfläche Export werden die Berichtsdefinitionen in einer Datei mit der Erweiterung .rbd gespeichert.

Um Berichte in BI Point importieren zu können, soll sich der Benutzer in der Anwendung anmelden und im Registerreiter Administrationsbereich die Option Import aus Berichtsbuch auswählen.

In diesem Fenster soll die angelegte .RBD-Datei in den Pfeil-Bereich gezogen oder ein Speicherort für die Datei ausgewählt werden.

Nach dem Laden der Datei werden der Dateiname und die Schaltfläche Importieren angezeigt. Die Schaltfläche soll betätigt werden, um zur Auswahl des Zielordners im BI Point-Repository zu wechseln und den Import zu beenden.

Soll eine ungültige .RBD-Datei ausgewählt werden, so kann der Benutzer zum vorigen Bildschirm über das Symbol X zurückkehren.

In jedem der drei Repository-Bereiche – Verbindungen, Modelle und Berichte – wird der Ordner Aus Berichtsbuch importiert mit entsprechenden Objekten angelegt. Je nachdem, wie viele Datenquellen die exportierten Berichte verwendet haben, werden so viele Verbindungen und Modelle erstellt.

Uwaga
Nach Abschluss des Importvorgangs sollen Anmeldeinformationen in jeder erstellten Verbindung ergänzt werden.

Es wird empfohlen, die Parameter in den erstellten Datenmodellen auf Korrektheit zu prüfen (Registerkarte Abfrage) sowie Kennzahlen/Dimensionen zuzuordnen (Registerkarte Kopfzeilen).

Berichte mit zusätzlicher Kennzahl oder MDX-Kennzahl

Die Anwendung Reports Exporter exportiert keine zusätzlichen Kennzahlen oder MDX-Kennzahlen, weshalb solche Kennzahlen manuell in die BI Point-Anwendung übertragen werden müssen.

Das folgende Skript, ausgeführt auf der REPO-Datenbank, zeigt eine Liste der Berichte an, denen eine zusätzliche Kennzahl hinzugefügt wurde.

SELECT [RDA_ReportId] as "ID Raportu" ,[LIN_Name] as "Nazwa Raportu" ,
[LIN_FolderId] as "ID Folderu" ,[FOL_Name] as "Nazwa folderu" ,
[RDA_DefinitionType] as "Typ definicji raportu" ,
[RDA_TextDefinition]as "Definicja raportu" ,
[LIN_CreatedOn] "Data utworzenia raportu" ,
[LIN_ModifiedOn] "Data ostatniej modyfikacji raportu" FROM [RB].
[ReportsData] RD join [RB].[Reports] R on RD.RDA_ReportId=R.REP_Id join [RB].
[Links] L on L.LIN_ReportId=RD.RDA_ReportId join [RB].[Folders] F 
on L.LIN_FolderId=F.FOL_Id where RDA_TextDefinition like '%whatifMeasures%' 
AND RDA_TextDefinition like '%data fieldName="[[]Measures].[[]%-%-%-%-%]%'

Um Berichte mit zusätzlichen MDX-Kennzahlen zu finden, ändern Sie die Bedingung von RDA_TextDefinition like „%whatifMeasures%“ auf RDA_TextDefinition like ‚%mdxQuery=%‘.

Die letzte Bedingung „RDA_TextDefinition like ‚%data fieldName=“[[]Measures].[[]%-%-%-%-%]%’“ bedeutet, dass die Kennzahl im Bericht verwendet wird (sie ist in den Arbeitsbereich gezogen worden). Diese Bedingung kann auch zum Skript Nummer 2 hinzugefügt werden.

Datum der letzten Berichtsöffnung

Nach Ausführung des Skripts Nummer 1 kann überprüft werden, wann Berichte mit zusätzlichen Kennzahlen oder MDX zuletzt geöffnet wurden.

Dazu ist das folgende Skript ebenfalls im Kontext der REPO-Datenbank auszuführen.

SELECT
[LAC_Id] as "ID Akcji"
,[LAC_ActionName] as "Akcja"
,[LAC_ObjectId] as "ID Raportu"
,[LIN_Name] as "Nazwa Raportu"
,[LAC_SessionId] as "ID Sesji"
,[SES_UserLogin] as "Nazwa użytkownika"
,[LAC_DateTime] as "Data"
FROM [NAZWA_BAZY_LOG].[dbo].[LogActions] LA
join [NAZWA_BAZY_LOG].[dbo].[Sessions] S on LA.LAC_SessionId=S.SES_ID
join [NAZWA_BAZY_REPO].[rb].[Links] L on LAC_ObjectId=L.LIN_ReportId
join [NAZWA_BAZY_REPO].[rb].[ReportsData] RD on L.LIN_ReportId=RD.RDA_ReportId
where LAC_ActionName like 'Open Report' and RDA_TextDefinition like '%whatifMeasures%'
and [LAC_Id] in
(select max(lac_id)
from [NAZWA_BAZY_LOG].[dbo].[LogActions] la
join [NAZWA_BAZY_LOG].[dbo].[Sessions] S on
LA.LAC_SessionId=S.SES_ID
join [NAZWA_BAZY_REPO].[rb].[Links] L on
LAC_ObjectId=L.LIN_ReportId
join [NAZWA_BAZY_REPO].[rb].[ReportsData] RD on
L.LIN_ReportId=RD.RDA_ReportId
where [LAC_ActionName] like'Open Report' and
RDA_TextDefinition like '%whatifMeasures%'
group by [LAC_ObjectId] )

In diesem Skript kann auch ausgewählt werden, ob Berichte mit zusätzlichen Kennzahlen oder mit MDX-Kennzahlen gesucht werden. Für die Suche nach zusätzlichen Kennzahlen dient die Bedingung RDA_TextDefinition like „%whatifMeasures%“ (die bereits im obigen Skript hinzugefügt ist), und für MDX-Kennzahlen RDA_TextDefinition like ‚%mdxQuery=%‘.

In der Bedingung LAC_ActionName like ‚Open Report‘ kann auch ‚UpdateReport‘ eingegeben werden, um analog dazu die Aktualisierungsdaten der Berichte zu suchen.

Berichte, die dasselbe Modell verwenden

Nach dem Exportieren von Berichten aus KR und deren Import in BI Point können Duplikate von Datenmodellen entstehen. Wenn zwei SQL-Berichte mit derselben Abfrage exportiert werden, werden in BI Point zwei identische Datenmodelle für jeden Bericht hinzugefügt. Die folgenden Skripte helfen dabei, Berichte zu finden, deren Modelle dieselbe Abfrage verwenden. Anschließend können diese Berichte auf ein einziges Modell umgestellt und die anderen gelöscht werden.

Uwaga
Skripte funktionieren nur für SQL-Berichte, die mit dem KR-Exporter übertragen wurden.
Die Skripte sind im Kontext der BI Point-Datenbank auszuführen, und vor allen Änderungen ist ein Backup der Datenbank zu erstellen!

Das erste Skript zeigt eine Liste der Berichte, die verwendeten Modelle und die ID des Modells, das dieselbe Abfrage wie das Berichtsmodell aufweist. Falls mehrere identische Modelle vorhanden sind, wird die niedrigste ID aus der Gruppe der identischen Modelle angezeigt:

SELECT r."OBJ_Id" "Id obiektu raportu", "REP_Id" "Id raportu", r."OBJ_Name"
"Nazwa raportu", m."OBJ_Id" "Id obiektu modelu", "DMO_Id" "Id modelu", 
m."OBJ_Name" "Nazwa modelu", smq.ModelId "Id tożsamego modelu" --, 
* FROM rb."RepositoryObjects" r LEFT JOIN rb."Reports" ON "REP_ObjId" = r.
"OBJ_Id" LEFT JOIN rb."DataModelsReports" ON "DMR_REPID" = "REP_Id" LEFT JOIN rb.
"DataModels" ON "DMR_DMID" = "DMO_Id" LEFT JOIN rb."RepositoryObjects" m ON "DMO_ObjId" 
= m."OBJ_Id" LEFT JOIN rb."DataSources" ON "DS_Id" = "DMO_DataSourceId" LEFT JOIN rb.
"DataSourceDefinitions" ON "DSD_Id" = "DS_DefinitionId" LEFT JOIN rb."DataModelsQueries" 
mq ON mq."DMQ_ModelId" = "DMO_Id" LEFT JOIN (SELECT MIN("DMQ_ModelId") ModelId, 
"DMQ_Query" FROM rb."DataModelsQueries" GROUP BY "DMQ_Query") smq ON mq."DMQ_Query" 
= smq."DMQ_Query" WHERE r."OBJ_Type" = 4 AND "DSD_Definition" is null AND 
m."OBJ_DestinationElementType" = 'DataSetMSSQL' ORDER BY 7,4;
Przykład

Abfrageergebnisse auf der Datenbank, wo 6 Berichte importiert wurden:

Für 6 Berichte in BI Point wurden 4 Modelle erstellt.

3 Berichte (874, 875, 876) haben bereits dasselbe Modell, da es sich in KR um Standardberichte handelte, die mit demselben Quellbericht verknüpft waren. Wenn identische Berichte in KR mit einem einzigen Quellbericht verknüpft werden, werden sie in BI Point standardmäßig mit einem einzigen Modell verknüpft. 5 Berichte haben trotz unterschiedlicher Modelle dieselbe Abfrage in diesen Modellen. Dies ist in der Spalte Id tożsamego modelu (ID des identischen Modells) sichtbar. Daher können die Berichte (871, 872, 874, 875, 876) unter ein einziges Modell gelegt werden. In diesem Fall ist als Id tożsamego modelu der Wert 170 angegeben, aber tatsächlich kann jedes Modell aus dieser Gruppe verwendet werden (Modelle 170, 171, 173). Der Wert 170 ist als gruppierender Wert eingegeben, der zeigt, welche Elemente eine gemeinsame Abfrage haben. Bericht 873 hat ein anderes Modell und eine andere Abfrage als die anderen Berichte. Daher kann dieser Bericht nicht umgestellt werden und muss in der aktuellen Form bleiben. Nach der Definition, welche Berichte ein gemeinsames Modell haben, ist ein Update durchzuführen, das sie auf ein gemeinsames Modell umstellt. Das Update im Kontext des oben beschriebenen Beispiels sieht wie folgt aus:

UPDATE rb."DataModelsReports" SET "DMR_DMID"
= 173 WHERE "DMR_REPID" IN (871,872)

Ab der Ausführung dieses Updates werden alle Beispielberichte dasselbe Modell verwenden. Der letzte Schritt, der nicht zwingend erforderlich ist, ist das Löschen ungenutzter Modelle. Diese können manuell aus der BI Point-Anwendung gelöscht werden. Dabei kann das folgende Skript helfen, das alle in keinem Bericht verwendeten Modelle auflistet (die Abfrage zeigt auch Modelle an, die in einem Dashboard verwendet werden, aber nicht in einem Bericht!).

SELECT m."OBJ_Id" "Id obiektu modelu", "DMO_Id" "Id modelu", m."OBJ_Name"
"Nazwa modelu" FROM rb."RepositoryObjects" m LEFT JOIN rb."DataModels" 
ON "DMO_ObjId" = m."OBJ_Id" LEFT JOIN rb."DataModelsReports" ON "DMR_DMID"
= "DMO_Id" WHERE "DMR_REPID" IS NULL

 

Czy ten artykuł był pomocny?