Passa al contenuto principale
Versione: 1.2 (storica)

DB Connector

  • Task Type: db

Il task DB Connector consente di eseguire istruzioni SQL su un database supportato, sia per l’estrazione di dati — con possibilità di mappare i risultati su alias specifici — sia per l’esecuzione di codice procedurale. La configurazione richiede la definizione della connessione al database e della query SQL da eseguire, finalizzata al recupero di informazioni o all’esecuzione di operazioni.

1. Connessione al Database​

ParametroDescrizione
Tipologia DatabaseIl tipo di database (DBMS) a cui connettersi
Connessione SSLAbilitata/Disabilitata
Hosthost o #>parametro_string<#
Portaport o #>parametro_num<#
Nome DBnome_database o #>parametro_string<#
Usernome_utente o #>parametro_string<#
PasswordPassword di accesso

2. Configurazione dello Statement​

config_from_db.png

Tipologia Statement​

  • Select: esegue query SQL per l’estrazione di dati dal database.
  • Altro (Other): consente l’esecuzione di istruzioni DML (INSERT, UPDATE, DELETE), chiamate a procedure/stored procedure o blocchi anonimi SQL.

3. Esempio di Preview della Query SQL (Statement Preview)​

SELECT
config->>'kid' AS kid,
config->>'iss' AS iss,
config->>'scope' AS scope,
config->>'grant_type' AS grant_type,
config->>'project_id' AS project_id,
replace(config->>'key', chr(10), '\n') AS key,
config->>'aud' AS aud
FROM connections
WHERE id=1;

3.1 Esempio di Mappatura dei Campi Estratti​

TipoPrecisioneAliasEspressione
ESPRESSIONE1000kidconfig->>'kid'
ESPRESSIONE1000issconfig->>'iss'
ESPRESSIONE1000scopeconfig->>'scope'
ESPRESSIONE1000grant_typeconfig->>'grant_type'
ESPRESSIONE1000project_idconfig->>'project_id'
ESPRESSIONE2000keyreplace(config->>'key', chr(10), '\n')
ESPRESSIONE1000audconfig->>'aud'

4. Esempio di Clausola From​

FROM connections
WHERE id=1;

4.1 Uso parametro dinamico con "dbobj:"​

FROM `#>dbobj:nome_tabella<#`

5. Gestione Table Structure - Campi select list​

In basso a destra della tabella di mappatura nella “Tipologia Statement Select - Campi select list” 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.

6. Parametri di Output​

Al termine dell'esecuzione di una query, il Task "DB Connector" espone un set di parametri di output. Questi parametri forniscono non solo un resoconto dell'operazione, ma anche i dati recuperati in molteplici formati, pronti per essere utilizzati dai Task successivi.

6.1 Parametri Relativi allo Spool della Query​

Questi parametri vengono valorizzati solamente per statement di tipo SELECT e se la sezione Campi Select List è configurata correttamente.

  • queryspool.file: Restituisce il percorso completo del file di spool generato (un file CSV).
  • queryspool.filename: Restituisce solo il nome del file di spool.
  • queryspool.content: Contiene l'intero contenuto testuale del file di spool.

6.2 Parametri di Riepilogo Esecuzione​

  • count: Indica il numero totale di righe (record) restituite dalla query.
  • result: Fornisce lo stato complessivo dell'esecuzione del Task (es. "Statement Eseguito con successo" o un messaggio di errore del database).
  • resultJson: rappresenta il risultato dell’esecuzione del task in formato JSON, includendo informazioni generali, configurazioni e dettagli sull’esecuzione.

6.3 Parametri di Esportazione Dati​

Questi parametri contengono l'intero set di dati recuperato, già formattato in diversi standard.

  • DataExportCsv: Restituisce il set di dati completo, formattato come testo in formato CSV, inclusa la riga di intestazione con i nomi delle colonne.
  • DataExportNoHeaderCsv: Restituisce il set di dati in formato CSV, ma escludendo la riga di intestazione. È utile quando si ha bisogno solo dei dati grezzi.
  • DataExportJson: Restituisce il set di dati completo, formattato come una stringa JSON (un array di oggetti, dove ogni oggetto rappresenta una riga).

6.4 Parametri Oggetto per Elaborazione Avanzata​

Questi parametri rappresentano i dati come oggetti strutturati, ideali per l'interazione con altri Task.

  • Dataset: Questo parametro rappresenta il nome della colonna della tabella (Per es: name). È il parametro più importante per collegare questo Task ad un Iterator. Per accedere ai valori di una specifica colonna durante un'iterazione, si utilizza la sintassi Dataset.NomeColonna.
  • DataColumn: Questo parametro permette di accedere all'intero contenuto di una colonna come un'unica entità).
  • DataColumn.NomeColonna: Restituisce tutti i valori della colonna “NomeColonna”. Per es: “Luca, Maria, Giovanni, Elena”

Note importanti​

  • Per usare i parametri dinamici nella sezione della Clausola FROM e Statement, va usata la seguente sintassi: "#>dbobj:parametro_dinamico<#" (ad esclusione del Tipo di Database SAP HANA, in quel caso va usata la solita sintassi "#>nome_tabella<#")

6.5 Esempio del parametro resultJson​

{
"id": 19163,
"name": "DB Connector",
"description": "",
"type": "db",
"type_name": "DB Connector",
"type_description": "Connessione DB",
"config": {
"connection": {
"db_host": "test",
"db_name": "TEST;TrustServerCertificate=Yes",
"db_port": "1433",
"db_type": "sqlserver",
"db_user": "sybot",
"use_ssl": "Y",
"db_password": "8rPqd4eHtMoHG77qAj16Vw==",
"connection_mode": "env",
"hidden_task_pwd": "0",
"env_connection_name": "SqlServer_SYBOT_TEST",
"oracle_db_name_type": ""
},
"output_links": [
{
"to": "[TASK 1920_19165_60]",
"from": "[TASK 1920_19163_3]",
"text": "Condizione 11 (2)",
"color": "green",
"points": [
-423.5,
-751,
-413.5,
-751,
-46.981225491332,
-751,
-46.981225491332,
-641.3032264382475,
-46.981225491332,
-531.6064528764952,
-46.981225491332,
-521.6064528764952
],
"toPort": "top5",
"fromPort": "port_1920_19163_1",
"isTraversed": true
}
],
"tablestructure": [
{
"field_name": "name",
"field_type": "expression",
"field_value": "name",
"field_format": "",
"field_nullable": "Y",
"field_precision": "1000"
},
{
"field_name": "start_datetime",
"field_type": "expression",
"field_value": "start_datetime",
"field_format": "",
"field_nullable": "Y",
"field_precision": "1000"
}
]
},
"run_info": {
"run_id": 1473891,
"start_datetime": "2026-03-26 18:14:17",
"end_datetime": "2026-03-26 18:14:17",
"start_epoch": 1774548857.116924,
"end_epoch": 1774548857.328622,
"duration": 0,
"status": "Completed",
"cmd_text": "SELECT \r\nname as \"name\", \r\nstart_datetime as \"start_datetime\" \r\nFROM #>dbobj:table_name<#",
"run_result": "Success",
"result_text": "Statement Eseguito con successo Righe: 3",
"full_result_text": null
},
"output_parameters": {
"count": "3",
"Dataset.name": "name",
"DataExportCsv": "name;start_datetime\n\"Set Variable\";\"2026-03-26 12:27:11.0000000\"\n\"Run Script Python\";\"2026-03-26 12:27:12.0000000\"\nUnarchiver;\"2026-03-26 12:27:45.0000000\"\n",
"DataExportJson": "[{\"name\":\"Set Variable\",\"start_datetime\":\"2026-03-26 12:27:11.0000000\"},{\"name\":\"Run Script Python\",\"start_datetime\":\"2026-03-26 12:27:12.0000000\"},{\"name\":\"Unarchiver\",\"start_datetime\":\"2026-03-26 12:27:45.0000000\"}]",
"DataColumn.name": "Set Variable,Run Script Python,Unarchiver",
"queryspool.file": "\/home\/user_test\/test\/test_output\/spool_file\/19163\/60689\/TASK_DB Connector_queryspool_1774545252.csv",
"queryspool.content": "name;start_datetime\n\"Set Variable\";\"2026-03-26 12:27:11.0000000\"\n\"Run Script Python\";\"2026-03-26 12:27:12.0000000\"\nUnarchiver;\"2026-03-26 12:27:45.0000000\"\n",
"queryspool.filename": "TASK_DB Connector_queryspool_1774545252.csv",
"DataExportNoHeaderCsv": "\"Set Variable\";\"2026-03-26 12:27:11.0000000\"\n\"Run Script Python\";\"2026-03-26 12:27:12.0000000\"\nUnarchiver;\"2026-03-26 12:27:45.0000000\"\n",
"Dataset.start_datetime": "start_datetime",
"DataColumn.start_datetime": "2026-03-26 12:27:11.0000000,2026-03-26 12:27:12.0000000,2026-03-26 12:27:45.0000000"
}
}