# Módulo Transformação de Dados

* [Definição](#definicao)
* [Configuração do módulo](#configuracao-do-modulo-transformacao-de-dados)
  * [Configuração das variáveis](#configuracao-das-variaveis)
    * [Resultado](#configuracao-das-variaveis)

### **Definição** <a href="#definicao" id="definicao"></a>

O módulo ferramental "**Transformação de Dados"**, módulo padrão do **Skyone Studio** para a utilização em qualquer fluxo, foi criado para a transformação de dados por meio de [JSONATA](https://jsonata.org/), facilitando assim a criação de operações complexas.

JSONata é uma linguagem leve, projetada para consultar e transformar estruturas de dados JSON.

O módulo "**Transformação de Dados"** é composto por uma única operação, que permite a manipulação de vários dados e a transformação destes dados no formato que desejamos. Este módulo inicializa sempre o parâmetro **data**, o que nos permite, como vimos em [Manipulação de Objetos](/skyone-studio/integracoes/operacoes-de-dados/manipulacao-de-objetos.md), além de obter um conjunto de dados, filtrar para que somente um subconjunto específico seja evocado.

{% hint style="info" %}
A "**Transformação de Dados"** é ideal para manipulações mais complexas de dados, com uma resposta interna no fluxo. Para manipulações de dados de menor complexidade, recomendamos o uso de uma [SMOP](/skyone-studio/integracoes/operacoes-de-dados/smop-pequenas-operacoes.md). Para manipulações mais complexas de dados, mas que necessitem de uma resposta para uma requisição HTTP, recomendamos o uso do módulo "**Retorno"**.
{% endhint %}

### **Configuração do módulo "Transformação de Dados"** <a href="#configuracao-do-modulo-transformacao-de-dados" id="configuracao-do-modulo-transformacao-de-dados"></a>

O módulo "**Transformação de Dados"** aparece na opção **Ferramentas** da edição de um fluxo. Após clicar para adicioná-lo, o modal de configuração será exibido.

<figure><img src="/files/fmS8fGdMHW4yaWurrN0t" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
[Saiba sobre o Cabeçalho do Módulo aqui](/skyone-studio/integracoes/cabecalho-dos-modulos.md).&#x20;
{% endhint %}

#### Configuração das variáveis <a href="#configuracao-das-variaveis" id="configuracao-das-variaveis"></a>

Neste bloco, na aba "**Dados de Origem"**, há os seguintes campos:

* **Chave:** identificação da variável
* **Valor**: digite ou arraste uma variável
* **Tipo:** escolha o tipo de dados mais adequado. As opções são: texto, número, booleano, objeto e array.

Se preferir, pode preencher o JSON Origem.

Após o preenchimento das configurações, clique em "**Avançar"**.

**Resultado**

Nesta tela, é possível executar e visualizar as informações da transformação de dados e manipule-as com JSONata.

Para finalizar a configuração do módulo, clique em "**Salvar"**.

***

### JSONata e funções extras&#x20;

O módulo de **Transformação de Dados** utiliza funções extras do JSONata para manipulação avançada de strings, criptografia e tratamento de arquivos.&#x20;

Abaixo estão as funções disponíveis para otimizar seus fluxos de integração:

* **md5(value):** Gera um *hash* MD5 em formato hexadecimal. Útil para verificações rápidas de integridade.
* **sha256(value, digest?):** Gera um hash SHA-256, sendo mais robusto que o MD5. O padrão de saída é hex.
* **generateHmac(value, secret):** Cria um código de autenticação de mensagem baseado em hash para assinar dados com segurança.
* **removeValues(value, callback):** Remove chaves de um objeto ou array de forma recursiva com base em uma condição.
* **removeKeys(value, targetKey):** Limpa campos indesejados em estruturas aninhadas removendo todas as ocorrências de uma chave específica.
* **splitPDF(value):** Processa um PDF em Base64 e o separa em um array, onde cada item é uma página individual.

#### Como utilizar as funções na prática

Para utilizar as funções no seu módulo Transformação de Dados:

1. Clique em **Editar** no módulo para acessar o editor.
2. Insira a expressão JSONata utilizando a função extra desejada, como `md5(campo_origem).`
3. Clique em **Executar** para validar a geração do hash ou a limpeza da estrutura.
4. Verifique o resultado no painel de saída antes de salvar a configuração.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skyone.cloud/skyone-studio/integracoes/fluxos/modulos-ferramentais/modulo-transformacao-de-dados.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
