Salta ai contenuti

Connettore File Format

I connettori File Format analizzano e serializzano formati di testo strutturati incorporati all’interno di campi del payload. Ogni connettore legge da inputKey e scrive il risultato in outputKey; tutti gli altri campi del payload vengono passati invariati.

Tipi Connettore: CsvProcessor, XmlProcessor

Legge una stringa CSV da inputKey e scrive un valore strutturato in outputKey.

{
"type": "CsvProcessor",
"config": {
"direction": "parse",
"delimiter": ",",
"hasHeader": true,
"inputKey": "raw_csv",
"outputKey": "rows"
}
}

Con hasHeader: true, l’output è un array di map[string]string chiavato dalla riga di intestazione. Con hasHeader: false, l’output è un array di array ([][]string).

Legge un array di array da inputKey e scrive la stringa CSV in outputKey.

{
"type": "CsvProcessor",
"config": {
"direction": "serialize",
"delimiter": ";",
"inputKey": "rows",
"outputKey": "csv_text"
}
}
  • direction (richiesto): parse o serialize
  • inputKey (richiesto): Chiave del payload contenente il valore sorgente
  • outputKey (richiesto): Chiave del payload in cui scrivere il risultato
  • delimiter: Delimitatore di campo a singolo carattere (default ,)
  • hasHeader: Quando true durante parse, tratta la prima riga come nomi di colonna
  1. Ingestione di export CSV legacy da sistemi MES o SCADA
  2. Bridge di protocolli industriali basati su XML a connettori a valle JSON-nativi
  3. Emissione di file CSV verso S3 o storage locale per reportistica
  4. Parsing inline di payload CSV/XML ricevuti su MQTT o HTTP
{
"type": "CsvProcessor",
"config": {
"direction": "parse",
"delimiter": ",",
"hasHeader": true,
"inputKey": "body",
"outputKey": "records"
}
}

Combinato con una sorgente HTTP, trasforma un upload CSV in ingresso in un array records strutturato che può essere alimentato in Transform, Validation o un sink di database.

  • Per CSV con delimitatori non standard (;, \t, |), imposta delimiter esplicitamente
  • Imposta sempre hasHeader: true quando i connettori a valle fanno riferimento alle colonne per nome
  • Per XML profondamente annidato, segui il parser con Transform usando JSONPath per estrarre percorsi specifici
  • Mantieni il testo raw in una chiave dedicata (es. raw_csv) in modo che l’originale sia preservato se uno stadio a valle fallisce