第五支程式要用OSWorkflow提供的API做查詢,查詢出已完成工作流的工作流編號。
程式
Query.java
package tw.idv.idealist;
import java.util.*;
import com.opensymphony.workflow.*;
import com.opensymphony.workflow.query.*;
import com.opensymphony.workflow.spi.WorkflowEntry;
/**
* @author steven
*/
public class Query extends AbstractWorkflow {
public List getCompleted() {
FieldExpression fe = new FieldExpression(FieldExpression.STATE,
FieldExpression.ENTRY,
FieldExpression.EQUALS,
new Integer(WorkflowEntry.COMPLETED));
List list = null;
try {
list = getPersistence().query(new WorkflowExpressionQuery(fe));
} catch (StoreException e) {
e.printStackTrace();
}
return list;
}
}
completed.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<%@ page language="java" contentType="text/html; charset=BIG5" pageEncoding="BIG5" %>
<%@ page import="tw.idv.idealist.*" %>
<%@ page import="java.util.*" %>
<META http-equiv="Content-Type" content="text/html; charset=BIG5">
<META http-equiv="Content-Style-Type" content="text/css">
<LINK href="theme/Master.css" rel="stylesheet" type="text/css">
<TITLE>completed.jsp</TITLE>
</HEAD>
<BODY>
已完成的工作流編號:<br>
<%
Query query = new Query();
List completed = query.getCompleted();
for(int i=0; i<completed.size(); i++) {
Long wfId = (Long) completed.get(i);
out.println("workflow id => " + wfId + "<br>");
}
%>
</BODY>
</HTML>