<%@ page import="org.jdom2.Element" %> <%@ page import="org.yawlfoundation.yawl.resourcing.rsInterface.WorkQueueGatewayClient" %> <%@ page import="org.jdom2.output.XMLOutputter" %> <%@ page import="org.jdom2.output.Format" %> <%@ page import="org.jdom2.input.SAXBuilder" %> <%@ page import="java.io.StringReader" %> <% String redirectURL = (String) session.getAttribute("redirectURL"); if (redirectURL == null) { redirectURL = request.getParameter("source"); session.setAttribute("redirectURL", redirectURL); } String submit = request.getParameter("submit"); if ((submit != null) && (submit.equals("Cancel"))) { session.removeAttribute("itemXML"); session.removeAttribute("workitem"); session.removeAttribute("handle"); session.removeAttribute("redirectURL"); response.sendRedirect(response.encodeURL(redirectURL)); return; } String wqURL = "http://localhost:8080/resourceService/workqueuegateway"; WorkQueueGatewayClient wqClient = new WorkQueueGatewayClient(wqURL); String itemXML = (String) session.getAttribute("itemXML"); if (itemXML == null) { String itemid = request.getParameter("workitem"); String handle = request.getParameter("handle"); itemXML = wqClient.getWorkItem(itemid, handle); session.setAttribute("itemXML", itemXML); session.setAttribute("workitem", itemid); session.setAttribute("handle", handle); } Element wir = new SAXBuilder().build(new StringReader(itemXML)).getRootElement(); Element updatedData = wir.getChild("updateddata"); Element data = (updatedData.getContentSize() > 0) ? updatedData : wir.getChild("data"); Element wirData = data.getChildren().get(0); String error = null; if (! wqClient.successful(itemXML)) { error = itemXML; } else { String input = request.getParameter("input"); String varName = "var"; if (input != null) { if (wirData != null) { Element dataitem = wirData.getChild(varName); if (dataitem != null) { dataitem.setText(input); String itemid = (String) session.getAttribute("workitem"); String handle = (String) session.getAttribute("handle"); String dataString = new XMLOutputter(Format.getCompactFormat()).outputString(wirData); String result = wqClient.updateWorkItemData(itemid, dataString, handle); if (wqClient.successful(result)) { session.removeAttribute("itemXML"); session.removeAttribute("workitem"); session.removeAttribute("handle"); session.removeAttribute("redirectURL"); redirectURL += "?complete=true"; response.sendRedirect(response.encodeURL(redirectURL)); } else { error = result; } } else { error = "This workitem does not contain a variable called '" + varName + "'."; } } else { error = "This workitem does not contain any data for updating."; } } } %> Welcome