关键字:osworkflow 入门教程, 初体验,环境搭建,示例,笔记,用法。。。。。。
在研究osworkflow详细配置之前,先整明白这玩意咋在网页里用呢?
看例子:
页面都在osworkflow-2.8.0\src\webapp下:
首先是首页default.jsp,创建用户啥的先不理,然后是登陆页面:login.jsp,登陆验证完进入nav.jsp
session.setAttribute("username", username);
response.sendRedirect("nav.jsp");
在nav.jsp里进入创建工作流的页面:newworkflow.jsp
OK重点到了,如何创建一个工作流对象:
newworkflow.jsp
Workflow wf = new BasicWorkflow((String) session.getAttribute("username"));
long id = wf.initialize("example", 100, null);
哦,首先根据当前用户名创建一个 BasicWorkflow, 然后初始化,估计是用之前配的osworkflow-2.8.0\src\webapp\WEB-INF\classes\example.xml, 得到一个流水号id,然后进入test.jsp页面开始走流程:
test.jsp页面复杂了。。。
不过感觉需要看的就开始那点:
Workflow wf = new BasicWorkflow((String) session.getAttribute("username"));
long id = Long.parseLong(request.getParameter("id"));
String doString = request.getParameter("do");
if (doString != null && !doString.equals("")) {
int action = Integer.parseInt(doString);
wf.doAction(id, action, Collections.EMPTY_MAP);
}
int[] actions = wf.getAvailableActions(id, null);
WorkflowDescriptor wd = wf.getWorkflowDescriptor(wf.getWorkflowName(id));
for (int i = 0; i < actions.length; i++) {
String name = wd.getAction(actions[i]).getName();
%>
<li> <a href="test.jsp?id=<%=id%>&do=<%= actions[i] %>"><%= name %></a>
<%
}
无非就是获取一个流水号,然后就知道当前工作流在第几步了,
wd.getAction(actions[i]).getName()
然后想执行哪一步,就执行哪一步的action编号就行
wf.doAction(id, action, Collections.EMPTY_MAP);
action编号在sworkflow-2.8.0\src\webapp\WEB-INF\classes\example.xml里定义了,例如:
<action id="1" name="Finish First Draft">
至于到底能执行哪一个action,什么用户才能执行,这执行完了又该咋地,这都配到example.xml里了, 得还得看那个example.xml。
反正现在终于可以对osworkflow说“hello world”了