Passa al contenuto principale
Versione: 1.2 (storica)

XML to Table v.2

  • Task type: xml-to-table_v2

1. 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.

2. Connessione database​

In questa sezione si definiscono la sorgente dei dati e le coordinate del database.

2.1 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.

2.2 Connessione Environment​

Seleziona dal dropdown l'ambiente desiderato (es. Example_Connection). I parametri di autenticazione verranno popolati automaticamente.

2.3 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.

2.4 Tipologia Database​

Seleziona il DBMS: PostgreSQL, SQLserver, MySQL, Oracle.

2.5 Connessione SSL​

Indica se la connessione richiede SSL (SI / NO).

2.6 Autenticazione​

Compila i campi Host, Porta, Nome DB, User e Password (pulsante Imposta password) se operi in modalità manuale.

3. Gestione tabella​

3.1 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.

3.2 Nome tabella target​

Specifica il nome della tabella nel database (es. example_table).

4. 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).

4.1 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.

4.2 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.

5. Esempio di configurazione​

Dato il seguente XML in ingresso:

<tasks>
<task>
<task_name>Generate Summary</task_name>
<status>pending</status>
</task>
</tasks>

5.1 Struttura tabellare​

La Struttura tabellare sarà configurata come segue:

TipoPrecisioneAliasEspressione JSONPath
STRINGA1000task_name$.task_name
STRINGA1000status$.status

6. 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

7. 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"
}
}