There is a wrong call at file server/openerp/workflow/workitem.py:
inst = instance.WorkflowInstance(self.session, self.record)
while defenition for instance.WorkflowInstance (file server/openerp/workflow/instance.py) is follow:
class WorkflowInstance(object):
def __init__(self, session, record, values):
Error is happen when there is subflow activity without action field
2014-03-26 05:36:09,356 10341 ERROR itprojects_LOCAL openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
File "/mnt/files/src/openerp-server/server/openerp/http.py", line 362, in dispatch
response["result"] = self._call_function(**self.params)
File "/mnt/files/src/openerp-server/server/openerp/http.py", line 223, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/mnt/files/src/openerp-server/server/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/mnt/files/src/openerp-server/server/openerp/http.py", line 220, in checked_call
return self.endpoint(*a, **kw)
File "/mnt/files/src/openerp-server/server/openerp/http.py", line 559, in __call__
return self.method(*args, **kw)
File "/mnt/files/src/openerp-server/server/openerp/http.py", line 266, in response_wrap
response = f(*args, **kw)
File "/mnt/files/src/openerp-server/web/addons/web/controllers/main.py", line 1229, in call_button
action = self._call_kw(model, method, args, {})
File "/mnt/files/src/openerp-server/web/addons/web/controllers/main.py", line 1217, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/mnt/files/src/openerp-server/addons/sale/sale.py", line 562, in action_button_confirm
self.signal_order_confirm(cr, uid, ids)
File "/mnt/files/src/openerp-server/server/openerp/osv/orm.py", line 5083, in <lambda>
self.signal_workflow(*args, signal=signal_name, **kwargs))
File "/mnt/files/src/openerp-server/server/openerp/osv/orm.py", line 3617, in signal_workflow
result[res_id] = workflow.trg_validate(uid, self._name, res_id, signal, cr)
File "/mnt/files/src/openerp-server/server/openerp/workflow/__init__.py", line 85, in trg_validate
return WorkflowService.new(cr, uid, res_type, res_id).validate(signal)
File "/mnt/files/src/openerp-server/server/openerp/workflow/service.py", line 91, in validate
res2 = wi.validate(signal)
File "/mnt/files/src/openerp-server/server/openerp/workflow/instance.py", line 75, in validate
wi.process(signal=signal, force_running=force_running, stack=stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 121, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 249, in _split_test
self._join_test(t[0], t[1], stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 258, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 96, in create
workflow_item.process(stack=stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 121, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 249, in _split_test
self._join_test(t[0], t[1], stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 258, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 96, in create
workflow_item.process(stack=stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 121, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 249, in _split_test
self._join_test(t[0], t[1], stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 258, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 96, in create
workflow_item.process(stack=stack)
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 117, in process
if not self._execute(activity, stack):
File "/mnt/files/src/openerp-server/server/openerp/workflow/workitem.py", line 196, in _execute
inst = instance.WorkflowInstance(self.session, self.record)
TypeError: __init__() takes exactly 4 arguments (3 given)