Skip to main content

Mathematische Berechnungen mit "Berechnen"

Die Macro Action "Berechnen" erlaubt die automatische Berechnung von Formularfeldwerten, bspw. um Preise, Summen u. ä. aus Einzelwerten zu kalkulieren. Als Dezimalseparator wird der Punkt (z.B. 3.147)  verwendet.

Hinweis: Variablen und Platzhalter werden ohne Validierung 1:1 ersetzt, und zwar VOR Ausführung des Jobs . Enthält eine Variable keinen Wert oder ist aufgrund eines Schreibfehlers undefiniert, so wird mit "null" gerechnet, was zu einem fehlerhaften Ergebnis führt. Achten Sie daher darauf, Dynamische Felder vom Typ "Text" per RegEx auf die Eingabe numerischer Zeichen zu beschränken.

Szenario

Zur Berechnung des Gesamtpreises existieren an einem Ticket zwei Formularfelder für die Eingabe von (Einzel-)Preis und Menge. In einem dritten Formularfeld soll der Gesamtpreis automatisch berechnet werden. Übersteigt der berechnete Gesamtpreis einen Schwellenwert, wird das Ticket dem Management zur Entscheidung vorgelegt. 

Vorgehen:

  1. Anlegen von 3 Dynamischen Feldern ( DFPreis, DFMenge, DFGesamtpreis) mit folgender Konfiguration:

    • Feldtyp: Text

    • Objekttyp: Ticket

    • CountMin, CountMax, CountDefault: jeweils 1

    • RegEx List: ^[0-9]*$

      (Erlaubt nur Zahlen und Ziffern im Eingabefeld)

    • RegExErrorMessage: "Nur Zahlen und Ziffern erlaubt"

  2. Integration der Dynamischen Felder die GUI

  3. Konfiguration eines Jobs zur Durchführung der Berechnung und Verwendung des Gesamtpreises zum automatischen Ticketrouting. Die Konfiguration des Jobs könnte wie folgt lauten:

    • Job Information

      • Job Typ: Ticket

      • Name: Name des Jobs

      • Gültigkeit: gültig

    • Ausführungsplan

      • Events: TicketDynamicFieldUpdate_DFPreis, TicketDynamicFieldUpdate_DFMenge

    • Filter: keine oder nach Bedarf

    • Aktionen

      • 1. Action: Berechnen

        (= Durchführung der Berechnung)

        math-berechnung_action1_calculate.png
        • Result: Bezeichner der Ergebnisvariable (z. B. varGesamtpreis)

        • Formel: 

          scale=2; <KIX_TICKET_DynamicField_DFMenge>*<KIX_TICKET_DynamicField_DFPreis>

          (= Multiplikation der Werte in den Dynamischen Feldern, auf 2 Nachkommastellen gerundet)

      • 2. Action: Bedingungen

        (= Bedingung für folgende Bearbeitung: Berechnung lieferte ein Ergebnis)

        • Wenn: Angabe der Bedingung (z. B. defined ${varGesamtpreis} oder ${varGesamtpreis} && ${varGesamtpreis} > 0 )

        • Macro: Ticket

          (= Wenn Bedingung erfüllt: Gesamtpreis in DFGesamt setzen)

          • 1. Acion: Dynamisches Feld setzen

            math-berechnung_action2_conditional.png
            • Dynamic Field Name: DFGesamt 

            • Dynamic Field Value: ${varGesamtpreis}

          • 2. Action: Bedingungen

            (= Bedingung für folgende Bearbeitung: Gesamtpreis > 10000)

            • Wenn: ${varGesamtpreis} > 10000

            • Macro: Ticket

              (= Wenn Gesamtpreis > 10.000, dannt Ticket an Team "Management" übergeben, Status und Priorität ändern)

              • 1. Aktion: Team setzen

                • Team: Management

              • 2. Aktion: Status setzen

                • Status: Genehmigung erforderlich

                  (Status ggf. vorher anlegen)

              • 3. Aktion: Priorität setzen

                • Priority: 1 very high

                math-berechnung_action2a_conditional.png

Hinweis zur Fehlerbehandlung

Kann keine konkrete Berechnung ausgeführt werden, empfiehlt sich, die in der Berechnung genutzten Platzhalter/Felder bzw. deren Werte aus der konkreten Tickethistorie zu beziehen und die Berechnung mittels bc auf Kommandozeile auszuführen. So kann eingegrenzt werden, ob die Berechnung selbst oder die in ihr genutzten Werte den Fehler verursachen.