Berechne Attribute nach unten

Ereignisaktion - Kurzfassung

Zweck: Multipliziert in einem Allgemeinen Geschäftsobjekt in allen aggregierten numerischen Attributen von Positionen der relevanten Positionstypen den "Wert" mit der "Allgemeinen Anzahl Packstücke", um den "Aggregierten Wert" je Attribut zu berechnen.

Siehe auch: Berechne Attribute nach unten (Bestellung), Berechne Attribute nach unten (Sendung)

images/download/attachments/78253215/image2021-8-2_8-32-14-version-1-modificationdate-1627885937855-api-v2.png

Die Ereignisaktion Berechne Attribute nach unten führt für ausgewählte Positionstypen (s. Positionstyp) in einem Bezugsobjekt vom Typ Allgemeines Geschäftsobjekt folgende Schritte aus:

  1. Für "Aggregierte numerische Attribute" innerhalb einer relevanten Position wird der "Wert" (value) mit der "Aggregierten Anzahl Packstücke" (aggregateNumberOfPackages) multipliziert, die bei Bedarf vorab über die Ereignisaktion Berechne aggregierte Anzahl Packstücke ermittelt werden kann.

  2. Das Ergebnis der Multiplikation wird als "Aggregierter Wert" (aggregateValue) innerhalb des Attributs gespeichert. Enthält der "Wert" (value) oder die "Aggregierte Anzahl Packstücke" (aggregateNumberOfPackages) keinen Wert, wird das Feld "Aggregierter Wert" (aggregateValue) gelöscht.

WICHTIG◄ Im Unterschied zur Ereignisaktion Berechne aggregierte Anzahl Packstücke bezieht die Berechnung, falls der Parameter Positionstypen keine Auswahl spezifiziert, nicht alle Positionstypen ein, sondern nur den Positionstyp "Standard" (DEFAULT). Es gibt daher keine Möglichkeit die Ereignisaktion so zu parametrieren, dass sie pauschal "alle" (also auch ggf. zukünftig angelegte) Positionstypen einbezieht.

ANMERKUNG◄ Auf Positionsebene erscheint grundsätzlich jeder Nummerntyp als "Aggregiertes numerisches Attribut". Dabei gibt es keine Möglichkeit zwischen extensiven und intensiven Größen zu unterscheiden. Auch die Ereignisaktion Berechne Attribute nach unten behandelt jeden Nummerntyp gleich: Jeder "Wert" wird mit der "Anzahl aggregierte Packstücke" der Position multipliziert. Den "Wert" zu skalieren ist allerdings nicht für jeden Nummerntyp sinnvoll, z. B. wenn der Wert eine "maximale Lagertemperatur", die "Standardlosgröße" für einen Artikel oder eine "Mindesthaltbarkeit" beschreibt. In solchen Fällen sollte man das Berechnungsergebnis im Feld "Aggregierter Wert" einfach ignorieren und vor allem nicht im Formular anzeigen.

Laufzeitbeispiel:

Das folgende Beispiel demonstriert eine typische Verwendungsmöglichkeit für die Ereignisaktion Berechne Attribute nach unten:

images/download/attachments/78253215/image2021-8-2_9-3-36-version-1-modificationdate-1627887818291-api-v2.png

  • Die Positionshierarchie für einen bestimmten Positionstyp (hier: "Standard") beinhaltet Positionen mit Unterpositionen. Im Beispiel bezieht sich die Unterpositionsebene auf "Bierkisten", die die übergeordnete Positionsebene als Paletten zusammenfasst.

  • Die Anzahl Packstücke soll für die Unterpositionen hier per Definition die Anzahl Packstücke pro Palette definieren, so dass die tatsächliche Anzahl an "Bierkisten" zunächst als Aggregierte Anzahl Packstücke ermittelt werden muss. Dies ermöglicht z. B. die Ereignisaktion Berechne aggregierte Anzahl Packstücke.
    HINWEIS◄ Wie Werte für die Aggregierte Anzahl Packstücke bestimmt werden, spielt für die Ausführung der Ereignisaktion Berechne Attribute nach unten keine Rolle. Neben einer Berechnung kommen auch interaktive Zuweisungen oder das Bereitstellen per Schnittstelle in Frage. Entscheidend ist, dass entsprechende Werte für alle Positionen vorliegen müssen, für im folgenden Schritt die Ereignisaktion Berechne Attribute nach unten "Aggregierte Werte" liefern soll.

images/download/attachments/78253215/image2021-8-2_9-11-52-version-1-modificationdate-1627888314274-api-v2.png

  • Für die Aggregierte Anzahl Packstücke ergibt sich hier ein Wert von 60 (Bierkisten) die Position 1 eine Anzahl von 2 Paletten angibt, die je 30 Stück (Bierkisten) enthalten.

  • Auf der Unterpositionsebene ist für das "Numerische aggregierte Attribut" Einzelpreis ein "Wert" (value) von 12,99 mit der "Einheit" (unit) "EUR" angegeben.

  • Der Gesamtwert aller Bierkisten der Sorte "Lager" kann über die Ereignisaktion Berechne Attribute nach unten ermittelt und als Aggregierter Wert (aggregateValue) geschrieben werden.

images/download/attachments/78253215/image2021-8-2_9-18-16-version-1-modificationdate-1627888697813-api-v2.png

  • Im Feld Aggregierter Wert erscheint für die Position 1.1 das Produkt 2 x 30 x 12,99 = 779,40 (EUR) als Gesamtwert der Bierkisten für die Sorte "Lager" auf den beiden zur Position 1 gehörigen Paletten.

HINWEIS◄ Das Feld "Aggregierter Wert" ist in der Standardkomponente für jedes "Aggregierte Numerische Attribut" enthalten. Per Standard wird die Komponente im Formular allerdings ohne das betreffende Element hinzugefügt. Es muss dem Container, der sonst nur die Felder "Wert" und "Einheit" anzeigt also bie Bedarf explizit hinzugefügt werden. Der Screenshot zeigt diesen Container für die Unterpositionsebene zur Demonstration grau schattiert. Die Berechnungssymbole ("X" und "=") wurden zwecks Transparenz als Label-Elemente ergänzt.

ANMERKUNG◄ Natürlich ist es auch möglich, entsprechende Berechnungen auf anderen Wegen (z. B. über Berechnungsfelder in Erfassungsmasken oder über Schleifen mit expliziten Berechnungen und Wertzuweisungen in Ereignisbehandlungen) umzusetzen. Dann kann das Berechnungsergebnis auch einem anderen Feld oder Attribut statt dem "Aggregierten Wert" zugewiesen werden. Ob die schematische Berechnung per Berechne Attribute nach unten im konkreten Anwendungsfall sinnvoll anwendbar bzw. vorteilhaft ist, bleibt vor dem Hintergrund der spezifischen Anforderungen abzuwägen.

WICHTIG◄ Für die Ausführung Ereignisaktion Berechne Attribute nach unten ist die Anzeige der Attribute im Formular unerheblich. Die Berechnungsergebnisse werden immer ausgeführt und in die volatilen Daten des Bezugsobjekts geschrieben.

Konfiguration

images/download/attachments/78253215/image2021-8-2_9-57-4-version-1-modificationdate-1627891025870-api-v2.png

Die Ereignisaktion Berechne Attribute nach unten erwartet als Bezugsobjekt ein Allgemeines Geschäftsobjekt. Im Kontext eines anderen Objekttyps ist die Ereignisaktion wirkungslos, ohne dass zur Laufzeit ein Fehler auftritt.

Die Mehrfachauswahl für Positionstypen kann verwendet werden, um eine Positivliste für relevante Positionstypen (s. Positionstyp) zu definieren.

  • Sind keine Positionstypen ausgewählt, wird nur der Positionstyp "Standard" (DEFAULT) berücksichtigt.

Beispiel

Als Erweiterung zum Beispiel für die Ereignisaktion Berechne aggregierte Anzahl Packstücke soll innerhalb einer Erfassungsmaske für ein fiktives Allgemeines Geschäftsobjekt vom Typ "Aktionspaket" (PACKAGE_DEAL) per Klick auf einen zusätzlichen Button ("Berechnen") die Ereignisaktion Berechne Attribute nach unten für das angezeigte Bezugsobjekt ausgeführt werden. Anhand der vorher per Berechne aggregierte Anzahl Packstücke berechneten Werte für "Aggregierte Anzahl Packstücke" soll so für alle Positionen (mit Positionstyp "Standard"), für die ein "Einzelpreis" angegeben ist, der Gesamtwert je Position ermittelt werden.

Konfiguration:

Für den Button "Berechnen" wird ein Verhalten mit einer Verhaltensweise Client Workflow eingerichtet, die wie rechts abgebildet konfiguriert wird:

ANMERKUNG◄ Sofern die Berechnungen nicht nur manuell sondern z. B. auch automatisch beim Speichern ausgelöst werden sollen, kann statt dem Client Workflow auch eine Ereignisbehandlung konfiguriert werden, die dann vom Button über ein Eigenes Aktionsevent adressiert werden muss. Es kann auch sinnvoll sein, die Ereignisaktion Berechne aggregierte Anzahl Packstücke im gleichen Workflow unmittelbar vorher auszuführen, so dass beide Berechnungen immer in Kombination ausgeführt werden.


images/download/attachments/78253215/image2021-8-2_10-43-46-version-1-modificationdate-1627893828795-api-v2.png

Laufzeitbeispiel:

Der folgende Screenshot zeigt ein Allgemeines Geschäftsobjekt vom Typ "Aktionspaket", für das die Ereignisaktion Berechne aggregierte Anzahl Packstücke per Button "Aggregieren" bereits ausgeführt wurde.

Danach wurden für ausgewählte Positionen bzw. Unterpositionen Werte im Attribut Einzelpreis eingetragen, die daraufhin grau schattiert hervorgehoben erscheinen (s. Verhaltensweise CSS-Klasse).

images/download/attachments/78253215/image2021-8-2_11-2-53-version-1-modificationdate-1627894975488-api-v2.png

Nachdem die Aggregation ausgeführt und die "richtigen" (Unter-)Positionen mit Preisangaben versehen sind, wird über den Button "Berechnen" die Berechnung der Warenwerte ausgelöst:

images/download/attachments/78253215/image2021-8-2_11-6-36-version-1-modificationdate-1627895198933-api-v2.png

  • Der konfigurierte Client Workflow liefert den Aggregierten Wert im "Einzelpreis"-Attribut jeder Standard-Position und weist auch anderen nicht im Formular angezeigten "Aggregierten numerischen Attributen" entsprechende Werte zu.

  • In den Kopfdaten des "Aktionspakets" ist hier außerdem das "Numerische Attribut" mit dem Nummerntyp "Warenwert" enthalten. Es ist oberhalb der Elemente für den "Aggregierten Wert" angeordnet und als Berechnungsfeld (s. Berechnungsfelder) mit dem folgenden Ausdruck ausgeführt:

    images/download/attachments/78253215/image2021-8-2_11-11-59-version-1-modificationdate-1627895521054-api-v2.png


    Die Elemente #66, #75 und #81 sind dabei die Elemente für den Aggregierten Wert im "Einzelpreis"-Attribut in den drei abgebildeten Positionsebenen.