Extra Form Fields konfigurieren
Fügen Sie mit Extra Form Fields benutzerdefinierte Salesforce-Felder zu bestehenden Employee Hub-Formularen hinzu. Konfigurieren Sie jedes Feld mit flair__Extra_Form_Field__mdt, ohne den Standardfeldsatz des Formulars zu ersetzen.
Salesforce-Admins, die Felder und den Custom Metadata Type Flair Extra Form Field in Salesforce Setup verwalten. Mitarbeiter sehen die Felder im Employee Hub.
Bevor Sie beginnen
- Erstellen Sie das benutzerdefinierte Feld auf dem Salesforce-Zielobjekt.
- Notieren Sie den API-Namen des Objekts und den API-Namen des Feldes.
- Ermitteln Sie die Form ID, wenn das Feld nur in einem Formular erscheinen soll.
Unterstützte Formulare prüfen
| Formular | Form ID |
|---|---|
| Absence Request Form | flair__Absence__c.RequestAbsence |
| Absence Manager Details | flair__Absence__c.ManagerDetails |
| Expense Request Form | flair__Expense__c.RequestExpense |
| Expense Details | flair__Expense__c.Details |
| Expense Item Request Form | flair__Expense_Item__c.RequestExpenseItem |
| Project User Details | flair__Project__c.UserDetails |
| Project Manager Details | flair__Project__c.ManagerDetails |
| Projects Time Entry Edit | flair__Project_Time_Entry__c.Edit |
| Mitarbeiterdetail-Panel | flair__Employee__c.DirectoryDetails |
| Zertifikatsformular | flair__Certificate_Association__c.Save |
| Inventarartikel-Details | flair__Inventory_Item__c.Details |
| Zeiteintragsformular | flair__Time_Entry__c.Edit |
| Zeiteintragsformular, nur für Manager sichtbare Felder | flair__Time_Entry__c.ManagerDetails |
| Formular für Zeiteintrags-Änderungsanfragen | flair__Time_Entry_Change_Request__c.Edit |
| Formular für Zeiteintrags-Änderungsanfragen, nur für Manager sichtbare Felder | flair__Time_Entry_Change_Request__c.ManagerDetails |
| Formular für neue Tickets | flair__Ticket__c.CreateTicket |
| Ticketdetails | flair__Ticket__c.Details |
| Schicht-Seitenpanel | flair__Shift__c.Details |
| Kandidatendetails | flair__Candidate__c.EvaluationForm |
| Details der Genehmigungsanfrage | Objekt-API-Name.ApprovalDetails, zum Beispiel flair__Absence__c.ApprovalDetails |
| Abwesenheitskategorie-Formular in Salesforce | flair__Absence_Category__c.Edit |
Kandidatendetails und Details der Genehmigungsanfrage zeigen Feldwerte an, lassen aber keine Bearbeitung zu. Verwenden Sie für Details der Genehmigungsanfrage den API-Namen des Objekts, zu dem die Genehmigungsanfrage gehört.
Das Abwesenheitskategorie-Formular läuft in Salesforce, nicht im Employee Hub. Sichtbarkeitsbedingung und SOQL-Filter nachschlagen haben dort keine Wirkung, und Erforderlich hat keine Wirkung auf Checkbox-Felder.
Für Zeiteinträge siehe Zeiteintragsfelder konfigurieren.
Unterstützte Salesforce-Feldtypen sind Text Area, Long Text Area, Date, Time, DateTime, Picklist, Lookup Reference und Number.
Extra Form Field erstellen
- Geben Sie in Salesforce Setup unter Quick Find
Custom Metadata Typesein. - Öffnen Sie Custom Metadata Types.
- Klicken Sie neben Flair Extra Form Field auf Manage Records.
- Klicken Sie auf New.
- Geben Sie unter Objekt-API-Name das Zielobjekt ein, zum Beispiel
flair__Expense__coderflair__Absence__c. - Geben Sie unter Feld-API-Name das anzuzeigende Feld ein, zum Beispiel
flair__Amount__coderflair__Description__c. - Konfigurieren Sie optionale Einstellungen unter Extra Form Field-Einstellungen prüfen.
- Klicken Sie auf Save.

Extra Form Field-Einstellungen prüfen
| Einstellung | Funktion |
|---|---|
| Objekt-API-Name | Identifiziert das Salesforce-Objekt. Diese Einstellung ist erforderlich. |
| Feld-API-Name | Identifiziert das anzuzeigende benutzerdefinierte Feld. Diese Einstellung ist erforderlich. |
| Erforderlich | Macht das Feld im Employee Hub-Formular zum Pflichtfeld, auch wenn Salesforce es nicht erfordert. |
| Aktiv | Zeigt das Feld an. Deaktivieren Sie die Option, um das Feld auszublenden, ohne den Metadatendatensatz zu löschen. |
| Formular ID | Beschränkt das Feld auf ein Formular. Lassen Sie den Wert leer, um das Feld in allen unterstützten Formularen des Objekts anzuzeigen. |
| Position | Legt die Anzeigereihenfolge fest. Niedrigere Zahlen erscheinen zuerst. |
| Sichtbarkeitsbedingung | Speichert die JSON-Bedingung, die die Sichtbarkeit des Feldes steuert. |
| SOQL-Filter nachschlagen | Speichert eine SOQL-WHERE-Klausel zum Filtern von Lookup-Optionen. |
| Sichtbare Linien | Legt die Anzahl der sichtbaren Zeilen für einen mehrzeiligen Textbereich fest. |
Sichtbarkeitsbedingung konfigurieren
Sichtbarkeitsbedingungen verwenden JSON-Kriterien ähnlich der MongoDB-Abfragesyntax. Sie können Formularwerte, Datensatztypen oder Kontextparameter lesen.
Feld für einen Datensatztyp anzeigen
Verwenden Sie den API-Namen des Record Type Name und nicht das Label:
{
"$formValues.recordTypeName": "Travel_Expense"
}
Feld für eine Abwesenheitskategorie anzeigen
{
"$contextParams.absenceCategoryName": "Sickness"
}
Feld für ausgewählte Werte ausblenden
{
"$contextParams.absenceCategoryName": {"$ne": ["Sickness", "Home Leave"]}
}
Bedingungen kombinieren
Verwenden Sie $or für einen von zwei Datensatztypen:
{
"$or": [
{ "$formValues.recordTypeName": "Travel_Expense" },
{ "$formValues.recordTypeName": "Default_Expense" }
]
}
Verwenden Sie $or und $and für verschachtelte Logik:
{
"$or": [
{ "$formValues.recordTypeName": "Travel_Expense" },
{
"$and": [
{ "$contextParams.absenceCategoryName": { "$ne": ["Sickness", "Home Leave"] } },
{ "$formValues.recordTypeName": "Default_Expense" }
]
}
]
}
Die Bedingung unterstützt diese Operatoren und Schlüssel:
| Operator oder Schlüssel | Funktion |
|---|---|
$eq | Prüft Gleichheit. Dies ist der Standard, wenn kein Operator vorhanden ist. |
$ne | Prüft Ungleichheit. |
$or | Ist erfüllt, wenn eine verschachtelte Bedingung erfüllt ist. |
$and | Ist erfüllt, wenn alle verschachtelten Bedingungen erfüllt sind. |
$formValues.recordTypeName | Liest den API-Namen des Record Type Name. |
$contextParams.absenceCategoryName | Liest die Abwesenheitskategorie im Absence Request Form. |
$contextParams.employeeAbsenceCategory | Liest die Mitarbeiter-Abwesenheitskategorie im Absence Request Form. |
$contextParams.day | Liest den Tag in Projects Time Entry Edit. |
$contextParams.project | Liest das Projekt in Projects Time Entry Edit. |
$contextParams.employee | Liest den Mitarbeiter in Projects Time Entry Edit. |
Lookup-Filter konfigurieren
Geben Sie für ein Lookup Reference-Feld eine SOQL-WHERE-Klausel unter SOQL-Filter nachschlagen ein.
Mitarbeiter nach Manager filtern
flair__Manager__c = :currentEmployee.Manager__c
Nach einem Kontextparameter filtern
Absence_Category__c = :contextParams.employeeAbsenceCategory.flair__Absence_Category__c
Mit LIKE filtern
flair__Manager__r.Name LIKE '%:currentEmployee.flair__First_Name__c%'
Lookup-Kriterien kombinieren
Ensurance_Number__c LIKE ':currentEmployee.Ensurance_Number__c%'
AND Some_Employee__c = :currentEmployee.flair__Manager__r.flair__Manager__c
Lookup-Filter unterstützen diese dynamischen Parameter:
| Parameter | Referenz |
|---|---|
:currentEmployee | Der aktuelle Mitarbeiterdatensatz, zum Beispiel :currentEmployee.flair__First_Name__c oder :currentEmployee.Manager__c. |
:contextParams | An das Formular übergebene Werte, zum Beispiel :contextParams.employeeAbsenceCategory.flair__Absence_Category__c. |
Zeiteintragsfelder konfigurieren
Zeiteintragsänderungen, die eine Genehmigung erfordern, werden bis zur Genehmigung als Zeiteintrags-Änderungsanfragen (flair__Time_Entry_Change_Request__c) gespeichert. Ein Zeiteintragsfeld muss deshalb auf beiden Objekten vorhanden sein.
Ein Feld zu Zeiteintragsformularen hinzufügen
- Erstellen Sie in Salesforce Setup das benutzerdefinierte Feld auf
flair__Time_Entry__c. - Erstellen Sie auf
flair__Time_Entry_Change_Request__cein Feld mit demselben API-Namen. Verwenden Sie bei einer Picklist dieselben Werte. - Gewähren Sie dem Employee Hub-Integrationsbenutzer auf beiden Objekten Zugriff auf das Feld.
- Erstellen Sie ein Extra Form Field mit Objekt-API-Name
flair__Time_Entry__c. - Geben Sie unter Feld-API-Name den API-Namen des Feldes ein.
- Optional: Geben Sie unter Formular ID eine Zeiteintrags-Form ID ein. Lassen Sie den Wert leer, um das Feld in allen Zeiteintragsformularen anzuzeigen.
- Klicken Sie auf Save.
Sie benötigen nur den Datensatz auf flair__Time_Entry__c. flair wendet ihn auf das passende Änderungsanfrage-Formular an, sofern das Änderungsanfrage-Objekt das Feld besitzt. Wird eine Änderungsanfrage genehmigt, wird der Wert in den Zeiteintrag kopiert — auch ein leerer: Bleibt das Feld in der Änderungsanfrage leer, wird es bei der Genehmigung im Zeiteintrag geleert.
Um das Änderungsanfrage-Formular abweichend zu konfigurieren, erstellen Sie einen separaten Datensatz mit Objekt-API-Name flair__Time_Entry_Change_Request__c, demselben Feld und derselben Formular ID. Dieser Datensatz ersetzt den kopierten. Ein Datensatz, der nur auf flair__Time_Entry_Change_Request__c vorhanden ist, wird nicht auf flair__Time_Entry__c-Formulare angewendet, und sein Wert wird bei der Genehmigung nicht in den Zeiteintrag kopiert.
Ein Feld nur Managern anzeigen
Setzen Sie Formular ID auf eine ManagerDetails-Form ID, um ein Feld nur dann anzuzeigen, wenn ein Manager den Zeiteintrag eines Mitarbeiters aus einer Manageransicht öffnet:
| Form Id | Wer das Feld sieht |
|---|---|
flair__Time_Entry__c.Edit | Mitarbeiter und Manager |
flair__Time_Entry__c.ManagerDetails | Manager |
flair__Time_Entry_Change_Request__c.Edit | Mitarbeiter und Manager |
flair__Time_Entry_Change_Request__c.ManagerDetails | Manager, die eine Änderungsanfrage prüfen, schreibgeschützt |
Beachten Sie bei der Konfiguration von Feldern nur für Manager diese Regeln:
- Ein Datensatz mit leerer Formular ID zeigt das Feld in allen Zeiteintragsformularen an, auch im Formular des Mitarbeiters. Geben Sie die
ManagerDetails-Form ID ausdrücklich ein. - Ein Mitarbeiter, bei dem Kann eigene Zeiteinträge ändern aktiviert ist, bearbeitet seine eigenen Einträge im selben Formular, sieht aber keine
ManagerDetails-Felder. - Manager sehen die
Edit-Felder und dieManagerDetails-Felder gemeinsam. Existiert für dasselbe Feld ein Datensatz für beide, gilt derManagerDetails-Datensatz. - Extra Fields sind schreibgeschützt, während ein Manager eine Änderungsanfrage prüft. Verwenden Sie für ein Feld, das Manager ausfüllen,
flair__Time_Entry__c.ManagerDetails. - Ein
flair__Time_Entry__c.ManagerDetails-Datensatz gilt auch fürflair__Time_Entry_Change_Request__c.ManagerDetails, sofern das Änderungsanfrage-Objekt das Feld besitzt.

Felder nur für Manager werden ausschließlich in den Zeiteintragsformularen des Employee Hub ausgeblendet. Sie sind keine Salesforce-Sicherheitseinstellung: Der Wert wird wie jedes andere Feld im Zeiteintrag gespeichert. Verwenden Sie sie nicht für Daten, die Mitarbeiter niemals sehen dürfen.
Häufige Feldmuster konfigurieren
Feld für eine Krankmeldung bei Krankheit anzeigen
-
Erstellen Sie auf
flair__Absence__cdas Feldflair__Medical_Certificate_ID__c. -
Erstellen Sie ein Extra Form Field mit Objekt-API-Name
flair__Absence__c. -
Setzen Sie Feld-API-Name auf
flair__Medical_Certificate_ID__c. -
Setzen Sie Formular ID auf
flair__Absence__c.RequestAbsence. -
Geben Sie diese Sichtbarkeitsbedingung ein:
{
"$contextParams.absenceCategoryName": "Sickness"
} -
Klicken Sie auf Save.
Ausgabenzulage nach Mitarbeiter filtern
-
Erstellen Sie auf
flair__Expense__cdas Lookup-Feldflair__Expense_Allowance__c. -
Erstellen Sie ein Extra Form Field mit Objekt-API-Name
flair__Expense__c. -
Setzen Sie Feld-API-Name auf
flair__Expense_Allowance__c. -
Geben Sie diesen SOQL-Filter nachschlagen ein:
flair__Employee__c = :currentEmployee.Id -
Klicken Sie auf Save.
Feld für Reiseausgaben anzeigen
-
Erstellen Sie auf
flair__Expense__cdas Feldflair__Flight_Number__c. -
Erstellen Sie ein Extra Form Field mit Objekt-API-Name
flair__Expense__c. -
Setzen Sie Feld-API-Name auf
flair__Flight_Number__c. -
Geben Sie diese Sichtbarkeitsbedingung ein:
{
"$formValues.recordTypeName": "Travel_Expense"
} -
Klicken Sie auf Save.
Felder mit Inline-JSON konfigurieren
Statt Custom Metadata-Datensätzen kann ein Textfeld auf Objektebene wie flair__Request_Form__c.flair__Extra_Fields_Config__c ein Array speichern. Jedes Element ist ein Feld-API-Name oder ein Objekt mit Feldoptionen.
Verwenden Sie für eine grundlegende Konfiguration ein Array von Feldnamen:
["Name", "flair__Description__c"]
Fügen Sie einem Feldobjekt Optionen hinzu:
["Name", {"flair__Description__c": {"visibleLines": 10}}]
Fügen Sie einen Lookup-Filter hinzu:
["Name", {"Take_Over_Employee__c": {"lookupSOQLFilter": "flair__Manager__c = :currentEmployee.flair__Manager__c"}}]
Fügen Sie eine Sichtbarkeitsbedingung hinzu:
["Name", {"flair__Usa_Notes__c": {"visibilityCondition": {"$formValues.recordTypeName": "Usa"}}}]
Inline-JSON unterstützt diese Optionen:
| Option | Typ | Funktion |
|---|---|---|
position | number | Legt die Anzeigereihenfolge fest. |
required | boolean | Überschreibt die Salesforce-Pflichtfeldeigenschaft. |
visibleLines | number | Legt die Zeilenzahl für mehrzeilige Textbereiche fest. |
visibilityCondition | string oder object | Legt eine JSON-Sichtbarkeitsbedingung fest. |
lookupSOQLFilter | string | Legt eine SOQL-WHERE-Klausel für einen Lookup fest. |
Erweiterte Konfigurationen unterstützen außerdem fieldApiName, objectApiName, formId und active.
Fehlerbehebung
Ein Feld erscheint nicht
- Prüfen Sie, ob Aktiv aktiviert ist.
- Prüfen Sie, ob Objekt-API-Name und Feld-API-Name API-Namen und keine Labels verwenden.
- Prüfen Sie, ob das Feld auf dem Salesforce-Objekt vorhanden ist.
- Validieren Sie das JSON unter Sichtbarkeitsbedingung.
- Prüfen Sie, ob Formular ID zum angezeigten Formular passt.
Ein Lookup-Filter funktioniert nicht
- Validieren Sie die SOQL-Syntax.
- Prüfen Sie, ob
:currentEmployeeund:contextParamsgenau den unterstützten Parameternamen entsprechen. - Prüfen Sie, ob alle referenzierten Felder vorhanden sind.
- Testen Sie die SOQL-Abfrage in der Salesforce Developer Console.
Eine Sichtbarkeitsbedingung funktioniert nicht
- Validieren Sie die JSON-Syntax.
- Prüfen Sie, ob der Datensatztypwert der API-Name und nicht das Label ist.
- Prüfen Sie, ob das ausgewählte Formular den Kontextparameter bereitstellt.
- Testen Sie eine Bedingung, bevor Sie verschachtelte Logik hinzufügen.