XML para Tabela v.2
- Tipo de tarefa:
xml-to-table_v2
Descrição
A tarefa "XML para Tabela v.2" permite importar dados em formato XML diretamente para uma tabela de um banco de dados suportado. O sistema converte internamente a estrutura XML para mapear os valores nos campos da tabela de destino.
1. Conexão com o Banco de Dados
Nesta secção, definem-se a origem dos dados e as coordenadas do banco de dados.
Tabela de destino (Origem da Conexão)
Selecione como configurar o acesso ao banco de dados:
Manuale: inserção manual de host, porta e credenciais.Environment: utilização de um ambiente de conexão pré-configurado.
Ambiente de Conexão
Selecione o ambiente desejado no menu suspenso (ex. Example_Connection). Os parâmetros de autenticação serão preenchidos automaticamente.
Conjunto de Dados de Entrada
Insira o conteúdo XML a ser processado.
- É possível utilizar parâmetros dinâmicos (ex.
#>Run Script Python xml.result<#) para ligar a saída de uma tarefa anterior que gera ou recupera o XML.
Tipo de Banco de Dados
Selecione o DBMS: PostgreSQL, SQLserver, MySQL, Oracle, SAP HANA.
Conexão SSL
Indique se a conexão requer SSL (SI / NO).
Autenticação
Preencha os campos Host, Porta, Nome do DB, Utilizador e Palavra-passe (botão Definir palavra-passe) se estiver a operar em modo manual.
2. Gestão de Tabela
Tabela de destino (Ação)
Defina a operação a ser executada no banco de dados:
Criar tabela: cria uma nova tabela.Tabela Existente: insere dados numa tabela já existente. É possível escolher entre:- Append: adiciona os registos.
- Truncate Insert: esvazia a tabela antes de inserir os novos dados.
Criar tabela se não existir: cria a tabela apenas se não for detetada, evitando erros em execuções repetidas.
Nome da Tabela de Destino
Especifique o nome da tabela no banco de dados (ex. example_table).
3. Estrutura da Tabela
Nesta aba, define-se o mapeamento entre os nós do XML e as colunas da tabela. Mesmo que a entrada seja XML, para o mapeamento dos campos utiliza-se a sintaxe JSONPath na representação interna do documento.
| Campo | Descrição |
|---|---|
| Tipo | Tipo de dado (STRINGA, NUMERICO, DATA, DATA E HORA). |
| Precisão | Comprimento máximo (strings) ou precisão numérica. |
| Alias | Nome da coluna no banco de dados. |
| Expressão JSONPath | Caminho para extrair o valor do nó XML (ex. $.task_name). |
Gestão da Estrutura da Tabela
No canto inferior direito da Estrutura da Tabela encontram-se três botões:
| Botão | Ação |
|---|---|
| Guardar | Guarda a estrutura definida |
| Importar | Importa uma estrutura existente |
| Exportar | Exporta a estrutura definida |
Esta funcionalidade permite guardar, exportar ou reutilizar os mapeamentos, evitando a compilação manual dos campos e reduzindo o risco de erros.
Nota Técnica
Visibilidade: As estruturas guardadas no sistema são visíveis exclusivamente ao utilizador que as criou. Aprofundamento: Para uma descrição detalhada de todas as opções e da lógica de funcionamento, consulte a página Estrutura da Tabela.
4. Exemplo de Configuração
Dado o seguinte XML de entrada:
<tasks>
<task>
<task_name>Generate Summary</task_name>
<status>pending</status>
</task>
</tasks>
Estrutura da Tabela
A Estrutura da Tabela será configurada da seguinte forma:
| Tipo | Precisão | Alias | Expressão JSONPath |
|---|---|---|---|
| STRINGA | 1000 | task_name | $.task_name |
| STRINGA | 1000 | status | $.status |
Parâmetros de Saída
- exitStatus: Código de estado (0 = Sucesso)
- rowCount: Número de registos inseridos (ex: 3)
- targetTable: Nome da tabela de destino
- DataExportCsv / DataExportJson: Os dados importados formatados nos respetivos padrões
- Dataset.NomeCampo: Valor do campo para utilização num Iterador
- DataColumn.NomeCampo: String com todos os valores da coluna separados por vírgula (ex: pending, done, running)
- resultJson: Relatório técnico completo da operação
Exemplo resultJson
{
"run_info": {
"status": "Completed",
"run_result": "Success"
},
"output_parameters": {
"exitStatus": "0"
}
}