Für einige oft benötigte Aufgabenstellungen stehen in der Formelsprache die folgenden Funktionen zur Verfügung:
BACurrentUser
BACurrentUser(Formel)
Die Funktion liefert das aktuelle Benutzerprofil oder optional das Ergnis einer Formel, die auf das aktuelle Benutzerprofil ausgeführt wird, zurück.
Beispiel | Erklärung |
---|---|
[CreatedBy] = BACurrentUser() |
Könnte in einem Ansichtenfilter benutzt werden, um nur Datensätze anzuzeigen, die der aktuelle Benutzer angelegt hat. |
BACurrentUser([EntityTitle]) |
Könnte in einem berechneten Maskenfeld verwendet sein, um den EntityTitle des aktuellen Benutzers auszugeben. |
BACurrentUser([FirstName] + ' ' + [LastName]) |
Könnte in einer Ansichtenspalte Vor- und Nachnamen des aktuellen Benutzers ausgeben. |
BAToCurrentTimeZone
BAToCurrentTimeZone([Column])
Wenn in Formeln auf Datenspalten des Typs „Datum-Zeit” zugegriffen wird, um mit diesen Berechnungen auszuführen, werden diese nicht automatisch von UTC in die lokale Zeitzone des Benutzers umgerechnet. Hierfür dient diese Funktion. Als Parameter muß eine Datenspalte angegeben werden.
Beispiel | Erklärung |
---|---|
GetDay(BAToCurrentTimeZone([Created])) + ' / ' + GetMonth(BAToCurrentTimeZone([Created])) |
Gibt Tag und Monat des Erstelldatums eines Datensatzes in der lokalen Zeitzone des Benutzers aus. |
BATranslate
BATranslate({Guid}, 'Sprache')
Die Formel gibt eine Übersetzung in der Benutzersprache oder einer optional angegebenen Sprache aus. Als Paramter muss die GUID der Übersetzung angegeben werden und optional der ISO-Code der gewünschten Sprache.
Beispiel | Erklärung |
---|---|
BATranslate({eb4095d7-9032-46f8-8156-9fc6c3eefcde}) |
Gibt die zur GUID passende Übersetzung in der Benutzersprache aus. |
BATranslate({eb4095d7-9032-46f8-8156-9fc6c3eefcde}, 'en') |
Gibt die zur GUID passende Übersetzung in englisch aus. |
BATranslateText
BATranslateText('Text', 'Sprache')
Die Formel gibt eine Übersetzung in der Benutzersprache oder einer optional angegebenen Sprache aus. Als Paramter muss ein kompletter Text in einer beliebigen Sprache angegeben werden und optional der ISO-Code der gewünschten Sprache. Wenn der Text nicht eindeutig ist, wird zufällig eine der Übersetzungen in der gewünschten Sprache zurückgegeben.
Beispiel | Erklärung |
---|---|
BATranslateText('Company structure') |
Gibt die Übersetzung in der Benutzersprache aus |
BATranslateText('Firmenstruktur', 'en') |
Gibt die Überstzung in englisch aus. |
BATranslateEnum
BATranslateEnum([EnumColumn], 'Sprache')
Diese Funktion liefert einen Auswahllistenwert in der Benutzersprache oder einer optional angegebenen Sprache aus. Als Paramter muss eine Spalte vom Typ „Auswahlliste” angegeben werden und optional der ISO-Code der gewünschten Sprache.
Beispiel | Erklärung |
---|---|
BATranslateEnum([EmailAddressType]) |
Die Formel liefert den in der angegebenen Datenspalte ausgewählten Auswahlwert in der Benutzersprache zurück. |
BATranslateEnum([EmailAddressType], 'en') |
Die Formel liefert den in der angegebenen Datenspalte ausgewählten Auswahlwert in englisch zurück. |
BAIsEqualEnumValue
BAIsEqualEnumValue([EnumColumn], 'Name der Auswahlliste', 'Übersetzung des Auswahlistenwerts')
Diese Funktion überprüft, ob der Wert in einer Datenspalte des Type „Auswahlliste” einem bestimmten Auswahlwert einer bestimmten Auswahlliste entspricht. Als Parameter müssen die Datenspalte, der Name der Auswahlliste sowie der Auswahllistenwert in einer beliebigen Sprache angegeben werden.
Beispiel | Erklärung |
---|---|
Iif(BAIsEqualEnumValue([ContactFunction_AllValues], 'Functions', 'Aufsichtsrat'), 'Sehr wichtige Person', '') |
Die Formel gibt „Sehr wichtige Person” aus, wenn in der Datenspalte „ContactFunction” der Wert „Aufsichtsrat” ausgewählt ist. |
[AddressType] = {eb7852ef-9ba5-47f6-ab68-82fb891a2943} |
Alternative ohne BAIsEqualEnumValue. |
BAContainsEnumValue
BAContainsEnumValue([EnumColumn_AllValues], 'Name der Auswahlliste', 'Übersetzung des Auswahlistenwerts')
Diese Funktion überprüft, ob die Werte in einer Datenspalte des Type „Auswahlliste” einem bestimmten Auswahlwert einer bestimmten Auswahlliste enthalten. Als Parameter müssen die Datenspalte, der Name der Auswahlliste sowie der Auswahllistenwert in einer beliebigen Sprache angegeben werden.
Beispiel | Erklärung |
---|---|
Iif(BAContainsEnumValue([AddressTags_AllValues], 'Address tags', 'Major customer'), 'Wichtiger Kunde', '') |
Die Formel gibt „Wichtiger Kunde” aus, wenn in der Datenspalte „AddressTags” der Wert „Major customer” ausgewählt ist. |
Contains([AddressType_AllValues], 'EB7852EF-9BA5-47F6-AB68-82FB891A2943') |
Alternatives Beispiel ohne BAContainsEnumValue. Hierbei muß die GUID als Text und in Großbuchstaben angegeben werden. |
BAGetEnumValueAdditional[Datentyp]
bc.BAGetEnumValueAdditional[Datentyp]([EnumColumn], ‘Name der Auswahlliste’, ‘Feldname’)
Diese Reihe von Funktionen liefert einen zusätzlichen Wert eines ausgwewählten Auswahlwertes zurück. Als Parameter müssen die Datemspalte, der Name der Auswahlliste sowie das zusätzliche Feld angegeben werden.
Je nach Datentyp des Feldes muss der Funktionsnamen ergänzt werden:
_.Datentyp | Funktion |
---|---|
Text | BAGetEnumValueAdditionalText |
Ganzzahl | BAGetEnumValueAdditionalInt |
Datum | BAGetEnumValueAdditionalDate |
Dezimalzahl | BAGetEnumValueAdditionalDecimal |
Beispiel | Erklärung |
---|---|
BAGetEnumValueAdditionalText([Country], 'Countries', 'ISOCode') |
Ausgabe des ISO Codes eines ausgewählten Landes. |
[ExpectedTurnover] * BAGetEnumValueAdditionalDecimal([Probability], 'Opportunity probabilities', 'NumericValue') |
Berechnung des bewerteten Umsatzes einer Verkaufschance. |
BAGetPrimarySource
BAGetPrimarySource('<Datentabelle der RelDef>', 'Relationsdefinition', Stufe, '<Ergebnis Datentabelle>', Formel)
Die Formel ermöglicht nur in Ansichten und Kalenderansichten den Zugriff auf einen Quelldatensatz. An allen anderen Stellen müssen direkt die Relationsdefinitionen verwendet werden.
Parameter:
- Datentabelle aus der die Relationsdefinition ausgelesen wird.
- Die Relationsdefinition.
- Entweder Text mit ‘direct’, ‘top’ oder ‘nearest’ oder eine positive Zahl für den Level in der Hierachie. Bei ? wird ‘direct’ verwendet. Außer für den direkten Vorgänger wird immer ein hierarchischer Relationstyp benötigt.
- Definition der möglichen Datentabellen. Wenn ? angegeben wird, werden alle Quellen der Relationsdefinition verwendet. Datentabellen werden kommasepariert angegeben.
- Optional: Formel. Besteht das Ergebnis aus verschiedenen Datentabellen, kann nur auf die gemeinsamen Datenspalten zugegriffen werden.
Beispiel | Erklärung |
---|---|
BAGetPrimarySource('<OrmCRMContact>', 'RelatedCompany', 'direct', ?, [Name]) |
Der direkte Vorgänger wird ermittelt. Als Ergebnis-Datentabelle wird wegen der Relationsdefinition immer eine Firma zurückgelefert, weswegen man direkt auf eine Datenspalte der „Firma” zugreifen kann. |
BAGetPrimarySource('<OrmActivityBase>', 'RelatedParents', ?, ?, [EntityTitle]) |
Der direkte Vorgänger wird ermittelt. Die Ergebnis-Datentabelle kann wegen der Relationsdefinition eine beliebige Datentabelle sein, weswegen man nur auf gemeinsame Datenspalten zugreifen kann. |
BAGetPrimarySource('<OrmActivityBase>', 'RelatedParents', 'Top', '<OrmCRMCompany>', [Name]) |
Der oberste Vorgänger aus der Datentabelle „Firma” wird ermittelt. |
BAGetPrimarySource('<OrmActivityBase>', 'RelatedParents', 'Top', ?, [Common_EntityTitle]) |
Der oberste Vorgänger aus einer beliebigen Datentabelle wird ermittelt. |
BAGetPrimarySource('<OrmActivityBase>', 'RelatedParents', 'Nearest', '<OrmCRMCompany>,<OrmCRMContact>', [EntityTitle]) |
Der näheste Vorgänger aus der Datentabelle „Firma” oder „Kontakt” wird ermittelt. |
BAGetPrimarySource('<OrmActivityBase>', 'RelatedParents', 2, ?, [EntityTitle]) |
Der zweite Vorgänger aus siner beliebigen Datentabelle wird ermittelt. |
Iif(IsNull(BAGetPrimarySource('<OrmActivityBase>', 'RelatedParents', 'Nearest', '<OrmCRMContact>')), 'Nur Firma', 'Kontakt vorhanden') |
Wenn kein nähester Vorgänger aus der Datentabelle „Kontakt” existiert wird ‘Nur Firma’ sonst ‘Kontakt vorhanden’ ausgegeben. |
Iif(IsNull(BAGetPrimarySource('<OrmCRMContact>', 'RelatedCompany', ?, ?)), 'Kein direkte Firma', BAGetPrimarySource('<OrmCRMContact>', 'RelatedCompany', ?, ?, [Name])) |
Wenn kein direkter Vorgämger aus der Datentabelle „Firma” existiert wird ‘Keine direkte Firma’ sonst der Firmanname ausgegeben. |
BAGetPrimarySource('<OrmFollowUp>', 'RelatedParents', 'Nearest', '<OrmCRMCompany>', BAGetPrimarySource('<OrmCRMCompany>', 'RelatedResponsiblePerson', ?, ?)) = BACurrentUser() |
Der Betreuer der nähesten Firma wird mit dem aktuellen Benutzer verglichen. |
BAGetPrimarySource('<OrmFollowUp>', 'RelatedParents', 'Nearest', '<OrmCRMCompany>', BAGetPrimarySource('<OrmCRMCompany>', 'RelatedResponsiblePerson', ?, ?, [LastName])) |
Der Nachname des Betreuers der nähesten Firma. |