Definition von Attributberechnungen

Zur Berechnung einer Kennzahl oder Bildung einer Dimension wird entweder der Wert eines bereits existierenden Attributes verwendet oder der Algorithmus zur Berechnung des Attributes in der XML-Konfigurationsdatei angegeben (XML-Element calcattr). Der angegebene Attributname muss in der importierten Attributdefinition des PPM-Systems enthalten sein (Dateien AttributeTypes.xml und AttributeNames.xml). Durch die Attributdefinition sind Datentyp und Basiseinheit festgelegt. Die Berechnung eines Attributes wird immer in der Basiseinheit des Attributtyps durchgeführt. Auch das Ergebnis wird als Wert in der Basiseinheit gespeichert.

Attribute sind nur innerhalb einer Prozessinstanz gültig. Es ist nicht möglich, Attribute anderer Prozessinstanzen zu berechnen oder in die Berechnung mit einzubeziehen.

Die Berechnung eines Attributes kann von anderen Attributen abhängig gemacht werden, die ihrerseits ebenfalls berechnete Attribute sein können. Alle mit dem XML-Element depends angegebenen Attribute werden berechnet, bevor die Berechnung des aktuellen Attributes ausgeführt wird. Zyklische Abhängigkeiten werden während des Imports der Kennzahlenkonfiguration erkannt und mit einer Fehlermeldung quittiert.

Optional kann ein Standardwert angegeben werden (XML-Element defaultvalue), der dem Attributwert zugewiesen wird, falls die Berechnung nicht erfolgreich durchgeführt werden konnte. Der Standardwert muss immer mit einer Einheit angegeben werden, die für den Datentyp des Attributes zulässig ist. Nur auf diese Weise kann der Wert in der Basiseinheit korrekt bestimmt werden.

Wird eine Berechnungsvorschrift zur Berechnung angewendet (XML-Element calculation), wird immer der Standardwert verwendet, falls die Berechnung nicht erfolgreich durchgeführt werden konnte. Wird allerdings ein Algorithmus zur Berechnung verwendet (XML-Element calcattr),wird der Standardwert nur zusammen mit den folgenden Klassen verwendet:

Alle anderen Berechnungsklassen ignorieren den Standardwert.

Wenn ein Attribut nicht berechnet werden kann und kein Standardwert angegeben ist, wird das Attribut an der Prozessinstanz bzw. den Prozessinstanzobjekten nicht erzeugt und eine entsprechende Meldung ausgegeben.

Die XML-Struktur zur Definition einer Attributberechnung sieht folgendermaßen aus:

...

<calcattr name="..." type="..." objectname="..."

scale="..." delete="...">

<depends attrname="..." type="..."/>

<defaultvalue>"..."</defaultvalue>

entweder

<calculation> ... </calculation>
</calcattr>

...

oder

<calcclass name="..."/>

</calcattr>

...

XML-Tag

Beschreibung

name

Interner Name des zu berechnenden Attributes.
Das Attribut wird an allen durch type angegebenen Objekttypen der gerade bearbeiteten Prozessinstanz erzeugt. Ein bereits existierendes Attribut wird überschrieben.

type

Objekttyp, an den das Attribut geschrieben wird

PROCESS: Berechnetes Attribut wird an die Prozessinstanz geschrieben.
OT_FUNC: Berechnetes Attribut wird an alle Funktionen der Prozessinstanz geschrieben.
OT_ORG: Berechnetes Attribut wird an alle Organisationseinheiten der Prozessinstanz geschrieben.
OT_EVT: Berechnetes Attribut wird an alle Ereignisse der Prozessinstanz geschrieben.
RELATION: Berechnetes Attribut wird an die Beziehung, die mittels relname angegeben ist, in der Prozessinstanz geschrieben.

relname
(optional)

Nur bei type="RELATION" Angabe der Beziehung, auf die sich die Attributberechnung beziehen soll. Ist anstelle von dependsrel zu verwenden.

objectname
(optional)

Interner Name der Funktion (Objektattribut AT_OBJNAME_INTERN), an die das Attribut geschrieben wird. Diese Option darf nur für die Berechnung von Funktionsattributen verwendet werden. Mehrerer Objektnamen werden durch Komma getrennt angegeben, Platzhalter *, ? können im Objektnamen beliebige verwendet werden.

scale
(optional)

Das Ergebnis einer Berechnungsvorschrift wird in der angegebenen Skalierung an das Attribut geschrieben.
Der Skalierungswert hängt vom Datentyp des Attributs ab, das der Berechnung zugrunde liegt.
Ohne Angabe wird das Ergebnis in der Basiseinheit des Attributdatentyps ausgegeben.

delete

Mit yes wird ein früher berechneter Attributwert vor der erneuten Berechnung gelöscht (vorgeschrieben z. B. für die Definition kritischer Zeitattribute, die vom Frühwarnsystem verwendet werden, Kapitel Zeitdimensionen für das Frühwarnsystem). Standardwert: no

Wenn Sie eine Berechnungsvorschrift gezielt für eine oder mehrere bestimmte Funktionen angeben möchten, spezifizieren Sie die entsprechenden Funktionsnamen im XML-Attribut objectname.

Beispiel

Die Berechnungsvorschrift wird nur für die Funktionen, deren interne Namen den angegebenen Mustern entsprechen, ausgeführt.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE keyindicatorconfig SYSTEM

'KeyindicatorConfiguration.dtd'>

<keyindicatorconfig>

...

<calcattr name="AT_END_TIME" type="OT_FUNC"

objectname="FCT_AUFT??_*,

FCT_END_*_?,

*_AUFTRAG,FCT_AUFTR_START">

<calculation>

...

</calculation>

</calcattr>

...

</keyindicatorconfig>

Die Definition einer Berechnungsvorschrift wird durch Angabe folgender XML-Elemente vervollständigt:

XML-Element

Beschreibung

depends
(optional)

Name und Typ eines Attributs (PROCESS, OT_FUNC, OT_EVT, OT_ORG oder RELATION), das existieren muss, damit die Berechnung ausgeführt wird. Falls es sich bei dem angegebenen Attribut um ein zu berechnendes Attribut handelt, wird dieses zunächst berechnet. Im Attribut relname wird die Beziehung angegeben, von der eine Abhängigkeit besteht (nur bei type="RELATION").
Es können gleichzeitig mehrere Elemente depends angegeben werden.
Nicht zusammen mit dependsrel zu verwenden.

dependsrel
(optional)

Name der Beziehung, von der eine Abhängigkeit besteht (nur bei type="RELATION"). Anstelle von relname zu verwenden.
Nicht zusammen mit depends zu verwenden.

defaultvalue
(optional)

Vorgabewert des Attributes, falls das Attribut aus einem beliebigen Grund nicht berechnet werden kann.

calcclass
calculation

Eindeutige Angabe der Berechnungsvorschrift durch eines der beiden XML-Elemente.
Mit calcclass wird der Algorithmus durch Angabe eines vollständigen Java-Klassenpfades spezifiziert. Durch calculation wird eine Berechnungsformel direkt in XML-Notation angegeben.

calcparam
(optional)

Nur für calcclass. Übergabe beliebig vieler Parameter (calcparam) beim Aufruf einer Berechnungsklasse. Mit key wird der eindeutige, interne Namen des Parameters und mit value der entsprechende Wert des Parameters definiert.

Zur Berechnung eines Attributes durch das XML-Element calculation steht ein umfangreiches Regelwerk zur Definition von Berechnungsvorschriften zur Verfügung.

Beispiel

Das folgende Beispiel zeigt die XML-Definition der Berechnung der Bearbeitungszeit einer Prozessinstanz. Die Bearbeitungszeit ist als Differenz des frühesten Startzeitpunkts und spätesten Endzeitpunkts aller Funktionen einer Prozessinstanz definiert. Zur Speicherung des Kennzahlenwerts wird das Attribut AT_KI_PROCESSTIME (Typ: Zeitspanne) gewählt. Die Berechnung soll nur dann durchgeführt werden, wenn die beiden Attribute AT_START_TIME und AT_END_TIME an wenigstens einer Funktion der Prozessinstanz gepflegt sind. Dies muss nicht notwendigerweise dieselbe Funktion sein. Schlägt die Berechnung aus einem beliebigen Grund fehl, wird dem Ergebnisattribut der Vorgabewert 0 SECOND zugewiesen.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE keyindicatorconfig SYSTEM

'KeyindicatorConfiguration.dtd'>

<keyindicatorconfig>

...

<calcattr name="AT_KI_PROCESSTIME" type="PROCESS">

<depends attrname="AT_END_TIME" nodetype="OT_FUNC">

<depends attrname="AT_START_TIME" nodetype="OT_FUNC">

<defaultvalue>0 SECOND</defaultvalue>

<calculation>

<timespan>

<filteredattribute name="AT_END_TIME"

nodetype="OT_FUNC" filter="LATEST"/>

<filteredattribute name="AT_START_TIME"

nodetype="OT_FUNC" filter="EARLY"/>

</timespan>

</calculation>

</calcattr>

...

</keyindicatorconfig>

Ein berechnetes Attribut enthält immer den Ergebniswert und die Ergebniseinheit. Die Ergebniseinheit wird immer in der dem Datentyp des Ergebnisattributes entsprechenden Basiseinheit angegeben.