4.1

Table Of Contents
String[] status = vsoWebControl.getWorkflowTokenStatus(tokenIds, username,
password);
tokenStatus = status[0];
System.out.println("Workflow is still running...(" + tokenStatus + ")");
}
The preceding example obtains the IDs of an array of workflow tokens. It checks the status of a
WorkflowToken by calling getWorkflowTokenStatus().
The preceding example keeps the application updated on the status of the WorkflowToken objects by
checking their state at one second intervals. For example, If the workflow is in the waiting state, it is waiting
for runtime input from the answerWorkflowInput operation.
3 Provide inputs from user interactions by calling the answerWorkflowInput operation.
If a workflow is waiting for user input in the waiting state, an application's event loop can specify that
input at any time. You can create WorkflowTokenAttribute arrays as normal, and then supply them to a
workflow during its run by using the answerWorkflowInput operation. The following example continues
the code from Step 2.
if ("waiting".equals(tokenStatus) == true) {
System.out.println("Answering user interaction");
WorkflowTokenAttribute[] attributes = new WorkflowTokenAttribute[2];
WorkflowTokenAttribute attribute = null;
attribute = new WorkflowTokenAttribute();
attribute.setName("param1");
attribute.setType("string");
attribute.setValue("answer1");
attributes[0] = attribute;
attribute = new WorkflowTokenAttribute();
attribute.setName("param2");
attribute.setType("number");
attribute.setValue("123");
attributes[1] = attribute;
vsoWebControl.answerWorkflowInput(token.getId(), attributes, username,
password);
}
In the preceding example, if the workflow is in the waiting state, the application creates two
WorkFlowTokenAttribute objects. The objects call the various WorkFlowTokenAttribute operations to obtain
the attribute values. The process then adds these WorkFlowTokenAttribute objects into a
WorkflowTokenAttribute array.
4 Cancel a workflow by calling the cancelWorkflow operation.
You can cancel a workflow at any time using the cancelWorkflow operation.
vsoWebControl.cancelWorkflow(workflowTokenId, username, password);
5 Check that the workflow canceled successfully.
Because the cancelWorkflow operation does not return anything, you must obtain the WorkflowToken status
to make sure the workflow canceled successfully, as the following code example shows.
String[] status = vsoWebControl.getWorkflowTokenStatus(tokenIds, username, password);
if ("canceled".equals(status) == true) {
System.out.println("Workflow canceled");
}
The Web service client interacts with workflows by finding their status, supplying input parameters from user
interactions, and by canceling the workflows.
Chapter 8 Developing a Web Services Client
VMware, Inc. 255