Created
June 5, 2014 19:49
-
-
Save jeqo/25723113e6951ce60568 to your computer and use it in GitHub Desktop.
Managed bean
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package com.jeqo.htweb.view; | |
| import com.oracle.xmlns.bpel.workflow.task.Humantask1PayloadType; | |
| import com.oracle.xmlns.bpel.workflow.taskqueryservice.TaskQueryService; | |
| import com.oracle.xmlns.bpel.workflow.taskqueryservice.TaskQueryService_Service; | |
| import com.oracle.xmlns.bpel.workflow.taskqueryservice.WorkflowErrorMessage; | |
| import com.oracle.xmlns.bpel.workflow.taskservice.StaleObjectFaultMessage; | |
| import com.oracle.xmlns.bpel.workflow.taskservice.TaskService; | |
| import com.oracle.xmlns.bpel.workflow.taskservice.TaskServiceContextTaskBaseType; | |
| import com.oracle.xmlns.bpel.workflow.taskservice.TaskService_Service; | |
| import com.oracle.xmlns.bpel.workflow.taskservice.UpdateTaskOutcomeType; | |
| import java.util.logging.Level; | |
| import java.util.logging.Logger; | |
| import javax.annotation.PostConstruct; | |
| import javax.faces.bean.ManagedBean; | |
| import javax.faces.bean.ViewScoped; | |
| import javax.faces.context.FacesContext; | |
| import javax.servlet.http.HttpServletRequest; | |
| import javax.xml.bind.JAXBContext; | |
| import javax.xml.bind.JAXBElement; | |
| import javax.xml.bind.JAXBException; | |
| import javax.xml.bind.Marshaller; | |
| import javax.xml.bind.Unmarshaller; | |
| import oracle.bpel.services.workflow.common.model.WorkflowContextType; | |
| import oracle.bpel.services.workflow.query.model.TaskDetailsByIdRequestType; | |
| import oracle.bpel.services.workflow.query.model.WorkflowContextRequestType; | |
| import oracle.bpel.services.workflow.task.model.Task; | |
| import org.w3c.dom.Node; | |
| /** | |
| * | |
| * @author Jorge Quilcate | |
| */ | |
| @ManagedBean | |
| @ViewScoped | |
| public class ApprovalTaskBean { | |
| private Task task; | |
| private Humantask1PayloadType payload; | |
| private WorkflowContextType workflowContext; | |
| private JAXBElement<Humantask1PayloadType> payloadObject; | |
| @PostConstruct | |
| public void init() { | |
| HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); | |
| String taskId = request.getParameter("bpmWorklistTaskId"); | |
| String context = request.getParameter("bpmWorklistContext"); | |
| System.out.println("Task ID: " + taskId); | |
| System.out.println("Context: " + context); | |
| TaskQueryService_Service taskQueryServiceClient = new TaskQueryService_Service(); | |
| TaskQueryService taskQueryService = taskQueryServiceClient.getTaskQueryServicePort(); | |
| try { | |
| WorkflowContextRequestType getWorkflowContextRequest = new WorkflowContextRequestType(); | |
| getWorkflowContextRequest.setToken(context); | |
| workflowContext = taskQueryService.getWorkflowContext(getWorkflowContextRequest); | |
| TaskDetailsByIdRequestType getTaskDetailsByIdRequest = new TaskDetailsByIdRequestType(); | |
| getTaskDetailsByIdRequest.setTaskId(taskId); | |
| getTaskDetailsByIdRequest.setWorkflowContext(workflowContext); | |
| task = taskQueryService.getTaskDetailsById(getTaskDetailsByIdRequest); | |
| Node payloadNode = (Node) task.getPayload(); | |
| JAXBContext jaxbContext = JAXBContext.newInstance("com.oracle.xmlns.bpel.workflow.task"); | |
| Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); | |
| payloadObject = (JAXBElement<Humantask1PayloadType>) unmarshaller.unmarshal(payloadNode, Humantask1PayloadType.class); | |
| payload = payloadObject.getValue(); | |
| } catch (WorkflowErrorMessage | JAXBException ex) { | |
| Logger.getLogger(ApprovalTaskBean.class.getName()).log(Level.SEVERE, null, ex); | |
| } | |
| } | |
| public String approve() { | |
| try { | |
| payloadObject.setValue(payload); | |
| JAXBContext jaxbContext = JAXBContext.newInstance("com.oracle.xmlns.bpel.workflow.task"); | |
| Marshaller marshaller = jaxbContext.createMarshaller(); | |
| marshaller.marshal(payloadObject, (Node) task.getPayload()); | |
| TaskService_Service taskServiceClient = new TaskService_Service(); | |
| TaskService taskService = taskServiceClient.getTaskServicePort(); | |
| TaskServiceContextTaskBaseType updateTaskRequest = new TaskServiceContextTaskBaseType(); | |
| updateTaskRequest.setTask(task); | |
| updateTaskRequest.setWorkflowContext(workflowContext); | |
| task = taskService.updateTask(updateTaskRequest); | |
| UpdateTaskOutcomeType updateTaskOutcomeRequest = new UpdateTaskOutcomeType(); | |
| updateTaskOutcomeRequest.setOutcome("APPROVE"); | |
| updateTaskOutcomeRequest.setTask(task); | |
| updateTaskOutcomeRequest.setWorkflowContext(workflowContext); | |
| taskService.updateTaskOutcome(updateTaskOutcomeRequest); | |
| } catch (StaleObjectFaultMessage | com.oracle.xmlns.bpel.workflow.taskservice.WorkflowErrorMessage | JAXBException ex) { | |
| Logger.getLogger(ApprovalTaskBean.class.getName()).log(Level.SEVERE, null, ex); | |
| } | |
| return "completed"; | |
| } | |
| public String reject() { | |
| return "completed"; | |
| } | |
| public Humantask1PayloadType getPayload() { | |
| return payload; | |
| } | |
| public void setPayload(Humantask1PayloadType payload) { | |
| this.payload = payload; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment