diff --git a/product/ERP5/Document/SolverProcess.py b/product/ERP5/Document/SolverProcess.py index 614ea40598e3b85ddb86cd0acb358cec2d152a78..39687e73a2127f461005336c9044cf4b30c221e3 100644 --- a/product/ERP5/Document/SolverProcess.py +++ b/product/ERP5/Document/SolverProcess.py @@ -183,7 +183,9 @@ class SolverProcess(XMLObject, ActiveProcess): for solver in self.contentValues(portal_type=self.getPortalObject().getPortalTargetSolverTypeList()): if solver.isTempObject(): solver_type = solver.getPortalTypeValue() - solver_type.activate(activate_kw=activate_kw).solve( + # Since multiple documents may need the same solver, activity must be + # executed individually. Thus SQLQueue is needed. + solver_type.activate(activity='SQLQueue', activate_kw=activate_kw).solve( activate_kw=activate_kw, delivery_list=solver.getDeliveryList(), configuration_dict=solver.getConfigurationPropertyDict() @@ -191,7 +193,8 @@ class SolverProcess(XMLObject, ActiveProcess): else: if isTransitionPossible(solver, 'start_solving'): solver.startSolving() - solver.activate(active_process=self, activate_kw=activate_kw).solve( + # SQLQueue is needed for the same reason. + solver.activate(activity='SQLQueue', active_process=self, activate_kw=activate_kw).solve( activate_kw=activate_kw) # API