Calculated Fields Functions

Im Workflow-Manager ist es möglich, ein berechnetes Feld zu verwenden.

Dies ist eine SuiteCRM-Funktionalität, die hier dokumentiert ist: https://docs.suitecrm.com/user/advanced-modules/workflow-calculated-fields/

Die DataEngine fügt folgende Funktionen hinzu:

GetValueForKey

Signatur {GetValueForKey(parameter1;parameter2)}

Parameter

parameter1: Ein base64-kodiertes serialisiertes PHP-Array

parameter2: Der Schlüssel, den Sie abrufen möchten. Verwenden Sie ., um auf verschachtelte Schlüssel zuzugreifen

Beschreibung

Holen Sie einen Wert aus einem serialisierten PHP-Array nach Schlüssel.

Rückgabe

Der Wert für den Schlüssel oder null, wenn der Schlüssel nicht existiert.

Beispielaufruf

{GetValueForKey({P0};abc)} – Holen Sie den Wert für den Schlüssel abc aus dem serialisierten PHP-Array im Parameter 0.

{GetValueForKey({P0};abc.def)} – Holen Sie den Wert für den Schlüssel def in abc aus dem serialisierten PHP-Array im Parameter 0.

Base64Encode

Signatur {Base64Encode(parameter1)}

Parameter

parameter1: Der zu kodierende Zeichenfolge

Beschreibung

Kodieren Sie eine Zeichenfolge in Base64.

Rückgabe

Die Base64-kodierte Zeichenfolge.

Beispielaufruf

{Base64Encode(abc)} – Kodieren Sie die Zeichenfolge abc in Base64.

Base64Decode

Signatur {Base64Decode(parameter1)}

Parameter

parameter1: Die zu dekodierende base64-kodierte Zeichenfolge

Beschreibung

Dekodieren Sie eine base64-kodierte Zeichenfolge.

Rückgabe

Die dekodierte Zeichenfolge.

Beispielaufruf

{Base64Decode("YWJj")} – Dekodieren Sie die base64-kodierte Zeichenfolge YWJj zu abc.

CreateJSON

Signatur {CreateJSON(parameter1;parameter2;parameter3;...)}

Parameter

parameterX: Der Schlüssel und der Wert, die dem JSON-Objekt hinzugefügt werden sollen. Schlüssel und Wert werden durch einen Punkt . getrennt.

Beschreibung

Erstellen Sie ein JSON-Objekt aus den angegebenen Parametern.

Rückgabe

Die Zeichenfolge des JSON-Objekts.

Beispielaufruf

{CreateJSON(abc.def;ghi.jkl)} – Erstellen Sie ein JSON-Objekt {"abc":"def","ghi":"jkl"}.

{CreateJSON(name.{P0};value.{P1})} – Erstellen Sie ein JSON-Objekt {"name":<Wert von P0>,"value":<Wert von P1>}.

JsonExtract

Signatur {JsonExtract(parameter1;parameter2;parameter3)}

Parameter

parameter1: Die Zeichenfolge des JSON-Objekts

parameter2: Der abzurufende Schlüssel

parameter3: Der Standardwert, wenn der Schlüssel nicht existiert

Beschreibung

Holen Sie einen Wert aus einem JSON-Objekt nach Schlüssel.

Rückgabe

Der Wert für den Schlüssel oder der Standardwert, wenn der Schlüssel nicht existiert.

Beispielaufruf

{JsonExtract({P0};abc;default)} – Holen Sie den Wert für den Schlüssel abc aus dem JSON-Objekt im Parameter 0. Für {"abc":"def","ghi":"jkl"} würde def zurückgegeben.

{JsonExtract({P0};xyz;default)} – Holen Sie den Wert für den Schlüssel xyz aus dem JSON-Objekt im Parameter 0. Für {"abc":"def","ghi":"jkl"} würde default zurückgegeben.

JsonExplode

Signatur {JsonExplode(parameter1;parameter2;parameter3)}

Parameter

parameter1: Ein Zeichenfolgenwert, der durch parameter 2 getrennt ist

parameter2: Der Trennzeichen

parameter3: Standardwert. Vorsicht, dies gibt den Wert direkt zurück, nicht ein JSON-Array!

Beschreibung

Zerlegen Sie einen Zeichenfolgenwert in ein JSON-Array.

Rückgabe

Die Zeichenfolge des JSON-Arrays.

Beispielaufruf

{JsonExplode(abc;,;ghi)}

JsonImplode

Signatur {JsonImplode(parameter1;parameter2;parameter3)}

Parameter

parameter1: Ein JSON-Array-String

parameter2: Der Separator

parameter3: Standardwert. Wird nur verwendet, wenn das JSON ungültig ist!

Beschreibung

Implodiert ein JSON-Array zu einem Zeichenkettenwert.

Rückgabe

Der Zeichenkettenwert.

Beispielaufruf

{JsonImplode({P0};,;)} – Implodiert das JSON-Array aus Parameter 0 zu einem Zeichenkettenwert. Für ["abc","def","ghi"] wäre das Ergebnis abc,def,ghi.

{JsonImplode({P0};,;invalid_json)} – Wenn Parameter 0 kein gültiges JSON ist, wird der Standardwert invalid_json zurückgegeben.

Count

Signatur {count({BeanID};{RelatedModule};{Field};{DateField};{Operator};{Date})}

Parameter

BeanID: ID des Beans, von dem aus gestartet wird.

RelatedModule: Name der Beziehung wie im Studio definiert. Mehrere Beziehungen können mittels :: verknüpft werden (Von Kontakt zu Firma, Von Firma zu Rechnung). Kann leer sein, um alle Einträge in der Modultabelle zu zählen.

Field: Name des zu zählenden Feldes, beispielsweise id. Wenn hier ein anderes Feld als „id“ angegeben wird, wird überprüft, ob dieses Feld nicht leer ist. Dadurch kann ein anderes Ergebnis als das Zählen über „id“ zurückgegeben werden. Das Feld muss aus dem zuletzt genannten „RelatedModule“ stammen.

DateField: (Optional) Ein Datumsfeld aus dem zuletzt genannten „RelatedModule“, das für die Datumsfilterung verwendet wird.

Operator: (Optional) Ein Operator für die Datumsfilterung. Mögliche Operatoren sind lt, lte, gt, gte, eq, neq.

Date: (Optional) Ein Datum im Format Y-m-d H:i:s für die Datumsfilterung.

Beschreibung

Zählt die Einträge, die mit dem angegebenen Bean in Beziehung stehen. Es ist möglich, die Zählung basierend auf einem Datumsfeld im zugehörigen Modul zu filtern, beispielsweise für „Nur Rechnungen der letzten 2 Jahre“. Falls ein Feld angegeben ist, darf dieses nicht leer sein.

Rückgabe

Anzahl der Ergebnisse.

Beispielaufrufe

{count({P0};;id)} – Zählt alle Einträge im aktuellen Modul

{count({P0};core_accounts_core_contracts;contract_volume)} – Zählt die Verträge des aktuellen Accounts mit nicht leerem Volumen

{count({P0};core_accounts_core_contracts;contract_volume;last_invoice;gt;{subtractYears(Y-m-d;{now(Y-m-d)};2)})} – Zählt die Verträge des aktuellen Accounts mit nicht leerem Volumen, die in den letzten zwei Jahren eine Rechnung erhalten haben.

{count({P0};core_accounts_core_contacts::core_accounts_core_contracts;contract_volume)} – Zählt die Verträge des Accounts des aktuellen Kontakts mit nicht leerem Volumen.

Sum

Signatur {sum({BeanID};{RelatedModule};{Field};{DateField};{Operator};{Date})}

Parameter

BeanID: ID des Beans, von dem aus gestartet wird.

RelatedModule: Name der Beziehung wie im Studio definiert. Mehrere Beziehungen können mittels :: verknüpft werden (Von Kontakt zu Firma, Von Firma zu Rechnung). Kann leer sein, um alle Einträge in der Modultabelle zu summieren.

Field: Name des zu summierenden Feldes aus dem zuletzt genannten „RelatedModule“.

DateField: (Optional) Ein Datumsfeld aus dem zuletzt genannten „RelatedModule“, das für die Datumsfilterung verwendet wird.

Operator: (Optional) Ein Operator für die Datumsfilterung. Mögliche Operatoren sind lt, lte, gt, gte, eq, neq.

Date: (Optional) Ein Datum im Format Y-m-d H:i:s für die Datumsfilterung.

Beschreibung

Summiert die Werte der Einträge, die mit dem angegebenen Bean in Beziehung stehen. Es ist möglich, die Summierung basierend auf einem Datumsfeld im zugehörigen Modul zu filtern, beispielsweise für „Nur Rechnungen der letzten 2 Jahre“.

Rückgabe

Summe

Beispielaufrufe

{sum({P0};;amount)} – Summiert die Beträge über alle Einträge im aktuellen Modul

{sum({P0};core_accounts_core_contracts;contract_volume)} – Summiert das Vertragsvolumen der Verträge des aktuellen Accounts

{sum({P0};core_accounts_core_contracts;contract_volume;last_invoice;gt;{subtractYears(Y-m-d;{now(Y-m-d)};2)})} – Summiert das Vertragsvolumen der Verträge des aktuellen Accounts, die in den letzten zwei Jahren eine Rechnung erhalten haben.

{sum({P0};core_accounts_core_contacts::core_accounts_core_contracts;contract_volume)} – Summiert das Vertragsvolumen der Verträge des Accounts des aktuellen Kontakts