如何使用 Java API 调用提供 data/arguments 的工作流程
How to invoke a workflow providing data/arguments using Java API
我已遵循此 https://helpx.adobe.com/experience-manager/using/invoking-experience-manager-workflows-using.html 并且可以使用 Java API 调用我的工作流程。我正在尝试调整此示例,以便我可以使用包含要处理的步骤的键值对的 MetaDataMap 启动工作流。日志消息打印键和值集。但是工作流中的步骤没有这些数据。如何在使用 Java API?
启动工作流时将 MetaDataMap 传递给工作流
@Override
public String StartWorkflow(String workflowName, String workflowContent, MetaDataMap metaMap) {
try
{
//Invoke the adaptTo method to create a Session
ResourceResolver resourceResolver = writeService.getResolver();
session = resourceResolver.adaptTo(Session.class);
//Create a workflow session
WorkflowSession wfSession = workflowService.getWorkflowSession(session);
// Get the workflow model
WorkflowModel wfModel = wfSession.getModel(workflowName);
// Get the workflow data
// The first param in the newWorkflowData method is the payloadType.
// Just a fancy name to let it know what type of workflow it is working with.
WorkflowData wfData = wfSession.newWorkflowData("JCR_PATH", workflowContent);
MetaDataMap mdp = wfData.getMetaDataMap();
for(Entry<String, Object> entry: metaMap.entrySet()){
log.info("WF Args entry="+ entry.getKey()+" "+entry.getValue());
mdp.put(entry.getKey(), entry.getValue());
}
// Run the Workflow.
wfSession.startWorkflow(wfModel, wfData, mdp);
return workflowName +" has been successfully invoked on this content: "+workflowContent ;
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
我相信您正在尝试从执行方法的参数中获取数据 - metaDataMap,而是从 WorkItem 对象中获取数据,例如 workItem.getWorkflowData().getMetaDataMap()
.
我已遵循此 https://helpx.adobe.com/experience-manager/using/invoking-experience-manager-workflows-using.html 并且可以使用 Java API 调用我的工作流程。我正在尝试调整此示例,以便我可以使用包含要处理的步骤的键值对的 MetaDataMap 启动工作流。日志消息打印键和值集。但是工作流中的步骤没有这些数据。如何在使用 Java API?
启动工作流时将 MetaDataMap 传递给工作流@Override
public String StartWorkflow(String workflowName, String workflowContent, MetaDataMap metaMap) {
try
{
//Invoke the adaptTo method to create a Session
ResourceResolver resourceResolver = writeService.getResolver();
session = resourceResolver.adaptTo(Session.class);
//Create a workflow session
WorkflowSession wfSession = workflowService.getWorkflowSession(session);
// Get the workflow model
WorkflowModel wfModel = wfSession.getModel(workflowName);
// Get the workflow data
// The first param in the newWorkflowData method is the payloadType.
// Just a fancy name to let it know what type of workflow it is working with.
WorkflowData wfData = wfSession.newWorkflowData("JCR_PATH", workflowContent);
MetaDataMap mdp = wfData.getMetaDataMap();
for(Entry<String, Object> entry: metaMap.entrySet()){
log.info("WF Args entry="+ entry.getKey()+" "+entry.getValue());
mdp.put(entry.getKey(), entry.getValue());
}
// Run the Workflow.
wfSession.startWorkflow(wfModel, wfData, mdp);
return workflowName +" has been successfully invoked on this content: "+workflowContent ;
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
我相信您正在尝试从执行方法的参数中获取数据 - metaDataMap,而是从 WorkItem 对象中获取数据,例如 workItem.getWorkflowData().getMetaDataMap()
.