miércoles, 16 de septiembre de 2009

Excel como fuente de datos para un sistema

En un proyecto que hice recientemente se necesitaba recoger información de campo en unos formatos predefinidos para posteriormente vaciar esa información en un sistema hecho con Genexus, dicha información consiste en una lista de empleados y las horas hombre laboradas por cada uno de ellos en los diferentes módulos de un invernadero, esto forma parte de un sistema de costos de producción. Los formatos ya los estaban utilizando para un control interno aunque con algunas variantes, de modo que la idea era que los supervisores capturaran esa información en el nuevo sistema. Como todos estan muy acostumbrados a utilizar Excel para hacer todo tipo de cosas se me ocurrió que en lugar de capturar en un grid del sistema toda la información que tenían en las hojas de trabajo, capturaran esa información en un formato de Excel y luego importar en el sistema ese archivo de Excel para obtener de ahi la información que el sistema necesitaba. Utilicé para ello el tipo de dato ExcelDocument de Genexus, en el sistema se pueden configurar una serie de parámatros como la linea donde comanzar a leer la información en la hoja, las columnas donde está cada dato que el sistema necesita, la ruta default de los archivos entre otros, el sistema valida toda la información antes de grabarla en las tablas de la base de datos tal como si la hubiese introducido el usuario de la manera tradicional en el sistema, si el archivo no pasa la validación le indica al usuario la celda donde encontró la inconsistencia y el motivo por el que no se puede importar esa hoja.

En esta primera fase está funcionando asi, conforme se vean resultados positivos con el sistema tengo contemplado utilizar una tecnología que estube investigando y creo que vendría muy bien en este caso, se trata de una Pluma electrónica, que segun los que ya la utilizan facilita la transición de los procesos de forma manual a electrónica al utilizar el usuario una pluma "normal" para escribir en papel "normal", con la particularidad de que la pluma guarda todo lo que el usuario escribe y esa información luego es leída e interpretada por la computadora, pero eso es tema para otro post.

8 comentarios:

Mostro En Turno dijo...

Y si la plumita no anda (y tu base de datos es MSSQL) te puedes programar un job que tome tu excel y o meta directamente a la base de datos a traves de un paquete DTS. Eso es mas facil que rascarse las pelot... Bueno, es facil pues.

Y la cecina Apa?

Aluziner dijo...

@Mostro:
El caso es que no soy experto en SQL y a la hoja de trabajo de Excel se le deben hacer una serie de validaciones, no solo de integridad referencial sino de reglas de negocios que se deben aplicar, capaz y es facil hacerlo tambien en DTS del SQL pero como te digo, no soy experto y en Genexus se hace de manera muy sencilla (para mi).

P.D. Estamos pendientes con la cecina, hay que organizarla pronto :)

Mostro En Turno dijo...

Pues en realidad esas validaciones y reglas de negocio redundarian en -formato- de la celda y es muy probable que el SQL tomara el valor AS IS de la celda y se haria un absoluto cagadero.

Y la cecina pal prox martes como ves?

Ana Gabriela dijo...
Este comentario ha sido eliminado por el autor.
Ana Gabriela dijo...

Compañero, buen post, me recuerda que eres uno de los pocos LSIAS que están en extinción xD x cierto me recordó a uno que puse hace poco en mi blog sobre la tinta electrónica, eso de las plumas y el papel electrónico será el futuro :P

Aluziner dijo...

@Ana Gabriela:

Gracias por la visita compañera

Unknown dijo...

hola que tal, cuanto tiempo, interesante herramienta para tansicion, de igual forma los archivos .xls no solo te servirian para ese factor sino tambien para otros contextos dentro de diferentes plataformas como reglas de validacion y seguirdad de acceso que implementan vario de frameworks de seguridad.como Acegi para plataformas que corren sobre tecnologias J2EE(como en mi caso).

Cambiando de tema es interesante lo de la pluma pero como almacena la informacion?, digo en mi caso lanzaria excepsiones cada que quiciera interpretar lo que escribi o guardaria datos inconsistentes en el ecenario de que interpretara la informacion almacenada a caracteres o bien ¿de què me serviria guardar mis garabatos si solo yo los entiendo?

Saludos...

Luis dijo...

estimados y si tengo un campo de tipo fecha en Excel con formato dd/mm/yyyy cuando ejecuto dts en sql server lo agrega hh:mm:ss, trato de poner un execute task sql para hacer un convert pero me sale error