Skip to main content

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.

CampoDescrizione
TipoTipo di dato (STRINGA, NUMERICO, DATA, DATA E ORA).
PrecisioneLunghezza massima (stringhe) o precisione numerica.
AliasNome della colonna nel database.
Espressione JSONPathPercorso per estrarre il valore dal nodo XML (es. $.task_name).

Gestione Table Structure

In basso a destra della Struttura tabellare sono presenti tre pulsanti:

PulsanteAzione
SalvaSalva la struttura definita
ImportaImporta una struttura esistente
EsportaEsporta 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:

TipoPrecisioneAliasEspressione JSONPath
STRINGA1000task_name$.task_name
STRINGA1000status$.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"
}
}