---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# RTETransformer - Com escopo

# RTETransformer - Com escopo {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 min. de leitura

A API RTETransformer fornece um método para transformar e armazenar uma matriz de mensagens em um registro na instância ServiceNow associada com base 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 o namespace `sn_impex` ao acessar esta API.

Para obter informações adicionais, consulte [Definir operações robustas do Mecanismo de transformação](https://www.servicenow.com/docs/access?context=define-rte-operations&version=xanadu&pubname=xanadu-integrate-applications&ft:locale=en-US).

## RTETransformer - rteTransform(cadeia de caracteres transformDefinitionId, Booliano verboseLogging, cadeia de caracteres de origem, número batchSize) {#ariaid-title2}

Instancia um objeto RTETransformer.
{#RTETrans-RTETrans_S_B_S_N__table_rsd_fk2_jtb__entry__3}

| 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. Localizado na tabela Definições de ETL \[sys_rte_eb_etl_definition\]. Para obter informações sobre como criar um ETL, consulte [Criar definições de Carga de Transformação de Extração (ETL)](https://www.servicenow.com/docs/access?context=create-etl-definitions&version=xanadu&pubname=xanadu-integrate-applications&ft:locale=en-US). |
| registro em log detalhado | Booliano | Sinalizador que indica se o registro em log detalhado e a criação de linhas de conjunto de importação devem ser habilitados para depuração. Valores válidos: * verdadeiro: habilita o registro em log e a criação de linha do conjunto de importação. * falso: não habilita o registro em log e a criação de linha do conjunto de importação. {#RTETrans-RTETrans_S_B_S_N__ul_u1v_fm2_jtb} |
| origem | Cadeia de caracteres | Campo de 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 útil e este valor estiver definido como 2, o método executará cinco trabalhos em lote separados para processar todas as mensagens na carga útil. |
[Tabela 1. Parâmetros]

{#RTETrans-RTETrans_S_B_S_N__table_rsd_fk2_jtb}  
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) {#ariaid-title3}

Transforma e armazena uma matriz de mensagens em um registro na instância ServiceNow associada com base em uma definição de extração, transformação e carregamento (ETL) fornecida.
Por exemplo, se você quiser transformar informações do usuário em um registro sys_user, poderá criar uma matriz de mensagem com uma única mensagem e passá-la para este método de transformação.
{#RTETrans-transform_A__table_xsb_bq2_jtb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| mensagem | Matriz de objetivos | Objetos JSON em cadeia de caracteres 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 de campo devem corresponder ao campo/caminho dos campos da entidade de origem. |
[Tabela 2. Parâmetros]

{#RTETrans-transform_A__table_xsb_bq2_jtb} {#RTETrans-transform_A__table_ysb_bq2_jtb__entry__2}

| Nome | Descrição |
|-|-|
| dados | Dados dos registros transformados, organizados por nome de tabela. Os dados de registro retornados correspondem aos campos mapeados especificados na definição de ETL. Tipo de dados: objeto "data": { "tableName": [] } |
| data.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" }] |
| data.tableName.sys_id | Sys_id do registro na tabela. Tipo de dados: cadeia de caracteres |
| data.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 de conjunto de importação. O nome da tabela do conjunto de importação é Sink de eventos 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 |
[Tabela 3. Retorna]

{#RTETrans-transform_A__table_ysb_bq2_jtb}  
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


