RTETransformer - Com escopo
. 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.
| 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:
|
| 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.
| 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:
Nota: Os nomes dos campos devem corresponder ao campo/caminho dos campos da entidade de origem. |
| 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 |
| Nome.tablename | Detalhes da tabela que contém os registros. Tipo de dados: Matriz de objetos
Por exemplo: |
| 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