2013-09-24 4 views
1

J'ai développé un modèle de workflow qui ressemble à ci-dessous.Problème avec le flux de travail CQ5

Démarrage du flux -> Processus de test -> Participant personnalisé -> Fin J'ai écrit deux bundles OSGI différents pour deux étapes de processus personnalisées et une étape de participant dynamique personnalisée.

Première OSGI Implémentation - Création d'un paquet sous/apps/monsite/wfprocess/et le chemin du fichier java est /apps/mywebsite/wfprocess/src/main/java/com/test/workflow/MyWorkflowProcess.java

 @Component 
    @Service 
     public class MyWorkflowProcess implements WorkflowProcess { 

    @Property(value = "An example workflow process implementation.") 
    static final String DESCRIPTION = Constants.SERVICE_DESCRIPTION; 
    @Property(value = "Adobe") 
    static final String VENDOR = Constants.SERVICE_VENDOR; 
    @Property(value = "Custom Step Process ") 
    static final String LABEL="process.label"; 
    private static Logger log = LoggerFactory.getLogger(MyWorkflowProcess.class); 
    private static final String TYPE_JCR_PATH = "JCR_PATH"; 

    public void execute(WorkItem item, WorkflowSession session, MetaDataMap args) 
    throws WorkflowException { 
     String argument = args.get("PROCESS_ARGS", "default value"); 
    /* 
    Do I need to do something here to call second dynamic participant step? 
    /* 
    } 
    } 

maintenant seconde OSGI, personnalisé-participants créé un paquet sous/apps/monsite/custPerticipantChooser/et le chemin du fichier java est

/apps/monsite/custPerticipantChooser/src/main/java/com/test/Cust /actor/MyDynamicParticipant.java

@Component 
    @Service 
    @Properties({ 
    @Property(name = Constants.SERVICE_DESCRIPTION, 
       value = "A sample implementation of  dynamic participant chooser."), 
    @Property(name = Constants.SERVICE_VENDOR, value = "Adobe"), 
    @Property(name = ParticipantStepChooser.SERVICE_PROPERTY_LABEL, 
       value = "Sample Participant Chooser")}) 
     public class MyDynamicParticipant implements ParticipantStepChooser { 

    private static final String TYPE_JCR_PATH = "JCR_PATH"; 

    public String getParticipant(WorkItem workItem, WorkflowSession workflowSession, 
    MetaDataMap args) throws WorkflowException { 
    WorkflowData workflowData = workItem.getWorkflowData(); 
    if (workflowData.getPayloadType().equals(TYPE_JCR_PATH)) { 
     String path = workflowData.getPayload().toString(); 
     String pathFromArgument = args.get("PROCESS_ARGS", String.class); 
     if (pathFromArgument != null && path.startsWith(pathFromArgument)) { 
      return "sam"; 
     } 
    } 
    return "marketingrp"; 
    } 
     } 

Maintenant j'ai installé deux paquets et les deux sont en état actif.

Le problème est que lorsque je lance le workflow, la première étape du processus personnalisé est exécutée mais une fois le processus terminé, le second code de flux du participant dynamique personnalisé n'est pas exécuté. Mais lorsque j'ai supprimé le premier processus d'étape personnalisé (Processus de test), le code est en cours d'exécution pour un flux de participant dynamique personnalisé.

Pourriez-vous s'il vous plaît laissez-moi savoir s'il me manque quelque chose ici? Merci de votre aide!

Je travaille sur la version 5.4.

Répondre

2

Il semble que votre processus personnalisé ne passe pas à l'étape du participant. Veuillez cocher la case Handler Advance sélectionnée dans le Process Step. N'oubliez pas d'enregistrer le flux de travail après la mise à jour du composant de processus personnalisé.