Como separar por domínio uma tabela personalizada

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • Pode ser necessário criar tabelas personalizadas em domínios separados. Este tópico cobre o procedimento e o conceito por trás de uma tabela personalizada de separação de domínio.

    1. Criação de um campo sys_domain

    Nota:
    Se uma tabela do sistema ou uma tabela não tiver sido separada por domínio pelo plug-in Separação de domínios, é melhor não a separar por domínio.
    Use esses pontos como diretriz para criar um campo sys_domain.
    • Crie um novo campo como um tipo domain_id.
      • Nome da coluna: sys_domain
      • Outros atributos: definidos automaticamente
    • O Sys_domain_path é criado automaticamente.

    O nome da coluna sys_domain está reservado no ServiceNow AI Platform, o que significa que o sistema o reconhece e aplica automaticamente o tipo de campo e os atributos apropriados para você. Esta configuração automática também cria um campo sys_domain_path correspondente.

    • Defina o nome da coluna como sys_domain em vez de usar o rótulo.
    • A Separação de domínios não é apropriado para todas as tabelas. Em geral, se uma tabela fizer parte da instância base e essa tabela não tiver um campo sys_domain, você deverá deixá-la assim.

    Um campo sys_domain é criado automaticamente quando você cria um campo do tipo domain_id com o nome "sys_domain".

    2. Como adicionar uma regra de negócio para definir o domínio

    Sem regras de negócio
    O domínio é definido como o domínio atual do usuário que cria o registro.
    Com regras de negócio
    O domínio é atribuído usando lógica de script, normalmente com base no campo Empresa.

    Além de um campo sys_domain, as tabelas personalizadas precisam de uma regra de negócios semelhante a Domínio - Definir domínio - Tarefapara definir o valor do campo de domínio. Além disso, você precisará de Domínio - Padrão - Tarefa, que move registros sem um domínio para o domínio-padrão se a primeira regra não conseguir atribuir um domínio.

    Na tabela de tarefas, revise as regras de negócio do Domínio. Preste atenção especial ao campo Pedido. A prioridade de execução é fornecida pelo campo Pedido de baixo para alto.

    A primeira regra executada, Domínio - Definir domínio - Tarefa, tentará definir o domínio do registro com base no domínio da empresa do registro.

    Se a primeira regra não encontrar um domínio apropriado, a segunda regra, Domínio - Padrão - Tarefa, será executada. Esta regra define o domínio do registro como o domínio-padrão.

    Por fim, se o domínio de um registro de tarefa mudar, a regra de negócio Domínio - Domínio em cascata - Tarefa mudará o domínio em todos os registros relacionados à tarefa, como fluxos de trabalho, métricas, ANSs e anexos.

    3. Como adicionar uma regra de negócio se a Etapa 2 falhar

    Se a regra de negócios inicial não definir um domínio e o domínio ainda estiver vazio ou global, uma segunda regra de negócio será executada. Esta regra examina o campo task_for que se baseia no campo solicitante ou solicitado. Esta regra verifica se você pode definir o domínio do registro com base no domínio do usuário. Caso contrário, esta regra define o domínio do registro como o domínio-padrão.

    A seguir está um script de exemplo para a regra de negócio:

    /* essentially
    If (task_for is set)
      set the domain to the user's domain
    ELSE
      set the domain to the default domain
    */

    4. Domínio - domínio em cascata - tarefa

    As tarefas podem ter muitas tabelas relacionadas que funcionam juntas para objetivos de negócios. Esses registros relacionados incluem fluxo de trabalho, ANS, aprovações, anexos e e-mail. Se o domínio de uma tarefa mudar, o domínio dos registros relacionados também deverá mudar, para que eles permaneçam visíveis para os usuários no novo domínio.

    Esta Regra em cascata é normalmente acionada quando você limpa registros do domínio-padrão.

    Os registros relacionados a um Domínio em cascata contidos no script são mostrados de forma semelhante ao exemplo:

    /*
    * Keep domains in sync w/related records for:
    * workflow context
    * workflow history
    * approver tables and related workflows
    * attachments
    * emails
    */