Trennen Sie eine benutzerdefinierte Tabelle von der Domäne
Möglicherweise müssen Sie anwenderdefinierte Tabellen in separaten Domänen erstellen. Dieses Thema behandelt sowohl das Verfahren als auch das Konzept hinter der Domänentrennung einer benutzerdefinierten Tabelle.
1. Erstellen Sie ein sys_domain-Feld
- Erstellen Sie ein neues Feld als Typ domain_id.
- Spaltenname: sys_domain
- Andere Attribute: Automatisch definiert
- Sys_domain_path wird automatisch erstellt.
Der Spaltenname sys_domain ist im Now Platformreserviert, was bedeutet, dass das System ihn erkennt und automatisch den entsprechenden Feldtyp und die entsprechenden Attribute für Sie anwendet. Diese automatische Konfiguration erstellt auch ein entsprechendes Feld „sys_domain_path“.
- Legen Sie den Spaltennamen auf
sys_domainfest, anstatt die Bezeichnung zu verwenden. - Domain Separation ist nicht für jede Tabelle geeignet. Wenn eine Tabelle Teil der Basisinstanz ist und diese Tabelle kein sys_domain -Feld enthält, sollten Sie dies im Allgemeinen so lassen.
Ein Feld vom Typ „sys_domain “ wird automatisch erstellt, wenn Sie ein Feld vom Typ „domain_id“ mit dem Namen „sys_domain“ erstellen.
2. Fügen Sie eine Geschäftsregel hinzu, um die Domäne festzulegen
- Ohne Business-Regeln
- Die Domäne wird auf die aktuelle Domäne des Benutzers festgelegt, der den Datensatz erstellt.
- Mit Geschäftsregeln
- Die Domäne wird mithilfe von Skriptlogik zugewiesen, normalerweise basierend auf dem Feld „Unternehmen“.
Zusätzlich zu einem sys_domain-Feldbenötigen benutzerdefinierte Tabellen eine Geschäftsregel ähnlich der Domäne – Domäne festlegen – Aufgabe,um den Wert des Domänenfelds festzulegen. Darüber hinaus benötigen Sie Domäne – Standard – Aufgabe, die Datensätze ohne Domäne in die Standarddomäne verschiebt, wenn die erste Regel keine Domäne zuweist.
Überprüfen Sie in der Aufgabentabelle die Geschäftsregeln für die Domäne. Achten Sie besonders auf das Feld Reihenfolge. Die Priorität der Ausführung wird durch das Feld Reihenfolge von niedrig nach hoch angegeben.
Die erste ausgeführte Regel, Domäne – Domäne festlegen – Aufgabe, versucht, die Domäne des Datensatzes basierend auf der Unternehmensdomäne des Datensatzes festzulegen.
Wenn die erste Regel keine geeignete Domäne findet, wird die zweite Regel ( Domäne – Standard – Aufgabe)ausgeführt. Diese Regel legt die Domäne des Datensatzes auf die Standarddomäne fest.
Wenn sich schließlich die Domäne eines Aufgabendatensatzes ändert, ändert die Geschäftsregel „Domäne – Kaskadierende Domäne – Aufgabe“ die Domäne für alle Datensätze im Zusammenhang mit der Aufgabe, z. B. Workflows, Metriken, SLAs und Anhänge.
3. Fügen Sie eine Geschäftsregel hinzu, wenn Schritt 2 fehlgeschlagen ist
Wenn die ursprüngliche Geschäftsregel keine Domäne festlegen konnte und die Domäne noch leer oder global ist, wird eine zweite Geschäftsregel ausgeführt. Diese Regel untersucht das Feld „task_for“, das auf dem Feld „Caller“ oder „requested_for“ basiert. Diese Regel überprüft, ob Sie die Domäne des Datensatzes basierend auf der Domäne des Anwenders festlegen können. Andernfalls legt die Geschäftsregel die Domäne auf die Standarddomäne fest.
Es folgt ein Beispielskript für die Geschäftsregel:
/* essentially
If (task_for is set)
set the domain to the user's domain
ELSE
set the domain to the default domain
*/4. Domäne – Kaskadierungsdomäne – Aufgabe
Aufgaben können viele zugehörige Tabellen haben, die zusammenarbeiten, um Geschäftsziele zu erreichen. Zu diesen zugehörigen Datensätzen gehören Workflow, SLA, Genehmigungen, Anhänge und E-Mail. Wenn sich die Domäne einer Aufgabe ändert, muss sich auch die Domäne der zugehörigen Datensätze ändern, damit sie für Benutzer in der neuen Domäne sichtbar bleiben.
Diese Kaskadierungsregel wird häufig ausgelöst, wenn Sie Datensätze aus der Standarddomäne löschen.
Die zugehörigen Datensätze für eine im Skript enthaltene Kaskadendomäne werden ähnlich wie im folgenden Beispiel dargestellt:
/*
* Keep domains in sync w/related records for:
* workflow context
* workflow history
* approver tables and related workflows
* attachments
* emails
*/