diff --git a/product/ERP5/Document/SolverProcess.py b/product/ERP5/Document/SolverProcess.py index 3d6a9061ec764316061aea5ffaf3924279992526..ec17d68e428dce28575345bb5e71e27e2a104439 100644 --- a/product/ERP5/Document/SolverProcess.py +++ b/product/ERP5/Document/SolverProcess.py @@ -138,15 +138,16 @@ class SolverProcess(XMLObject, ActiveProcess): for movement, movement_solver_dict in movement_dict.items(): for solver, movement_solver_configuration_list in movement_solver_dict.items(): for configuration_mapping in movement_solver_configuration_list: + # Detect conflicts. This includes finding out that a solver which + # is exclusive per movement, conflicts with another solver on the same + # movement solver_message_list = solver.getSolverConflictMessageList(movement, configuration_mapping, solver_dict) if solver_message_list: message_list.extend(solver_message_list) continue # No need to keep on - # Make sure multiple configuration are possible - try: - # Solver key contains only those properties which differentiate - # solvers (ex. there should be only Production Reduction Solver) - solver_key = solver.getSolverProcessGroupingKey(movement, configuration_mapping, solver_dict) + # Solver key contains only those properties which differentiate + # solvers (ex. there should be only Production Reduction Solver) + solver_key = solver.getSolverProcessGroupingKey(movement, configuration_mapping, solver_dict) except: # Raise the exception generated by the solver in case of failure of grouping raise solver_key_dict = grouped_solver_dict.setdefault(solver, {})