Konfiguration von Kontexten

Um Kontexte in BI Point zu aktivieren, müssen Sie die Einträge in der Datei config.json bearbeiten. Der Standardpfad ist: "C:\Program Files (x86)\Comarch\BI Point\instances\Instanzname\bipoint" Die folgenden Flags sind relevant:
  • IsReportContextEnable – aktiviert die Funktionalität für Kontextberichte
  • IsReportContextCheckEnabled – aktiviert die Zertifikatsprüfung
Damit die Erstellung von Kontexten möglich ist, müssen beide Flags auf den Wert true gesetzt werden:   Nachdem Sie die Änderungen vorgenommen haben, speichern Sie die Datei config.json. Abschließend starten Sie Comarch BI Point neu, damit die Änderungen wirksam werden.

Hinzufügen von Kontexten

Das Hinzufügen von Kontexten ist ausschließlich über die Datenbank möglich. Um einen neuen Kontext hinzuzufügen, müssen die folgenden Skripte in der PostgreSQL-Datenbank von BI Point ausgeführt werden:
INSERT INTO rb."Contexts" ("CTX_Name") VALUES ('Kontextname');
INSERT INTO rb."Parameters" ("PAR_Name") VALUES ('Parametername');
INSERT INTO rb."ContextsParameters" ("CTP_ContextId","CPT_ParameterId")
 VALUES (1,1);
INSERT INTO rb."ContextsMappings" ([CTM_ContextId],[CTM_ContextMapping],
[CTM_MappingName]) VALUES (1,'ExternerKontextname','Kontextname');
Nach Ausführung des obigen Codes wird NeuerKontext sichtbar sein. Die API wird den Namen ExternerKontextname verwenden. Optional können Übersetzungen für Kontexte hinzugefügt werden:
INSERT INTO rb."ContextTranslations" ("CTL_Id", "CTL_ContextId",
 "CTL_LocaleId", "CTL_Translation") VALUES (1, 1, 'de-DE', 'Vertrieb');

Definition von Kontexten in Comarch BI Point

Nachdem die Kontexte erfolgreich aus der Datei config.json gestartet (gemäß dem Artikel Kontexte starten) und der Kontext zur Datenbank hinzugefügt wurde (gemäß dem Artikel Hinzufügen von Kontexten), ist es notwendig, die Kontexte direkt am Repository-Objekt zu definieren. Um einen Kontext zu definieren, muss zunächst das entsprechende Objekt ausgewählt und anschließend die Schaltfläche Kontext hinzufügen angeklickt werden. Das Hinzufügen von Kontexten ist nicht möglich, wenn ein bestimmter Bericht, ein Dashboard oder eine Analyse auf einem Datenmodell basiert, das Parameter enthält. Nach der Auswahl erscheint ein Fenster mit den Abschnitten Kontext und Gefiltertes Attribut.
  • Kontext – wenn nur ein Kontext hinzugefügt wurde, bleibt das Feld ausgegraut und kann nicht bearbeitet werden. Wenn jedoch mehr als ein Kontext hinzugefügt wurde, erscheint eine Dropdown-Liste, die die Auswahl des entsprechenden Kontexts ermöglicht
  • Gefiltertes Attribut – dieser Parameter ermöglicht die Auswahl eines Attributs aus dem Datenmodell, auf dem das Objekt basiert, dem der erstellte Kontext zugewiesen wird
Es ist möglich, einem Objekt mehrere Kontexte hinzuzufügen, vorausgesetzt, in der Datenbank sind mehr als ein Kontext definiert.

Verwendung von Kontexten in Comarch BI Point

Verwendung von Kontexten

API-Methoden sollten direkt nach der BI Point-Instanz ausgeführt werden, z. B. http://localhost:55555/api/ReportContext/GetContextReports Liste der verfügbaren Methoden:
  • api/ReportContext/GetContextReports
Die Methode zeigt alle Berichte an, denen ein Kontext zugewiesen wurde. Der zurückgegebene Wert ist eine Liste von Objekten, die Folgendes enthält: Berichts-ID, Name und eine Liste von Kontexten. Die zurückgegebene Liste ist im JSON-Format.
1. Anfrage
Die Anfrage akzeptiert eine Liste von Kontexten und eine Liste von Benutzern. Beide Parameter sind optional. Wenn keine Parameter angegeben werden, wird eine Liste aller Kontextberichte zurückgegeben, die nicht nach Zugriff gefiltert ist. Das Hinzufügen einer Kontext-ID oder ihres Namens führt zur Rückgabe von Berichten, die diesen Kontexten zugewiesen sind. Das Hinzufügen einer Benutzer-ID oder ihres Logins filtert die zurückgegebene Liste und gibt nur die Berichte zurück, auf die der Benutzer Zugriff hat.
2. Antwort
Die Antwort der Methode ist eine Liste von Berichtsobjekten, die nach Benutzern gruppiert sind. Berichte, auf die der Benutzer keinen Zugriff hat, werden nicht zurückgegeben. Das Berichtsobjekt enthält Id, ReportName und eine Liste der ihm zugewiesenen Kontexte (Id, Name, Caption).
Die Methode generiert einen Link zu einem Bericht basierend auf einer Liste von Membern, der Berichts-ID und der Kontextnummer. Die minimale Anzahl der anzugebenden Parameter ist die Berichts-ID.
1. Anfrage
Die Anfrage akzeptiert die ID des zu öffnenden Berichts und eine Liste von Kontexten. Diese Liste enthält die Kontext-ID und eine Liste der zu filternden Elemente. Diese Elemente können die Felder Typ und Value haben, wobei 3 Typen unterstützt werden:
  • Eindeutiger Name
  • Anzeigename
  • Org-Id
Wenn BI Point ein Element nicht findet oder ein Kontext angegeben wird, der nicht mit dem Bericht verknüpft ist, wird der Bericht geöffnet, ohne nach den nicht gefundenen Elementen zu filtern.
2. Antwort
Die Antwort der Methode ist ein Link zum Bericht/Dashboard mit einer GUID, unter der alle für die Filterung erforderlichen Informationen gespeichert sind.

Beispiel für die Verwendung von Methoden

  • api/ReportContext/GetContextReports
1. Anfragen
  • Anfrage nach allen Kontextberichten:
    {"data":"{}"}
  • Anfrage nach Kontextberichten, die dem Kontext mit dem Namen „Produkt“ zugewiesen sind:
    {"data":"{\"Contexts\":[{\"Name\":\"Produkt\"}]}"}
  • Anfrage nach Kontextberichten, die dem Kontext mit der ID 20 zugewiesen sind:
    {"data":"{\"Contexts\":[{\"Id\":20}]}"}
  • Anfrage nach Kontextberichten, die dem Kontext mit dem Namen „Produkt“ oder dem Kontext mit der ID 20 zugewiesen sind:
    {"data":"{\"Contexts\":[{\"Id\":20},{\"Name\":\"Produkt\"}]}"}
  • Abfrage aller Kontextberichte, die für den Benutzer mit dem Login „ab“ verfügbar sind:
    {"data":"{\"Users\":[{\"Login\":\"ab\"}]}"}
  • Abfrage aller Kontextberichte, die für den Benutzer mit der ID 14 verfügbar sind:
    {"data":"{\"Users\":[{\"Id\":14}]}"}
  • Abfrage aller Kontextberichte, die für den Benutzer mit dem Login „ab“ und den Benutzer mit der ID 14 verfügbar sind. Die Berichte sind für jeden Benutzer separat gruppiert:
    {"data":"{\"Users\":[{\"Login\":\"ab\"},{\"Id\":14}]}"}
  • Abfrage von Kontextberichten, die dem Kontext mit der ID 20 zugewiesen und für Benutzer mit dem Login „ab“ und der ID 14 gruppiert sind:
    {"data":"{\"Users\":[{\"Login\":\"ab\"},{\"Id\":14}],\"Contexts\":[{\"Id\":20}]}"}
2. Antworten
Antworten sind im JSON-Format und enthalten die angeforderten Berichtsdaten, gruppiert nach Benutzern und mit Kontextinformationen.
1. Anfragen
  • Generierung eines Links zum Bericht 37530:
    {"data":"{\"Id\":37530}"}
  • Generierung eines Links zum Bericht 37530 und Filtern nach einem Element mit eindeutigem Namen (Typ 0) im Kontext mit der ID 20:
    {"data":"{\"Id\":37530,\"Contexts\":[{\"Id\":20,\"Members\":[{\"Type\":0,\"Value\":\"[Produkt].[Kod].&[100010013]\"}]}]}"}
  • Generierung eines Links zum Bericht 37530 und Filtern nach einem Element mit Anzeigenamen (Typ 1) im Kontext mit der ID 20:
    {"data":"{\"Id\":37530,\"Contexts\":[{\"Id\":20,\"Members\":[{\"Type\":1,\"Value\":\"KAR/0024/OP\"}]}]}"}
  • Generierung eines Links zum Bericht 37530 und Filtern nach einem Element mit OrgId (Typ 2) im Kontext mit der ID 20:
    {"data":"{\"Id\":37530,\"Contexts\":[{\"Id\":20,\"Members\":[{\"Type\":2,\"Value\":\"368:141\"}]}]}"}
  • Generierung eines Links zum Bericht 37530 und Filtern nach Elementen nach eindeutigem Namen, Anzeigenamen und OrgId im Kontext mit der ID 20:
    {"data":"{\"Id\":37530,\"Contexts\":[{\"Id\":20,\"Members\":[{\"Type\":0,\"Value\":\"[Produkt].[Kod].&[100010013]\"},{\"Type\":1,\"Value\":\"KAR/0024/OP\"},{\"Type\":2,\"Value\":\"368:141\"}]}]}"}
  • Generierung eines Links zum Bericht 37530 und Filtern nach Elementen nach Anzeigenamen im Kontext mit der ID 12 sowie nach eindeutigem Namen, Anzeigenamen und Org-Id im Kontext mit der ID 20:
    {"data":"{\"Id\":37530,\"Contexts\":[{\"Id\":12,\"Members\":[{\"Type\":1,\"Value\":\"00111 test test DE-123123 Bayern\"}]},{\"Id\":20,\"Members\":[{\"Type\":0,\"Value\":\"[Produkt].[Kod].&[100010013]\"},{\"Type\":1,\"Value\":\"KAR/0024/OP\"},{\"Type\":2,\"Value\":\"368:141\"}]}]}"}
2. Antworten
Die Antworten sind die generierten Links, die die notwendigen Informationen zur Filterung des Berichts enthalten.