Opções de mapeamento

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 6 min. de leitura
  • Você pode mapear campos de várias maneiras, dependendo das circunstâncias da importação e se os dados devem ser transformados antes de serem carregados em uma tabela de produção.

    Também é importante observar que qualquer operação de importação pode exigir o uso de vários métodos de mapeamento, e esses métodos podem ser prontamente usados em conjunto uns com os outros.

    Utilitário de mapeamento automático

    O método de mapeamento mais simples é quando todos os nomes de campo dos conjuntos de importação correspondem aos nomes dos campos nas tabelas de produção nas quais os dados serão transformados. Neste caso, basta clicar Mapear campos correspondentes automaticamente Na lista relacionada no formulário Mapa de transformação de tabela e confirme a correspondência apropriada. Se houver discrepâncias em termos de como os campos foram correspondidos automaticamente, use o utilitário de assistência de mapeamento para corrigi-los. Quando todos os campos forem correspondidos corretamente, clique em Transformação link relacionado para começar a transformar dados na tabela de destino.

    Utilitário de Assistência de Mapeamento

    O utilitário de assistência de mapeamento fornece um ambiente visualmente intuitivo para especificar o mapeamento entre os campos de conjunto de importação e os campos da tabela de produção. O utilitário de assistência de mapeamento possibilita mapear um único campo de origem (campo em uma tabela de conjunto de importação) para vários campos de destino (campos em uma tabela de produção).
    Figura 1. Ajuda de mapeamento

    Alterando o formato de data

    Se o formato de data do campo de origem não corresponder ao formato do campo de destino, você poderá definir um mapeamento de formato de data para transformar datas de um formato para outro. Por exemplo, este mapeamento especifica que o formato de data do arquivo de origem CSV usa o. Dd-MM-aaaa formato.
    Figura 2. Formato de data do mapa de campo
    Figura 3. Opções de formato de data do mapa de campo
    As opções de formato de data incluem:
    Tabela 1. Opções de mapeamento
    Formato de data Descrição
    dd-MM-aaaa Dia-mês-ano
    dd-MM-aaaa hh:mm:ss Dia-mês-ano horas-minutos-seconds
    dd-MM-aaaa hh:mm:ss z Day-month-ano hours-minutes-seconds fuso horário
    MM-dd-aaaa Mês-dia-ano
    MM-dd-aaaa hh:mm:ss Mês-dia-ano horas-minutos-seconds
    MM-dd-aaaa hh:mm:ss z Mês-dia-ano horas-minutos-seconds fuso horário
    aaaa-dd-MM Ano-dia-mês
    aaaa-MM-dd Mês-dia
    aaaa-MM-dd hh:mm:ss Year-month-day hours-minutes-seconds

    Para indicar o formato de hora de 24 horas, especifique um formato de data personalizado usando HH:mm:ss em vez de hh:mm:ss.

    Nota:

    Converter de um formato de data de 24 horas para 12 horas pode fazer com que os horários de 12:00 a 23:59 sejam formatados como 00:00 a 11:59.

    Mapeamento para um campo de duração

    ServiceNow os campos de duração usam um tipo de dados especial que lista o número de milissegundos que o valor da duração. Para mapear dados de importação para um campo de duração, use um dos seguintes métodos para transformar valores de origem em uma duração.
    • Calcule a duração a partir de uma data de início e de término
    • Converta um valor de duração existente em um ServiceNow valor da duração

    Calculando um valor de duração a partir de uma data de início e término

    Se a origem de importação tiver uma data de início e de término, você poderá calcular uma duração com JavaScript.
    1. Navegar até Conjuntos para importação do sistema > Mapas de transformação.
    2. Selecione o mapa de transformação para o qual você deseja calcular um valor de duração. Por exemplo, o Mapa de transformação de notificação que importa para a tabela Incidente.
    3. Selecione Executar script caixa de seleção.
    4. Insira JavaScript para transformar as datas de início e término em uma duração. Consulte o script de amostra.
    5. Clique em Atualizar.
    Este script de amostra transforma os campos source.u_start e source.u_end em um valor de duração no campo target.duration. Altere os nomes dos campos para corresponder aos campos de origem e de destino, conforme necessário.
    target.duration = gs.dateDiff(source.u_start.getDisplayValue(), source.u_end.getDisplayValue(), false);

    Converta um valor de duração em um valor de duração da ServiceNow

    Se a origem de importação já contiver uma data de início e um valor de duração, você poderá converter a duração existente em um ServiceNow duração. Por exemplo, você pode ter uma fonte de dados do Excel que lista uma duração em segundos. ServiceNow espera que as durações tenham valores de milissegundos.
    1. Navegar até Conjuntos para importação do sistema > Mapas de transformação.
    2. Selecione um mapa de transformação.

      Por exemplo, o Mapa de transformação de notificação que importa para a tabela Incidente.

    3. Selecione Executar script caixa de seleção.
    4. Insira JavaScript para converter valores de duração existentes em um ServiceNow valores de duração. Consulte o script de amostra.
    5. Clique em Atualizar.
    Este script de amostra converte uma duração em segundos (de source.u_durationpara uma duração em milissegundos (no target.duration). Altere os nomes dos campos para corresponder aos campos de origem e de destino, conforme necessário.
    //Transform the value in source.u_duration from seconds to milliseconds
    target.duration.setDateNumericValue(source.u_duration * 1000);
    Este script de amostra converte uma duração já em milissegundos (de source.u_duration(campo) para a. ServiceNow duração (no target.duration). Altere os nomes dos campos para corresponder aos campos de origem e de destino, conforme necessário.
    //Transform the value in source.u_duration to ServiceNow format
    target.duration.setDateNumericValue(source.u_duration);

    Usando um script para calcular um valor de origem

    Você pode querer usar um script de origem em vez de Campo de origem quando:
    • O valor de origem não está no formato do valor de destino mapeado.
    • Você deseja pesquisar um valor antes de mapear para o campo de destino.
    • O valor de origem deve ser calculado a partir de vários campos.
    • Você precisa criar um valor de aglutinação composto ou calculado no campo de destino.
    Por exemplo, este script de origem de exemplo calcula o valor do campo user_name quando ele está em branco na origem.
    Figura 4. Script de origem do mapa de campo

    Um script de origem espera que o valor calculado seja definido na variável global resposta .

    Campos binários ou BLOB de mapeamento

    ServiceNow Usa um processo especial para importar dados binários e binários de objetos grandes (BLOB) de fontes de dados JDBC. Todos os dados binários são convertidos automaticamente em um registro na tabela Anexo [sys_attachment] antes que a transformação ocorra. A tabela do conjunto de importação armazena somente o valor sys_id do registro do anexo no campo da tabela de importação, em vez do valor binário real. Por exemplo, suponha que você use um Fonte de dados JDBC para importar dados de um sistema da Central de serviços da CA, que armazena o valor de chave de cada registro como dados binários. Quando você importa os valores de chave da Central de serviços para um ServiceNow. ServiceNow o campo contém somente um Referência sys_id aos dados binários correspondentes na tabela Registro de anexo [sys_attachment] em vez dos dados binários reais.

    Para que um mapa de transformação acesse o anexo, use GlideRecord API em um EmAfter script. O script precisa ser executado em um EmAfter evento porque destino.sys_id o objeto só está disponível depois que os dados são colocados na tabela de conjunto de importação. Por exemplo, para mapear o anexo resultante para o registro de transformação de destino, você pode usar o script a seguir.
    var agr = new GlideRecord("sys_attachment");
      agr.addQuery("sys_id", source.u_blob_field);
      // the source field needs to be mapped to the source that is the BLOB
      agr.query();
       if(agr.next()) {
        agr.table_name = "cmdb_ci"; // the target table of the transform map
        agr.table_sys_id = target.sys_id; // the target record
        agr.content_type = source.u_contentype; 
        // the content type string if available,  
        // this becomes the mime encoding when clicking an attachment link
        agr.update(); // finally, move/re-attach the attachment to the target row }
    Se você estiver mapeando diretamente para db_image execute o seguinte EmAfter script para exibir a imagem:
    var strTemp = source.u_file_name; 
    var fType = strTemp.substr(- 3); 
    var iCont = "" ;
     
     if(fType == 'jpg') {
      iCont = 'jpeg' ; } 
     else {
      iCont = fType; }
     
     var agr = new GlideRecord("sys_attachment");
     agr.addQuery("sys_id", source.u_blob_field);
     agr.query();
     
     if(agr.next()) {
      agr.table_name = "ZZ_YYdb_image";
      agr.table_sys_id = target.sys_id;
      agr.content_type = 'image/' + iCont;
      agr.file_name = 'image';
      agr.update(); }