Qualificatifs de référence

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 7 minutes de lecture
  • Utilisez des qualificatifs de référence pour filtrer les données renvoyées pour un champ de référence.

    Un champ de référence stocke un lien (référence) vers un champ d'une autre table, ce qui rend les enregistrements/champs de la table référencée disponibles pour le formulaire contenant le champ de référence.

    Par exemple, le champ Affecté à de la table Incident est une référence à la table Utilisateur [sys_user]. Par défaut, toutes les valeurs du champ référencé s'affichent dans la recherche de référence et peuvent être consultées directement via le champ de référence (suggestion automatique). Pour développer l'exemple précédent, si aucun qualificatif de référence n'est défini, tous les utilisateurs de la table Utilisateur apparaissent dans la recherche de référence, y compris les utilisateurs inactifs. Parfois, il peut s'agir de la fonctionnalité souhaitée. Toutefois, dans d'autres cas, seul un sous-ensemble des valeurs disponibles peut être souhaité. Dans ce cas, créez un qualificatif de référence pour filtrer les données disponibles afin que seules les valeurs souhaitées soient renvoyées et mises à la disposition du formulaire. Par exemple, uniquement les utilisateurs actifs ou ayant un rôle spécifique. Les qualificatifs de référence sont robustes et peuvent être composés de conditions ET/OU simples, de code JavaScript inline ou de script includes complexes.

    Vous pouvez modifier le qualificatif de référence pour une table et toute table basée sur celle-ci (parente ou étendue) en définissant un qualificatif de référence via le formulaire Entrée du dictionnaire. Vous pouvez également modifier le qualificatif de référence uniquement sur une table étendue et ses enfants (et non la table parente), via un contournement de dictionnaire. Vous ne pouvez définir qu'un seul qualificatif de référence par champ et par formulaire/table. Les qualificatifs de référence ne sont pas applicables aux créateurs de condition. Pour en savoir plus sur l'utilisation du filtrage dans les créateurs de condition, consultez Option Créer un filtre dynamique.
    Remarque :
    • la création de qualificatifs de référence nécessite de connaître le modèle de données ServiceNow sous-jacent (tables et champs) ainsi que les services Web et les scripts.
    • Pour restreindre les données auxquelles des utilisateurs spécifiques peuvent accéder, utilisez des ACL et non des qualificatifs de référence.

    Vous pouvez définir un qualificatif de référence en appliquant l'une des méthodes suivantes.

    Qualificatif de référence simple

    Les qualificatifs de référence simples utilisent des instructions ET/OU (conditions) pour créer des filtres simples. Utilisez des qualificatifs de référence simples lors du filtrage selon des conditions telles que le fait qu'une société soit active, qu'un utilisateur ait un rôle spécifique et/ou qu'un appelant se trouve dans un fuseau horaire spécifique. Les qualificatifs de référence simples peuvent avoir un maximum de 13 conditions de qualificatif de référence. Pour en savoir plus sur l'utilisation des créateurs de condition, consultez Condition builder.

    Figure 1. Exemple de qualificatif de référence simple
    Qualificatif de référence simple

    Qualificatifs de référence dynamiques

    Les qualificatifs de référence dynamiques vous permettent d'utiliser une option Créer un filtre dynamique pour exécuter une requête sur un champ de référence afin de filtrer l'ensemble de données renvoyé. Les options de filtre dynamique sont des filtres stockés qui peuvent contenir des chaînes de requêtes codées, JavaScript ou des script includes. Elles peuvent être utilisées dans plusieurs qualificatifs de référence dynamiques. Les modifications apportées à une option de filtre dynamique s'appliquent automatiquement à tous les qualificatifs de référence qui utilisent la même option de filtre dynamique. Utilisez ce type de qualificatif de référence lorsque vous souhaitez utiliser le même filtre sur plusieurs formulaires ou fournir une fonctionnalité de filtre aux implémenteurs « peu à l'aise avec le code ».

    L'instance de base fournit plusieurs options de filtre dynamique OOB. Si aucune option de filtre dynamique répondant à vos besoins n'existe, vous pouvez en créer une propre à vos besoins. Un exemple d'option de filtre dynamique OOB est le qualificatif de référence du champ ID de modèle sur un formulaire d'élément de configuration, tel que le formulaire Ordinateur. Le qualificatif de référence appelle l'option de filtre dynamique Qualificatif de modèle de CI qui appelle, quant à lui, le script includes ModelAndCategoryFilters. Ce script includes filtre l'ensemble de données en fonction de la classe CI. Les seules options pour l'ID de modèle sont des options qui appartiennent à la même classe que le CI actuel. Par exemple, seuls les CI qui appartiennent à la classe Ordinateur sont disponibles dans le champ ID de modèle du formulaire Ordinateur.

    Pour localiser les options de filtre dynamique disponibles, accédez à Définition du systèmeOptions de filtre dynamique. Dans le coin droit de la liste Options de filtre dynamique, cliquez sur l'icône de filtre et créez la condition de filtre Disponible pour la qualif. de référence est vraie. Toutes les options de filtre dynamique qui peuvent être utilisées dans les qualificatifs de référence dynamiques s'affichent.
    Figure 2. Exemple de qualificatif de référence dynamique
    Qualificatif de référence dynamique

    Qualificatif de référence avancé

    Les qualificatifs de référence avancés vous permettent de définir une chaîne de requête codée inline ou JavaScript (code réel ou nom d'un script includes ou d'une règle métier existant) directement dans le champ Qualificatif de référence du qualificatif de référence. De la même manière que les autres types de qualificatifs de référence, lorsque le formulaire se charge, le filtre est exécuté et seuls les enregistrements qui correspondent au filtre s'affichent dans le champ de référence. Utilisez ce type de qualificatif de référence pour les implémentations qui nécessitent uniquement un filtre simple et unique, qui ne peut pas être géré par un qualificatif de référence simple et qui n'est pas utilisé dans plusieurs champs de référence.
    Remarque :
    il est recommandé d'effectuer des appels JavaScript vers des fonctions dans un script includes au lieu d'une règle métier globale.
    Exemple de chaîne de requête codée : vendor=true. Elle renvoie toutes les sociétés désignées comme fournisseurs. Saisir cette chaîne revient à utiliser le créateur de condition, comme illustré dans l'exemple du qualificatif de référence simple. Pour en savoir plus sur la syntaxe et les exemples de chaînes de requêtes codées valides, consultez Chaînes de requêtes codées.
    Figure 3. Exemples de qualificatifs de référence avancés
    Chaîne de requête codée dans un qualificatif référencé avancé
    Exemple d'appel JavaScript : javascript:new myScriptInclude().my_refqual(). Ce code appelle la fonction my_refqual() dans le script includes myScriptInclude(). La fonction doit renvoyer une chaîne de requête qui peut filtrer les options disponibles dans un champ de référence.
    Remarque :
    vous pouvez également utiliser des filtres JavaScript codés tels que javascript :'u_active=true^' + "u_hr_service="+current.hr_service dans les qualificatifs de référence.
    Dans un autre exemple, si vous essayez de filtrer en fonction de la société actuelle, vous n'avez pas besoin d'utiliser de script de recherche. Vous pouvez simplement ajouter cette ligne à votre qualificatif de référence dynamique :
    return "company=" + current.company;
    Vous pouvez également simplifier cette opération et utiliser un qualificatif de référence avancé au lieu d'un qualificatif dynamique :
    javascript:"company=" + current.company
    Exemple 2 d'une chaîne de requête codée dans un qualificatif de référence avancé

    Listes connexes et qualificatifs de référence

    Lorsqu'un champ apparaît sur plusieurs listes connexes d'une seule vue de formulaire, il peut être nécessaire de valider la liste connexe référencée pour créer correctement le qualificatif de référence pour le champ. Dans ce cas, configurez le contrôle de la liste connexe et saisissez une balise unique dans le champ Balise d'édition de liste. Cette valeur de balise est disponible pour filtrer les scripts en tant que variable nommée listEditRefQualTag. Le code de script includes suivant est un exemple de fonction utilisant ce type de balise.
    // 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"
     
      }

    Utiliser la syntaxe actuelle JavaScript dans les qualificatifs de référence

    current est un objet JavaScript qui contient les champs et les valeurs de champ de l'enregistrement actif (actuel). Pour les formulaires, il s'agit de l'enregistrement qui est y affiché (chargé). Dans les qualificatifs de référence avancés et dynamiques, vous pouvez utiliser l'objet current JavaScript pour définir des filtres tels que javascript:"company=" + current.company.

    Cet objet JavaScript, dans un qualificatif de référence, renvoie uniquement les enregistrements de la table référencée qui sont égaux à la valeur de champ de l'enregistrement actuel de la société. Ainsi, si la valeur affichée dans le champ Société est Acme, l'objet JavaScript renvoie tous les enregistrements de champ de référence dont la valeur de société est égale à Acme (société="Acme"). Si vous affichez ensuite un enregistrement dont la valeur de société est « ViewRite », l'objet JavaScript se résout en société="ViewRite".

    Tous les champs du formulaire actuellement chargé (tables) peuvent être utilisés avec l'objet current. Utilisez la remontée pas à pas pour accéder aux valeurs d'une table, y compris la table référencée. Par exemple, le champ Affecté à du formulaire Incident fait référence à la table Utilisateur. Pour accéder à l'adresse e-mail de l'utilisateur, utilisez la syntaxe suivante : javascript:"emailAddress=" + current.assigned_to.email.