Gestionnaire de navigation

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 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 de 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 spécifier la table à laquelle le gestionnaire de navigation s’applique, ainsi qu’un champ Script contenant la règle de vue scriptée.

    Le script suivant provient du gestionnaire de navigation inclus avec le module d’extension RH. Le script force les enregistrements de la table dans le champ Table à utiliser la vue ESS pour les utilisateurs n’ayant aucun 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 les règles de vue de processus après les gestionnaires de navigation. Si la propriété système n’existe pas dans votre instance, le gestionnaire de navigation a toujours priorité.

    La propriété système ne remplace le gestionnaire de navigation que 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 du 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 ne renvoyer une réponse que 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 ne s’affiche que lorsque l’utilisateur n’a aucun rôle. Si l’utilisateur possède des rôles, la réponse n’est jamais atteinte et les règles d’affichage sur 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');  
         }  
    }