The problem seems to be that OpenERP v7 requires the ID to exist if specified, and the Output Step sends an ID 0 for new records. This does not work with the v7 ORM load method:
Failed to commit batch:
Line 1 : Unknown database identifier '0'
(...)
Caused by: com.debortoliwines.openerp.
A workaround is to modify the BaseModel object, _convert_records function, so it that a zero ID is considered equivalent to an empty id. Here is the diff of the fix if you want to apply it yourself:
--- openerp/osv/orm.py.orig 2013-03-20 22:21:17.892445229 +1100
+++ openerp/osv/orm.py 2013-03-20 22:05:12.474594534 +1100
@@ -1499,7 +1499,9 @@ class BaseModel(object):
except ValueError:
# in case of overridden id column
dbid = record['.id']
- if not self.search(cr, uid, [('id', '=', dbid)], context=context):
+ if dbid == 0:
+ dbid = False
+ elif not self.search(cr, uid, [('id', '=', dbid)], context=context):
log(dict(extras,
type='error',
record=stream.index,