Für einige oft benötigte Aufgabenstellungen stehen in der Formelsprache die folgenden Funktionen zur Verfügung:

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.

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 verwendet worden sein, um den EntityTitle des aktuellen Benutzers auszugeben.
BACurrentUser([FirstName] + ' ' + [LastName]) Könnte in einer Ansichtenspalte Vor- und Nachnamen des aktuellen Benutzers ausgeben.

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], '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 in Ansichten.
[AddressType.Oid] = {eb7852ef-9ba5-47f6-ab68-82fb891a2943} Alternative ohne BAIsEqualEnumValue an allen Stellen außer Ansichten.

BAGetConfigValue[Datentyp]

BAGetConfigValue[Datentyp]('Feldname', 'Konfigurationstyp', 'Subkonfiguration' )
Parameter Erklärung
Feldname Name der abzurufenden Eigenschaft (benötigt)
Konfigurationstyp Typ der abzurufenden Konfiguration (bislang wird nur “application” unterstützt.)
Subkonfiguration Name der zugehörigen Subkonfiguration (optional). Der Name der Subkonfiguration kann (muss aber nicht) mit “ApplicationSubConfiguration” beginnen, das heißt, dass für diesen Parameter der Wert “ApplicationSubConfigurationLDAP” genauso gültig ist wie nur “LDAP”. Weiterhin kann hier neben den tatsächlichen Subkonfigurationen auch der Name “Basic” angegeben werden, um auf die Werte der Basisgruppe zuzugreifen.

Verwenden Sie die folgenden Funktionen, um Werte aus Anwendungs- oder Benutzerkonfiguration abzurufen:

Je nach Datentyp des Feldes muss der Funktionsnamen ergänzt werden:

_.Datentyp Funktion Rückgabewert
Text BAGetConfigValueText Der Rückgabewert ist die String-Representation (.ToString()) des im entsprechenden Feld gespeicherten Werts, ggf auch “null”.
Boolean BAGetConfigValueBoolean Der Rückgabewert ist FALSE, wenn der Text des gespeicherten Werts null oder nicht “true”, “on” oder “1” ist. In letzteren Fällen wird TRUE zurückgeliefert.
Ganzzahl BAGetConfigValueInt Der Rückgabewert ist entweder der ganzzahlige Wert, der direkt in dem entsprechenden Feld steht oder der Versuch den Text des Feldes als int zu interpretieren. Ist beides nicht zutreffend, wird 0 zurückgegeben.
Datum BAGetConfigValueDate Der Rückgabewert ist der im entsprechenden Feld gespeicherte DateTime-Wert oder null.
Dezimalzahl BAGetConfigValueDecimal Der Rückgabewert ist der im entsprechenden Feld gespeicherte Decimal-Wert oder 0.
Beispiel Erklärung
BAGetConfigValueText('ApplicationName', 'Application') Abruf des Anwendungsnamens
BAGetConfigValueInt('LDAPPort', 'Application', 'LDAP') Abruf des LDAP-Ports als Zahl
BAGetConfigValueBoolean('AutomaticProjectInquiry', 'User', 'Project') Abruf der automatischen Projektabfrageeinstellung

BAGetEnumValueAdditional[Datentyp]

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 einer 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.

BAGetPrimarySourceByRelation

BAGetPrimarySourceByRelation('Relation', 'Relationskategorie', Stufe, '<Ergebnis Datentabelle>', Formel)

Die Formel ermöglicht nur in Ansichten und Kalenderansichten den Zugriff auf einen Quelldatensatz. Sie ist vergleichbar mit „BAGetPrimarySource”, arbeitet aber direkt mit Relationstypen und Relationskategorien. Sie kann in Ansichten und Kalenderansichten verwendet werden.

Parameter:

  • Relationstyp als String oder GUID.
  • Optionale Relationskategorie als String oder GUID. Wenn keine gewählt werden soll: ?
  • 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
BAGetPrimarySourceByRelation('Parent', 'To', ?, '<OrmCRMOpportunity>', [ExpectedClosingDate]) Aus dem direkten Vorgänger der Parent-Relation mit Relationskategorie „To” vom Typ wird die angegebene Datenspalte ausgegeben.
BAGetPrimarySourceByRelation('AF6FD532-FDE0-4732-964B-648B6E8B8415', ?, 'top', '<OrmCRMCompany>', [Name]) Hier ist der Relationstyp als GUID angegeben, es wird keine Relationskategorie ausgewertet und aus dem obersten Datensatz des Tys wird der Name ausgegeben.

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.

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.

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.