Human Task API 用法

本文提供IBM WebSphere产品中任务管理API的示例代码,包括创建、列出和删除任务实例的方法。通过Java演示如何使用LocalHumanTaskManager进行任务管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Creaet Human Task API:

 

<!-- 
"This sample program is provided AS IS and may be used, executed, copied and modified without
royalty payment by customer (a) for its own instruction and study, (b) in order to develop 
applications designed to run with an IBM WebSphere product, either for customer's own 
internal use or for redistribution by customer, as part of such an application, in customer's own products."

Product 5655-FLW,  (C) COPYRIGHT International Business Machines Corp., 2005, 2007
All Rights Reserved * Licensed Materials - Property of IBM
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<title>Invocation Task Sample</title>
</head>
<body>
<div align="center">
<h1>Invocation Task Sample</h1>
<%@ page import="com.ibm.task.api.LocalHumanTaskManagerHome"%>
<%@ page import="com.ibm.task.api.LocalHumanTaskManager"%>
<%@ page import="com.ibm.task.api.*"%> <%@ page import="commonj.sdo.*"%>
<%@ page import="javax.naming.Context"%> <%
		try {

			//Obtain the default initial context
			Context context = new javax.naming.InitialContext();

			//Lookup the Local Home Interface
			LocalHumanTaskManagerHome taskHome = (LocalHumanTaskManagerHome) context.lookup("java:comp/env/ejb/LocalHumanTaskManagerHome");
			System.out.println("Lookup...success");

			//Access the local interface
			LocalHumanTaskManager taskManager = taskHome.create();
			System.out.println("Accessing local interface...success");

			String taskTemplateName = "ProcessStarter";
			String taskNamespace    = "http://InvocationTask/bpc/samples";

			//Create a new task instance
			TKIID pTaskID = taskManager.createTask(taskTemplateName, taskNamespace);
			System.out.println("task with instance ID = " + pTaskID.toString() + " created.");

			//get the task instance
			Task task = taskManager.getTask(pTaskID);
			
			//get wait parameter
			int wait = 1;//minutes
			try
			{
			   wait = Integer.parseInt(request.getParameter("minutesToWait"));
			}
			catch(NumberFormatException nfe)
			{
			}

			//create input message
			ClientObjectWrapper cow = taskManager.createInputMessage(pTaskID);
			DataObject dataObject = (DataObject) cow.getObject();
			dataObject.setString("in", request.getParameter("in"));
			dataObject.setInt("minutes", wait);

			//set an arbitrary task identifier
			task.setName(request.getParameter("task_name"));

			//start and update task instance
			taskManager.startTask(pTaskID, cow, null);
			taskManager.update(task);

			out.print("<BR>Task created succesfully!");

		} catch (Exception e) {
			e.printStackTrace(System.out);
			System.out.println(e.getClass());
			%>Exception occured. Check System.out.log for Details.<%
		}

	%>
<br>
<br>
<input type="button" onclick="document.location.href='index.html'" value="  Home  ">
<input type="button" onclick="document.location.href='create.html'" value="    New    ">
<input type="button" onclick="document.location.href='list.jsp'"   value="    List    ">
</div>
</body>
</html>

 

 

List Human Task API:

 

List Human Task API:

<!-- 
"This sample program is provided AS IS and may be used, executed, copied and modified without
royalty payment by customer (a) for its own instruction and study, (b) in order to develop 
applications designed to run with an IBM WebSphere product, either for customer's own 
internal use or for redistribution by customer, as part of such an application, in customer's own products."

Product 5655-FLW,  (C) COPYRIGHT International Business Machines Corp., 2005, 2007
All Rights Reserved * Licensed Materials - Property of IBM
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Invocation Task Sample</title>
</head>
<body>
<div align = center>
<h1 align="center">Invocation Task Sample</h1>
<br>

<%@ page import="com.ibm.task.api.LocalHumanTaskManagerHome"%>
<%@ page import="com.ibm.task.api.LocalHumanTaskManager"%>
<%@ page import="com.ibm.task.api.*"%>
<%@ page import="commonj.sdo.*"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="bpc.samples.StateTranslator"%>

<!-- BEGINN General Code Section -->
<%
		LocalHumanTaskManager taskManager = null;
		int numOfInstances = 0;
		String name = null;
		QueryResultSet instances = null;

		try {

			//Obtain the defaukt initial context
			Context context = new javax.naming.InitialContext();

			//Lookup the Local Home Interface
			LocalHumanTaskManagerHome taskHome =
			   (LocalHumanTaskManagerHome) context.lookup("java:comp/env/ejb/LocalHumanTaskManagerHome");
			System.out.println("Lookup...success");

			//Access the local interface
			taskManager = taskHome.create();
			System.out.println("Accessing local interface...success");

			String taskTemplateName = "ProcessStarter";
			String taskNamespace    = "http://InvocationTask/bpc/samples";
			
			//query task instances
            String whereClause = "TASK_TEMPL.NAME='" + taskTemplateName + "' AND TASK_TEMPL.NAMESPACE='" + taskNamespace + "'";
			instances = taskManager.query("DISTINCT TASK.TKIID", whereClause, null,null, null, null);

			numOfInstances = instances.size();
			System.out.println(numOfInstances + " instances found");
		}

		catch (Exception e) {
			e.printStackTrace();
			System.out.println(e.getClass());
		}

		if (numOfInstances > 0) {
			//print the table

			%>
<table align="center" border="1" style="border-style:solid;" cellspacing="0">
    <thead>
        <tr>
            <th width="150" align="center" valign="middle" style="padding:5px;">Task identifier</th>
            <th width="200" align="center" valign="middle" style="padding:5px;">Input data</th>
            <th width="200" align="center" valign="middle" style="padding:5px;">Output data</th>
            <th width="80" align="center" valign="middle" style="padding:5px;">State</th>
        </tr>
    </thead>
    <tbody>
        <%
			try {

					instances.first();

					for (int i = 0; i < numOfInstances; i++) {
						TKIID temp = (TKIID) instances.getOID(1);
						Task task = taskManager.getTask(temp);
						name = task.getName();
						if (name.equals("")) {
							name = " ";
						}
						String input  = "not available";
						String output = "not available";

						//get the input message of instance i.
                        try
                        {
                            ClientObjectWrapper req = taskManager.getInputMessage(temp);
                            DataObject inputDO = (DataObject) req.getObject();
                            if(inputDO != null)
                            {
                                String in = inputDO.getString("in");
                                int minutes = inputDO.getInt("minutes");
                                input = "minutes: " + minutes + "<br>in: " + in;
                            }
                        }
                        catch(Exception e1)
                        {
                            System.out.println(e1);
                        }

						//get the output message of instance i, if possible
                        try
                        {
                            if (taskManager.getOutputMessage(temp).getObject() != null) {
                                //get the output message
                                ClientObjectWrapper resp = taskManager.getOutputMessage(temp);
                                DataObject outputDO = (DataObject) resp.getObject();
                                if(outputDO != null)
                                {
                                    output = outputDO.getString("out");
                                    if (output.equals("")) {
                                        output = " ";
                                    }
                                }
                            }
                        }
                        catch(Exception e2)
                        {
                            System.out.println(e2);
                        }

						//print table row for instance i
						out.print("<tr><td align=\"center\" style=\"padding:5px;\">"
										+ name
										+ "</td><td align=\"center\" style=\"padding:5px;\">"
										+ input
										+ "</td><td align=\"center\" style=\"padding:5px;\">"
										+ output
										+ "</td><td align=\"center\" style=\"padding:5px;\">"
										+ StateTranslator.translate(task.getState())
										+ "</td></tr>");

						instances.next();
					}
			}

			catch (Exception e)
			{
				e.printStackTrace();
				System.out.println(e.getClass());
				%>Exception occured. Check System.out.log for Details.<%
				
			}

		%>
        <!-- END List Code Section -->
    </tbody>
</table>
<br>
<br>

<input type="button" value="  Home   " onclick="document.location.href='index.html'">
<input type="button" value="   New   " onclick="document.location.href='create.html'">
<input type="button" value="Delete all" onclick="document.location.href='clearAll.jsp'">
<input type="button" value="Delete finished" onclick="document.location.href='clearFinished.jsp'">
<input type="button" value="Refresh table" onclick="document.location.href='list.jsp'">
<br>
<%} else {
			//print return button

		%>
<p>No instances of type ProcessStarter found.</p>
<br>
<br>
<input type="button" value="  Home   " onclick="document.location.href='index.html'">
<input type="button" value="   New   " onclick="document.location.href='create.html'">
<%}%>
</div>
</body>
</html>

 

 

Delete:

<!-- 
"This sample program is provided AS IS and may be used, executed, copied and modified without
royalty payment by customer (a) for its own instruction and study, (b) in order to develop 
applications designed to run with an IBM WebSphere product, either for customer's own 
internal use or for redistribution by customer, as part of such an application, in customer's own products."

Product 5655-FLW,  (C) COPYRIGHT International Business Machines Corp., 2005, 2007
All Rights Reserved * Licensed Materials - Property of IBM
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Originating Task Sample</title>
</head>
<body>
<%@ page import="com.ibm.task.api.LocalHumanTaskManagerHome"%>
<%@ page import="com.ibm.task.api.LocalHumanTaskManager"%>
<%@ page import="com.ibm.task.api.*"%>
<%@ page import="javax.naming.Context"%>
<div align="center">
<h1>Invocation Task Sample</h1>
<%

		try {

			//Obtain the defaukt initial context
			Context context = new javax.naming.InitialContext();

			//Lookup the Local Home Interface
			LocalHumanTaskManagerHome taskHome = (LocalHumanTaskManagerHome) context
					.lookup("java:comp/env/ejb/LocalHumanTaskManagerHome");
			System.out.println("Lookup...success");

			//Access the local interface
			LocalHumanTaskManager taskManager = taskHome.create();
			System.out.println("Accessing local interface...success");

			String taskTemplateName = "ProcessStarter";
			String taskNamespace    = "http://InvocationTask/bpc/samples";
			
			//query task instances
            String whereClause = "TASK_TEMPL.NAME='" + taskTemplateName + "' AND TASK_TEMPL.NAMESPACE='" + taskNamespace + "'";
			QueryResultSet instances = taskManager.query("DISTINCT TASK.TKIID",whereClause, null, null, null, null);
			System.out.println(instances.size() + " instances found");
			
			out.println("<p align=\"center\">"
							+ instances.size()
							+ " instances found.<br>Deleting all finished instances...<br></p>");

			//delete the instances
			instances.first();
			boolean noInstanceFound = true;
			for (int i = 0; i < instances.size(); i++) {
				TKIID temp = (TKIID) instances.getOID(1);
				Task task = taskManager.getTask(temp);
				int state = task.getState();
				if (state == 5) {
					taskManager.delete(temp);
					System.out.println("instance (" + temp + ") ...deleted");
					out.println("<p> --> instance \"" + task.getName() + "\" ... deleted.</p>");
					noInstanceFound = false;
				}
				instances.next();
			}
			if (noInstanceFound) {
				out.println("<p>No finished instances found.<p>");
			}
			QueryResultSet instances_left = taskManager.query("DISTINCT TASK.TKIID", whereClause, null, null, null, null);
			System.out.println(instances_left.size() + " instances left");
		}
		catch (Exception e) {
			e.printStackTrace();
			System.out.println(e.getClass());
			%>Exception occured. Check System.out.log for Details.<%
		}

	%> <br>
<input type="button" onclick="document.location.href='list.jsp'" value="    OK    "></div>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值