XML to Table v.2
XML to Table v.2 | Sybot Documentation
XML to Table v.2
- Task type:
xml-to-table_v2
Descrizione
Il task "XML to Table v.2" consente di importare dati in formato XML direttamente in una tabella di un database supportato. Il sistema converte internamente la struttura XML per mappare i valori sui campi della tabella di destinazione.
1. Connessione database
In questa sezione si definiscono la sorgente dei dati e le coordinate del database.
Tabella target (Origine Connessione)
Seleziona come configurare l'accesso al database:
Manuale: inserimento manuale di host, porta e credenziali.Environment: utilizzo di un ambiente di connessione preconfigurato.
Connessione Environment
Seleziona dal dropdown l'ambiente desiderato (es. Example_Connection). I parametri di autenticazione verranno popolati automaticamente.
Input Dataset
Inserire il contenuto XML da processare.
- È possibile utilizzare parametri dinamici (es.
#>Run Script Python xml.result<#) per collegare l'output di un task precedente che genera o recupera l'XML.
Tipologia Database
Seleziona il DBMS: PostgreSQL, SQLserver, MySQL, Oracle.
Connessione SSL
Indica se la connessione richiede SSL (SI / NO).
Autenticazione
Compila i campi Host, Porta, Nome DB, User e Password (pulsante Imposta password) se operi in modalità manuale.
2. Gestione tabella
Tabella target (Azione)
Definisci l'operazione da eseguire sul database:
Crea tabella: crea una nuova tabella.Tabella Esistente: inserisce dati in una tabella già presente. È possibile scegliere tra:- Append: aggiunge i record.
- Truncate Insert: svuota la tabella prima di inserire i nuovi dati.
Crea tabella se non esiste: crea la tabella solo se non rilevata, evitando errori in esecuzioni ripetute.
Nome tabella target
Specifica il nome della tabella nel database (es. example_table).
3. Struttura tabellare
In questa scheda si definisce la mappatura tra i nodi dell'XML e le colonne della tabella. Anche se l'input è XML, per la mappatura dei campi si utilizza la sintassi JSONPath sulla rappresentazione interna del documento.
| Campo | Descrizione |
|---|---|
| Tipo | Tipo di dato (STRINGA, NUMERICO, DATA, DATA E ORA). |
| Precisione | Lunghezza massima (stringhe) o precisione numerica. |
| Alias | Nome della colonna nel database. |
| Espressione JSONPath | Percorso per estrarre il valore dal nodo XML (es. $.task_name). |
Gestione Table Structure
In basso a destra della Struttura tabellare sono presenti tre pulsanti:
| Pulsante | Azione |
|---|---|
| Salva | Salva la struttura definita |
| Importa | Importa una struttura esistente |
| Esporta | Esporta la struttura definita |
Questa funzionalità permette di salvare, esportare o riutilizzare le mappature, evitando la compilazione manuale dei campi e riducendo il rischio di errori.
Nota Tecnica
Visibilità: Le strutture salvate nel sistema sono visibili esclusivamente all'utente che le ha create. Approfondimento: Per una descrizione dettagliata di tutte le opzioni e della logica di funzionamento, fare riferimento alla pagina Table Structure.
4. Esempio di configurazione
Dato il seguente XML in ingresso:
<tasks>
<task>
<task_name>Generate Summary</task_name>
<status>pending</status>
</task>
</tasks>
Struttura tabellare
La Struttura tabellare sarà configurata come segue:
| Tipo | Precisione | Alias | Espressione JSONPath |
|---|---|---|---|
| STRINGA | 1000 | task_name | $.task_name |
| STRINGA | 1000 | status | $.status |
Parametri di Output
- exitStatus: Codice di stato (0 = Successo)
- rowCount: Numero di record inseriti (es. 3)
- targetTable: Nome della tabella di destinazione
- DataExportCsv / DataExportJson: I dati importati formattati nei rispettivi standard
- Dataset.NomeCampo: Valore del campo per l'utilizzo in un Iterator
- DataColumn.NomeCampo: Stringa con tutti i valori della colonna separati da virgola (es. pending, done, running)
- resultJson: Report tecnico completo dell'operazione
Esempio resultJson
{
"id": 19416,
"name": "XML to Table v.2",
"description": "",
"type": "xml-to-table_v2",
"type_name": "XML to Table v.2",
"type_description": "Import di un XML nel sistema",
"config": {
"db_host": "example-db-host",
"db_name": "example_db",
"db_port": "1433",
"db_type": "sqlserver",
"db_user": "example_user",
"use_ssl": "Y",
"tab_name": "example_table",
"tab_target": "IF",
"db_password": "encrypted_password...",
"output_links": [
{
"to": "[TASK ...]",
"from": "[TASK ...]",
"text": "Condizione ...",
"color": "green",
"points": [ ... ],
"toPort": "left4",
"fromPort": "port_...",
"isTraversed": true
}
],
"tab_truncate": false,
"input_dataset": "#>Run Script Python xml.result<#",
"tablestructure": [
{
"field_name": "task_name",
"field_type": "string",
"field_value": "$.task_name",
"field_format": "",
"field_nullable": "Y",
"field_precision": "1000"
},
{
"field_name": "status",
"field_type": "string",
"field_value": "$.status",
"field_format": "",
"field_nullable": "Y",
"field_precision": "1000"
}
],
"connection_mode": "env",
"env_connection_name": "Example_Connection",
"oracle_db_name_type": "0"
},
"run_info": {
"run_id": 1487571,
"start_datetime": "2026-04-13 ...",
"end_datetime": "2026-04-13 ...",
"start_epoch": 1776091107.50,
"end_epoch": 1776091107.92,
"duration": 0,
"status": "Completed",
"cmd_text": "",
"run_result": "Success",
"result_text": "3 righe inserite nella tabella example_table",
"full_result_text": "3 righe inserite nella tabella example_table"
},
"output_parameters": {
"rowCount": "3",
"exitStatus": "0",
"targetTable": "example_table",
"DataExportCsv": "task_name;status\n\"Generate Summary\";pending\n...",
"DataExportJson": "[{\"task_name\":\"Generate Summary\",\"status\":\"pending\"}, ... ]",
"Dataset.status": "status",
"DataColumn.status": "pending,done,running",
"Dataset.task_name": "task_name",
"DataColumn.task_name": "Generate Summary,Translate Text,Check Grammar"
}
}