Zugriff auf Vertec Business Intelligence (BI) Daten via OCL
Betriebsart
Cloud Abo
|ON-PREMISES
Module
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
In Vertec Listen kann ab Vertec 6.8 via OCL auf die BI Daten zugegriffen werden.
Für den Zugriff auf einzelne BI Kennzahlen gibt es den Operator
bigetdata(measurename, from, to, currency)
aufrufbar auf einzelnen Objekten. Die Expression gibt die Summe aller Werte dieser Kennzahl für das aufrufende Objekt im angegebenen Zeitraum zurück.
measurename |
Interner Name der gewünschten Kennzahl. Gibt es keine Kennzahl dieses Namens, wird ein Fehler ausgegeben. |
from, to |
Start- bzw. Enddatum des abgefragten Werts. Sollen alle Werte abgefragt werden, kann |
currency |
Optional. Währungskürzel der Währung, in der die Daten ausgegeben werden sollen. Wird nichts oder ein Leerzeichen übergeben, wird die Leitwährung verwendet. |
Die OCL Expression kann an jeder Stelle verwendet werden, nicht nur in Listeneinstellungen, z.B. direkt auf einem Projekt:
argobject.evalocl("bigetdata('measurename', encodedate(2024,1,1), encodedate(2024,12,31), '')")
Sie kann auch auf Listen von Objekten angewendet werden, gibt dann aber eine Liste von Zahlen zurück. Diese können mit ->sum
summiert werden:
project.evalocl("phasen->bigetdata('measurename', DateTime.null, DateTime.null, '')")->sum
Als Resultatdimension wird immer die Klasse des aufrufenden Objekts verwendet.
Bei Klassen, die in der evaluierten Kennzahl in mehr als einer Dimension vorkommen (mit unterschiedlichen Rollen), wird immer das erste Vorkommen / die erste Rolle verwendet.
Für komplexere Anwendungsfälle (mehrdimensional, Projektionen) kann die Python Funktion vtcapp.bigetdata()
verwendet werden, siehe Python Funktion für die Abfrage von BI Daten.
Um eine Liste von Objekten zu erhalten, die BI Daten in einem bestimmten Zeitraum haben, gibt es den Operator
bigetdimensions(measure, from, to)
ausführbar auf einer OCL Klasse.
Das Ergebnis ist eine Liste von Objekten dieser Klasse, die BI Daten für die übergebene Kennzahl in dem übergebenen Zeitraum haben.
measurename |
Interner Name der gewünschten Kennzahl. Gibt es keine Kennzahl dieses Namens, wird ein Fehler ausgegeben. |
from, to |
Start- bzw. Enddatum des abgefragten Zeitraums. Sollen der gesamte Zeitraum abgefragt werden, kann |
Diese Expression beispielsweise liefert eine Liste von Projekten, die Umsatz im ersten Quartal 2025 haben:
Project.bigetdimensions('TurnoverServices', encodedate(2025,1,1), encodedate(2025,3,31))
Damit können sehr performant nur die Objekte angezeigt werden, die bestimmte Werte haben.
Als Beispiel sollen in einer Liste alle Projekte angezeigt werden, die in einem bestimmten Zeitraum Umsatz generiert haben.
Der dafür verwendete Expression-Ordner wird entsprechend gefiltert:
Projekt->bigetdimensions('TurnoverServices', varDatumVon, varDatumBis)
Die Variablen varDatumVon
und varDatumBis
stehen durch die Feldnamen (Datum von, Datum bis) zur Verfügung.
Die Spaltenexpression für den Umsatz in der Liste lautet:
self->bigetdata('TurnoverServices', varDatumVon, varDatumBis, '')