So I am trying to print an invoice with the xmlrpc api. I used the example from the api docs (https://doc.odoo.com/6.1/developer/12_api/#python-example) but it seems not to work.
Code:
import xmlrpclib
import time
import base64
u = '****'
pwd = '****'
db = '****'
sock_common = xmlrpclib.ServerProxy('http://*********:8069/xmlrpc/common')
uid = sock_common.login(db, u, pwd)
sock_print = xmlrpclib.ServerProxy('http://*********:8069/xmlrpc/report')
report_id = sock_print.report(db, uid, pwd, 'account.invoice', [1], {'model': 'account.invoice', 'id': 1, 'report_type': 'pdf'})
time.sleep(3);
state = False
attempt = 0
while not state:
report = sock_print.report_get(db, uid, pwd, report_id)
state = report['state']
if not state:
time.sleep(1)
attempt += 1
if attempt > 200:
print 'Abort, too long delay'
pdf_string = base64.decodestring(report['result'])
pdf_file = open('/tmp/file.pdf', 'w')
pdf_file.write(pdf_string);
pdf_file.close()
Log:
2014-07-22 10:25:08,644 21122 ERROR jacob openerp.service.report: Exception: Required report does not e
xist: None
Traceback (most recent call last):
File "/home/odoo/openerp/service/report.py", line 93, in go
result, format = openerp.report.render_report(cr, uid, ids, object, datas, context)
File "/home/odoo/openerp/report/__init__.py", line 40, in render_report
return registry['ir.actions.report.xml'].render_report(cr, uid, ids, name, data, context)
File "/home/odoo/openerp/api.py", line 204, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/openerp/addons/base/ir/ir_actions.py", line 139, in render_report
new_report = self._lookup_report(cr, name)
File "/home/odoo/openerp/api.py", line 204, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/openerp/addons/base/ir/ir_actions.py", line 131, in _lookup_report
raise Exception, "Required report does not exist: %s" % r
Exception: Required report does not exist: None
Does anyone know what the problem might be?