AnsweredAssumed Answered

WF Avanzado - Validación de package

Question asked by martin_4300 on Nov 5, 2009
Hola,
He creado un workflow avanzado y quiero validar que se cumplan una serie de condiciones en el package adjunto para permitir que se ejecute o no dicho WF.(Por ejemplo que el documento se encuentre en checkin, o sea de un determinado tipo… )

He creado una clase que extiende de la jbpmSpringActionHandler donde pongo todas las condiciones. Esta clase la llamo desde el evento "leave-node" de la StartTask del processdefinition donde ya puedo obtener el package y hacer la validación.

Mi problema es como conseguir la interrupción del WF si no se cumplen las condiciones deseadas.
cancelo la instancia del workflow por código  pero me aparece un error.
No sé si tendría que finalizar o suspender en primer lugar la instancia de la tarea y luego la del workflow.. he probado muchas cosas pero no logro salir de este lio y solventar el problema.  :cry:
Estaría muy agradecida si alguien me echara una mano.

Os muestro el código de la cancelación del wf  (no he incluido código de validaciones por no cargar el post) y posteriormente el error.

public class CustomWFPackageValidation extends JBPMSpringActionHandler{
   
    private static final long serialVersionUID = 1L;
   
    private ServiceRegistry services;
    private WorkflowService  workflowService;
  

    @Override
    protected void initialiseHandler(BeanFactory factory) {
        services = (ServiceRegistry) factory.getBean(ServiceRegistry.SERVICE_REGISTRY);
        workflowService = (WorkflowService) factory.getBean(ServiceRegistry.WORKFLOW_SERVICE.getLocalName());
    }
   
    public void execute(ExecutionContext executionContext) throws Exception {

        ContextInstance contextInstance = executionContext.getContextInstance();

            String workflowId = (String) contextInstance.getVariable("workflowinstanceid");                   

            workflowService.cancelWorkflow(workflowId);   

    }

}


ERROR:

User:admin ERROR [ui.common.Utils] A system error happened during the operation: Found two representations of same collection: org.jbpm.graph.exe.ProcessInstance.instances; nested exception is org.hibernate.HibernateException: Found two representations of same collection: org.jbpm.graph.exe.ProcessInstance.instances
org.springframework.orm.hibernate3.HibernateSystemException: Found two representations of same collection: org.jbpm.graph.exe.ProcessInstance.instances; nested exception is org.hibernate.HibernateException: Found two representations of same collection: org.jbpm.graph.exe.ProcessInstance.instances


Muchas gracias

Outcomes