Referenzqualifizierer
Verwenden Sie Referenzqualifizierer, um die Daten zu filtern, die für ein Referenzfeld zurückgegeben werden.
Ein Referenzfeld speichert einen Link (eine Referenz) zu einem Feld in einer anderen Tabelle, wodurch die Datensätze/Felder in der referenzierten Tabelle für das Formular verfügbar gemacht werden, das das Referenzfeld enthält.
Beispielsweise verweist das Feld Zugewiesen an in der Incident-Tabelle auf die Benutzertabelle [sys_user]. Standardmäßig werden alle Werte für das referenzierte Feld in der Referenzsuche angezeigt und können direkt über das Referenzfeld (Type-Ahead) aufgerufen werden. Wenn im vorherigen Beispiel kein Referenzqualifizierer definiert ist, werden alle Benutzer in der Benutzertabelle in der Referenzsuche angezeigt. Einschließlich der Benutzer, die inaktiv sind. Manchmal kann dies die gewünschte Funktionalität sein. In anderen Fällen ist jedoch möglicherweise nur eine Teilmenge der verfügbaren Werte erwünscht. Erstellen Sie in diesem Fall einen Referenzqualifizierer, um die verfügbaren Daten so zu filtern, dass nur die gewünschten Werte zurückgegeben und dem Formular zur Verfügung gestellt werden. Zum Beispiel nur die aktiven Benutzer oder Benutzer, die eine bestimmte Rolle haben. Referenzqualifizierer sind robust und können aus einfachen AND/OR-Bedingungen, Inline-JavaScript oder komplexen Skripteinbindungenbestehen.
- Das Erstellen von Referenzqualifizierern erfordert Kenntnisse des zugrunde liegenden ServiceNow -Datenmodells (Tabellen und Felder) und Kenntnisse der Webservices und Skripts.
- Um einzuschränken, auf welche Daten bestimmte Benutzer zugreifen können, verwenden Sie ACLs und keine Referenzqualifizierer.
Sie können einen Referenzqualifizierer mit einer der folgenden Methoden definieren.
Einfacher Referenzqualifizierer
Einfache Referenzqualifizierer verwenden UND-/ODER-Anweisungen (Bedingungen), um einfache Filter zu erstellen. Verwenden Sie einfache Referenzqualifizierer, wenn Sie nach Bedingungen filtern, z. B. ob ein Unternehmen aktiv ist, ein Benutzer eine bestimmte Rolle hat und/oder sich ein Anrufer in einer bestimmten Zeitzone befindet. Einfache Referenzqualifizierer können maximal 13 Referenzqualifiziererbedingungen haben. Weitere Informationen zur Verwendung von Bedingungsgeneratoren finden Sie unter Condition builder.
Dynamische Referenzqualifizierer
Mit dynamischen Referenzqualifizierern können Sie mithilfe der Option Dynamischen Filter erstellen eine Abfrage für ein Referenzfeld ausführen, um den zurückgegebenen Datensatz zu filtern. Dynamische Filteroptionen sind gespeicherte Filter, die codierte Abfragezeichenfolgen, JavaScript oder Skripteinbindungen enthalten können und in mehreren dynamischen Referenzqualifizierern verwendet werden können. An einer dynamischen Filteroption vorgenommene Änderungen werden automatisch auf alle Referenzqualifizierer angewendet, die dieselbe dynamische Filteroption verwenden. Verwenden Sie diese Art von Referenzqualifizierer, wenn Sie denselben Filter für mehrere Formulare verwenden oder Filterfunktionen für Implementierer bereitstellen möchten, die nicht mit Code vertraut sind.
Die Basisinstanz bietet mehrere dynamische OOB-Filteroptionen. Wenn keine dynamische Filteroption vorhanden ist, die Ihren Anforderungen entspricht, können Sie eine neue dynamische Filteroption erstellen, die spezifisch für Ihre Anforderungen ist. Ein Beispiel für eine dynamische OOB-Filteroption ist der Referenzqualifizierer im Feld Modell-ID in einem Konfigurationselement-Formular, z. B. das Formular „Computer“. Der Referenzqualifizierer ruft die dynamische Filteroption CI -Modellqualifizierer auf, die wiederum die Skripteinbindung ModelAndCategoryFilters aufruft. Diese Skripteinbindung filtert den Datensatz basierend auf der Klasse des CI. Die einzigen Optionen für die Modell-ID sind Optionen, die zu derselben Klasse wie das aktuelle CI gehören. Beispielsweise sind im Feld Modell-ID im Formular „Computer“ nur CIs verfügbar, die zur Klasse „Computer“ gehören.
Erweiterter Referenzqualifizierer
vendor=true, die alle Unternehmen zurückgibt, die als Lieferanten festgelegt sind. Die Eingabe dieser Zeichenfolge entspricht der Verwendung des Bedingungsgenerators, wie im Beispiel für den einfachen Referenzqualifizierer gezeigt. Weitere Informationen zur gültigen codierten Abfragezeichenfolgensyntax und Beispiele finden Sie unter Codierte Abfragezeichenfolgen.javascript:new myScriptInclude().my_refqual(). Dieser Code ruft die Funktion my_refqual() in der Skripteinbindung myScriptInclude()auf. Die Funktion muss eine Abfragezeichenfolge zurückgeben, die die in einem Referenzfeld verfügbaren Optionen filtern kann.javascript:'u_active=true^' + "u_hr_service="+current.hr_service" in Referenzqualifizierern verwenden.return "company=" + current.company;javascript:"company=" + current.companyZugehörige Listen und Referenzqualifizierer
// Advanced reference qualifier on the CI Relationship Child field that takes into account
// the related list that we are editing the child field on, if the field is being edited
// from a tagged related list.
cmdb_rel_ci_child_refQual:function(){
if(listEditRefQualTag =="application") return "sys_class_name = cmdb_ci_appl";
if(listEditRefQualTag =="database") return "sys_class_name = cmdb_ci_database"
}Verwenden der aktuellen Javascript-Syntax in Referenzqualifizierern
current ist ein JavaScript-Objekt, das die Felder und Feldwerte des aktiven (aktuellen) Datensatzes enthält. Bei Formularen ist dies der Datensatz, der im Formular angezeigt (geladen) wird. Innerhalb von erweiterten und dynamischen Referenzqualifizierern können Sie das aktuelle JavaScript-Objekt verwenden, um Filter wie javascript:"company=" + current.companyzu definieren.
Dieses JavaScript gibt innerhalb eines Referenzqualifizierers nur die Datensätze aus der referenzierten Tabelle zurück, die dem Feldwert des Unternehmens des aktuellen Datensatzes entsprechen. Wenn also der Wert, der im Feld „ Unternehmen “ angezeigt wird, „Acme“ ist, gibt das JavaScript alle Referenzfelddatensätze zurück, deren Unternehmenswert „Acme“ ist (company="Acme"). Wenn Sie dann einen Datensatz aufrufen, dessen Unternehmenswert „ViewRite“ ist, wird das JavaScript zu „company="ViewRite"“ aufgelöst.
Alle Felder im aktuell geladenen Formular (Tabellen) sind für die Verwendung mit dem aktuellen Objekt verfügbar. Verwenden Sie Dot-Walking, um auf Werte in einer Tabelle zuzugreifen, einschließlich der referenzierten Tabelle. Im Incident-Formular verweist das Feld Zugewiesen an beispielsweise auf die Benutzertabelle. Um auf die E-Mail-Adresse des Benutzers zuzugreifen, verwenden Sie die folgende Syntax: javascript:"emailAddress=" + current.assigned_to.email.