API für das Business Intelligence Modul
Produktlinie
Standard
|Expert
Betriebsart
CLOUD ABO
|ON-PREMISES
Module
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
Ab Vertec 6.4.0.14 gibt es ein API (Application Programming Interface) zur Abfrage von BI Daten aus externen Applikationen. Der Aufruf erfolgt über <ServerURL>/api/bi
.
In der Konfigurationsdatei Vertec.ini gibt es dafür den Parameter BI API :
[CloudServer] BI API=True
Standard ist True
. Das heisst, dass das BI API auch läuft, wenn der Parameter nicht angegeben ist.
Das BI API kann nur verwendet werden, wenn das Business Intelligence Modul lizenziert ist.
Die BI Berechtigungen werden angewendet.
Hier finden Sie eine ausführliche BI API - Beispielanwendung mit Postman/Excel .
Die Authentisierung an das BI API erfolgt via API Token
. Dieses muss als Bearer
Token in einem Authorization
Header mitgegeben werden:
import requests url = 'http://localhost:8081/api/bi/measures' api_token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.MGVhZmUzMzYtNmVhMi00MDdhLTgxNjQtZDYxZmI0NzU2MWZi._r16YlvWmZCMJ3qdDX3bK5_DJHwcczTYaWoKUYUNZuk' headers = {'Authorization': 'Bearer %s' % api_token} r = requests.get(url, headers=headers) measures = r.text
Hinweis : In Vertec Versionen vor 6.6 erfolgte die Authentisierung via HTTP Basic Auth mit Username und Passwort. Das entsprechende Handling finden Sie im Artikel zuunterst .
Unter /api/bi
stehen folgende GET-Endpoints zur Verfügung:
Die BI-Daten
werden mittels Endpoint /getdata
abgefragt. Er nimmt folgende Parameter via Query-String entgegen:
measures |
Obligatorisch. Kommaseparierte Liste der internen Kennzahlnamen (z.B. |
dimension |
Obligatorisch, case-insensitive. Liste der Dimensionen, nach denen das Ergebnis gruppiert ist (z.B. Als Pseudo-Dimension kann auch Sind für die Dimension verschiedene Rollen vorhanden, kann der Zugriff über ein Suffix [Index 0-4] erfolgen.
Beispiel bei Abfrage der Kennzahl FeesExt (Honorar extern): dimension0 = Projekt dimension1 = Projektbearbeiter_1 dimension2 = Projektbearbeiter_2 dimension3 = ProjektPhase dimension4 = Taetigkeit dimension5 = Month Werden mehrere Kennzahlen mit unterschiedlichem "Dimensionsaufbau" angefordert und die angeforderten Dimensionen können nicht über alle Kennzahlen geliefert werden, erscheint eine entsprechende Fehlermeldung. In einem solchen Szenario müssen die Kennzahlen mit gleicher Dimensionstruktur in einer Query gebündelt und mehrere dieser Queries abgesetzt werden, um alle Daten zu extrahieren. |
_variable und OCL Expression |
Optional. Ab Vertec 6.5.0.11 können zu jedem Dimensions-Parameter (dimension0=Projekt, dimension1=Projektbearbeiter etc.) Alias-Parameter mit einer OCL Expression als Wert angeben werden, z.B. Dies bewirkt, dass in der Antwort ein neues Feld Pro Dimension können beliebig viele Alias-Parameter angegeben werden. Entspricht der verwendete Parameter einem Namen, der bereits verwendet wird (als Measurenamen, Klassennamen bzw. deren Übersetzungen oder Alias einer anderen Dimension), wird ein Fehler gemeldet. |
startDate | Optional. Startdatum im ISO 8601 Format (2020-01-01) |
endDate | Optional. Enddatum im ISO 8601 Format (2020-12-31) |
selectExpression |
Optional. OCL-Expression für die Selektion . |
useDescriptions |
Optional, True oder False. Standard: False. Bestimmt, ob die Spaltenbezeichnungen im Klartext und übersetzt geliefert werden oder als intern technische Bezeichnungen, die sprachunabhängig sind. |
f |
Optional. Bestimmt, in welchem Format das Resultat ausgegeben wird:
Der Parameter kann statt als Query-String auch als Accept Header angegeben werden. Ist beides vorhanden, wird der Query-String verwendet. |
Der Endpoint liefert Ergebnisse in folgendem Format:
Header (Spalten-Namen) |
Name der angefragten Kennzahl (Interner Name). Falls der Parameter |
Datenzeile |
|
api/bi/getdata?measures=fte&dimension0=Projektbearbeiter&useDescriptions=true&dimension1=month&startDate=2023-01-01&endDate=2023-03-31
Rückgabe:
"Bearbeiter","Bearbeiter_Id","Monat","Vollzeitstellen" "Christoph Keller",676,"2023-01-01",0.8 "Christoph Keller",676,"2023-02-01",0.8 "Christoph Keller",676,"2023-03-01",0.8 "Judith Feller",682,"2023-01-01",1 "Judith Feller",682,"2023-02-01",1 ...
Der GET-Endpoint /measures
gibt alle zur Verfügung stehenden Kennzahlen zurück.
Es kann der optionale Parameter f
angegeben werden (siehe oben).
Die Rückgabe enthält folgende Felder:
Die Rückgabewerte erscheinen übersetzt in der Sprache, die der User in der Web App eingestellt hat.
Mit Vertec Version 6.6 wurden API Tokens für die Erhöhung der Anmeldesicherheit von Web API Zugriffen eingeführt. Die HTTP Basic Authentication mit Username und Passwort wird daher ab Vertec Version 6.7 nicht mehr unterstützt .
XML Session Timeout = 5
angepasst werden (das BI API und der XML Server
teilen sich die Session Timeout Einstellung).Wenn sowohl API Token als auch Username/Password in einem Request angegeben sind, wird nur das API Token berücksichtigt. Ist es ungültig, wird nicht automatisch ein Login-Versuch mit Username/Password vorgenommen.