Quan n'aprendran?

Aquesta setmana passada, un consultor extern que ens està ajudant a implementar una nova funcionalitat al nostre ERP em deia que per a generar un fitxer amb dades d’un inventari, el qual ha de ser per nassos de text amb columnes de mida fixa, ho podria fer amb una base de dades Access i que fent nosequè i nosequèmés me’n sortiria. Em reservo el que em va venir el cap, donat que el consultor en concret és molt eficient i assumeixo que ho va dir de molt bona fe.

O sigui, que per poder generar un fitxer que tingui el format que ens cal per carregar-ho després de manera massiva, em cal tenir un sistema operatiu en concret, amb un programa en concret, que és un gestor de “bases de dades”(sic)!

Vaig agafar aire repetides vegades, i al cap de vint minutets ja havia averiguat com fer-ho en dues línies de l’intérpret d’ordres:

Tenim un fitxer original en format xls (sí, ho sé, penitentia agite, però això encara no ho he pogut solucionar, és un tema complex en aquest cas…) i l’hem d’arribar a carregar en un procés automatitzat amb uns requisits de format molt estrictes (sinó falla tota la càrrega de dades i em ve a sobre un regiment de cosacs al galop).

Convertim el fitxer d’xls a csv:

ssconvert fitxer.xls fitxer.csv

Ara convertim el fitxer que originàriament era un xls, que s’ha convertit en una sèrie registres de camps delimitats per comes, a un fitxer de registres de camps de text de mida fixa:

awk -F, '{printf("%12-s%20-s%2-s%4-s%16-s%8-s%8-s%33-s%4-s%14-s%17-s%11-s%18-s%83-s\n", $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)}' fitxer.csv > fitxerPerImportar

Evidentment, podem aplicar lògica i control d’errors a tot plegat i automatizar-ho amb un script bash, python o el que sigui, però les ordres són aquestes.

Qui havia dit “Access”?? 😀

Be Sociable, Share!
Aquesta entrada va ser publicada en General i etiquetada com , . Guardar l'enllaç permanent. Afegeix un comentari o deixa un trackback: URL del Trackback.

Publicar un comentari

El teu email mai serà publicat ni compartit. Els camps obligatoris estan marcats amb un *

Pots utilitzar aquestes etiquetes i atributs HTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*
*