4.0

Table Of Contents
Procedure
1 Obtain the results of a running workflow by calling the getWorkflowTokenResult( ) operation.
The getWorkflowTokenResult( ) operation stores the results as an array of attributes.
WorkflowTokenAttribute[] retAttributes =
vsoWebControl.getWorkflowTokenResult(token.getId(),
username, password);
The preceding example code obtains the result of a workflow token with a specific identifier.
2 (Optional) Print the workflow results.
WorkflowTokenAttribute resultCode = retAttributes[0];
WorkflowTokenAttribute resultMessage = retAttributes[1];
System.out.println("Workflow output code ... (" + resultCode.getValue() + ")");
System.out.println("Workflow output message... (" + resultMessage.getValue() + ")");
3 Emit the workflow token's result attributes for display or for use by other applications.
for (int ii = 0; ii < retAttributes.length; ii++) {
System.out.println("\tName:'" + retAttributes[ii].getName()
+ "' - Type:'" + retAttributes[ii].getType()
+ "' - Value:'" + retAttributes[ii].getValue()
}
The preceding example code prints out the name, type, and value of the workflow token's result attributes.
You defined a Web services client that finds objects in Orchestrator, runs workflows on them, interacts with
the running workflows, and extracts the results of running those workflows.
Time Zones and Running Workflows Through Web Services
Running workflows through Web services can lead to erroneous timestamping, if the run request comes from
an application running in a different time zone to the Orchestrator server.
If a workflow takes the time and date as an input parameter, and generates the time and date as output when
it runs, and if this workflow runs through a Web services application, the time and date sent as an input
parameter reflects the time and date of the system on which the Web services application is running. The time
and date that the workflow sends as its output reflects the time and date of the system on which the Orchestrator
server is running. If the Web services application is running in a different time zone than the Orchestrator
server, the time returned by the workflow does not match the time that the Web services application provided
as input when it called executeWorkflow or getWorkflowTokenResult.
To avoid this problem, you can create a function to compare dates in your Web services application. You must
serialize the date and time, taking the time zone information into account. The following Java code example
shows how to transform a String that Orchestrator returns into a Date object.
public Date dateFromString(String value){
java.text.DateFormat s_dateFormat = new java.text.SimpleDateFormat("yyyyMMddHHmmssZ");
Date date = null;
if (value != null && value.length() > 0) {
try {
date = s_dateFormat.parse(value);
} catch (ParseException e) {
System.err.println("Converting String to Date : ERROR");
date = null ;
}
}
return date;
}
Chapter 8 Developing a Web Services Client
VMware, Inc. 261