Beispiele dynamischer Feldformeln

Beispiele dynamischer Feldformeln

Auf dieser Seite ist eine Sammlung von Beispielen der meist angewendeten dynamischen Feldformeln aufgelistet. Die angegebenen Formeln dienen als Beispiele und können als solches nicht direkt in das System übernommen werden. Feldwerte müssen je nach genutztem Modul und Formeln je nach Nutzungsgrund angepasst werden.

Die Beispielformeln enthalten Farbcodierungen zur Visualisierung der Teile der Formeln, welche meist mit Systemspezifischen Feldwerten bzw. Nutzerangaben ersetzt werden müssen. Blau markierte Teile der Formeln sind ID-Angaben genutzter Module und Felder und müssen mit den eigentlich genutzten ID-Angaben des Systems ersetzt werden. Die orangenen Teile der Formeln sind Werte bestimmter Felder und müssen ebenfalls mit den Systemspezifischen Werten ersetzt werden. Rot markierte Teile der Formeln sind Variablen, die den endgültigen Wert des Zielfelds beeinflussen. Diese Variablen können beispielsweise eine Zahl sein, mit der der Inhalt des Feldes verglichen wird, oder ein Text, der auf das Feld geschrieben wird.

 

Automatisches Ausfüllen des Betreff-Feldes eines Angebots

Angebot {$account_id|getEntityFieldValue:'accountname'}

Diese Formel füllt das angegebene Feld (in diesem Beispiel das Betreff-Feld eines Angebots) mit dem Text “Angebot” und dem im Angebot angegebenen Firmennamen aus.

 

Aktualisierung der Wahrscheinlichkeit des Potentials zu 100%, wenn die Vertriebsstufe zu “gewonnen” geändert wird

{if $sales_stage=='Closed Won'}100{else}{$probability}{/if}

Diese Formel ändert den Wert der Wahrscheinlichkeit des Feldes “probability” zu 100, wenn der angegebene Wert des Feldes “sales_stage” Closed Won ist. Trifft dies nicht zu, werden keine Änderungen getätigt.

 

Informative Formel: Benachrichtigt den Nutzer über ein leeres Feld

{if $account_id|getEntityFieldValue:'ovt' == ''}Customer doesn't have OVT{/if}

Diese Formel überprüft, ob das Feld “ovt” leer ist. Trifft dies zu, erscheint dem Nutzer ein Informationstext auf der rechten Seitenhälfte “Customer doesn’t have OVT”.

 

Informative Formel: Benachrichtigt den Nutzer über ein ausgefülltes Feld

{if $passivation_date!= ''}The contact has a passivation date{/if}

Diese Formel überprüft, ob das Feld “passivation_date” leer ist. Trifft dies nicht zu, erscheint dem Nutzer ein Informationstext auf der rechten Seitenhälfte “The contact has a passivation date”.

 

Informative Formel: Benachrichtigt den Nutzer über eine ungültige Landesvorwahl

{if $bill_country|count_characters > 2}The country code of the billing country is invalid. Finland = FI, Sweden = SE, Norway = NO and Denmark = DK{/if}

Die Formel überprüft die Länge der angegebenen Landesvorwahl. Ist die Länge mehr als zwei Zeichen, informiert die Formel den Nutzer über dies mit der Warnung “The country code of the billing country is invalid…”. Solange die Zeichenanzahl nicht der Formel entspricht, kann die Entitätskarte nicht abgespeichert werden.

 

Abrufen des Preises eines Produkts, das mit einer Entität verknüpft ist

{$product_id|getEntityFieldValue:'purchase_price'}

Die Formel ruft den Preis des Products “product_id” aus dem Feld “purchase_price” auf und kopiert den Wert in das gewählte Zielfeld.

Hinweis! Eine ähnliche Formel kann auch für die Zeilenebene angewendet werden:

{$row.hdnProductId|getEntityFieldValue:'purchase_price'}

Abrufen des Kontakts des Projekts, wenn das Kontaktfeld leer ist

{if !$contact_id}{$project_id|getEntityFieldValue:'contact_id'}{else}{$contact_id}{/if}

Wenn das Kontaktfeld zum Beispiel auf einer Rechnung leer ist, ruft die Formel den Kontakt ab, der in dem mit der Rechnung im Feld verknüpften Projekt markiert ist. Wenn das Feld nicht leer ist, werden keine Änderungen daran vorgenommen.

 

Abrufen der E-Mail des verantwortlichen Benutzers im Textfeld

{$assigned_user_id|getUserFieldValue:'email1'}

Die Formel ruft die E-Mail-Adresse des Benutzers ab, die im Feld Verantwortlichkeit der Entität eingegeben wurde.

 

Erstellen eines öffentlichen Registrierungslinks für das Einladungsereignis, wenn die öffentliche Sichtbarkeit aktiviert ist

{if $anonymous_visibility==1}https://ITSEPALVELUPORTAALIN URL/public/events/{$id}{else} {/if}

Wenn das Feld “Öffentliche Sichtbarkeit des Einladungsereignisses” aktiviert ist, schreibt die Formel einen Link zur öffentlichen Registrierungsseite in das Feld. Andernfalls wird das Feld gelöscht.

Ein “gültig bis”-Feld 14 Tage vorverlegen, wenn das Feld leer ist
{if $validtill ==''}{'+ 14 days'|getDisplayDate:false}{else}{$validtill}{/if}

Diese Formel überprüft, ob das Feld “validtill” leer ist. Trifft dies zu, ändert die Formel den Wert des Feldes auf ein Datum, welches 14 Tage nach dem gegenwärtigen Datum liegt. Ist das Feld jedoch nicht leer, werden keine Änderungen getätigt.

 

Zählen von Tagen aus mehreren Feldern

{"$invoicedate + $payment_term days"|getDisplayDate:false}

Die Formel fügt dem Feld “invoicedate” die Anzahl von Tagen, die im Feld payment_term angegeben sind hinzu und füllt das Zielfeld mit dem neu ausgerechnetem Datum aus.

 

Füllen des Passivierungsdatums, wenn die Entität passiv ist

{if $passivation_date=='' && $passive=='1'}{'+ 0 days'|getDisplayDate:false}{else}{$passivation_date}{/if}

Die Formel füllt das Feld mit dem gegenwertigen Datum, wenn das “passivation_date”-Feld leer ist und die Entität als “passiv” vermerkt ist. Werden diese Bedringungen nicht erfüllt, werden keine Änderungen getätigt.

 

Automatische Überprüfung, ob das Produckt noch Garantielaufzeit hat

{assign var=today value='Y-m-d'|date}{assign var=date value=$cf_1234|getDBInsertDateValue}{if $today <= $date}1{/if}

Diese Formel vergleicht den Wert eines seperaten “Warranty valid till” Feldes cf_1234 mit dem gegenwärtigen Datum. Ist das gegenwärtige Datum weniger oder gleich mit dem Wert des Feldes “Warranty valid till”, wird das Feld “Warranty valid” automatisch aktiviert.

 

Telefonnummerformat aktualisieren und korrigieren

{assign var=pno value='/[^0-9]/'|preg_replace:'':$mobile}{if $pno|strpos:'0' === 0}358{$pno|substr:1}{else}{$pno}{/if}

Der erste Teil der Formel prüft, dass das Feld nur Nummern von 0-9 enthällt. Wenn ein ungültiges Zeichen gefunden wird, wird es mit einem Leerzeichen ersetzt. Der zweite Teil erzetzt die erste 0, bei einer mit 0 anfangenden Nummer, mit der Finnischen Vorwahl 358. Wenn sich die angegebene Nummer bereits im richtigen Format befindet, werden keine Änderungen getätigt.

 

Kontonummerformat aktualisieren und korrigieren

FI{assign var=pno value='/[^0-9]/'|preg_replace:'':$cf_pankkitili1}{$pno}

Die ersten 2 Buchstaben der Formel werden an den Anfang jedes Kontonummer angegeben (fixer Text). Der Teil innerhalb der Klammern stellt sicher, dass nur Zahlen zwischen 0 und 9 im Feldwert verwendet werden und keine Leerzeichen oder anderen Zeichen in der fertigen Kontonummer verbleiben. Wenn der Inhalt des Felds bereits in einem richtigen Format vorliegt, werden keine Änderungen vorgenommen. Im unteren Abschnitt dieser Anleitung finden Sie eine Validierungsformel, mit der die erforderliche Länge der Kontonummer überprüft werden kann und die Entität in anderen Fällen nicht gespeichert werden kann.

 

Speicherung der Aktivitätsart und der Namen der jeweils verknüpften Kontaktpersonen im Betreff-Feld

{if $subject ==''}{$activitytype} {foreach item=contact from=$Contacts name=cnt}{if !$smarty.foreach.cnt.first}, {/if}{$contact|getContactName}{/foreach}{else}{$subject}{/if}

Wenn das Betreff-Feld des Ereignisses leer ist, werden der Ereignistyp und die Namen aller mit dem Ereignis verknüpften Kontakte als Betreff festgelegt. Die Kontaktnamen werden durch Kommas (,) getrennt. Wenn keine Kontakte mit dem Ereignis verknüpft sind, steht im Betreff-Feld nur der Ereignistyp.

 

Multiplizieren von zwei Zahlen aus unterschiedlichen Feldern in ein drittes Feld + Das Festlegen der Anzahl von Dezimalstellen

{math equation="(x/z)*y" x=$cf_1100 y=$cf_1200 z=100 format="%.2f"}

Die Formel multipliziert die Zahlen in den beiden Feldern und platziert das Ergebnis im Zielfeld (einer der Werte wird auch durch 100 geteilt). Am Ende der Formel wird zudem noch definiert, dass das Ergebnis zwei Dezimalstellen aufweisen soll.

 

Berechnung der Zeit zwischen zwei Daten (in Tagen)

{assign var="start" value=$createdtime|strtotime}{assign var="end" value=$modifiedtime|strtotime}{floor(($end - $start) / (3600 * 24))}

Die genutzten Werte, die als Anfang und Ende der Zeitberechnung in dieser Beispielformel gwählt wurden, sind der Erstellungs- und Änderungszeitpunkt der Entität. Die Zeit (in Tagen) zwischen diesen Datumsangaben wird im letzten Teil der Formel berechnet.

 

Validierungsformel: Benachrichtigung über eine bestehende Firma mit demselben Namen

{if $id == ''}{assign var="id" value="0"}{/if}{assign var="c" value="crmid != `$id` AND crm_account.accountname"}{assign var="cnt" value='Accounts'|entity_count_by_field_value:$c:$accountname}{if $id && $cnt > 0}You are editing an entity and making a duplicate{elseif !$id && $cnt > 0}You are creating a new entity and making a duplicate{/if}

Die Validierungsformel prüft und verhindert, dass eine Firma mit demselben Namen wie eine andere, bereits im System bestehende Firma, benannt und gespeichert wird. Der Wert der Variablen cnt wird anhand der Anzahl derselben Firmennamen berechnet. Wenn mehrere Firmen mit demselben Namen vorhanden sind, benachrichtigt das System den Benutzer und verhindert, dass die Firma gespeichert wird. Der erste Teil der Formel überprüft den Fall der Bearbeitung einer bestehenden Firma (vergleich von bestehenden ID’s) und der zweite Teil den Fall von einer neu anzulegenden Firma (noch keine bestehende ID).

 

Validierungsformel: Der eingegebene Wert liegt innerhalb eines bestimmten Bereichs

{if $description <3}The value must be at least 3{elseif $description >28}The value must not exceed 28{/if}

Im Beispielfall prüft die Validierungsformel den im Beschreibungsfeld eingegebenen Wert und verhindert dessen Speicherung, wenn dieser kleiner als 3 oder größer als 28 ist. Der Text zwischen den Klammern wird dem Benutzer im Benachrichtigungsbereich angezeigt, falls der Wert nicht im angegebenen Bereich liegt.

 

Validierungsformel: Die eingegebene Kontonummer hat eine bestimmte Länge

{if $cf_bankaccount1|count_characters > 18}Die Kontonummer ist zu lang{elseif $cf_bankaccount1|count_characters < 18}Die Kontonummer ist zu kurz{/if}

Im Beispielfall prüft die Validierungsformel den Wert, der in das selbst erstellte (cf-Feld) Feld bankaccount1 eingegeben wurde, und verhindert, dass er gespeichert wird, wenn der Wert weniger als 18 oder mehr als 18 Zeichen beträgt. Der Text in rot zwischen den Klammern wird dem Nutzer im Benachrichtigungsbereich angezeigt, wenn der Wert nicht im zulässigen Bereich liegt.

 

Zeilenebenenformel: Reihenfolgenummer anzeigen

{$row.sequence_no}

Die Formel wird beim Speichern verwendet. Ein neues Feld (Nummer oder Text) muss für die Zeilenebene erstellt werden.

Die Formel funktioniert auch beim Speichern, wenn eine Zeile gelöscht oder auf andere Weise in  nach oben oder unten verschoben wird.
Hinweis: Wenn jedoch eine Produktzeile kopiert wird, funktioniert die Formel beim ersten Speichern nicht. Die Entität muss erneut in den Bearbeitungsmodus versetzt und gespeichert werden – dann wird die Reihenfolgenummer aktualisiert.

 

Validierungsformel: In das Feld können nur Zahlen eingegeben werden

{if !is_numeric($cf_feld)}Nur Zahlen sind erlaubt{/if}

Im Beispielfall überprüft die Validierungsformel den im selbst erstellten Textfeld (cf-field) eingegebenen Wert und verhindert, dass er gespeichert wird, wenn dieser andere Zeichen als Zahlen enthält. Der Text in Klammern wird dem Nutzer im Benachrichtigungsbereich angezeigt, wenn der eingegebene Wert nicht zulässig ist.

Dynamische Felder
Combined Shape