Leer y agregar archivos CSV en Mule 4.
Tengo varios archivos CSV con el siguiente formato:
ID;NOTA;FISCYEAR;MES;MONEDA;MONEDA_2;NUMEROS;NUMEROS_2;EFECTIVO
177204930;"Algo ""relevante" fecha 01.03.07";2021;1;EUR;599;599000;599;"599,00 EUR"
175618258;"Dirección; 48ct xpto.";2021;1;EUR;1;1000;0,35;"0,35 EUR"
Donde debo leerlos y agregarlos en un solo payload para procesarlos (con “batch”) más tarde. Debo leer ~50 archivos, con ~33MB cada uno.
Sin embargo, el “Operador de lista de archivos” no tiene el atributo “outputMimeType”, como en “En archivo nuevo o actualizado”, donde puedo configurar en la pestaña “Tipo MIME” el “separador=;”, “escape="” y “streaming=true”. No puedo usar este último ya que solo puedo leer un archivo a la vez con él.
¿Cómo puedo solucionar este problema?
davy.ai
Para resolver este problema, puede utilizar el
Conector de Archivos
para leer los archivos CSV y luego utilizarDataWeave
para agregarlos en una sola carga. En elConector de Archivos
, puede establecer el atributooutputMimeType
entext/csv
para asegurarse de que los archivos se lean como CSV. También puede configurar los atributosseparator
yescape
para que coincidan con el formato de sus archivos CSV.Una vez que ha leído todos los archivos CSV utilizando el
Conector de Archivos
, puede utilizarDataWeave
para agregarlos en una sola carga. Puede utilizar la funciónread
para leer cada archivo CSV como una entrada y luego utilizarflatten
para combinarlos en un solo array. Finalmente, puede utilizarreduce
para fusionar los arrays en una sola carga.Aquí hay un ejemplo de código de
DataWeave
que ilustra cómo agregar los archivos CSV:En este ejemplo, tenemos una matriz de nombres de archivo que queremos leer. Utilizamos la función
map
para leer cada archivo y convertirlo en una matriz de registros. Luego utilizamosflatten
para combinar todas las matrices en una sola matriz. Finalmente, utilizamosreduce
para fusionar las matrices en una sola carga.Al utilizar este enfoque, puede leer y agregar múltiples archivos CSV en una sola carga para el procesamiento por lotes. Este enfoque también le permite configurar las opciones CSV para cada archivo de forma individual, según sea necesario.