Archive

Posts Tagged ‘Python’

How to debug your OpenERP modules

Debugging your OpenERP modules is quite straightforward, as long as you know basic Python programming. Just insert the following line in your

English: Python logo Deutsch: Python Logo

Image via Wikipedia

module:

import pdb;pdb.set_trace()

Then restart your openerp-server with the —debug option

# openerp-server –debug

Then monitor your server console. You will see your server stop and show you a command line prompt where you will be able to debug your program.
You will find further information in the Python documentation website.

Advertisements

Managing your openerp processes with Supervisor

Reading a book on system administration with Python I found Supervisor, which is a tool that allows you manage your programs. I found it easy to

English: A picture of a Dell PowerEdge 850 web...

Image via Wikipedia

install and learn, and in minutes I had it running in my system. After reading the documentation, which took me minutes, I was able to configure its configuration file, restart the daemon and have openerpserver and openerp-web running automatically in my computer.

Below is am example of how to modify the supervisord.conf file in order to start openerp-server and openerp-web

[program:openerp-server]
command=/usr/local/bin/openerp-server
user=gustavo

[program:openerp-web]
command=/usr/local/bin/openerp-web

Why I like it? Because this tool allows me to manage my process and it does not take me long to do that. It can also be controlled by other Python programs, which might be handy in some projects.

Cheers!

Automated actions in OpenERP

December 28, 2011 Leave a comment

In OpenERP, as in any other ERP or system, you need to perform certain tasks regularly. Tasks such as performing a backup, calculating ABC categories, running the MRP planner, etc. How do you get this done in OpenERP? It’s quite easy and you don’t need your server administrator to get this done. Scheduling tasks in OpenERP is done via the Scheduled Actions in the Administration > Configuration > Scheduler menu.
Scheduled Actions view
In this section, you will be able to create new actions. So click on the New button in the view.

After clicking New you will see a form that allows you to enter information in two tabs, an Information tab and a Technical tab. In the first tab you will be able to enter the name of the action, whether it is active or not, and how regularly it is executed. In the technical tab, and you might need a programmer help for this, you have to enter the name of the object that will run the action; along with the function to schedule and its arguments. This is the tricky part of scheduling an action, since you need to get into the details of how the system works and you will need your programmer to dig into the object code. But it is worth it, once you understand how this works, you will be able to get many things accomplished.

Logging from your OpenERP module

December 27, 2011 Leave a comment

I always wondered how to, in the OpenERP web client, show those informational messages in the top of the web client. Messages such as ‘PO/00001 created’. They are very informational for users.

Well… reading a presentation on the differences between OpenERP v5 and v6 I found that one of the additions was the self.log function which, as its name implies, logs a message to the audit logs (which can be accessed at Administration/Audit/Logs) and the Administration Dashboard (which can be accessed at Administration/Reporting/Dashboard/Administration Dashboard).

The function has the following syntax:

self.log(cr, uid, st.id, _(‘Statement %s is confirmed, journal items are created.’) % (st_number,))

The function returns the id of the entry created in the res_log table (or res.log business object) and takes the message to log and the context as parameters

Cheers!

Checking lead-times in OpenERP

December 23, 2011 Leave a comment

In case you need to check your suppliers’ lead-times in OpenERP, it is quite easy. You need to go to Warehouse > Reporting >  Movement Analysis. You will be able to see a view where you can filter by partner, product, location and other attributes the planned lead-time and execution lead-time. This is a great report for checking the accuracy of lead-times.

Movement Analysis View in OpenERP

Movement Analysis View

Deleted records in OpenERP

December 21, 2011 Leave a comment
The blue/white elephant logo of the PostgreSQL...

Image via Wikipedia

Sooner or later you will find yourself with pgAdmin (or any other query tool) querying the OpenERP database in order to pull statistical information. It happens, and it is a healthy sign of your OpenERP implementation.

Something you need to keep in mind is how OpenERP “deletes” its records. It does not physically remove them. It just marks them as deleted. And it does so with the active field in the table. This field, which happens to be a boolean field, if true indicates that the record is not deleted. Otherwise you should not take the record into account in your queries.

Cheers!

Time-outs and the openerp-web client

December 20, 2011 Leave a comment

Sometimes you need to change the time-out setting of your openerp-web client application. There might be many reasons for this, among them the need to submit long  processes or views that take minutes to retrieve the desired data. Doing this is no big deal with the GTK client, but gets tricky  when it comes to the web client since you get a time-out error message after two minutes of inactivity.

How do you solve this? It’s easy. In OpenERP v5 you need to locate the file tiny_sock.py. In that file, search for the file that reads:

self.sock.settimeout(120)

In my web client, that happens to be the line 49. Then you change the parameter of the settimeout function to the number of seconds you desire. Then restart your web client.

With OpenERP v6 is pretty much the same story, now you do not need to modify the source code. You only need to change the openerp-web.cfg configuration file. In that file, you will find the following entry in the OpenERP Server section:

openerp.server.timeout = 450

Then you have to restart your web client application.
That’s all you need to do in order to change your timeout settings in your OpenERP Web Application.

Cheers!