Zum Hauptinhalt springen

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.

Wer kann diese Funktion verwenden?

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​

FormularForm ID
Absence Request Formflair__Absence__c.RequestAbsence
Absence Manager Detailsflair__Absence__c.ManagerDetails
Expense Request Formflair__Expense__c.RequestExpense
Expense Detailsflair__Expense__c.Details
Expense Item Request Formflair__Expense_Item__c.RequestExpenseItem
Project User Detailsflair__Project__c.UserDetails
Project Manager Detailsflair__Project__c.ManagerDetails
Projects Time Entry Editflair__Project_Time_Entry__c.Edit
Mitarbeiterdetail-Panelflair__Employee__c.DirectoryDetails
Zertifikatsformularflair__Certificate_Association__c.Save
Inventarartikel-Detailsflair__Inventory_Item__c.Details
Zeiteintragsformularflair__Time_Entry__c.Edit
Zeiteintragsformular, nur für Manager sichtbare Felderflair__Time_Entry__c.ManagerDetails
Formular für Zeiteintrags-Änderungsanfragenflair__Time_Entry_Change_Request__c.Edit
Formular für Zeiteintrags-Änderungsanfragen, nur für Manager sichtbare Felderflair__Time_Entry_Change_Request__c.ManagerDetails
Formular für neue Ticketsflair__Ticket__c.CreateTicket
Ticketdetailsflair__Ticket__c.Details
Schicht-Seitenpanelflair__Shift__c.Details
Kandidatendetailsflair__Candidate__c.EvaluationForm
Details der GenehmigungsanfrageObjekt-API-Name.ApprovalDetails, zum Beispiel flair__Absence__c.ApprovalDetails
Abwesenheitskategorie-Formular in Salesforceflair__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​

  1. Geben Sie in Salesforce Setup unter Quick Find Custom Metadata Types ein.
  2. Öffnen Sie Custom Metadata Types.
  3. Klicken Sie neben Flair Extra Form Field auf Manage Records.
  4. Klicken Sie auf New.
  5. Geben Sie unter Objekt-API-Name das Zielobjekt ein, zum Beispiel flair__Expense__c oder flair__Absence__c.
  6. Geben Sie unter Feld-API-Name das anzuzeigende Feld ein, zum Beispiel flair__Amount__c oder flair__Description__c.
  7. Konfigurieren Sie optionale Einstellungen unter Extra Form Field-Einstellungen prüfen.
  8. Klicken Sie auf Save.

Custom Metadata-Datensatz Extra Form Field mit Feldeinstellungen

Extra Form Field-Einstellungen prüfen​

EinstellungFunktion
Objekt-API-NameIdentifiziert das Salesforce-Objekt. Diese Einstellung ist erforderlich.
Feld-API-NameIdentifiziert das anzuzeigende benutzerdefinierte Feld. Diese Einstellung ist erforderlich.
ErforderlichMacht das Feld im Employee Hub-Formular zum Pflichtfeld, auch wenn Salesforce es nicht erfordert.
AktivZeigt das Feld an. Deaktivieren Sie die Option, um das Feld auszublenden, ohne den Metadatendatensatz zu löschen.
Formular IDBeschränkt das Feld auf ein Formular. Lassen Sie den Wert leer, um das Feld in allen unterstützten Formularen des Objekts anzuzeigen.
PositionLegt die Anzeigereihenfolge fest. Niedrigere Zahlen erscheinen zuerst.
SichtbarkeitsbedingungSpeichert die JSON-Bedingung, die die Sichtbarkeit des Feldes steuert.
SOQL-Filter nachschlagenSpeichert eine SOQL-WHERE-Klausel zum Filtern von Lookup-Optionen.
Sichtbare LinienLegt 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üsselFunktion
$eqPrüft Gleichheit. Dies ist der Standard, wenn kein Operator vorhanden ist.
$nePrüft Ungleichheit.
$orIst erfüllt, wenn eine verschachtelte Bedingung erfüllt ist.
$andIst erfüllt, wenn alle verschachtelten Bedingungen erfüllt sind.
$formValues.recordTypeNameLiest den API-Namen des Record Type Name.
$contextParams.absenceCategoryNameLiest die Abwesenheitskategorie im Absence Request Form.
$contextParams.employeeAbsenceCategoryLiest die Mitarbeiter-Abwesenheitskategorie im Absence Request Form.
$contextParams.dayLiest den Tag in Projects Time Entry Edit.
$contextParams.projectLiest das Projekt in Projects Time Entry Edit.
$contextParams.employeeLiest 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:

ParameterReferenz
:currentEmployeeDer aktuelle Mitarbeiterdatensatz, zum Beispiel :currentEmployee.flair__First_Name__c oder :currentEmployee.Manager__c.
:contextParamsAn 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​

  1. Erstellen Sie in Salesforce Setup das benutzerdefinierte Feld auf flair__Time_Entry__c.
  2. Erstellen Sie auf flair__Time_Entry_Change_Request__c ein Feld mit demselben API-Namen. Verwenden Sie bei einer Picklist dieselben Werte.
  3. Gewähren Sie dem Employee Hub-Integrationsbenutzer auf beiden Objekten Zugriff auf das Feld.
  4. Erstellen Sie ein Extra Form Field mit Objekt-API-Name flair__Time_Entry__c.
  5. Geben Sie unter Feld-API-Name den API-Namen des Feldes ein.
  6. Optional: Geben Sie unter Formular ID eine Zeiteintrags-Form ID ein. Lassen Sie den Wert leer, um das Feld in allen Zeiteintragsformularen anzuzeigen.
  7. 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 IdWer das Feld sieht
flair__Time_Entry__c.EditMitarbeiter und Manager
flair__Time_Entry__c.ManagerDetailsManager
flair__Time_Entry_Change_Request__c.EditMitarbeiter und Manager
flair__Time_Entry_Change_Request__c.ManagerDetailsManager, 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 die ManagerDetails-Felder gemeinsam. Existiert für dasselbe Feld ein Datensatz für beide, gilt der ManagerDetails-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ür flair__Time_Entry_Change_Request__c.ManagerDetails, sofern das Änderungsanfrage-Objekt das Feld besitzt.

Die Ansicht eines Managers auf den Zeiteintrag eines Mitarbeiters im Employee Hub mit einem Feld Cost note nur für Manager

warnung

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​

  1. Erstellen Sie auf flair__Absence__c das Feld flair__Medical_Certificate_ID__c.

  2. Erstellen Sie ein Extra Form Field mit Objekt-API-Name flair__Absence__c.

  3. Setzen Sie Feld-API-Name auf flair__Medical_Certificate_ID__c.

  4. Setzen Sie Formular ID auf flair__Absence__c.RequestAbsence.

  5. Geben Sie diese Sichtbarkeitsbedingung ein:

    {
    "$contextParams.absenceCategoryName": "Sickness"
    }
  6. Klicken Sie auf Save.

Ausgabenzulage nach Mitarbeiter filtern​

  1. Erstellen Sie auf flair__Expense__c das Lookup-Feld flair__Expense_Allowance__c.

  2. Erstellen Sie ein Extra Form Field mit Objekt-API-Name flair__Expense__c.

  3. Setzen Sie Feld-API-Name auf flair__Expense_Allowance__c.

  4. Geben Sie diesen SOQL-Filter nachschlagen ein:

    flair__Employee__c = :currentEmployee.Id
  5. Klicken Sie auf Save.

Feld für Reiseausgaben anzeigen​

  1. Erstellen Sie auf flair__Expense__c das Feld flair__Flight_Number__c.

  2. Erstellen Sie ein Extra Form Field mit Objekt-API-Name flair__Expense__c.

  3. Setzen Sie Feld-API-Name auf flair__Flight_Number__c.

  4. Geben Sie diese Sichtbarkeitsbedingung ein:

    {
    "$formValues.recordTypeName": "Travel_Expense"
    }
  5. 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:

OptionTypFunktion
positionnumberLegt die Anzeigereihenfolge fest.
requiredbooleanÜberschreibt die Salesforce-Pflichtfeldeigenschaft.
visibleLinesnumberLegt die Zeilenzahl für mehrzeilige Textbereiche fest.
visibilityConditionstring oder objectLegt eine JSON-Sichtbarkeitsbedingung fest.
lookupSOQLFilterstringLegt 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​

  1. Prüfen Sie, ob Aktiv aktiviert ist.
  2. Prüfen Sie, ob Objekt-API-Name und Feld-API-Name API-Namen und keine Labels verwenden.
  3. Prüfen Sie, ob das Feld auf dem Salesforce-Objekt vorhanden ist.
  4. Validieren Sie das JSON unter Sichtbarkeitsbedingung.
  5. Prüfen Sie, ob Formular ID zum angezeigten Formular passt.

Ein Lookup-Filter funktioniert nicht​

  1. Validieren Sie die SOQL-Syntax.
  2. Prüfen Sie, ob :currentEmployee und :contextParams genau den unterstützten Parameternamen entsprechen.
  3. Prüfen Sie, ob alle referenzierten Felder vorhanden sind.
  4. Testen Sie die SOQL-Abfrage in der Salesforce Developer Console.

Eine Sichtbarkeitsbedingung funktioniert nicht​

  1. Validieren Sie die JSON-Syntax.
  2. Prüfen Sie, ob der Datensatztypwert der API-Name und nicht das Label ist.
  3. Prüfen Sie, ob das ausgewählte Formular den Kontextparameter bereitstellt.
  4. Testen Sie eine Bedingung, bevor Sie verschachtelte Logik hinzufügen.

Verwandte Artikel​