Workflow CQ5工作流的问题
我开发了一个工作流模型,如下所示 流程开始->测试流程->自定义参与者->结束 我已经为两个不同的定制流程步骤和定制动态参与者步骤编写了两个不同的OSGI包 第一个OSGI实现-在/apps/mywebsite/wfprocess/下创建了一个捆绑包,java文件的路径是/apps/mywebsite/wfprocess/src/main/java/com/test/workflowProcess/MyWorkflowProcess.javaWorkflow CQ5工作流的问题,workflow,aem,Workflow,Aem,我开发了一个工作流模型,如下所示 流程开始->测试流程->自定义参与者->结束 我已经为两个不同的定制流程步骤和定制动态参与者步骤编写了两个不同的OSGI包 第一个OSGI实现-在/apps/mywebsite/wfprocess/下创建了一个捆绑包,java文件的路径是/apps/mywebsite/wfprocess/src/main/java/com/test/workflowProcess/MyWorkflowProcess.java @Component @Ser
@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?
/*
}
}
现在,第二个OSGI,自定义参与者-在/apps/mywebsite/custperticipantschooser/下创建了一个包,java文件的路径是
/apps/mywebsite/custperticipantcooser/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";
}
}
现在我安装了两个bundle,它们都处于活动状态
问题是,当我启动工作流时,第一个自定义流程步骤将被执行,但在它完成后,第二个自定义动态参与者流代码将不会被执行。但是,当我删除第一个自定义步骤流程(测试流程)时,就会为自定义动态参与者流执行代码
如果我遗漏了什么,请告诉我好吗?谢谢你的帮助
我正在开发5.4版本。您的自定义过程似乎没有进入参与者步骤。请检查是否已在中选中“处理程序高级”复选框。请记住在更新自定义流程组件后保存工作流