Ciao developer,
in questo articolo troverai una breve introduzione su come leggere e scrivere su file con Mule. Vediamo come.
Aggiunta del modulo
Una volta aggiunto il modulo File nella “Mule Palette” mediante l’opzione “Add Modules” avremo a disposizione le operazioni possibili da effettuare su files, messe a disposizione dal connettore.
In generale, come ogni connettore Mule, per funzionare necessita di una configurazione dove, è possibile settare la directory di lavoro (opzionale spuntando la checkbox “Connection”):
Leggere
Mediante l’operazione di Read è possibile leggere un file da file system, passando come parametro il path assoluto oppure il nome del file previa configurazione delle directory di lavoro.
Considerando questo esempio:
dove, si simula di leggere un file CSV, voglio far notare l’importanza del tab “Mime Type”.
In questa sezione è possibile specificare al connettore il tipo e la forma del file che riceverà in input.
In questo esempio, ho supposto che il file è in formato CSV, con header, carattere separatore “;” ed il testo è quotato.
Nulla vieta di omettere queste configurazione e lavorare il payload in uno step successivo e con un altro componente tipo “Transform Messege” (in DataWeave).
Scrivere
Mediante l’operazione di Write è possibile scrivere del payload in un file, passando come parametro il path assoluto oppure il nome del file previa configurazione delle directory di lavoro, come nel caso di Read.
Considerando questo esempio:
Nota importante è possibile lasciare a Mule l’onere di creare la parent directory e la modalità di scrittura.
Nel content ho semplicemente definito un array di oggetti e il tipo di dato in output:
output application/csv
---
[
{col1: "val1", col2: "val2"},
{col1: "val3", col2: "val4"}
]
Il risultato sarà un file CSV con due colonne col1 e col2, chiaro che il payload potrebbe benissimo essere output di procedure più complesse 🙂
Intercettare file creati in una directory
Ci tengo a spendere due parole sull’operazione “On New or Updated file” utilissima in ambito di integrazione di sistemi, quando si spostano o elaborano grandi quantità di files.
In particolare questa operazione ci permette di intercettare la creazione o la modifica di files in una specifica directory del file system. Per ogni file intercettato, in automatico, Mule genera un messaggio nel flusso descritto con payload il file stesso e gli attributi del caso che descrivono il file.
Inoltre, nel tab “Advanced”, è possibile impostare delle regole di matching su attributi e proprietà dei files.
Conclusione
Come molti altri, il connettore file è molto utile e ci permette di lavorare su file con flessibilità e pulizia del codice.
Non lascio un esempio di codice su come leggere e scrive su file con Mule, in quanto è già presente nel Exchange di Mulesoft.
Leggi anche: Modulo Java per Mule
Link al connettore: https://www.mulesoft.com/exchange/org.mule.connectors/mule-file-connector/