Manipulador de navegação

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 1 min. de leitura
  • Um manipulador de navegação é uma regra de exibição com script e é executado sempre que os dados da tabela especificada são solicitados na exibição do formulário.

    Criar um manipulador de navegação

    A tabela Manipulador de navegação [sys_navigator] contém os manipuladores de navegação em sua instância. Acesse esta tabela inserindo sys_navigator.list no navegador de filtros. Os registros do manipulador de navegação contêm um campo Tabela para especificar a qual tabela o manipulador de navegação se aplica e um campo Script que contém a regra de exibição com script.

    O script a seguir vem do manipulador de navegação incluído com o plug-in de RH. O script força os registros da tabela no campo Tabela a usar a exibição ESS para usuários sem funções e a exibição padrão para todos os outros usuários.

    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'); 

    Executar manipuladores de navegação antes ou depois das regras de exibição

    Use a propriedade do sistema glide.ui.view_rule.check_after_nav_handler para controlar a ordem na qual as regras de exibição e os manipuladores de navegação são aplicados. Defina o valor da propriedade como Verdadeiro para processar regras de exibição após os manipuladores de navegação. Se a propriedade do sistema não existir em sua instância, o manipulador de navegação sempre terá precedência.

    A propriedade do sistema somente substituirá o manipulador de navegação se a função de script do manipulador de navegação não retornar uma resposta. No script de exemplo acima, a propriedade não tem efeito. Isso ocorre porque este manipulador de navegação sempre retorna uma resposta porque a linha de resposta está fora da instrução " if ".

    Para forçar o script do manipulador de navegação no exemplo anterior a honrar as regras de exibição, siga estas etapas:
    1. Crie a propriedade do sistema glide.ui.view_rule.check_after_nav_handler.
    2. Defina o valor da propriedade como verdadeiro.
    3. Atualize o script do manipulador de navegação para retornar uma resposta somente quando a exibição precisar ser alterada ou forçada.

    Este exemplo é uma versão modificada do script anterior. Nesse caso, a linha de resposta ocorre somente quando o usuário não tem funções. Se o usuário tiver funções, a resposta nunca será acessada e as regras de exibição na mesma tabela, se houver, serão aplicadas.

    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');  
         }  
    }