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