Por que un administrador de Odoo debe aprender xmlrpc?
xmlrpc es un protocolo que permite (en forma remota) invocar procedimientos en Odoo. Por ejemplo; supongamos que nuestro Odoo esta alojado en Atlanta, desde un script de Python en mi laptop en Buenos Aires puedo crear facturas en forma automática. O borrar iniciativas archivadas. O cargar padrones de ARBA, etc. Las posibilidades que tiene son infinitas.
xmlrpc en forma remota permite como mínimo invocar las operaciones básicas del ORM de Odoo. Estas son: search, read, create, write, unlink. Lo cual ya es demasiado ya que con las mismas podemos integrar los scripts de Python con otros sistemas (por ejemplo bases de datos MySQL) y sincronizar los datos con Odoo. O lo que hicimos en un cliente que contaba con un Odoo 9 en Argentina y un Odoo 10 en Chile. Entonces mediante xmlrpc sincronizabamos ambos sistemas. O para otro cliente sincronizabamos su e-commerce desarrollado con Virtuemart mediante scripts de Python que con xmlrpc actualizaban los clients, productos y pedidos en Odoo. O migrar datos para que sean utilizados por Odoo.
Muchos administradores de Odoo van a encontrar xmlrpc una herramienta muy util por varios motivos. El primero creo es que es sencillo de aprender (OK, deben saber programar en Python pero a esta altura del partido no encontre que eso fuese un problema). A diferencia del desarrollo de módulos en Odoo, programar scripts en Python para que realicen operaciones de lectura/escritura en Odoo es bastante rápido de aprender (en pocas horas) y al poco tiempo uno es productivo. En cambio aprender a desarrollar en Odoo lleva muchos meses para ser productivo.
Personalmente, xmlrpc fue lo primero que aprendí en Odoo. Al principio trataba de actualizar Odoo mediante SQL pero no fue una buena idea ya que la actualización con SQL ante el menor error daña la integridad de datos que necesita Odoo, y hace que el mismo no funcione apropiadamente. Es por eso que encontré una página del viejo openerp en donde explicaba como realizar las operaciones básicas del ORM. Con lo cual me animé y empecé (en aquel viejo openerp 6.1) a cargar materias primas, listas de materiales y pedidos de venta. Todo eso en cuestión de días.
Por otra parte xmlrpc es muy util para los administradores debido a que sirve para generar archivos XLSX o CSV (este es un ejemplo sobre como generar un XLSX con la información de inventario). Odoo es un ERP, no un sistema de business intelligence entonces hay muchos reportes que deben generarse en forma ad-hoc, para lo cual nada le gana a los scripts de Python con xmlrpc.
Por último xmlrpc es muy util porque con el cron de Linux permite automatizar tareas. Tareas como envío de mails o ejecución de mantenimientos (por ejemplo creación de facturas o de ordenes de servicio). Muchas tareas de mantenimiento solo requieren del uso de ORM, lo cual ya se encuentra perfectamente cubierto por xmlrpc.
Les soy sincero? Aun no entiendo porque xmlrpc es desconocido en la comunidad de desarrolladores de Odoo.
Acerca de:
Gustavo Orrillo
Apasionado de la programación, implementa Odoo para distintos tipos de negocios desde el año 2010. En Moldeo Interactive es Socio fundador y Programador; además de escribir en el Blog sobre distintos temas relacionados a los desarrollos que realiza.