13
A
回答
16
經過一段時間,我寫了一個運行工作流模型的servlet。
下面是評論代碼:
@Component
@Service
@Properties({
@Property(name = "sling.servlet.paths", value = "/bin/runmodel"),
@Property(name = "sling.servlet.methods", value = "GET")
})
public class RunWorkflowModel extends SlingSafeMethodsServlet {
static private final Logger log = LoggerFactory.getLogger(RunWorkflowModel.class);
@Reference
private WorkflowService workflowService;
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
ResourceResolver resourceResolver = request.getResourceResolver();
Session session = resourceResolver.adaptTo(Session.class);
/* Get Parameters
* @param path = path you want to run the workflow on
* @param model = workflow model name you want to run. Typically found in /etc/workflow/models
*/
RequestParameterMap params = request.getRequestParameterMap();
String path = params.getValue("path").getString();
String model = params.getValue("model").getString();
// Create a workflow session
WorkflowSession wfSession = workflowService.getWorkflowSession(session);
try {
// Get the workflow model
WorkflowModel wfModel = wfSession.getModel(model);
// 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", path);
// Run the Workflow.
wfSession.startWorkflow(wfModel, wfData);
} catch (WorkflowException ex) {
response.getWriter().write("failed");
log.error("Error starting workflow.", ex);
}
response.getWriter().write("success");
}
}
這裏是Ajax調用
CQ.Ext.Ajax.request({
url: "/bin/runmodel",
method: "GET",
params : {
"path" : "/content/path to item you want the workflow run on",
"model" : "/etc/workflow/models/name of model/jcr:content/model"
},
success: function() {
console.log("success");
},
failure: function(response) {
CQ.Notification.notifyFromResponse(response);
}
});
相關問題
- 1. 如何以編程方式激活cq5工作流程中的頁面
- 2. 在liferay中以編程方式執行工作流轉換?
- 3. 工作流程4運行時編譯
- 4. 以編程方式創建SharePoint工作流程
- 5. 以編程方式取消SharePoint工作流程
- 6. Sitecore:以編程方式將工作流程分配給項目
- 7. 以編程方式刪除自定義代碼工作流程
- 8. 以編程方式發佈Nintex工作流程
- 9. 如何以編程方式終止作爲工作流服務運行的工作流實例
- 10. 如何以編程方式在第二個工作臺中的模型上運行Xpand工作流程?
- 11. 以編程方式在流程圖工作流中創建分配
- 12. 以編程方式創建流程圖
- 13. 函數式編程或工作流程?
- 14. 從另一個工作流程中運行工作流程
- 15. CQ5工作流程收件箱通知工作流程後堅持完成
- 16. 以編程方式運行Cakefile
- 17. 以編程方式運行grails run-app
- 18. 以編程方式運行Outlook搜索
- 19. 如何以編程方式運行testng?
- 20. 以編程方式運行多個類
- 21. Android |以編程方式運行命令
- 22. 以編程方式生成工作流服務
- 23. SharePoint 2007:以編程方式啓動工作流命中錯誤
- 24. 以編程方式刪除SharePoint工作流模板
- 25. 我可以在CQ5中安排工作流程嗎?
- 26. 多行工具提示不能以編程方式工作
- 27. 以root用戶身份以編程方式運行C程序
- 28. CQ5工作流問題
- 29. 通過命令行以編程方式運行程序
- 30. 如何以編程方式創建CQ5頁面的新版本?
需要注意的是,因爲這改變了服務器的狀態,使用POST會更好。 – 2013-03-07 08:14:08
感謝您指出:) – Woodifer 2013-03-07 22:22:33