---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Criar uma ação de roteamento de IU

# Criar uma ação de roteamento de IU {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 min. de leitura

Esta solução permite que você crie um registro com a central de serviços sem saber se é um incidente ou item da solicitação; a central de serviços pode então rotear o registro para a tabela apropriada.

## Por Que e Quando Desempenhar Esta Tarefa

Nota:  
A funcionalidade descrita aqui requer a função de administrador.

Para criar uma ação de roteamento de IU:

## Procedimento

1. Crie uma nova tabela que estende a tabela de `tarefas` (por exemplo, Nova chamada).
2. Crie um módulo para criar um novo registro de nova chamada.
3. Crie os campos desejados na tabela Nova chamada.  
   Os únicos campos necessários são os campos necessários para determinar se a nova chamada deve ser roteada para um incidente ou um item da solicitação. Certifique-se de que o formulário contenha todos os campos que você deseja passar para o incidente ou item da solicitação. Neste exemplo, o seguinte é criado no formulário:
   * Solicitado para (referência)
   * Local (referência)
   * Tipo de chamada (opção com dois valores: incidente e solicitação)
   * Item da solicitação (referência à tabela de itens `sc_cat_item` )
4. Adicione algumas políticas de IU para definir alguns campos como obrigatórios e ocultar o campo Item da solicitação com base na seleção do tipo de chamada.
5. Remova botões e funcionalidades desnecessárias do formulário.
6. Crie um novo botão de Ação de IU.  
   Este botão redireciona o usuário para um incidente ou uma solicitação. Ele também cria o registro de incidente e copia valores para o incidente e o formulário de item da solicitação.  

       var reqItem = current.u_item;
       var requestedFor = current.u_requested_for;
       var location = current.location;

       if(current.u_incident_request == 'Incident'){
         //Create a new incident record and redirect to the new incident
         var rec = new GlideRecord('incident');
         rec.initialize();
         rec.caller_id = requestedFor;
         rec.location = location;
         rec.insert();
         action.setRedirectURL(rec);
       }

       if(current.u_incident_request == 'Request'){
         //Build the url and route the user to the request item
         var url = '';
         if(current.u_item.sys_class_name == 'sc_cat_item_guide'){
           url = 'com.glideapp.servicecatalog_cat_item_guide_view.do?sysparm_initial=true&sysparm_guide=' + 
             reqItem + '&sysparm_user=' + requestedFor + '&sysparm_location=' + location;
         }
         else{
           url = 'com.glideapp.servicecatalog_cat_item_view.do?sysparm_id=' + reqItem + '&sysparm_user=' +  
             requestedFor + '&sysparm_location=' + location;
         }
         action.setRedirectURL(url);
       }

7. O botão Rotear no exemplo anterior passa os valores Solicitado para e Local no URL para o formulário Item da solicitação.  
   Certifique-se de ter variáveis chamadas <var class="keyword varname">request_for</var> e <var class="keyword varname">location</var> no item, produtor de registro ou guia de pedido que mapeiam esses valores usando o client script a seguir. Há um limite na quantidade de informações que você pode passar, pois o URL tem um tamanho restrito. Evite enviar informações de campos de texto longo usando este método.  

       function onLoad() {
         var url = document.location.toString();
         var userKey = 'sysparm_user=';
         var locKey = 'sysparm_location=';
         var userPosition = url.indexOf(userKey);
         var locPosition = url.indexOf(locKey)
         if (userPosition != -1) {
           var user = url.substr(userPosition+userKey.length, 32);
           g_form.setValue('requested_for',user);
         }
         if (locPosition != -1) {
           var loc = url.substr(locPosition+locKey.length, 32);
           g_form.setValue('location',loc);
         }
       }


