RTETransformer - Com escopo

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 4 min. de leitura
  • . RTETransformer A API fornece um método para transformar e armazenar uma matriz de mensagens em um registro no associado ServiceNow Instância baseada em uma definição de extração, transformação e carregamento (ETL) fornecida.

    Por exemplo, você pode usar esta API quando tiver cargas JSON que contêm informações do usuário e quiser transformar essas informações na tabela sys_user usando o Mecanismo de Transformação Robusta (RTE).

    Use sn_impex Namespace ao acessar esta API.

    Para obter informações adicionais, consulte Defina operações robustas do Mecanismo de transformação .

    RTETransformer - rteTransform(cadeia de caracteres transformDefinitionId, booliano verboseLogging, origem da cadeia de caracteres, número de batchSize)

    Instancia um objeto RTETransformer.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    TransformDefinitionId Cadeia de caracteres Sys_id da definição de extração, transformação e carregamento (ETL) a ser usada para a transformação.

    Para obter informações sobre como criar um ETL, consulte Criar definições de Extract Transform Load (ETL) .

    Tabela: Definições de ETL [sys_rte_eb_etl_definition]

    VerboseLogging Booliano Sinalizador que indica se o registro em log detalhado deve ser habilitado e a criação de linhas de conjunto de importação para depuração.
    Valores válidos:
    • Verdadeiro: Habilite a criação de linhas de registro em log e conjunto de importação.
    • Falso: Não habilite o registro em log e a criação de linhas do conjunto de importação.
    origem Cadeia de caracteres Campo Nome do registro do conjunto de importação.
    batchSize Número Número de mensagens a serem processadas de uma só vez (lote).

    Por exemplo, se houver 10 mensagens em uma carga e esse valor estiver definido como 2, o método executará cinco trabalhos em lote separados para processar todas as mensagens na carga.

    O exemplo de código a seguir mostra como instanciar um objeto RTETransformer para o testSourceRecord de origem que tem um tamanho de lote de 10.

    (function(/*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, /*Context*/ ctx) {    
      // Uses an ETL definition with a target table of incident, and mappings for the number and short description field
      var transformer = new sn_impex.RTETransformer("c58f1c6377110110f5455d14cd5a998b", true, "testSourceRecord", 10);
      var messages = ["{\"number\":\"testnumber\",\"short_description\":\"testdesc\"}"];
      var results = transformer.transform(messages);
    
      for (var i = 0; i < results.length; i++) {
        var dataList = results[i].data.incident;
        gs.log("source record id: " + results[i].sourceRecordSysId);
        gs.log("status: " + results[i].status);
        for (var j = 0; j < dataList.length; j++) {
          gs.log("number:" + dataList[j].number);
          gs.log("short desc:" + dataList[j].short_description);
        }
      }
    })(request, response, ctx);

    RTETransformer - Transform (mensagem de matriz)

    Transforma e armazena uma matriz de mensagens em um registro no associado ServiceNow Instância baseada em uma definição de extração, transformação e carregamento (ETL) fornecida.

    Por exemplo, se você quiser transformar as informações do usuário em um registro sys_user, poderá criar uma matriz de mensagens com uma única mensagem e passá-la para este método de transformação.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    mensagem Matriz de objetivos Objetos JSON restritos que representam os registros a serem transformados com base na definição de ETL.
    Por exemplo, se você quiser transformar um único usuário com os dados ativos, e-mail, nome e sobrenome na tabela sys_user, a mensagem será semelhante a esta:
    [
      {  
        "active":"true",
        "email":"example@servicenow.com",
        "first_name":"Jane",
        "last_name":"Doe" 
      }
    ]
    Nota:
    Os nomes dos campos devem corresponder ao campo/caminho dos campos da entidade de origem.
    Tabela 3. Retornos
    Nome Descrição
    dados Dados dos registros transformados, organizados por nome da tabela. Os dados de registro retornados correspondem aos campos mapeados especificados na definição de ETL.

    Tipo de dados: Objeto

    "data": {
      "tableName": []
    }
    Nome.tablename Detalhes da tabela que contém os registros.

    Tipo de dados: Matriz de objetos

    "tableName": [{
      "sys_id": String,
       // Other data for a single transformed record
      }]
    }
    Por exemplo:
    "sys_user": [{ 
      "sys_id":"b29e629877130110f5455d14cd5a99ad",
      "active": "true",
      "email": "example@servicenow.com",
      "first_name": "Jane",
      "last_name": "Doe"
    }]
    Tablename.sys_id Sys_id do registro na tabela.

    Tipo de dados: Cadeia de caracteres

    Nome.tablename.<other_ETL_info> Campos adicionais que foram especificados no ETL aprovado.

    Tipo de dados: Qualquer

    mensagem Se ocorrer um erro ao transformar o registro especificado, uma mensagem que descreve o erro. Nulo se a transformação for bem-sucedida.

    Tipo de dados: Cadeia de caracteres

    SourceRecordSysId Sys_id do registro da tabela do conjunto de importação. O nome da tabela do conjunto de importação é coletor de evento JSON [imp_json_event_sink].

    Tipo de dados: Cadeia de caracteres

    status Status da transformação, como processado ou erro.

    Tipo de dados: Cadeia de caracteres

    O exemplo de código a seguir mostra como transformar e armazenar um registro na tabela Usuário [sys_user].

    (function(/*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, /*Context*/ ctx) { 
      // Uses an ETL definition with a target table of sys_user, and mappings for the active, 
      //email, first name, and last name fields
      var transformer = new sn_impex.RTETransformer("c58f1c6377110110f5455d14cd5a998b", true, "testSourceRecord", 10);
      var messages = [JSON.stringify({
        "active":"true",
        "email":"example@servicenow.com",
        "first_name":"Jane",
        "last_name":"Doe"
      }), 
      JSON.stringify({
        "active":"true",
        "email":"example2@servicenow.com",
        "first_name":"John",
        "last_name":"Deer"
      })];
      var results = transformer.transform(messages);
    
      for (var i = 0; i < results.length; i++) { 
        var dataList = results[i].data.sys_user;
        gs.log("source record id: " + results[i].sourceRecordSysId); gs.log("status: " + results[i].status);
        for (var j = 0; j < dataList.length; j++) { 
          gs.log("First Name: " + dataList[j].first_name);
          gs.log("Last Name: " + dataList[j].last_name);
          gs.log("Email: " + dataList[j].email;
          gs.log("Active: " + dataList[j].active;
        }
      }
    }

    Resultados:

    source record id: b29e629877130110f5455d14cd5a99ad
    status: PROCESSED
    First Name: Jane
    Last Name: Doe
    Email: example@servicenow.com
    Active: true
    First Name: John
    Last Name: Deer
    Email: example2@servicenow.com
    Active: true