Conjuntos de importação API - ServiceNow Fluent

  • Versão de lançamento: Zurich
  • Atualizado 19 de dez. de 2025
  • 11 min. de leitura
  • . Conjuntos de importação A API define mapas de transformação [ sys_transform_map ] que especificam como transformar e mapear dados da tabela de preparação do conjunto de importação para tabelas de destino.

    Cada operação de importação para uma tabela de produção requer pelo menos um mapa de transformação associado a um conjunto de importação. O mapa de transformação especifica os relacionamentos de dados entre o conjunto de importação e a tabela de destino.

    Para criar um conjunto de importação em ServiceNow Fluentcódigo, você deve definir os metadados necessários na seguinte ordem:
    1. Defina a tabela de preparação [sys_db_object] usando a API de tabela. A tabela deve estender a tabela da linha do conjunto de importação [sys_import_set_row]. Para obter mais informações, consulte API de tabela - ServiceNow Fluent.

      A tabela de preparação define todas as colunas que recebem dados importados.

    2. Defina a fonte de dados [sys_data_source] usando a API de registro. A fonte de dados deve fazer referência à tabela de preparação do seu import_set_table_name propriedade. Para obter mais informações, consulte API de registro - ServiceNow Fluent.

      A fonte de dados define a conexão com sistemas externos (arquivos, bancos de dados, APIs) e como carregar dados em tabelas de preparação de importação. Para obter mais informações, consulte Data sources.

    3. Defina o mapa de transformação [sys_transform_map] usando a API de conjuntos de importação. O mapa de transformação deve fazer referência à tabela de preparação do seu SourceTable propriedade.
    Importante:
    A cadeia de caracteres NULO é uma palavra reservada. Ele não deve ser usado como um valor de campo em mapas de transformação de conjunto de importação ou em qualquer lugar no Nome ou Sobrenome campos. A palavra reservada é NULO em letras maiúsculas. Um campo com o valor Nulo ou nulo , por exemplo, é aceitável. NULO deve ser usado somente para limpar um campo específico.

    Para obter informações gerais sobre conjuntos de importação, consulte Import sets.

    Objeto do conjunto de importação

    Crie um mapa de transformação [sys_transform_map] para definir os relacionamentos entre os campos em uma tabela de conjunto de importação e os campos em uma tabela existente.

    Para obter informações gerais sobre como criar mapas de transformação, consulte Create a transform map.

    Tabela 1. Propriedades
    Nome Tipo Descrição
    id Cadeia de caracteres ou número Necessário. Um ID exclusivo para o objeto de metadados. Quando você cria a aplicação, este ID é hash em um sys_id exclusivo. Para obter mais informações, consulte ServiceNow Fluent construções de linguagem.

    Formato: Now.ID['Cadeia de caracteres' ou número]

    nome Cadeia de caracteres Necessário. Um nome interno para o mapa de transformação.
    targetTable Cadeia de caracteres Necessário. O nome da tabela na qual você deseja que os dados transformados sejam inseridos.

    Você pode especificar somente tabelas no escopo da aplicação ou no escopo global, ou tabelas que concedem acesso de gravação a outras aplicações.

    sourceTable Cadeia de caracteres Necessário. O nome da tabela que contém os dados brutos do conjunto de importação a serem transformados. Uma tabela de importação é qualquer tabela que estende a tabela de linha do conjunto de importação [sys_import_set_row]. Você pode especificar somente tabelas no escopo da aplicação.
    Nota:
    O valor desta propriedade deve corresponder ao valor de nome propriedade na definição da tabela de preparação e na import_set_table_name propriedade na definição da fonte de dados.
    pedido Número A ordem de execução na qual aplicar mapas de transformação se mais de um mapa atender às condições.

    Padrão: 100

    ativo Booliano Sinalizador que indica se o mapa de transformação está ativo.

    Padrão: falso

    RunBusinessRules Booliano Sinalizador que indica se regras de negócios, fluxos de trabalho, mecanismos de aprovação, auditoria e normalização de campo devem ser executadas enquanto a transformação insere ou atualiza dados na tabela de destino. Se falso, GlideRecord.setWorkflow() executado com um valor falso.

    Padrão: verdadeiro

    ExcetivoMandatoryFields Cadeia de caracteres Uma opção para impor campos obrigatórios na tabela de destino.
    Valores válidos:
    • não: Não aplique campos obrigatórios.
    • OnlyMappedFields: Impõe somente campos mapeados obrigatórios.
    • AllFields: Aplique todos os campos obrigatórios.

    Padrão: não

    CopyEmptyFields Booliano Sinalizador que indica se os campos vazios devem ser copiados da origem e substituídos os valores de campo de destino existentes.

    Padrão: falso

    CreateOnEmptyCoalesce Booliano Sinalizador que indica se um registro deve ser criado quando os campos de aglutinação estão vazios, em vez de ignorar o registro ou substituir um registro existente.

    Se CreateOnEmptyCoalesce é verdadeiro para qualquer campo no registro, o registro é aglutinado.

    Padrão: falso

    Script Booliano Sinalizador que indica se o script do mapa de transformação deve ser executado. O sistema executa o script do mapa de transformação, além de todos os mapas de campo.

    Padrão: falso

    script Script Um script que transforma valores de campo na tabela de origem na tabela de destino. Esta propriedade é compatível com uma função de um módulo JavaScript, uma referência a outro arquivo na aplicação que contém um script ou JavaScript em linha.Espera uma função do tipo (Origem, destino, mapa, log, isUpdate .
    Formato:
    • Para funções, use o nome de uma função, expressão de função ou função padrão exportada de um módulo JavaScript e importe-a para o. .now.ts arquivo. Para obter informações sobre módulos JavaScript, consulte Módulos JavaScript e bibliotecas de terceiros.
    • Para usar conteúdo de texto de outro arquivo, consulte um arquivo na aplicação usando o seguinte formato: Now.include('path/to/file') . Para obter mais informações, consulte ServiceNow Fluent construções de linguagem.
    • Para fornecer um script em linha, use literais de cadeia de caracteres ou literais de modelo para várias linhas de código: "Script" ou "Script" .
    campos Objeto Pares de chave e valor de mapeamentos de campo em que a chave é o nome do campo de destino e o valor é o nome do campo de origem ou o objeto de campos. Cada nome de campo de destino (chave) deve ser exclusivo no objeto fields para evitar conflitos de mapeamento.
    Formato:
    • Para mapear um nome de campo de destino para um objeto de campo de origem, consulte objeto de campos.
    • Para mapear um nome de campo de destino para um nome de campo de origem, use o seguinte formato:
      fields: {
          targetFieldName: 'sourceFieldName',
          ...
      }
    scripts Matriz Uma lista de scripts de transformação para processamento adicional. Para obter mais informações, consulte matriz de scripts.
    import '@servicenow/sdk/global'
    import { Table, Record, ImportSet } from '@servicenow/sdk/core'
    
    // STEP 1: Create Staging Table Definition (REQUIRED - MUST BE FIRST)
    // This creates the actual table structure to hold imported data
    export const userStagingTable = Table({
        $id: Now.ID['user-staging-table'],
        name: 'u_user_import_staging',
        label: 'User Import Staging',
        extends: 'sys_import_set_row', // All staging tables extend this
        columns: [
            {
                name: 'u_email_address',
                type: 'email',
                max_length: 100,
                label: 'Email Address'
            },
            {
                name: 'u_full_name',
                type: 'string',
                max_length: 100,
                label: 'Full Name'
            },
            {
                name: 'u_username',
                type: 'string',
                max_length: 40,
                label: 'Username'
            },
        ]
    })
    
    // STEP 2: Create Data Source (REQUIRED - MUST BE SECOND)
    // The data source defines HOW to get data from external systems
    export const userDataSource = Record({
        $id: Now.ID['user-csv-datasource'],
        table: 'sys_data_source',
        data: {
            name: 'User CSV Data Source',
            type: 'File',
            format: 'CSV',
            file_retrieval_method: 'Attachment',
            csv_delimiter: ',',
            header_row: 1,
            // CRITICAL: This must match the table name from STEP 1
            import_set_table_name: 'u_user_import_staging',
            import_set_table_label: 'User Import Staging',
            batch_size: 500,
            active: true,
        },
    })
    
    // STEP 3: Create Import Set (Transform Map) (REQUIRED - MUST BE THIRD)
    // The import set defines HOW to transform data from staging to target table
    export const userImportSet = ImportSet({
        $id: Now.ID['user-import-transform'],
        name: 'User Import Transform',
        targetTable: 'sys_user',
        // CRITICAL: This must match import_set_table_name in Data Source
        sourceTable: 'u_user_import_staging',
        active: true,
        runBusinessRules: true,
        fields: {
            email: {
                sourceField: 'u_email_address',
                coalesce: true,
            },
            name: 'u_full_name',
            user_name: 'u_username',
        }
    })

    objeto de campos

    Defina mapeamentos de campo [sys_transform_entry] dos campos de origem de um conjunto de importação para os campos da tabela de destino.

    Use o. campos objeto em Conjunto de importação objeto. Em campos cada chave do nome do campo de destino deve ser exclusiva para evitar conflitos de mapeamento.

    Para obter informações gerais sobre como criar mapas de campo, consulte Create a field map.

    Tabela 2. Propriedades
    Nome Tipo Descrição
    sourceField Cadeia de caracteres O nome do campo de origem da tabela de importação a ser transformada. Esta propriedade é necessária, a menos que você use SourceScript ou uma configuração somente aglutinante. Campo na tabela de origem a ser transformada. . SourceTable contém somente dados brutos, o valor pode ficar vazio.
    EscolhaAção Cadeia de caracteres A ação a ser realizada se o conjunto de importação contiver um valor de referência ou opção diferente dos disponíveis. Esta propriedade se aplica se o campo de destino for uma lista de seleção ou campo de referência.
    Valores válidos:
    • Criar: Crie uma opção ou registro na tabela de referência.
    • Ignorar: Ignore o novo valor da tabela de origem.
    • Rejeitar: Ignore a linha inteira (registro) que contém o novo valor e continue para a próxima linha.
    SourceScript Script Um script que transforma valores de campo na tabela de origem na tabela de destino. Esta propriedade é compatível com uma função de um módulo JavaScript, uma referência a outro arquivo na aplicação que contém um script ou JavaScript em linha.Espera uma função do tipo (origem) > qualquer .
    Formato:
    • Para funções, use o nome de uma função, expressão de função ou função padrão exportada de um módulo JavaScript e importe-a para o. .now.ts arquivo. Para obter informações sobre módulos JavaScript, consulte Módulos JavaScript e bibliotecas de terceiros.
    • Para usar conteúdo de texto de outro arquivo, consulte um arquivo na aplicação usando o seguinte formato: Now.include('path/to/file') . Para obter mais informações, consulte ServiceNow Fluent construções de linguagem.
    • Para fornecer um script em linha, use literais de cadeia de caracteres ou literais de modelo para várias linhas de código: "Script" ou "Script" .
    UseSourceScript Booliano Sinalizador que indica se o script de origem deve ser usado em vez do campo de origem.

    Padrão: falso

    Formato de data Cadeia de caracteres O formato das transformações quando o campo de destino é um campo Data ou Data/Hora.
    Nota:
    Para saber mais sobre os formatos de data permitidos, consulte Formato de campo de data e hora global .

    Formato: 'DD-MM-aaaa' , "aaaa-MM-dd" , "aaaa-dd-MM" , "MM-dd-aaaa HH:mm:ss z" , "aaaa-MM-dd HH:mm:ss" , "HH:mm:ss" , "MM-dd-aaaa HH:mm:ss" , 'DD-MM-aaaa HH:mm:ss z' , "MM-dd-aaaa" , ou 'DD-MM-aaaa HH:mm:ss'

    Campo de Valor de referência Cadeia de caracteres O campo de valor de referência quando o campo de destino é um campo de referência. O mapa de transformação precisa de uma maneira de corresponder os valores de origem de entrada aos registros existentes na tabela de origem do campo de referência. Como a maioria das importações não fornece um valor sys_id de 32 caracteres, você deve especificar uma coluna da tabela de origem do campo de referência que contenha valores que correspondam aos valores de origem de entrada. Para obter mais informações, consulte Create a field map.
    aglutinar Booliano Sinalizador que indica se o campo é usado para correspondência de registro. Configurar um campo de destino para aglutinar faz com que o conjunto de importação trate o campo como uma chave exclusiva. Para obter mais informações, consulte Create a field map.

    Padrão: falso

    CasaSensitivo Booliano Sinalizador que indica se valores de aglutinação com distinção entre maiúsculas e minúsculas devem resultar na criação de novos registros.

    Por padrão, campos aglutinantes são usados em uma pesquisa que não diferencia maiúsculas de minúsculas para registros existentes. Registros que não diferenciam maiúsculas de minúsculas atualizam somente os registros existentes e não causam a criação de novos registros.

    Padrão: falso

    AglutemEmptyFields Booliano Sinalizador que indica se um valor de campo de origem vazio deve corresponder a um valor de campo de destino vazio. . aglutinar a propriedade deve ser definida como verdadeira para que esta propriedade seja aplicada.

    Por exemplo, o Mapa de transformação do usuário aglutina no campo de e-mail. Se esta propriedade estiver definida como verdadeira, um registro de origem que contém um endereço de e-mail vazio aglutina-se em um registro de destino que contém um endereço de e-mail vazio.

    Padrão: falso

    fields: {
            email: {
                sourceField: 'email_address',
                coalesce: true,
                useSourceScript: true,
                sourceScript: `answer = (function transformEntry(source) {
                    return source.email_address.toLowerCase().trim();
                })(source);`
            },
            department: {
                sourceField: 'dept_code',
                choiceAction: 'create'
            }
    }

    matriz de scripts

    Defina scripts de transformação [sys_transform_script] que são executados em diferentes fases do processo de importação.

    Tabela 3. Propriedades
    Nome Tipo Descrição
    id Cadeia de caracteres ou número Necessário. Um ID exclusivo para o objeto de metadados. Quando você cria a aplicação, este ID é hash em um sys_id exclusivo. Para obter mais informações, consulte ServiceNow Fluent construções de linguagem.

    Formato: Now.ID['Cadeia de caracteres' ou número]

    ativo Booliano Sinalizador que indica se o script está ativo e é executado.

    Padrão: verdadeiro

    pedido Número A ordem de execução na qual os scripts são executados se mais de um script atender às condições.

    Padrão: 100

    quando Cadeia de caracteres A fase do processo de importação na qual o script será executado. Para obter mais informações, consulte Map with transformation event scripts.

    Valores válidos: OnBefore, onAfter, onReject, onStart, onForeignInsert, onComplete, onChoiceCreate

    Padrão: OnAfter

    script Script Um script que modifica o comportamento de transformação na fase especificada com quando propriedade. Esta propriedade é compatível com uma função de um módulo JavaScript, uma referência a outro arquivo na aplicação que contém um script ou JavaScript em linha.Espera uma função do tipo (origem, mapa, log, destino .
    Formato:
    • Para funções, use o nome de uma função, expressão de função ou função padrão exportada de um módulo JavaScript e importe-a para o. .now.ts arquivo. Para obter informações sobre módulos JavaScript, consulte Módulos JavaScript e bibliotecas de terceiros.
    • Para usar conteúdo de texto de outro arquivo, consulte um arquivo na aplicação usando o seguinte formato: Now.include('path/to/file') . Para obter mais informações, consulte ServiceNow Fluent construções de linguagem.
    • Para fornecer um script em linha, use literais de cadeia de caracteres ou literais de modelo para várias linhas de código: "Script" ou "Script" .
    scripts: [
            {
                $id: Now.ID['validate-email'],
                active: true,
                order: 100,
                when: 'onBefore',
                script: `(function runTransformScript(source, map, log, target) {
                    if (!source.email_address || source.email_address.indexOf('@') === -1) {
                        log.error('Invalid email address: ' + source.email_address);
                        return;
                    }
                })(source, map, log, target);`
            },
            {
                $id: Now.ID['validate-user-script'],
                active: true,
                order: 100,
                when: 'onBefore',
                // Using imported function for lifecycle script
                script: validateUserData
            }
        ]