Archivo etiqueta programar openerp windows

Programar y realizar modificaciones al código de openERP en Windows

¿Es posible?

Pues si. Es posible. Aunque todos los Gurús de openerp recomiendan un entorno Linux para programar en Python, en Windows también se puede hacer. Esta miniguía es para principiantes que no saben por donde empezar. Los que llevais un ratillo en esto, podeis obviar el post.

¿Qué herramientas necesitais?

Básicamente un buen editor de textos. Recomendados el Ultraedit32 (de pago), el editplus(free) o notepad2(free).

Los ficheros a modificar en cualquier módulo son sólo los .py

Todos los módulos (coged uno de server/addons cualquiera tienen básicamente los siguientes archivos)

__init__.py –> Se indican los componentes que tiene el módulo, tanto sean wizards, reports u otros submódulos. Fichero requerido en todos los módulos

__terp__.py –> Firma del módulo y sus dependencias con otros módulos. Fichero requerido en todos los módulos

FICHEROS.py –> Se definen las clases, campos, objetos que forman parte del módulo.

CARPETAS dentro de un módulo:

  • Wizard: Acciones –> Se muestran en forma de botón con un dibujo de unas ruedecitas, a la derecha de cada módulo. No son requeridos en todos los módulos. Un botón de acción o Wizard, son por ejemplo en la ficha del cliente “Crear cuentas”, “Envío e-mails”.. etc. Si quisieramos añadir una acción nueva, deberemos añadir otro Wizard al módulo y el código asociado correspondiente con el proceso que queramos ejecutar.
  • Reports: Informes –> Se muestran al pulsar el botón imprimir en cada objeto. No es una carpeta requerida en todos los módulos, solo es requerida si queremos asociar un informe a un objeto.
  • i18n –> Carpeta de traducciones. Tampoco es requerida en todos los módulos.

Los pasos para ejecutar y depurar las modificaciones realizadas en Windows son los siguientes:

  1. Para modificar un módulo existente, modificar el fichero .py correspondiente
  2. Para añadir un nuevo módulo, lo más sencillo es copiar una carpeta ya existente con un nuevo nombre y realizar los cambios sobre ella.
  3. Una vez realizados los cambios, en openERP –> Administración/modulos/actualizar
  4. Parar y arrancar el servidor
    1. Inicio/todos los programas/openERP/server/stop
    2. Inicio/todos los programas/openERP/server/start
  5. Si todo va bien, deberemos ver los cambios esperados en el módulo correspondiente. Si no es así, si la aplicación se queda bloqueda, no podemos entrar al módulo modificado o cualquier otro problema, posiblemente tenemos un error de sintaxis.
  6. Para verificar esto, abrir el archivo C:\Archivos de programa\OpenERP\Client \ openerp-client.exe.log

En el log del Cliente se guardan Todos los errores que pasen durante la ejecución del programa. Al abrirlo, cuidado con las líneas, son larguísimas. Haced scroll a la derecha y os dará el error, el fichero y la línea en la que se produce.

Ejemplo. No asustarse… El error está marcado en Rojo. Vereis que es un error de sintaxis y os da exactamente dónde se produce.

Traceback (most recent call last):
File “widget\view\form_gtk\parser.pyo”, line 117, in button_clicked
File “rpc.pyo”, line 186, in rpc_exec_auth
File “common\common.pyo”, line 338, in error
File “rpc.pyo”, line 148, in rpc_exec_auth_try
File “rpc.pyo”, line 112, in exec_auth
File “rpc.pyo”, line 118, in execute
File “tiny_socket.pyo”, line 80, in myreceive
tiny_socket.Myexception: (”, ‘Traceback (most recent call last):\n  File “netsvc.pyo”, line 231, in dispatch\n  File “netsvc.pyo”, line 74, in __call__\n  File “service\\web_services.pyo”, line 479, in execute\n  File “service\\security.pyo”, line 48, in check\n  File “pooler.pyo”, line 76, in get_db\n  File “pooler.pyo”, line 40, in get_db_and_pool\n  File “addons\\__init__.pyo”, line 704, in load_modules\n  File “addons\\__init__.pyo”, line 573, in load_module_graph\n  File “addons\\__init__.pyo”, line 373, in register_class\n  File “C:\\Archivos de programa\\OpenERP AllInOne\\Server\\addons\\esale_osc\\__init__.py”, line 3, in <module>\n  File “C:\\Archivos de programa\\OpenERP AllInOne\\Server\\addons\\esale_osc\\esale_oscom_product.py”, line 362\n    \’product_id\’:,\n                 ^\nSyntaxError: invalid syntax\n’)
Espero os haya servido!!!

,

2 Comentarios