• Keine Ergebnisse gefunden

7 Prozesstypisierung

7.1 Typisierungsregeln erstellen

7.1.3 Definition von Attributberechnungen

7.1.3.9 Beispiele Attributberechnungen

Beispiel 1: Wunschliefertermintreue

Die Kennzahl Wunschliefertermintreue vergleicht den tatsächlichen Liefertermin

(Endzeitpunkt der Funktion SAP.WAUS einer Prozessinstanz) mit einer aus dem Quellsystem eingelesenen Vorgabe. Liegt der tatsächliche Liefertermin vor dem Vorgabewert, ist der Kennzahlenwert 0. Der Wert 0 wird als termingetreue Lieferung interpretiert. Anderenfalls gibt der Kennzahlenwert die zeitliche Abweichung vom Vorgabewert an. Der Vorgabewert ist im Prozessinstanzattribut AT_CUSTDATE_WISH gespeichert. Für den Fall, dass die Funktion SAP.WAUS mehrfach in der Prozessinstanz vorkommt, wird der früheste Wert ermittelt.

146

... <!-Wunschliefertermintreue -->

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

<calculation>

<max>

</calculation>

</calcattr>

...

Die Kennzahl erhält als Wert das Maximum (max) einer Wertemenge (set). Die Wertemenge enthält die Elemente 0 (constant) und die zeitliche Differenz zwischen tatsächlichem Liefertermin und Wunschliefertermin (timespan). Da das XML-Element attribute eine Wertemenge bildet, muss mit geeigneten Operatoren zunächst ein Attributwert zur weiteren Berechnung bestimmt werden. Bei Ermittlung des Attributwertes der Funktion SAP.WAUS wird durch Verwendung des Operators min zusätzlich der früheste tatsächliche Liefertermin bestimmt. Die mit set erzeugte Wertemenge erhält 2 Elemente: {0, (Wunschtermin -

Liefertermin)}. Bei Ermittlung des Maximums der Wertemenge wird bei negativer Zeitspanne 0 zurückgegeben und bei positiver Zeitspanne die Abweichung des Endzeitpunkts der

Funktion SAP.AUS vom Prozessattribut AT_CUSTDATE_WISH in Sekunden (Basiseinheit des Datentyps timespan).

Da dieses neue Attribut ein Prozessinstanzattribut ist, wird es für jede Prozessinstanz genau einmal berechnet. Folgende Ergebnisse der Berechnung können auftreten:

Das neue Prozessinstanzattribut erhält die berechnete, positive Zeitspanne in der Einheit Sekunden. Ist die berechnete Zeitspanne negativ, erhält das neue Prozessinstanzattribut die Zeitspanne 0 Sekunden.

Das neue Prozessinstanzattribut wird nicht an die Prozessinstanz geschrieben, wenn die Berechnung aus einem oder mehreren der folgenden Gründe fehlschlägt und kein

Standardwert angegeben ist:

 Das Attribut AT_CUSTDATE_WISH existiert nicht an der Prozessinstanz.

 Es gibt keine Funktion SAP.WAUS an der Prozessinstanz.

147

 Das Attribut AT_END_TIME existiert nicht an der Funktion SAP.WAUS.

Beispiel 2

An jeder Funktion einer Prozessinstanz soll das Attribut AT_KI_COMPETENCE angeben, ob die Werte der Attribute AT_COMPETENCE und AT_CREDIT_AMOUNT einer Funktion übereinstimmen. Bei Übereinstimmung soll das Attribut den Wert 1 haben, anderenfalls den Wert 0.

<calcattr name="AT_KI_COMPETENCE" type="OT_FUNC">

<calculation>

<if>

<eq>

<min>

<attribute name="AT_COMPETENCE"

nodetype="OT_FUNC" objectname="this"/>

</min>

<max>

<attribute name="AT_CREDIT_AMOUNT"

nodetype="OT_FUNC" objectname="this"/>

</max>

</eq>

<then>

<constant>

<dataitem value="1">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

</then>

<else>

<constant>

<dataitem value="0">

<datatype name="DOUBLE"/>

</dataitem>

</constant>

</else>

</if>

</calculation>

</calcattr>

Die Angabe des Knotentyps OT_FUNC und das Fehlen eines Objektnamens führen dazu, dass das berechnete Attribut AT_KI_COMPETENCE an alle Funktionen der Prozessinstanz

geschrieben wird. Bei der Berechnung des Attributes bewirkt die Angabe des Objektnamens this, dass jede Funktion auf ihre eigenen Attribute zugreift. Die umklammernden Operatoren min und max liefern in diesem Fall den Wert des referenzierten Attributes, da durch den Objektnamen this eine Attributmenge mit nur einem Element entsteht.

148

Beispiel 3

Standardmäßig wird als Startzeit einer Prozessinstanz der früheste Startzeitpunkt einer Funktion der Prozessinstanz verwendet:

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

<calculation>

<min>

<attribute name="AT_START_TIME" nodetype="OT_FUNC"/>

</min>

</calculation>

</calcattr>

Falls nur die Startzeitpunkte bestimmter Funktionen verwendet werden sollen, müssen diese Funktionen auf ein bestimmtes Kriterium überprüft werden. Im folgenden Beispiel wird das Hilfsattribut AT_TEMP_TIME dazu genutzt, das Kriterium Auftragsart "Sofortauftrag"

(Funktionsattributwert AT_AUFTRAGSART) zu filtern. Der eigentliche Startzeitpunkt der Prozessinstanz wird anschließend aus den gefilterten Startzeitpunkten der Funktionen ermittelt.

<calcattr name="AT_TEMP_TIME" type="OT_FUNC">

<calculation>

<if>

<eq>

<filteredattribute name="AT_AUFTRAGSART" nodetype=

"OT_FUNC" objectname="this" filter="EARLY"/>

<filteredattribute name="AT_START_TIME" nodetype=

"OT_FUNC" objectname="this" filter="EARLY"/>

</then>

</if>

</calculation>

</calcattr>

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

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

<calculation>

<min>

<attribute name="AT_TEMP_TIME" nodetype="OT_FUNC"/>

</min>

</calculation>

</calcattr>

Beispiel 4

Im Attribut AT_KI_AUFTR_GRUPPE soll die Auftragsgruppe als Funktionsattribut gespeichert werden. Die Auftragsgruppe ergibt sich aus den beiden ersten Zeichen der

149

Auftragsnummer (AT_AUFTNR). Zur Auftragsnummer 40268755 gehört z. B. die Auftragsgruppe 40.

Der Operator subtext extrahiert aus der Zeichenfolge 40268755 des Funktionsattributs AT_AUFTNR die Zeichenfolge 40:

<calcattr name="AT_KI_AUFTR_GRUPPE" type="OT_FUNC">

<calculation>

<subtext beginindex="0" endindex="2">

<filteredattribute name="AT_AUFTNR" nodetype=

"OT_FUNC" objectname="this" filter="EARLY"/>

</subtext>

</calculation>

</calcattr>

XML-Attribut Beschreibung

beginindex Startindex (inklusiv, beginnend mit 0) endindex

(optional)

Endindex (exklusiv)

Wird kein Endindex angegeben, beginnt die Ergebniszeichenfolge am angegebenen Startindex und endet am Ende der Quellzeichenfolge.

Warnung

Der Operator subtext kann nur auf Attribute und Konstanten vom Datentyp TEXT

angewendet werden. Wenn Sie ihn auf eine Zeichenfolge anwenden, die weniger als die in beginindex bzw. endindex angegebene Zeichenanzahl enthält, liefert der Operator den Wert NULL zurück.

Beispiel 5

Aus dem Zeitstempel 07.04.2003 17:30:58 wird das Datum 07.04.2003 extrahiert und als Wert des Attributs AT_CALEN_DAY an alle Funktionen der Prozessinstanz geschrieben.

<calcattr name="AT_CALEN_DAY" type="OT_FUNC">

<calculation>

<createday>

><constant>

<dataitem value="07.04.2003 17:30:58">

<datatype name="TIME"/>

</dataitem>

</constant>

</createday>

</calculation>

</calcattr>

Beispiel 6

Zu dem Zeitstempel 22.01.2002 14:55:21 wird eine Zeitspanne von einer Stunde (in der Basiseinheit 3600 Sekunden) hinzu addiert und als Zeitstempelwert 22.01.2002 15:55:21 des Attributs AT_ADD_TSP an alle Funktionen der Prozessinstanz kopiert.

150

<calcattr name="AT_ADD_TSP" type="OT_FUNC">

<calculation>

<addtimespan>

<!-- Zeitstempel -->

<constant>

<dataitem value="22.01.2002 14:55:21">

<datatype name="TIME"/>

</dataitem>

</constant>

<!- Zeitspanne 3600 Sekunden -->

<constant>

<dataitem value="3600">

<datatype name="TIMESPAN"/>

</dataitem>

</constant>

</addtimespan>

</calculation>

</calcattr>

7.1.3.10 Besonderheiten der Attributberechnung