Referenzqualifizierer

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 6 Minuten Lesedauer
  • 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 werden, das das Referenzfeld enthält.

    Beispielsweise ist das Feld Zugewiesen an in der Incident-Tabelle ein Verweis auf die Tabelle „Benutzer“ [sys_user]. Standardmäßig werden alle Werte für das referenzierte Feld in der Referenzsuche angezeigt und können direkt über das Referenzfeld (Vorauseingabe) aufgerufen werden. Erweiterung des vorherigen Beispiels: Wenn kein Referenzqualifizierer definiert ist, werden alle Benutzer in der Tabelle „User“ in der Referenzsuche angezeigt. Einschließlich der inaktiven Benutzer. Manchmal kann dies die gewünschte Funktionalität sein. In anderen Fällen ist möglicherweise nur eine Teilmenge der verfügbaren Werte erwünscht. Erstellen Sie in diesem Fall einen Referenzqualifizierer, um die verfügbaren Daten zu filtern, sodass nur die gewünschten Werte zurückgegeben und dem Formular zur Verfügung gestellt werden. Beispielsweise nur die aktiven Benutzer oder Benutzer, die eine bestimmte Rolle aufweisen. Referenzqualifizierer sind robust und können aus einfachen UND/ODER-Bedingungen, Inline-JavaScript oder komplexen Skripteinbindungenbestehen.

    Sie können den Referenzqualifizierer für eine Tabelle und jede auf dieser Tabelle basierende Tabelle (übergeordnet oder erweitert) ändern, indem Sie im Formular „ Wörterbucheintrag “ einen Referenzqualifizierer definieren. Sie können den Referenzqualifizierer auch nur für eine erweiterte Tabelle und ihre untergeordneten Elemente (nicht die übergeordnete Tabelle) durch eine Außerkraftsetzung des Wörterbuchs ändern. Sie können nur einen einzelnen Referenzqualifizierer pro Feld und pro Formular/Tabelle definieren. Referenzqualifizierer gelten nicht für Bedingungsgeneratoren. Informationen zur Verwendung von Filtern in Bedingungsgeneratoren finden Sie unter Dynamische Filteroption erstellen.
    Hinweis:
    • Das Erstellen von Referenzqualifizierern erfordert Kenntnisse über das zugrunde liegende ServiceNow -Datenmodell (Tabellen und Felder) sowie Kenntnisse über die Webservices und Skripts.
    • Um einzuschränken, auf welche Daten bestimmte Anwender zugreifen können, verwenden Sie ACLs, die keine Referenzqualifizierer sind.

    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 Anwender eine bestimmte Rolle hat und/oder sich ein Anrufer in einer bestimmten Zeitzone befindet. Einfache Referenzqualifizierer können maximal 13 Referenzqualifiziererbedingungen aufweisen. Weitere Informationen zur Verwendung von Bedingungsgeneratoren finden Sie unter Condition builder.

    Abbildung : 1. Beispiel für einen einfachen Referenzqualifizierer
    Einfacher Referenzqualifizierer

    Dynamische Referenzqualifizierer

    Mit dynamischen Referenzqualifizierern können Sie mithilfe der Option Dynamische 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 und in mehreren dynamischen Referenzqualifizierern verwendet werden können. Änderungen, die an einer dynamischen Filteroption vorgenommen werden, gelten automatisch für alle Referenzqualifizierer, 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 sich nicht mit Code auskennen.

    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 speziell auf Ihre Anforderungen zugeschnitten ist. Ein Beispiel für eine dynamische OOB-Filteroption ist der Referenzqualifizierer im Feld „ Modell-ID “ in einem Konfigurationselementformular, z. B. Computerformular. 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.

    Um die verfügbaren dynamischen Filteroptionen zu finden, navigieren Sie zu SystemdefinitionDynamische Filteroptionen. Klicken Sie in der rechten Ecke der Liste Dynamische Filteroptionen auf das Filtersymbol, und erstellen Sie die Filterbedingung Verfügbar für Referenzqualifikation ist wahr. Alle dynamischen Filteroptionen, die in dynamischen Referenzqualifizierern verwendet werden können, werden angezeigt.
    Abbildung : 2. Beispiel für einen dynamischen Referenzqualifizierer
    Dynamischer Referenzqualifizierer

    Erweiterter Referenzqualifizierer

    Mit erweiterten Referenzqualifizierern können Sie eine inlinecodierte Abfragezeichenfolge oder einen JavaScript-Filter (tatsächlicher Code oder der Name einer vorhandenen Skripteinbindung oder Geschäftsregel) direkt im Feld Referenzqual. des Referenzqualifizierers definieren. Ähnlich wie bei den anderen Referenzqualifizierertypen wird der Filter beim Laden des Formulars ausgeführt, und nur die Datensätze, die dem Filter entsprechen, werden im Referenzfeld angezeigt. Verwenden Sie diesen Referenzqualifizierertyp für Implementierungen, die nur einen einfachen, eindeutigen Filter erfordern, der nicht von einem einfachen Referenzqualifizierer verarbeitet werden kann und nicht für mehrere Referenzfelder verwendet wird.
    Hinweis:
    Es empfiehlt sich, JavaScript-Aufrufe an Funktionen in einer Skripteinbindung anstatt an eine globale Business Rule zu tätigen.
    Ein Beispiel für eine codierte Abfragezeichenfolge ist vendor=true, mit der alle Unternehmen zurückgegeben werden, die als Lieferanten angegeben sind. Die Eingabe dieser Zeichenfolge entspricht der Verwendung des Bedingungsgenerators (siehe Beispiel für den einfachen Referenzqualifizierer). Weitere Informationen zur gültigen codierten Abfragezeichenfolgensyntax und zu Beispielen finden Sie unter Codierte Abfragezeichenfolgen.
    Abbildung : 3. Beispiele für erweiterte Referenzqualifizierer
    Codierte Abfragezeichenfolge in einem erweiterten referenzierten Qualifizierer
    Ein Beispiel für einen JavaScript-Aufruf ist 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.
    Hinweis:
    Sie können auch codierte JavaScript-Filter wie javascript:'u_active=true^' + "u_hr_service="+current.hr_service" in Referenzqualifizierern verwenden.
    In einem anderen Beispiel: Wenn Sie versuchen, basierend auf dem aktuellen Unternehmen zu filtern, müssen Sie kein Suchskript verwenden, sondern können diese Zeile einfach Ihrem dynamischen Qualifizierer hinzufügen:
    return "company=" + current.company;
    Sie können dies auch vereinfachen und anstelle eines dynamischen Referenzqualifizierers einen erweiterten Referenzqualifizierer verwenden:
    javascript:"company=" + current.company
    Codierte Abfragezeichenfolge in einem erweiterten referenzierten Qualifizierer, Beispiel 2

    Ein zusätzliches Beispiel, in dem das Referenzfeld so konfiguriert wird, dass nur Benutzer einer bestimmten Gruppe angezeigt werden, finden Sie im Artikel How to auswählen nur Benutzer einer bestimmten Gruppe in einem Referenzfeld [KB0831564] in der Knowledge Base Now Support .

    an.

    Zugehörige Listen und Referenzqualifizierer

    Wenn ein Feld in mehreren zugehörigen Listen in einer einzelnen Formularansicht angezeigt wird, muss möglicherweise überprüft werden, welche zugehörige Liste referenziert wird, um den Referenzqualifizierer für das Feld ordnungsgemäß zu erstellen. Konfigurieren Sie in dieser Situation das Listensteuerelement für die zugehörige Liste, und geben Sie im Feld „Listenbearbeitungs- Tag “ ein eindeutiges Tag ein. Dieser Tag-Wert ist zum Filtern von Skripts als Variable mit dem Namen listEditRefQualTag verfügbar. Der folgende Skripteinbindungscode ist ein Beispiel für eine Funktion, die diesen Tag-Typ verwendet.
    // 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"
     
      }

    Aktuelle Javascript-Syntax wird in Referenzqualifizierern verwendet

    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. In erweiterten und dynamischen Referenzqualifizierern können Sie das aktuelle JavaScript-Objekt verwenden, um Filter zu definieren, z. B. javascript:"company=" + current.company.

    Dieses JavaScript gibt innerhalb eines Referenzqualifizierers nur die Datensätze aus der referenzierten Tabelle zurück, die dem Unternehmensfeldwert des aktuellen Datensatzes entsprechen. Wenn also im Feld Unternehmen der Wert Acme angezeigt wird, gibt JavaScript alle Referenzfelddatensätze zurück, deren Unternehmenswert Acme entspricht (company="Acme"). Wenn Sie dann einen Datensatz aufrufen, dessen Unternehmenswert „ViewRite“ ist, wird das JavaScript zu „company="ViewRite."“ aufgelöst.

    Alle Felder innerhalb des aktuell geladenen Formulars (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 beispielsweise das Feld Zugewiesen an auf die Benutzertabelle. Um auf die E-Mail-Adresse des Anwenders zuzugreifen, verwenden Sie die folgende Syntax: javascript:"emailAddress=" + current.assigned_to.email.