Hace poco más de un mes se acercó a nuestros socios de Exemax SAS una serie de clientes buscando integrar la parte de Asistencias de Odoo con lectores de datos biométricos, concretamente con huellas digitales. El requerimiento pasó directamente al equipo técnico de Exemax, cuya dirección es administrada actualmente por quien les habla. Por ende, y como solemos formar sociedades, nos pusimos a la tarea de integrar la lectura de huella digital a Odoo utilizando los dispositivos más extendidos del mercado: Digital Persona, concretamente un U.are.U 4500. Al final del post les dejamos los repositorios para implementar nuestra solución como prefieran.
Aplicación de Java
El SDK de Digital Persona es realmente extraño. No se entiende bien como se desarrolla nada, la documentación es rara y el ejemplo de JavaScript (el que queríamos usar) no funciona bien con la última versión. Por lo tanto, y ya que había que armar una App externa de todas maneras, optamos por una Aplicación realizada en Java, que conecta con Odoo mediante API (algo que en Codize sabemos realizar muy bien).
El funcionamiento es realmente sencillo: la app consigue una imagen de la huella digital, la convierte en bytes y la envia al servidor de Odoo junto con un número asociado al empleado. Si todo sale bien, dichos bytes se guardan codificados en un campo especial al cual denominamos Finger ID. En el caso de la verificación, la App de Java sincroniza con Odoo para tener actualizados los Finger ID junto con los códigos de cada empleado. Al hacer una verificación de dedo se recorre dicha base comparando el Finger ID guardado con el nuevo (siempre luego de realizar una codificación en un objeto Fmd). Si el valor de la comparación es menor a cierto umbral tolerable, entonces le pide a Odoo que para ese Empleado active la función checkin-checkout. Para más info pueden revisar los siguientes repositorios: