4.0

Table Of Contents
Interact with a Workflow While it Runs
After the workflow starts, the Web services client can perform various actions in response to events while the
workflow is running.
Prerequisites
You must have implemented operations in the Web service client to run workflows in the Orchestrator server.
Procedure
1 Find running workflows by calling the getWorkflowTokenForId operation.
Calling getWorkflowTokenForId obtains a WorkflowToken object, which contains all of the information about
that specific workflow token.
WorkflowToken onemoretoken = vsoWebControl.getWorkflowTokenForId(workflowTokenId, username,
password);
AllActiveWorkflowTokens[n] = onemoretoken;
The preceding code example obtains a WorkflowToken object from its ID and sets it into an array of running
WorkflowToken objects.
2 Check the status of a workflow token by calling the getWorkFlowTokenStatus operation.
When a workflow runs, an application's main event loop usually concentrates on checking the status of
the workflow at regular intervals. The getWorkflowTokenStatus operation requires an array of the IDs of
the workflow tokens for which it is obtaining the status.
String workflowId = workflows[0].getId();
WorkflowToken token = vsoWebControl.executeWorkflow(workflowId, username, password, null);
String[] tokenIds = { token.getId() };
String tokenStatus = "";
while ("completed".equals(tokenStatus) == false
&& "failed".equals(tokenStatus) == false
&& "canceled".equals(tokenStatus) == false
&& "waiting".equals(tokenStatus) == false) {
Thread.sleep(1 * 1000); // Wait 1s
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.
Chapter 8 Developing a Web Services Client
VMware, Inc. 259