Extra Form Fields
Extra Form Fields ermöglichen es Ihnen, benutzerdefinierte Salesforce-Felder zu Formularen im Employee Hub hinzuzufügen. Sie erscheinen neben den Standardfeldern und können mit bedingter Sichtbarkeit, benutzerdefinierten Anforderungen und dynamischen Lookup-Filtern konfiguriert werden.
Übersicht
Extra Form Fields werden mithilfe des Custom Metadata Type flair__Extra_Form_Field__mdt konfiguriert. Sie definieren zusätzliche Felder, die in Formularen erscheinen – sie ersetzen nicht den Standard-Feldsatz, sondern erweitern ihn.
Unterstützte Formulare
Extra Form Fields können zu folgenden Formularen hinzugefügt werden:
- Abwesenheitsantragsformular (
flair__Absence__c.RequestAbsence) - Abwesenheits-Manager-Details (
flair__Absence__c.ManagerDetails) - Ausgabenantragsformular (
flair__Expense__c.RequestExpense) - Ausgaben-Details (
flair__Expense__c.Details) - Ausgabenposten-Antragsformular (
flair__Expense_Item__c.RequestExpenseItem) - Projekt-Benutzer-Details (
flair__Project__c.UserDetails) - Projekt-Manager-Details (
flair__Project__c.ManagerDetails) - Projektzeiteintrags-Bearbeitung (
flair__Project_Time_Entry__c.Edit)
Ein Extra Form Field erstellen
Schritt 1: Auf Custom Metadata zugreifen
- Navigieren Sie zu Setup in Salesforce
- Geben Sie im Feld „Schnellsuche" Custom Metadata Types ein
- Finden Sie Flair Extra Form Field und klicken Sie auf Manage Records
Schritt 2: Einen neuen Datensatz erstellen
- Klicken Sie auf New, um einen neuen Extra Form Field-Datensatz zu erstellen
- Füllen Sie die erforderlichen Konfigurationsfelder aus
Schritt 3: Feldeigenschaften konfigurieren
Erforderliche Felder
- Object API Name: Der API-Name des Salesforce-Objekts (z. B.
flair__Expense__c,flair__Absence__c,MyOrg_Date__c) - Field API Name: Der API-Name des benutzerdefinierten Feldes, das Sie anzeigen möchten (z. B.
flair__Amount__c,flair__Description__c)
Optionale Konfiguration
- Required: Überschreiben Sie die „Required"-Eigenschaft des Salesforce-Feldes. Aktivieren Sie dieses Kontrollkästchen, um das Feld im Formular erforderlich zu machen, auch wenn es in Salesforce nicht erforderlich ist.
- Active: Aktivieren oder deaktivieren Sie das Feld. Deaktivieren Sie es, um das Feld vorübergehend auszublenden, ohne die Konfiguration zu löschen.
- Form Id: Wenn angegeben, erscheint das Feld nur im Zielformular. Lassen Sie es leer, um es in allen Formularen für dieses Objekt anzuzeigen.
- Beispiel:
flair__Absence__c.RequestAbsencezeigt das Feld nur im Abwesenheitsantragsformular an
- Beispiel:
- Position: Numerischer Wert, der die Anzeigereihenfolge der Felder steuert (niedrigere Zahlen erscheinen zuerst)
- Visibility Condition: JSON-basierte Bedingung, die steuert, wann das Feld sichtbar ist (siehe Sichtbarkeitsbedingungen)
- Lookup SOQL Filter: SOQL WHERE-Klausel zum Filtern von Lookup-Referenzoptionen (siehe Lookup-Filter)
- Visible Lines: Anzahl der anzuzeigenden Zeilen für mehrzeilige Text Area-Felder
Unterstützte Feldtypen
Extra Form Fields unterstützen die folgenden Salesforce-Feldtypen:
- Text Area
- Long Text Area
- Date
- Time
- DateTime
- Picklists
- Lookup References
- Number
Sichtbarkeitsbedingungen
Sichtbarkeitsbedingungen ermöglichen es Ihnen, Felder basierend auf Formularwerten, Datensatztypen oder Kontextparametern anzuzeigen oder auszublenden. Bedingungen werden mithilfe von JSON-basierten Kriterien definiert (ähnlich der MongoDB-Abfragesyntax).
Grundlegende Beispiele
Feld nur für bestimmten Datensatztyp anzeigen:
{
"$formValues.recordTypeName": "Travel_Expense"
}
Feld nur für bestimmte Abwesenheitskategorie anzeigen:
{
"$contextParams.absenceCategoryName": "Sickness"
}
Feld für bestimmte Werte ausblenden:
{
"$contextParams.absenceCategoryName": {"$ne": ["Sickness", "Home Leave"]}
}
Erweiterte Beispiele
Logische ODER-Bedingung:
{
"$or": [
{ "$formValues.recordTypeName": "Travel_Expense" },
{ "$formValues.recordTypeName": "Default_Expense" }
]
}
Komplexe logische Bedingungen:
{
"$or": [
{ "$formValues.recordTypeName": "Travel_Expense" },
{
"$and": [
{ "$contextParams.absenceCategoryName": { "$ne": ["Sickness", "Home Leave"] } },
{ "$formValues.recordTypeName": "Default_Expense" }
]
}
]
}
Unterstützte Operatoren
$eq: Gleich (Standard, wenn kein Operator angegeben ist)$ne: Ungleich$or: Logisches ODER$and: Logisches UND
Unterstützte Schlüssel
$formValues.recordTypeName: Verwenden Sie den Record Type Name (API-Name), nicht das Record Type Label$contextParams.*: Verfügbare Kontextparameter hängen vom Formular ab:- Abwesenheitsantragsformular:
absenceCategoryName,employeeAbsenceCategory - Projektzeiteintrags-Bearbeitung:
day,project,employee
- Abwesenheitsantragsformular:
Lookup-Filter
Für Lookup-Referenzfelder können Sie SOQL WHERE-Kriterien angeben, um verfügbare Optionen dynamisch zu filtern.
Grundlegende Beispiele
Mitarbeiter nach Manager filtern:
flair__Manager__c = :currentEmployee.Manager__c
Nach Kontextparameter filtern:
Absence_Category__c = :contextParams.employeeAbsenceCategory.flair__Absence_Category__c
Mit LIKE-Operator filtern:
flair__Manager__r.Name LIKE '%:currentEmployee.flair__First_Name__c%'
Unterstützte Parameter
:currentEmployee: Verweist auf den Datensatz des aktuellen Mitarbeiters- Beispiel:
:currentEmployee.flair__First_Name__c - Beispiel:
:currentEmployee.Manager__c
- Beispiel:
:contextParams: Verweist auf Kontextparameter, die an das Formular übergeben werden- Beispiel:
:contextParams.employeeAbsenceCategory.flair__Absence_Category__c
- Beispiel:
Erweitertes Beispiel
Ensurance_Number__c LIKE ':currentEmployee.Ensurance_Number__c%'
AND Some_Employee__c = :currentEmployee.flair__Manager__r.flair__Manager__c
Häufige Anwendungsfälle
Ärztliches Attest-Feld für Krankheitsabwesenheiten
Zeigen Sie ein „Ärztliches Attest-ID"-Feld nur an, wenn Krankheitsabwesenheiten beantragt werden:
- Erstellen Sie das benutzerdefinierte Feld
flair__Medical_Certificate_ID__caufflair__Absence__c - Erstellen Sie ein Extra Form Field mit:
- Object API Name:
flair__Absence__c - Field API Name:
flair__Medical_Certificate_ID__c - Form Id:
flair__Absence__c.RequestAbsence - Visibility Condition:
{
"$contextParams.absenceCategoryName": "Sickness"
}
- Object API Name:
Ausgaben-Allowance-Lookup gefiltert nach Mitarbeiter
Erstellen Sie ein Ausgaben-Allowance-Lookup, das nur Allowances für den aktuellen Mitarbeiter anzeigt:
- Erstellen Sie ein Lookup-Feld
flair__Expense_Allowance__caufflair__Expense__c - Erstellen Sie ein Extra Form Field mit:
- Object API Name:
flair__Expense__c - Field API Name:
flair__Expense_Allowance__c - Lookup SOQL Filter:
flair__Employee__c = :currentEmployee.Id
- Object API Name:
Datensatztypspezifische Felder
Zeigen Sie verschiedene Felder basierend auf dem Ausgaben-Datensatztyp an:
- Erstellen Sie Felder für Reiseausgaben (z. B.
flair__Flight_Number__c) - Erstellen Sie ein Extra Form Field mit:
- Object API Name:
flair__Expense__c - Field API Name:
flair__Flight_Number__c - Visibility Condition:
{
"$formValues.recordTypeName": "Travel_Expense"
}
- Object API Name:
Best Practices
- Verwenden Sie beschreibende Feldnamen: Machen Sie deutlich, wofür das Feld dient
- Testen Sie Sichtbarkeitsbedingungen: Überprüfen Sie, ob Felder korrekt erscheinen und ausgeblendet werden, basierend auf Ihren Bedingungen
- Legen Sie angemessene Positionen fest: Verwenden Sie Positionswerte, um die Feldreihenfolge logisch zu steuern
- Dokumentieren Sie benutzerdefinierte Felder: Behalten Sie den Überblick darüber, welche benutzerdefinierten Felder für Extra Fields verwendet werden
- Verwenden Sie Form Id sparsam: Geben Sie Form Id nur an, wenn Sie das Feld in einem bestimmten Formular benötigen; lassen Sie es andernfalls leer, um es in allen Formularen anzuzeigen
Fehlerbehebung
Feld erscheint nicht
- Überprüfen Sie, ob Active aktiviert ist
- Überprüfen Sie, ob Object API Name und Field API Name korrekt sind (verwenden Sie API-Namen, nicht Labels)
- Stellen Sie sicher, dass das Feld auf dem Salesforce-Objekt existiert
- Überprüfen Sie die Visibility Condition-Syntax, wenn eine festgelegt ist
- Überprüfen Sie, ob Form Id mit dem Formular übereinstimmt, das Sie anzeigen
Lookup-Filter funktioniert nicht
- Überprüfen Sie, ob die SOQL-Syntax korrekt ist
- Überprüfen Sie, ob Parameternamen genau übereinstimmen (
:currentEmployee,:contextParams) - Stellen Sie sicher, dass referenzierte Felder auf den Objekten existieren
- Testen Sie die SOQL-Abfrage direkt in der Salesforce Developer Console
Sichtbarkeitsbedingung funktioniert nicht
- Überprüfen Sie, ob die JSON-Syntax gültig ist
- Überprüfen Sie, ob Record Type Name den API-Namen verwendet, nicht das Label
- Stellen Sie sicher, dass Kontextparameter für den Formulartyp verfügbar sind
- Testen Sie zunächst mit einfacheren Bedingungen und bauen Sie dann die Komplexität auf