Gestionnaire de navigation

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 2 minutes de lecture
  • Un gestionnaire de navigation est une règle de vue scriptée qui s’exécute chaque fois que des données de la table spécifiée sont demandées dans la vue de formulaire.

    Créer un gestionnaire de navigation

    La table Gestionnaire de navigation [sys_navigator] contient les gestionnaires de navigation sur votre instance. Accédez à cette table en saisissant sys_navigator.list dans le navigateur de filtre. Les enregistrements du gestionnaire de navigation contiennent un champ Table pour indiquer la table à laquelle le gestionnaire de navigation s’applique et un champ de script contenant la règle de vue scriptée.

    Le script suivant provient du gestionnaire de navigation inclus dans le module d’extension HR. Le script force les enregistrements de la table dans le champ Table à utiliser la vue ESS pour les utilisateurs sans rôle et la vue par défaut pour tous les autres utilisateurs.

    var now_GR = new GlideRecord(hr.TABLE_CASE);  
    if (gr.get(g_uri.get('sys_id'))) {  
         if (!gs.getUser().hasRoles())   
              g_uri.set('sysparm_view', 'ess');  
         else  
              g_uri.set('sysparm_view', '');  
    }  
      
      
    answer =  g_uri.toString('hr_case.do'); 

    Exécuter les gestionnaires de navigation avant ou après les règles de vue

    Utilisez la glide.ui.view_rule.check_after_nav_handler propriété système pour contrôler l’ordre dans lequel les règles de vue et les gestionnaires de navigation sont appliqués. Définissez la valeur de la propriété sur Vrai pour traiter les règles de vue après les gestionnaires de navigation. Si la propriété système n’existe pas dans votre instance, le gestionnaire de navigation a toujours la priorité.

    La propriété système remplace le gestionnaire de navigation uniquement si la fonction scriptée du gestionnaire de navigation ne renvoie pas de réponse. Dans l’exemple de script ci-dessus, la propriété n’a aucun effet. Cela est dû au fait que ce gestionnaire de navigation renvoie toujours une réponse car la ligne de réponse se trouve en dehors de l’instruction if .

    Pour forcer le script de gestionnaire de navigation de l’exemple précédent à respecter les règles de vue, procédez comme suit :
    1. Créez la glide.ui.view_rule.check_after_nav_handler propriété système.
    2. Définissez la valeur de la propriété sur vrai.
    3. Mettez à jour le script du gestionnaire de navigation pour renvoyer une réponse uniquement lorsque la vue doit être modifiée ou forcée.

    Cet exemple est une version modifiée du script précédent. Dans ce cas, la ligne de réponse se produit uniquement lorsque l’utilisateur n’a pas de rôles. Si l’utilisateur dispose de rôles, la réponse n’est jamais obtenue et les règles d’affichage de la même table, le cas échéant, sont appliquées.

    var now_GR = new GlideRecord(hr.TABLE_CASE);  
    if (gr.get(g_url.get('sys_id'))) {  
         if (!gs.getUser().hasRoles()) {  
              g_url.set('sysparm_view'),'ess');  
              answer = g_url.toString('hr_case.do');  
         }  
    }