Summiere numerisches Attribut

Siehe auch: Summe numerisches Attribut (Bestellung), Summe numerisches Attribut (Sendung)

Ereignisaktion - Kurzfassung

Zweck: Aggregiert für einen oder mehrere Positionstypen in einem Allgemeinen Geschäftsobjekt die Einzelwerte für einen ausgewählten Nummerntyp in einer Quellebene der Positionshierarchie, um Teilsummen für die Positionen einer übergeordneten Zielebene zu berechnen. Dabei werden die Teilsummen dem (aggregierten) numerischen Attribut desselben Nummerntyps in der Zielebene als Wert (value) zugewiesen.


images/download/attachments/78255455/image2021-8-24_8-38-20-version-1-modificationdate-1629787101976-api-v2.png

Die Ereignisaktion Summiere numerisches Attribut bildet innerhalb der Positionshierarchie eines Bezugsobjekts vom Typ Allgemeines Geschäftsobjekt Teilsummen für die Werte von numerischen Attributen für genau einen per Typ ausgewählten Nummerntyp.

Dabei wird für jede Position einer wählbaren Zielebene (Zielposition) eine Teilsumme ermittelt, die alle Einzelwerte aus einer wählbaren untergeordneten Quellebene zusammenfasst. Die Summe der Einzelwerte aus den direkten oder indirekten Unterpositionen wird dem aggregierten numerischen Attribut für denselben Nummerntyp auf der Zielebene als Wert zugewiesen. Ein an der Zielposition bestehender Wert wird dabei überschrieben. Die Teilsumme wird abhängig von der Einstellung für den Parameter Anzahl Dezimalstellen gerundet oder nicht.

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg ACHTUNGimages/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg Beinhaltet die Teilhierarchie unterhalb einer bestimmten Zielposition für den aufzusummierenden Nummerntyp keine Werte in der Quellebene , dann wird für die Zielposition der Wert 0 zugewiesen.

Quellebene und Zielebene können wahlweise absolut oder relativ zur tiefsten Hierarchieebene identifiziert werden (s. "Konfiguration"). Unter Umständen kann auch die Kopfebene des Bezugsobjekts als Zielebene dienen.

HINWEIS◄ Unabhängig davon ob absolute oder relative Bezüge verwendet werden, muss die Zielebene effektiv immer oberhalb der Quellebene liegen, sonst findet keine Aggregation statt.

Der Parameter Positionstypen definiert per Mehrfachauswahl eine Positivliste für die für die Aggregation relevanten Positionstypen. Ohne Angaben für den Positionstyp gelten nur Positionen des Typs "Standard" (DEFAULT) als relevant.

Die Ereignisaktion Summiere numerisches Attribut bearbeitet nur die volatilen Daten des Bezugsobjekts und speichert dieses nicht.

Für die Entitätstypen Bestellungen und Sendungen werden spezifische Varianten dieser Ereignisaktion angeboten, die nach denselben Prinzipien funktionieren.

Konfiguration

Die Ereignisaktion Summiere numerisches Attribut erwartet als Bezugsobjekt ein Allgemeines Geschäftsobjekt. Im Kontext von Entitäten anderer Typen ist die Ereignisaktion wirkungslos, ohne dass zur Laufzeit ein Fehler auftritt.

Der Typ bestimmt als Pflichtfeld statisch per Einfachauswahl den Nummerntyp der Attribute, deren Werte aufsummiert werden sollen.

Der Parameter Zielebene definiert über einen positiven oder negativen ganzzahligen Index die Hierarchieebene, für die Teilsummen berechnet werden sollen:

  • Wert > 0: absolute Ebene; Anzahl der Stufen unterhalb der Kopfebene

  • Wert < 0: relative Ebene; Anzahl der Stufen oberhalb der "tiefsten" Ebene (je Positionstyp)

  • Wert = 0: "Kopfebene" des Bezugsobjekts (s. Hinweis unten)

Der Parameter Quellebene definiert definiert über einen positiven oder negativen ganzzahligen Index die Hierarchieebene, in der nach Einzelwerten für den Nummerntyp gesucht werden soll:

  • Wert > 0: absolute Ebene; Anzahl der Stufen unterhalb der Kopfebene

  • Wert < 0: relative Ebene; Anzahl der Stufen oberhalb der "tiefsten Ebene" (je Positionstyp)

  • Wert = 0: "tiefste Ebene" (je Positionstyp)

Die Anzahl Dezimalstellen definiert ob und ggf. wie beim Aufsummieren gerundet wird:

  • Wert = 0: keine Rundung

  • Wert > 0: Anzahl der Nachkommastellen für die Rundung der Einzelwerte vor dem Summieren.

Relevante Positionstypen für die Berechnung können per Mehrfachauswahl qualifiziert werden.

images/download/attachments/78255455/image2021-8-24_12-32-14-version-1-modificationdate-1629801135892-api-v2.png

HINWEIS◄ In Lobster Data Platform / Orchestration begründet jeder Positionstyp eine eigenständige Positionshierarchie, so dass die Teilsummen immer nur Einzelwerte für denselben Positionstyp zusammenfassen. Sind mehrere Positionstypen als relevant ausgewählt, dann wird das gesamte Berechnungsverfahren der Ereignisbehandlung sequenziell für jeden relevanten Positionstyp wiederholt. Daher sind folgende Aspekte zu berücksichtigen:

  • Sofern die Quellebene und/oder die Zielebene relativ zur "tiefsten Ebene" der Positionshierarchie definiert ist, wird die "tiefste Ebene" für jeden Positionstyp individuell ermittelt. Die Aggregation betrifft dann je Positionstyp individuelle Ebenen.

  • Verweist die Zielebene relativ oder absolut auf die Kopfebene des Bezugsobjekts, dann verwendet jeder verarbeitete Positionstyp auf dieser Ebene dasselbe numerische Attribut für den ausgewählten Nummerntyp als Zielposition. Dieses wird immer wieder überschrieben und zeigt im Ergebnis nur die Teilsumme für den zuletzt verarbeiteten Positionstyp. Das ist in der Regel nicht erwünscht. Eine Gesamtsumme über unterschiedliche Positionstypen auf Kopfebene kann mit der Ereignisaktion auf diesem Weg nicht berechnet werden.

Beispiel

Ein Allgemeines Geschäftsobjekt soll zur Erfassung von Daten für "Investitionsanträge zur Energieoptimierung" in einem Unternehmen verwendet werden.

Die Struktur des Antrags sieht eine Gliederung der "Positionen" eines Antrags in vier Stufen vor, wie im folgenden Screenshot an Beispieldaten skizziert:

images/download/attachments/78255455/image2021-8-23_18-56-18-version-1-modificationdate-1629737781218-api-v2.png

  • Die Ebenen 1 bis 3 in diesem Schema beziehen sich auf einen Nummerntyp "Kosten" (COSTS), um die jeweilige Position in der Einheit "T€" (1000 Euro) zu budgetieren.

  • In den Ebenen 1 und 2 dienst das betreffende numerische Attribut ausschließlich zur Aggregation. Im Bild ist das Element noch leer und deshalb ausgeblendet.

  • Nur die Ebene 3 dient zur Eingabe von "Kosten", die beim Speichern des Antrags nach oben aufsummiert werden sollen. Auch die Gesamtkosten auf Kopfebene (rechts oben) sollen dann aktualisiert werden.

  • Die Ebene 4 wird im Beispiel noch nicht verwendet. Sie dient zur optionalen Erfassung von "Details" zu einer Position der Ebene 3, denen keine individuellen "Kosten" zugeordnet werden sollen.

Für die Eingabe in der Einheit "T€" (1000 Euro) sieht die Ebene 3 drei Dezimalstellen vor, so dass die Eingabe auf 1 € genau erfolgen kann. Beim Aufsummieren sollen diese Beträge allerdings mit einer Rundung auf eine Dezimale verrechnet werden, also mit einer Genauigkeit von 100 €. Allerdings soll sich jede Aggregationsebene dabei auf die gerundeten "Rohdaten" aus der Ebene 3 beziehen und nicht etwa auf die Zwischensummen aus der direkt untergeordneten Ebene.

Konfiguration:

Innerhalb einer Ereignisbehandlung, die bei jedem "Speichern" eines Antrags, also über die Ereignisse "Erstellen" und "Ändern" (s. Allgemein (Ereignisse)) mit einer entsprechenden Typprüfung, ausgelöst wird, muss die Ereignisaktion Summiere numerisches Attribut zu diesem Zweck drei Mal konfiguriert werden.

  • Jeder Schritt der Aggregation bezieht sich auf den Typ (Nummerntyp) "Kosten" (COSTS).

  • Die Zielebene variiert, wobei die positiven Ganzzahlen als absolute Angabe der Zielebene interpretiert werden:

    • Der erste Schritt summiert die gerundeten "Kosten" aus der Ebene 3 in der unmittelbar übergeordneten Positionsebene (2).

    • Der zweite Schritt summiert die gerundeten "Kosten" aus der Ebene 3 in der obersten Positionsebene (1).

    • Der dritte Schritt summiert die gerundeten "Kosten" aus der Ebene 3 als Gesamtsumme im Kopf des Antrags.

  • Die Quellebene ist immer die Ebene 3, mit den zu addierenden Einzelwerten.

  • Für die Anzahl Dezimalstellen ist ebenfalls einheitlich der Wert 1 eingestellt.

  • Unter Positionstypen ist einheitlich der verwendete Positionstyp "Service" (SERVICE) ausgewählt.

ANMERKUNG◄ Die Berechnungsergebnisse werden von der Ereignisaktion in der jeweiligen Zielebene als Wert des "Kosten"-Attributs eingetragen, das dabei wie üblich auch neu angelegt wird, falls es noch nicht in den volatilen Daten des Bezugsobjekts existiert.

images/download/attachments/78255455/image2021-8-24_16-2-14-version-1-modificationdate-1629813736954-api-v2.png

Laufzeitbeispiel:

Das Beispiel rechts zeigt die Berechnungsergebnisse für einen konkreten Investitionsantrag mit sieben mit Kosten versehenen Positionen auf der Ebene 3.

Da die Eingabefelder für "Kosten" in den Ebenen 1 und 2 drei Dezimalstellen des berechneten Wert anzeigen, ist dort die Rundung auf eine Dezimale ablesbar.

ANMERKUNG◄ Anhand der Werte im konkreten Beispiel zeigt sich der besondere Einfluss der Rundung der Einzelwerte vor dem Aufsummieren innerhalb der Position SER2.1:

  • Die Einzelposten in den Unterpositionen werden beim Runden mit einer Dezimale aufgerundet (von 18,858 zu 18,9 T€ und 12,567 zu 12,6 T€), was für SER2.1 eine Teilsumme von 31,5 T€ ergibt.

  • Ein Aufsummieren ohne Rundung ergäbe eine Teilsumme von 31,425 T€, was bei Rundung auf eine Dezimale nach der Addition 31,4 T€ ergäbe. Diese Bewertung der aggregierten Position könnte man angesichts der Einzelwerte als angemessener betrachten als den mit der Rundung der Einzelwerte ermittelten Wert von 31,5 T€. Allerdings ergäbe sich im Beispiel dann eine Differenz zwischen der Addition der ausgewiesenen Zwischenergebnisse für SER2.1 (in Höhe von 31,4 T€) und
    SER2.2 (in Höhe von 16,1 T€), die eine Summe von 47,5 T€ ergibt, und dem durch Rundung nach dem Aufsummieren aller Einzelwerte ermittelten Wert für die Position SER2 (in Höhe von 47,6 T€).

  • Die Rundung vor der Addition stellt also sicher, dass das Aufsummieren über mehrere Stufen ein konsistentes Zahlenwerk ergibt. Und zwar unabhängig davon, ob das Aufsummieren durchgängig stufenweise erfolgt oder - wie im Beispiel - auch teilweise über mehrere Stufen hinweg.

images/download/attachments/78255455/image2021-8-25_9-52-28-version-1-modificationdate-1629877948114-api-v2.png

ANMERKUNG◄ Über die Buttons "1", "2" und "3" im Kopfbereich der für das Beispiel erstellten Erfassungsmaske kann der Detaillierungsgrad der Darstellung ausgewählt werden.

Im Screenshot rechts wurden per Klick auf den Button "2" die Unterpositionsebene 3 ausgeblendet, so dass nur noch die aggregierten Zahlen (deaktiviert) zu sehen sind.

images/download/attachments/78255455/image2021-8-25_9-47-18-version-1-modificationdate-1629877637978-api-v2.png