Passa al contenuto principale
Versione: 1.2 (storica)

JSON to Table v.2

  • Task type: json-to-table_v2

1. Descrizione​

Il task "JSON to Table v.2" consente di importare un oggetto JSON con struttura tabellare direttamente in una tabella di un database supportato. Il task gestisce la creazione della tabella o l'inserimento dei dati in tabelle già esistenti.

2. Connessione database​

2.1 Tabella target​

Seleziona l'origine della configurazione:

  • Manuale: per inserire i dati di connessione campo per campo.
  • Environment: per utilizzare un ambiente di connessione preconfigurato nel sistema.

2.2 Connessione Environment​

Menu dropdown per selezionare l'ambiente desiderato (es. SqlServer_TEST). I parametri di autenticazione vengono popolati automaticamente.

2.3 Input Dataset​

Campo per definire la sorgente dati:

  • Deve contenere il JSON da processare.
  • Si possono utilizzare i parametri dinamici per collegare l'output di task precedenti (es. #>JSON print.result<#).

2.4 Tipologia Database​

Seleziona il DBMS di destinazione tra PostgreSQL, SQLserver, MySQL, Oracle.

2.5 Connessione SSL​

Indica se abilitare la connessione sicura (SI / NO).

2.6 Autenticazione​

Se in modalità Manuale, compila i campi: Host, Porta, Nome DB, User e Password.

3. Gestione tabella​

3.1 Azione Tabella Target​

  • Crea tabella: genera una nuova tabella nel database.
  • Tabella Esistente: inserisce i dati in una tabella esistente. Opzioni:
  • Append: aggiunge i record in coda.
  • Truncate Insert: svuota la tabella prima dell'inserimento.
  • Crea tabella se non esiste: crea la tabella solo se non rilevata, evitando errori in esecuzioni multiple.

3.2 Nome tabella target​

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

4. Struttura tabellare​

In questa scheda si definisce la mappatura tra le chiavi del JSON e le colonne della tabella.

CampoDescrizione
TipoDefinisce il tipo di dato (STRINGA, NUMERICO, DATA, DATA E ORA).
PrecisioneLunghezza massima per le stringhe o cifre per i numerici.
AliasNome della colonna nel database. Usare le doppie virgolette (es. "Nome Utente") per mantenere spazi o caratteri speciali.
Espressione JSONPathIl percorso JSON per estrarre il valore (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​

Per importare un dataset JSON come il seguente: [{"task_name": "Backup", "status": "OK"}, {"task_name": "Restore", "status": "FAIL"}]

Configurazione della Struttura tabellare:

TipoPrecisioneAliasEspressione JSONPath
STRINGA1000name$.task_name
STRINGA1000status$.status

6. Parametri di Output​

  • exitStatus: Codice di stato dell'operazione (0 = Successo).
  • rowCount: Numero di righe effettivamente inserite nel database.
  • targetTable: Nome della tabella di destinazione utilizzata.
  • DataExportCsv: Dati elaborati esportati in formato CSV.
  • DataExportJson: Dati elaborati esportati in formato JSON.
  • DataColumn.NomeColonna: Elenco di tutti i valori della colonna separati da virgola (es. Backup, Restore).
  • resultJson: Report JSON completo dell'esecuzione del task.

6.1 Esempio resultJson​

{
"id": 19332,
"name": "JSON to Table v.2",
"type": "json-to-table_v2",
"type_name": "JSON to Table v.2",
"type_description": "Trasforma un json in tabella",
"config": {
"db_host": "example",
"db_port": "1433",
"db_type": "sqlserver",
"db_name": "EXAMPLE;TrustServerCertificate=Yes",
"db_user": "example",
"db_password": "Q8zp7Lrv4jpvuZqoVhzCYL73...",
"use_ssl": "Y",
"tab_name": "test_json_dataset",
"tab_target": "IF",
"tab_truncate": false,
"input_dataset": "#>JSON print.result<#",
"tablestructure": [
{
"field_name": "name",
"field_type": "string",
"field_value": "$.task_name",
"field_nullable": "Y",
"field_precision": "1000"
},
{
"field_name": "status",
"field_type": "string",
"field_value": "$.status",
"field_nullable": "Y",
"field_precision": "1000"
}
],
"connection_mode": "env",
"env_connection_name": "SqlServer_TEST",
"output_links": [
{
"to": "[TASK 1977_19305_48]",
"from": "[TASK 1977_19332_76]",
"text": "Condizione 10",
"color": "green",
"points": [
...
],
"toPort": "left3",
"fromPort": "port_1977_19332_1",
"isTraversed": true
}
]
},
"run_info": {
"run_id": 1487010,
"status": "Completed",
"run_result": "Success",
"result_text": "3 righe inserite nella tabella test_json_dataset",
"start_datetime": "2026-04-08 11:58:42",
"end_datetime": "2026-04-08 11:58:42",
"duration": 0
},
"output_parameters": {
"rowCount": "3",
"targetTable": "test_json_dataset",
"DataExportCsv": "name;status\n\"Generate Summary\";pending\n...",
"DataExportJson": "[{\"name\":\"Generate Summary\",\"status\":\"pending\"}, ...]",
"DataColumn.name": "Generate Summary,Translate Text,...",
"DataColumn.status": "pending,done,...",
"exitStatus": "0"
}
}