Mugoma Okomba | 1 Feb 05:27 2009

Using on_change in a wizard

Hi all.

I am trying to use an on_change on a field in a wizard but it's giving an error at runtime:

Object Error

Object wizard.generate_documents doesn't exist


where generate_documents is the id of the wizard (in wizard.xml).

What could I be missing? Please help.



forum | 1 Feb 08:34 2009

Re: Performance !

Sure i will do that, but i my question is there are companies using openerp in production that have this
amount of data in their database ?

-------------------- m2f --------------------


-------------------- m2f --------------------

forum | 1 Feb 09:30 2009

Re: Performance !

My recent experience is that generally there is no performance hit by large (in rows) tables. Since
Postgres holds the data, it performs quite the same if it has 100 or 100k or 1M records. 

However, there are many points in OpenERP where Python is used to iterate over data. This is sub-optimal and
you may endup waiting for some specific operations to finish. I hope that in a next version (after 5.0, for
sure) we could optimize the engine.

-------------------- m2f --------------------


-------------------- m2f --------------------

forum | 1 Feb 11:01 2009

Re: Performance !

Thx for your answer.
So You are sure that the size of the tables do not affect performance ?
Still transactional tables have to be kept as free as posible from what i know since in time when they grow
will slow down inserts as well the joins are much heavier and so on ....

I am not talking about partner tables or stuff like that i am talking about transactional tables.

YOu let that grow .... until when ?

-------------------- m2f --------------------


-------------------- m2f --------------------

forum | 1 Feb 12:20 2009

Re: Performance !

I am not perfectly sure what you mean by "transactional tables". Let me use the term "data handled in
transaction" or "dhit" and try to forecast the issues.

AFAIK the "dhit" at the current OpenObject is in the form of python objects. They are stored in the server's
memory, handled by its garbage collector and so on. Yes, there is many SQL commands issued inside each "rpc
action", which are then committed at the end of the transaction. Still, Python has a reference of nearly
all objects involved there. In some experiments I've been making, the counters often show as many as 5k SQL
commands ! inside one transaction. In some case, 50k and 100k too! That is a problem, for sure.

As a quick remedy, the object model should be planned so that number of "dhit" objects is kept minimal (say,
do you really need more than 100 lines in an invoice? , can you limit your search in products when you do the
query? ).

Then, Postgres is a great tool in optimizing the data handling. Just like any decent database, it is
destined to hold huge datasets and produce a reasonably fast result. The key there is that you don't
foolishly ask for the whole dataset, but the right part of it. Given that you have the right indexes and no
excess triggers, most db transactions perform fast and don't really depend on the rowcount of the table.
My experience (since 2003) in Postgres has not yet found an upper limit to the data size.

Of course, we are *only* talking about using the latest Postgres in Linux (or Solaris, perhaps), using
decent hardware and not compromize for anything less than those.

My humble conclusion is that now you should expect moderate performance with Object model, you may be lucky
enough to store quite many rows before the model does something stu^H^H^Hsuboptimal and slows down. By
the time you will have stored more data, all the components (OpenObject, db, Linux, hardware) will have
progressed so that you will enjoy the desired scalability.

-------------------- m2f --------------------

(Continue reading)

forum | 1 Feb 12:46 2009

Re: Performance !


If I look at our customers, we have:
* one with 600.000 orders per month
* one with 1.000.000 of products
* some with 10.000.000 records on move

On v5, most of the time performance is not a problem on classic modules. But sometimes, a badly implemented
module can make the system become very slow. The problem is, nearly always, function fields nto correctly implemented.

So for such customers, we always have some fine tunings to do, especially when we play with less frequently
used modules (non addons one). But the core of Open ERP is very strong and can rely on fast queries.

This case (not in stable version, but a bug that have been fixed during new devs in trunk) is a good example of
such problems:

Read the full discussion to understand.

-------------------- m2f --------------------


-------------------- m2f --------------------

Michel Renon | 1 Feb 13:03 2009

Invoice report question


As it's my first post, let me introduce myself :
I'm a software engineer in Toulouse (C, C++, PHP, HTML...).
I learn OpenERP for several months and we begin to propose it as a  
professional solution, by customizing it (reports) and writing addons.

Here is my question :

We use OpenERP 4.2.1
we create 4 reports : sale order, prepare, shipping and invoice.
in the sale order we use the properties of the sale order lines : it  
helps us define simple variations of the products instead of creating  
a lot of variants.
We use it also to customize the product name in the sale report and  
in the shipping report.
It is easy to do that in the shipping report because every move line  
has a direct link to the sale order line : we can read all the order  
line properties.

But the problem is with the invoice : i found no direct link from the  
invoice to the sale order...

The only solution i saw was :
- in the invoice there is a field "origin" that store the name of the  
sale order ("SO/2009/0001" for example)
- search the sale order with that name
- try to map sale order line to invoice line (with product_id, qty,  
It would work, but it seems to me that there might be some problem  
(Continue reading)

forum | 1 Feb 15:18 2009

Re: HRM module, where's the personal address information?

Hi BuGless

If functionality you need is not included on publicated release, maybe it is on extra-addons. 

There is 8 extra modules for HR included there: 


Maybe some of them could include the functionality you need... 

To access extra_addons modules, please access:

Fabien and OpenERP project leaders... is there any place where we can find information about
functionality included on base modules and extra modules? if there is not, it could be a nice project to do,
like wiki is. 

If someone uses a module, he/she could make a litle tutorial and show functionality of the module for other
people who maybe needs it. 

I think this could help developers not doing the same work for several times and improving the work made by
now. What do you think about it?
(Continue reading)

Bram van der Sar | 1 Feb 22:04 2009

Close a Fiscal Year


I am about to close the past fiscal year.

I installed the c2c_fiscal_year_close module but I (still) get:

Traceback (most recent call last):
  File "/usr/lib/tinyerp-server/", line 202, in _dispatch
  File "/usr/lib/tinyerp-server/service/", line 422, in execute
    return self._execute(db, uid, wiz_id, datas, action, context)
  File "/usr/lib/tinyerp-server/service/", line 402, in _execute
    return wiz.execute(db, uid, self.wiz_datas[wiz_id], action, context)
  File "/usr/lib/tinyerp-server/wizard/", line 160, in execute
    res = self.execute_cr(cr, uid, data, state, context)
  File "/usr/lib/tinyerp-server/wizard/", line 75, in execute_cr
    action_res = action(self, cr, uid, data, context)
  File "/usr/lib/tinyerp-server/addons/", line 393, in _data_save
    if not journal.default_credit_account_id or not journal.default_debit_account_id:
AttributeError: 'browse_null' object has no attribute 'default_credit_account_id'

Any idea?

Thanks in advance

Bram van der Sar

I am about to close the past fiscal year.<br><br>
I installed the c2c_fiscal_year_close module but I (still) get:<br><br>
Traceback (most recent call last):<br>
&nbsp; File "/usr/lib/tinyerp-server/", line 202, in _dispatch<br>
&nbsp;&nbsp;&nbsp; r=m(*params)<br>
&nbsp; File "/usr/lib/tinyerp-server/service/", line 422, in execute<br>
&nbsp;&nbsp;&nbsp; return self._execute(db, uid, wiz_id, datas, action, context)<br>
&nbsp; File "/usr/lib/tinyerp-server/service/", line 402, in _execute<br>
&nbsp;&nbsp;&nbsp; return wiz.execute(db, uid, self.wiz_datas[wiz_id], action, context)<br>
&nbsp; File "/usr/lib/tinyerp-server/wizard/", line 160, in execute<br>
&nbsp;&nbsp;&nbsp; res = self.execute_cr(cr, uid, data, state, context)<br>
&nbsp; File "/usr/lib/tinyerp-server/wizard/", line 75, in execute_cr<br>
&nbsp;&nbsp;&nbsp; action_res = action(self, cr, uid, data, context)<br>
&nbsp; File "/usr/lib/tinyerp-server/addons/", line 393, in _data_save<br>
&nbsp;&nbsp;&nbsp; if not journal.default_credit_account_id or not journal.default_debit_account_id:<br>
AttributeError: 'browse_null' object has no attribute 'default_credit_account_id'<br><br>
Any idea?<br><br>
Thanks in advance<br><br><table cellspacing="0" cellpadding="0" width="100%"><tr>
<br>Bram van der Sar
forum | 2 Feb 03:16 2009

OpenERP 5.0 trunk


I am trying to print an invoice using trunk from Friday.

I have the filestore set to a writable folder, and have pypdf 1.12 installed.

If I Action / Print Invoice, the client will sit there for a couple of minutes, and eventually state that the
print job is timed out.

On the server, the CPU goes to 100% and remains there for a long as I let it.

I have debug logging on both the client and server, but it doesn't report that it is even doing anything
during this.

If I try any other reports, the client comes back immediately, but no pdf is generated.  Again, nothing
registers on the client or server debug logs.

Has anyone else got printing working under 5.0?

ServWise Advanced Web Hosting - Better, Faster, Smarter (

-------------------- m2f --------------------


-------------------- m2f --------------------