OCL Operatoren für die Abfrage von BI Daten

Zugriff auf Vertec Business Intelligence (BI) Daten via OCL

Betriebsart

Cloud Abo

|

ON-PREMISES

Module

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erstellt: 02.05.2025
Aktualisiert: 02.05.2025 | Verfügbar ab Vertec 6.8

In Vertec Listen kann ab Vertec 6.8 via OCL auf die BI Daten zugegriffen werden.

Zugriff auf Kennzahlen

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 DateTime.null übergeben werden.

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.

Zugriff auf Objekte, die BI Daten haben

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 DateTime.null übergeben werden.

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.

Beispiel

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, '')

Netherlands

United Kingdom