Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Carlos Camacho
Mega Sage
Mega Sage

     Para garantir a performance de uma instância, a ServiceNow define uma série de propriedades de sistema para impor limites em algumas operações.

     Uma operação que certamente é capaz de causar lentidão para os usuários é a importação de um número muito grande de registros. Nesse artigo vamos analisar como importar um arquivo CSV para a sua tabela e também como é possível alterar temporariamente esse limite.

     Para início de conversa precisamos ter em mãos um arquivo com 100.000 registros a ser importado para uma tabela no nosso projeto. Clique aqui para fazer o download de um CSV contendo esses registros com os campos nome e email.

Criando uma tabela para o carregamento de dados


      Dentro do seu Aplicativo crie uma tabela com apenas dois campos: nome e email.

find_real_file.png

      Para carregar os dados do arquivo CSV para a nossa tabela de destino, há uma sequência lógica a ser executada:

      1) Carregar o arquivo para uma tabela Stage (temporária);
      2) Criar um Transform Map para mapear os campos do arquivo com os campos da tabela target (destino);
      3) Executar a transformação.
      
      1) Carregar o arquivo para uma tabela Stage (temporária)

      A primeira coisa a ser feita é clicar em System Import Sets > Load Data
      Aqui é basicamente selecionar:
      - Create table
      - Preencher o nome da tabela temporária no campo Label
      - Em Source of the import, selecione File
      - No campo File clique em [Choose File] para selecionar o arquivo CSV que contém os 100.000 registros

find_real_file.png

      - Clique em [Submit]

      2) Criar um Transform Map para mapear os campos do arquivo com os campos da tabela target (destino)

      Após o passo 1 você precisa aguardar até a conclusão da importação de dados. Quando a importação terminar você verá uma tela como a seguir:
      Clique em [Create transform map]

find_real_file.png

     Em Name defina um nome para esse Mapa de Transformação;
      Em Source table informe a tabela Temporária já criada;
      Em Target table informe a tabela oficial criada dentro do Studio para receber os dados;
      Desmarque "Run business rules";
      Antes de clicar em Submit, clique em [Mapping Assist] para relacionar os campos.

find_real_file.png

      Utilize as seta Add > da esquerda para colocar o campo nome da tabela de relacionamento. Depois utilize Add < da direita para colocar o campo nome da tabela Target na tabela de relacionamento. Assim mapeamos que o campo nome da tabela temporária será gravado no campo nome da tabela oficial.
      Repita o processo para o campo email e depois clique em [Save]

find_real_file.png

      3) Executar a transformação.
      Nessa tela basta clicar em [Transform]

find_real_file.png

      Coloque o Transform Map para a tabela da direita e clique em [Transform]

find_real_file.png

      Ao término do processo, clique em [Transform history] para conferir os detalhes do processamento.

find_real_file.png

      Confira o total de registros inseridos, atualizados, etc.

find_real_file.png

      Consultando a tabela oficial é possível ver os registros inseridos.

find_real_file.png

     Instâncias corporativas geralmente possuem limites mais rígidos com relação ao número máximo de registros importados.

     Conforme documentação oficial, criando o parâmetro glide.ui.export.limit na tabela sys_properties é possível aumentar esse limite. A ServiceNow cria propriedades por um motivo, então tenha cuidado ao alterar esses parâmetros.



Version history
Last update:
‎04-16-2022 06:58 AM
Updated by: