Hace unos días un colega que esta trabajando en con OpenERP me pregunto como se puede saber en que tablas se guardan los datos de ventas en OpenERP, para probar los cubos olap de pentahoo (mondrian) con los datos de OpenERP. Conocer la estructura de la base de datos de OpenERP nos puede servir también para migraciones, integraciones, reporting, data mining, etc.
En este post vamos a ver como podemos saber en que tabla y que campo de la base de datos se guardan los datos de cada documento de OpenERP desde el cliente web.
En OpenERP cualquier dato con el que podemos trabajar es descrito por los «Objetos», si eres programador sabrás de que hablo. Para saber los campos que tiene cada documento lo que necesitamos es ver el objeto correspondiente. En OpenERP por lo general los nombres de los objetos se corresponden con los nombres de las tablas, y los campos del objeto con los campos de la tabla.
Vamos a ver como podemos ver en que tabla se guardan los datos de los pedidos de ventas, para ello entramos en el cliente web de OpenERP y nos dirigimos a un pedido de ventas cualquiera.
Si situamos en ratón en la zona inferior a la izquierda sobre [PERSONALIZAR] nos aparecen varias opciones, clickamos sobre PERSONALIZAR OBJETOS para ver el Objeto que representa el pedido de ventas.
Si te fijas en el nombre del objeto es «sale.order», el nombre de la tabla será el mismo pero cambiando el punto «.» por un guión bajo «_», sale_order.
En la ventana del objeto te viene la lista de todos los campos, y el tipo del que son, si te fijas en el campo order_line, es del tipo one2many, esto quiere decir que este campo no esta en es la tabla sale_order, si no que indica que hay otra tabla que referencia a sale_order, sale_order sería el maestro y la otra tabla el detalle. Para saber la tabla en la que estan las lineas clickamos sobre order_line y vemos lo siquiente:
Vemos que pone «Relación objeto: sale.order.line» esto quiere decir que la tabla es sale_order_line, también pone «Campo relación: order_id» este es el campo de la tabla sale_order_line que apunta a sale_order.
Con esto podemos hacernos una idea de la estructura que tiene la base de datos de OpenERP, para hacer informes, migraciones, cubos olap, minería de datos….
Me gustaría hacer una aportación,
En el cliente web de la v6 aparece directamente el nombre del objeto y el campo sobre el cual posicionas el ratón, o clickas sobre el ‘?’
adjunto pantallazo de ejemplo: http://yfrog.com/j0hintsj
saludos
Carlos
Gracias por la aportación, la verdad es que todavía no he probado la v6… pero por lo que voy viento tiene muy buena pinta.
gracias por los aportes, soy desarrolladora y debo implementar el modulo de contabilidad de un ERP de mi universidad ….me ayudara mucho….
De nada, me gusta ver que mi blog sirve de ayuda para mas gente.
Hola. Soy técnico en impresoras láser, es decir, nada de desarrollo, linux, openerp, etc. Pero GRACIAS a todos uds. he podido instalar OpenERP v6.1 en Ubuntu 10.10. Con respecto a éste hilo no encuentro la opción PERSONALIZAR. Adjunto imagen en:
http://i392.photobucket.com/albums/pp6/altatecno/pedidosdeventa-Personalizar.png
Alguna idea?
Saludos desde México y gracias
Hola, en la 6.1 tampoco he encontrado la opción de personalizar ni el nombre del campo al situar el puntero del ratón encima. Si utilizas firefox puedes intalar un pluggin llamado firebug, que sirve para ver el contenido de las páginas web. Si activas firebug y clickas sobre un campo te aparecerá el código html y podrás ver el nombre del campo, por ejemplo:
es el input de un campo para introducir una fecha, si te fijas [name=»date_order»] el nombre del campo es date_order
Hola!! hace poco empece a investigar o parametrizar Openerp y quisiera consultarte:
cree una BD en postgres y la veo en Openerp
pero también cree unas tablas en esa BD y quisiera saber cómo hago para poder verlas en Openerp. Lo mismo una consulta. Cómo identifica Openerp esas tablas y consultas para poder visualizarlas o en su defecto crearles una vista?
Y cómo hago para que por ej: introduciendo un codigo postal me tire en otro campo de seleccion o busqueda las ciudades relacionadas con el mismo? quizás te estoy preguntando lo mismo en ambas. Desde ya gracias por tu ayuda.
Hola, en OpenERP no tienes que crear nada manualmente en la base de datos, todo lo hace el framework de desarrollo, tendrás que hacer un módulo y dentro del módulo cada clase creará una tabla y cada campo de esa clase será una columna de la tabla. Puedes empezar mirando estos post:
– Como empezar a desarrollar con OpenERP 1/2
– Como empezar a desarrollar con OpenERP 2/2
Hola angel me gustaria saber cual es la forma de hacer un reporte utilizando openoffice para un campo many2many o one2many, ya que para campos normales y many2one no presenta mayor problema, muchas gracias
Hola angel,, a mi tambien me interesa como llamar un campo one2many en un report designer,, he tenido problemas al querer imprimir dicho valor ,,saludos
Saludos Angel Moya, veo tu blog esta muy claro de todo lo que he leído es lo que mas e entendido yo quisiera saber como puedo llamar el valor de un solo campo en tabla sql en pgsql y mostrarlo en mi vista ya que e intentado varias cosas y me vuelvo un 8 no comprendo, veraz lo que quiero es hacer es traer un dato de un campo en la base de datos y mostrarlo en una vista que cree, de ese paso procederé a loguear un usuario pero en la vista que se muestre su nombre como si fuera una sesión