Page tree
Skip to end of metadata
Go to start of metadata

Im TecArt CRM können Sie einfache Berechnungen über Angaben in den Feldern durchführen. Diese können Sie z.B. nutzen, um importierte Umsätze aus verschiedenen Jahren zusammen zurechnen oder auch die letzten Aktivitäten eines Kontaktes zu ermitteln und auszuwerten.

Die nachfolgende Beschreibung ermöglicht es Ihnen Formeln in die Felder einzufügen.

TecArtModulMenüFür wen?

Administration

Einstellungen

Felder

ADMINISTRATOR

1. Auf welche Module sind die Rechenoperationen anwendbar?

Die Rechenoperationen können in allen Modulen angewendet werden, welche Sie über die Felderverwaltung bearbeiten können. Zusätzlich haben Sie die Möglichkeit verschiedene Aktivitäten in die Berechnung einfließen zu lassen. Dabei können die Feldtypen verwendet werden, welche klare Ergebnisse wiedergeben können. Berechnen Sie aus zwei Währungsfeldern die Gesamtsumme in einem Feldtyp Währung oder lassen Sie sich aus zwei Textfeldern einen neuen Text erzeugen. Sie könnten auch mit einem Datumsfeld und einer Währung rechnen, jedoch ist das Ergebnis fraglich.

Rechenoperationen benötigen viel Rechenkapazität. Vor allem, wenn Sie berechnete Felder in Listenansichten der Module anzeigen lassen und eine Neuberechnung über alle verwendeten Formeln anstoßen.

2. Berechnete Felder und Grundeinstellungen

2.1. Grundeinstellungen für ein Formelfeld

Erstellen Sie ein neues Feld oder nutzen Sie ggf. ein bestehendes Systemfeld und setzen Sie dieses im Feld Schreibgeschützt auf Ja. Die Formeln werden in das Feld Standardwert eingetragen. Die Berechnung funktioniert nur mit einer sauberen Administration.

Formeln können nur innerhalb eines Modul mit den verknüpften Elementen des jeweiligen Objektes eingesetzt werden. Sie können also die Summe aller Verträge für diesen Kontakt berechnen oder den letzten Anruf ermitteln. Modulübergreifende Berechnungen und Formeln in der Form: Zeige mir im Vertrag die Postleitzahl des verknüpften Kontaktes, gehen hingegen nicht. Hierfür nutzen Sie den Feldtyp Verknüpfung in der Felderverwaltung.

2.2. Formel in den Objekten berechnen

Sobald Formeln in einem Modul vorhanden sind, wird in den Objekten ein weiterer Button angezeigt. Sofern ein Benutzer darüber hinaus auch das Recht besitzt Formeln in Übersichten zu berechnen, wird auch in der Listenansicht Ihres Moduls ein weiterer Button zur Berechnung der Formeln eingeblendet. Formeln werden also erst mal nicht grundlegend berechnet, sondern man muss die Berechnung anstoßen.

Variante 1: Button im Objekt

ButtonFunktion

Über diesen Button werden alle Formeln im ausgewählten Datensatz neu berechnet. Der Button wird nur angezeigt, sofern es hinterlegte Formeln gibt.

Variante 2: Nutzen Sie den Button in der Übersicht, um die Berechnung für alle markierten oder gefilterten Objekte auszuführen.

Variante 3: Über Ihre persönlichen Einstellungen können Sie die Formelberechnung aktivieren, sobald Sie ein Objekt öffnen. Dabei werden sofort die enthaltenen Formeln erneut berechnet.

3. Aufbau einer Variable

Alle Variablen für die Formeln beginnen immer mit < # und enden mit # > . Dabei ist auf eine durchgehende Schreibweise der gesamten Variable zu achten. (Beispiel: <#postcode#>)

Verwenden Sie eine Variable derselben Ebene, als Beispiel innerhalb eines Kontaktes, so verwenden Sie die Variable nur mit den klassischen Feldbezeichnungen, wie z.B. <#postcode#>. Wollen Sie Felder der verknüpften Aktivitäten verwenden, müssen Sie der Variable das gewünschte Modul mitgeben. <#todo.stop#> bezieht sich damit nicht mehr auf den Kontakt, in dem Sie die Formel eintragen, sondern auf das Stoppdatum der mit dem Kontakt verknüpften Aufgaben. Möchten Sie einen Wert eines ganz bestimmten Objektes für die Berechnung heranziehen, können Sie auch noch die ID des Objektes mitführen. So ergibt sich in einer Formel dann <#todo.1332.stop#>.

Wie bereits erwähnt, ist es nicht möglich sich über mehrere Felder zu einem anderen Feld zu hangeln, nach dem Muster einer Formel in Verträgen: Hole im Feld <#cid#> den Kontakt, gehe in diesen und nimm dort das Feld <#postcode#> und gib dieses im Vertrag aus.

Für Ihre Formeln benötigen Sie die Feldbezeichnungen Ihrer Felder. Diese finden Sie in der Felderverwaltung jeweils als Feldname bei der Bearbeitung jedes Feldes. Darüber hinaus für die verknüpften Objekte von übergeordneten Objekten die Angaben zu den Modulen.

  • Kontakte = contact
  • Projekte = project
  • Verträge = contract
  • Angebote = offer
  • Anrufe = call
  • Termine = appointment
  • Aufgaben = todo

4. Aufbau von Formeln und Rechenoptionen

Eine Formel beginnt immer mit einem = Istgleich. Dabei gibt es folgende grundlegende Rechenoperationen. Numerische Rechenoperationen können auch mit Strings vermischt werden.

ZeichenFunktion

+

Addition

-

Subtraktion

*

Multiplikation

/

Division

.

Punkt für die Bildung von Strings die Verbindung von Texten

'

Einfachen Anführungszeichen für feste Textbestandteile in einer Formel

(

Klammer auf

)

Klammer zu
SUM() Summe - Summiert die Werte aller Modulelemente, die mit dem aktuellen Objekt verknüpft sind.
COUNT()Zählen - Liefert die Anzahl aller Elemente eines Objekttyps, welche mit dem aktuellen Objekt verknüpft sind.
MIN()Minimum - Ermittelt den niedrigsten Wert aller Modulelemente, die mit dem aktuellem Objekt verknüpft sind.
MAX()Maximum - Ermittelt den maximalen Wert aller Modulelemente, die mit dem aktuellem Objekt verknüpft sind.
round( ,2)Runden - Rundet das Ergebnis innerhalb des Klammerausdrucks auf 2 Stellen nach dem Komma. Dabei wird entsprechend der mathematischen Regeln auf- bzw. abgerundet.
floor() Abrunden - Mit floor() wird diejenige ganze Zahl ausgegeben, welche kleiner oder gleich der vorgegebenen Zahl ist. Es wird ausschließlich abgerundet, auch wenn die Nachkommastelle größer als 5 ist.

5. Beispiele für Formeln und deren Ergebnisse

Eine Berechnung durch Formeln von mehreren bereits berechneten Feldern ist nur eingeschränkt möglich, da Sie den Formeln die Reihenfolge, in denen sie berechnet werden sollen, nicht mitgeben können. Wenn Sie sowohl die Einzelergebnisse als auch ein Gesamtergebnis berechnen möchten, müssen Sie für das Gesamtergebnis eine Gesamtformel aus den einzelnen Formeln bilden. Andernfalls müssen Sie die Berechnung so oft anstoßen, wie Sie Formelfelder untereinander verknüpft haben.

Die Formeln werden nur dann nacheinander in der gewünschten Reihenfolge berechnet, wie Sie diese auf einer Registerkarte eines Objektes platzieren. Sicherer ist dann die Berechnung des Ergebnisses immer anhand der ursprünglichen Datenquellen.


Um die nachfolgende Berechnung durchführen zu können, müssten Sie die folgende Teilschritte einleiten:

  • Standardwert für Ihr Feld (z.B. user45) =(<#user30#>+<#user31#>)/(<#user30#>*<#user31#>)

Variante 1 mit Teilschritten

  • Standardwert für Ihr Feld (z.B. user40) =<#user30#>+<#user31#>
  • Standardwert für Ihr Feld (z.B. user41) =<#user30#>*<#user31#>
  • Standardwert für Ihr Feld (z.B. user45) =<#user40#>/<#user41#>


In der Variante 1 werden die einzelnen Teilschritte berechnet und die Ausgabe erfolgt durch die Berechnung der einzelnen Teilschritte. Diese Variante wird nacheinander berechnet und benötigt bis zu zwei Aktualisierungen. Erste Berechnung User40 und User41, da diese eigenständige Ergebnisse für sich sind. Zweite Berechnung User45, da erst die Ergebnisse von User40 und User41 vorliegen müssen.

Variante 2 mit direkter Berechnung

  • Standardwert für Ihr Feld (z.B. user40) =<#user30#>+<#user31#>
  • Standardwert für Ihr Feld (z.B. user41) =<#user30#>*<#user31#>
  • Standardwert für Ihr Feld (z.B. user45) =(<#user30#>+<#user31#>)/(<#user30#>*<#user31#>)


In der Variante 2 wird jede Formel für sich betrachtet und kann mit einer Aktualisierung berechnet werden, da keine der Formeln auf ein bereits berechnetes Feld zurückgreift.

FeldtypFormelBeschreibung
Datum=MAX(<#appointment.stop#>)Liefert das Datum des Termins mit der größten Fälligkeit im aktuell geöffneten Objekt.
Datum=MAX(<#todo.stop#>)Liefert das höchste Fälligkeitsdatum einer Aufgabe im aktuell geöffneten Objekt.
Datum=MAX(<#call.time#>)Liefert das letzte Anrufdatum im aktuell geöffneten Objekt.
Datum=MAX(<#todo.start#>.'<#>'.<#note.date#>.'<#>'.<#call.time#>.'<#>'.<#appointment.start#>)

Liefert gleichzeitig den jeweils höchsten Wert der enthaltenen Aktivitäten des aktuellen Objektes und gibt den insgesamt höchst ermittelten Wert aus.

Diese Form funktioniert, ist jedoch veraltet, da Sie über die Moduleinstellungen eines jeden Moduls ein Standard-Feld der letzten Aktivitäten befüllen und in Ihren Registerkarten einbauen können.

Text=<#todo.done#>.' %'Liefert alle Erledigungsstatus aller mit dem aktuellen Modul verknüpften Aufgaben in Prozent.
Text oder Nummer=SUM(<#todo.achieved#>)Liefert die Summe der geleisteten Stunden aller mit dem Modul verknüpften Aufgaben.
Text oder Nummer=COUNT(<#appointment#>)Zählt die Anzahl der mit dem Objekt verknüpften Termine.
Text oder Nummer=COUNT(<#appointment#>)+COUNT(<#call#>)Zählt die Anzahl der mit dem Objekt verknüpften Anrufe und Termine und addiert diese zu einer Gesamtzahl dieser beiden Aktivitäten.
Text oder Nummer=MIN(<#todo.done#>)Liefert den prozentualen Wert der Aufgabe, welche am wenigsten fortgeschritten ist.
Text oder Nummer=MAX(<#todo.done#>)Liefert den prozentualen Wert der Aufgabe, welche am meisten fortgeschritten ist.
Nummer oder Währung=<#user21#>+<#user22#>Diese Formel addiert zwei nummerische Felder miteinander und liefert eine Summe.
Text=<#user21#>.' '.<#user22#>Diese Formel verknüpft das Textfeld User21 mit einem Leerzeichen und einem weiteren Textfeld User22.
Nummer oder Währung=(<#user21#>+<#user22#>)*<#user23#>Berechnet wird zuerst die Summe in den Klammern, welche dann mit dem Feld "User23" multipliziert wird.
Text oder Nummer oder Währung=(<#user23#>*<#user24#>/100+<#user23#>)/<#user25#>Berechnet die Summe aus einem Anfangswert User23 mit einem prozentualen Aufschlag User24 und gibt diese als Quotient wieder, weil diese durch User25 dividiert wurde.
Text oder Nummer=floor((date('U')-(<#user29#>))/86400/365.25)Diese Formel berechnet das Alter einer Person aufgrund eines eingetragenen Datums im Feld User29. Der Wert wird als ganze Zahl ausgegeben. date('U') liefert dabei das aktuelle Datum inkl. Uhrzeit. Datumsfelder liegen als Timestamp in Sekunden seit dem 1.1.1970 vor. Demzufolge muss das Zwischenergebnis durch die Anzahl der Sekunden und durch Jahre (365.25) inkl. Schaltjahr gerechnet werden.
Text oder Nummer=round((date('U')-(<#user29#>))/86400/365.25,2)Diese Formel berechnet das Alter einer Person aufgrund eines eingetragenen Datums im Feld User29. Der Wert wird als gerundete Zahl mit 2 Nachkommastellen ausgegeben.
Nummer oder Währung=(<#user21#>+<#user22#>)*<#user23#>Berechnet wird zuerst die Summe in den Klammern, welche dann mit dem Feld User23 multipliziert wird.
Text oder Nummer=SUM(<#todo.achieved#>)Diese Formel liefert die Summe der geleisteten Stunden aller mit dem Modul verknüpften Aufgaben.
Text=date('d.m.Y, G:i:s', MAX(<#call.time#>))Diese Formel gibt Datum und Uhrzeit im angegeben Format 14.09.2019, 16:42:19 des letzten Anrufes aus.

Mehr Möglichkeiten der Formatierung finden Sie hier: https://www.php.net/manual/de/function.date.php