Für einige oft benötigte Aufgabenstellungen stehen in der Formelsprache die folgenden Funktionen zur Verfügung:
BAAbstract
BAAbstract([HTML-Spalte],AnzahlZeichen)
Diese Funktion liefert den textuellen Anteil einer HTML-Datenspalte gekürzt auf eine bestimmte Anzahl von Zeichen. Der ausgegebene Text wird bei Bedarf um drei Punkte am Ende ergänzt. Diese werden als ein Zeichen bei der Längenberechnung gezählt.
Beispiel | Erklärung |
---|---|
BAAbstract([Body],255) | Die Funktion gibt die ersten 254 Zeichen der HTML-Spalte „Body” aus und fügt drei Punkte an. |
BAContainsEnumValue
BAContainsEnumValue([EnumColumn_AllValues], 'Name der Auswahlliste', 'Übersetzung des Auswahllistenwerts')
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 Ergebnis 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. |
BAEllipsis
BAEllipsis('Sehr langer Text',AnzahlZeichen)
Diese Funktion gibt einen Text gekürzt auf eine bestimmte Anzahl von Zeichen aus. Der ausgegebene Text wird bei Bedarf um drei Punkte am Ende ergänzt. Diese werden als ein Zeichen bei der Längenberechnung gezählt.
Beispiel | Erklärung |
---|---|
BAEllipsis(‘Sehr langer Text’,5) | Die Funktion gibt aus: „Sehr…”. |
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 („application” oder „user”). |
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 Datumspalte, 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 den Zugriff auf einen Quelldatensatz.
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 den Zugriff auf einen Quelldatensatz. Sie ist vergleichbar mit „BAGetPrimarySource”, arbeitet aber direkt mit Relationstypen und Relationskategorien.
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. |
BAImplode
BAImplode(aggregate[, delimiter[, sort expressions ...]])
Die Funktion aggregiert Werte aus mehreren Datentabellen oder Teil-Datentabellen in einen Text. Dabei kann ein Trennzeichen zwischen den einzelnen Werten sowie die Sortierung der Werte bestimmt werden.
Parameter
- Der erste Parameter ist der String, der aggregiert werden soll.
- Trennzeichen ist standardmäßig der Leerstring
- Sortiert wird standardmäßig gar nicht.
- Es können mehrere Sortierspalten angegeben werden.
Beispiel | Erklärung |
---|---|
[RequiredAttendees].BAImplode(IsNull([DisplayName], [EmailAddress]), ‘, ‘, [SortOrder]) | Gibt aus allen „RequiredAttendees”-Teildatensätzen den Anzeigenamen oder wenn dieser leer ist die E-Mail-Adresse aus. Die Werte werden durch ein Komma getrennt und gemäß der Datenspalte [SortOrder] sortiert. |
[Addresses].BAImplode([PostalCode],’, ‘,[City],[Address]) | Gibt die Postleitzahlen aller „Adresses”-Teildatensätze (z.B. einer Firma) aus. Diese sind durch Komma getrennt und nach [City] und [Address] sortiert. |
[RelatedAdditionalResponsiblePersons].BAImplode([EntityTitle],’, ‘,[FirstName]) | Gibt in einer Maske den [EntityTitle] aller über die Relation „RelatedAdditionalResponsiblePersone” verbundenen Datensätze aus Diese sind durch ein Komma getrennt und nach [FirstName] sortiert. |
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. |