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:
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"
Integration der Dynamischen Felder die GUI
DFMenge und DFPreis
z. B. in den Dialog "Ticket neu"
Menü:
(s. auch: Dynamische Felder in Dialogen bereitstellen)
z. B. in eine dialogbasierte Ticketaktion
DFGesamtpreis in die Ticketdetails.
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)
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
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
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.