:::: MENU ::::
Posts tagged with: python

Odoo – Log en carga de datos CSV

A la hora de cargar datos en OpenERP mediante la carga de un Módulo, gracias a los archivos CSV, me di cuenta que el Log de OpenERP no mostraba las filas que se iban cargando en la Base de Datos, por lo que tuve que tirar de un atajo. ¿Cuál?

Si nos metemos en la capa ORM (orm.py) del propio Servidor de OpenERP, veremos una función llamada «def process_liness», pues si ponemos «_logger.warning(nbrmax+1)» justo después de «nbrmax = position+1». Nos dirá justo la última fila del CSV donde se ha producido, por ejemplo,  un error.

Con este simple atajo ya podemos tener solucionado este gran problema en las cargas de datos con CSV y Módulos.

Espero que os sirva.


Carga de datos anidadas en OpenERP

Hoy os voy a mostrar cómo hacer una carga de Clientes con sus Cuentas Contables y Cuentas Bancarias mediante archivos CSV en OpenERP.

Este tipo de carga de datos se utiliza mucho para la carga de datos masivas, ya que de esta maneras podremos aprovechar todo el potencial que nos ofrece el Servidor de OpenERP.

Es altamente recomendable hacer uso de este tipo de carga de datos en OpenERP ya que es fácil, limpio y seguro.

El archivo init.py lo dejaremos en blanco.

El archivo __openerp__.py contendrá lo siguiente:

{

''name'': ''Carga de Clientes'',

''version'': ''1.0'',

''category'': '''',

''description'': """ Carga de Clientes """,

''author'': ''Javier Llamas'',

''website'': ''http://www.javierllamas.es'',

''depends'': [''base''],

''init_xml'': [],

''update_xml'': [

''account.account.csv'',

''res.partner.csv'',

''res.partner.address.csv'', 

''res.partner.bank.csv'', ],

''demo_xml'': [],

''test'': [ ],

''installable'': True,

''active'': False,

''certificate'': False,

}

En el archivo account.account.csv vamos a establecer los siguientes campos y vamos a poner como ejemplo la cuenta contable 430000020

"active","currency_mode","name","reconcile","user_type/id","type","parent_id","code"

"true","At Date","Cliente ejemplo","true","l10n_es.terceros_-_rec","Receivable","430","430000020"

Luego en el fichero res.partner.address.csv pondremos algunos datos ejemplos. Aquí la variable mas importante es partner_id:id que es la que nos hará de ancla con el fichero res.partner.csv y res.partner.bank.csv que veremos mas adelante.

"city","email","partner_id:id","mobile","name","phone","fax","zip","street"

"MURCIA","email@email.com","partner_1","000-000-000","Cliente Ejemplo","000-000-000","000-000-000","30000","C/ Ejemplo"

El fichero res.partner.csv estará formado por:

"active","customer","employee","name","supplier","website","id","property_account_receivable"

"true","true","false","Cliente Ejemplo","false","web.com","partner_1","430000020"

Y ya por último res.partner.bank. csv tendría las propiedades del Banco ligado a este cliente

"partner_id:id","owner_name","state","acc_number","street","city","default_bank"

"partner_1","Cliente Ejemplo","bank","0000-0000-00-0000000000","Calle nueva","MURCIA","True"

Y para terminar,  vamos a OpenERP e instalamos el módulo que hemos creado. Y ahora podemos ver cómo en la zona de Clientes se ha creado el nuevo registro.

Sencillo y rápido 😉

Saludos.


Migraciones de datos OpenERP

De todos es sabido la importancia de las migraciones de datos cuando intentas trasladar el Sistema de Gestión Interno de una empresa a su nuevo ERP, en este caso a OpenERP.

Existen 3 formas básicas de realizar migraciones de datos para OpenERP:

1 – Creación de un módulo: este caso es muy necesario cuando se precisa de la creación de campos autocompletados por el framework de OpenERP. Mas información Aquí.

2 – Usar la herramienta que facilita OpenERP para exportar ficheros. Pero recomiendo antes de nada exportar los datos ejemplos desde OpenERP, luego modificar ese documento con tus datos y al final importar los datos a OpenERP. Así se evitarán conflictos. Pero este punto no os servirá si tenéis datos de un módulo que dependen de otros módulos. Es recomendable por ejemplo si queréis exportar una lista simple de empleados, pero no es recomendable para el tratado de clientes con sus cuentas contables y a su vez con los pedidos de estos, para eso es mejor ver el siguiente punto del tema.

3 – Hacerse con el dominio de la herramienta Kettle (una maravilla) y combinarla con la creación de un módulo del punto 1, ya que de este modo no nos saltaremos la creación de campos autocompletados (siempre que fuesen necesario). Porque Kettle no es capaz de crear estos últimos o al menos yo no lo he conseguido diseñar. De todos modos, creo que no es posible.

Bueno espero que mas o menos tengáis una idea clara de cómo navegar por este gran mundo de las migraciones de datos para OpenERP 😉


OpenERP …. exigencias del guión

Hola a todos, antes de nada quería felicitar el año nuevo, sé que es un poco tarde para ello, pero es que he desconectado bastante de todo lo que tenga que ver con trabajo (creo que me lo merecía jeje).

Pero bueno, de vuelta al trabajo me encontré con nuevos planes…….. ¿Os suena OpenERP? Es el ERP gratuito por excelencia, hecho con Python, PostgreSQL y JQuery principalmente.

Como Desarrolladores de Software lo que nos interesaba en el Departamente de Desarrollo era la parte técnica de todo esto. Y nos pusimos manos a la obra investigando y desarrollando nuestros primeros módulos. ¿Por qué módulos? Pues porque es lo que principalmente se desarrolla para OpenERP. Los módulos son como pequeños proyectos dentro del ERP, como por ejemplo puede ser un módulo de gestión del personal de una empresa cualquiera.

Para desarrollar los módulos utilizamos Eclipse con el plugin PyDev montando en Ubuntu. Aquí os dejo como configurarlo.

Una vez que tenemos esto, tenemos que descargarnos los paquetes de códigos de OpenERP. Servidor y Cliente Web para Linux. Descargar aquí. Bajarse la versión 6.0 que es la más estable por ahora.

Luego los descomprimimos donde queramos e importamos sólo el Servidor como proyecto PyDev a eclipse. Ojo, seleccionar como intérprete el que hayáis configurado en el enlace anterior que os he pasado.

Ahora nos centraremos en instalar PostgreSQL, para ello lo mejor es seguir este tutorial. Atención, cuando tengáis que definir un usuario para PostgreSQL hacerlo con el login y contraseña que tenéis definido para ubuntu. Es para que no tengáis que cambiar nada en los parámetros de configuración del Servidor, ya que os tomará el login de ubuntu por defecto.

Una vez hecho esto, cogemos y volvemos a eclipse. Nos situamos en bin/openerp-server.py y lo lanzamos con el comando «Run».

Después tendremos que lanzar el Cliente Web y esto hay que hacerlo por consola. Simplemente nos situaremos (con la ayuda de los comandos) en la carpeta donde esté el Cliente Web descomprimido y escribimos «python openerp-web.py» y pulsamos intro. Luego abriremos el navegador, escribiremos localhost:8080 y pulsamos de nuevo intro. De esta manera ya tendremos nuestro OpenERP funcionando y configurado para desarrollar con eclipse.

Para terminar os dejo algunos enlaces importantes que nos han servido de mucho:

Libro Python para todos Necesario para trabajar con Phyton

Desarrollo para OpenERP

Desarrollo de un módulo ejemplo Muy bueno!!!

Documentación Técnica Memento Muy Importante!! Resumen de todo OpenERP

Otro desarrollo de un módulo parte 1 y parte 2 Muy bueno!!

Bueno espero que os guste el material que os he enseñado. Iré subiendo poco a poco lo que vaya aprendiendo. Saludos a todos. Gracias por leerme. Paciencia y Suerte.


Páginas:12