User Guide

Table Of Contents
Handling complex data types 911
You can use structures for passing input parameters as complex types in many situations.
However, to build a structure to model a complex type, you have to inspect the WSDL file for the
web service to determine the layout of the complex type. This can take some practice.
Handling return values as complex types
When a web service returns a complex type, you can write that returned value directly to a
ColdFusion variable.
The previous section used a complex data type named Employee to define an input parameter to
an operation. A WSDL file can also define a return value using the Employee type, as the
following code shows:
<message name="updateEmployeeInfoSoapOut">
<part name="updateEmployeeInfoResult" type="s0:Employee" />
</message>
<operation name="updateEmployeeInfo">
<input message="s0:updateEmployeeInfoSoapIn" />
<output message="s0:updateEmployeeInfoSoapOut" />
</operation>
In this example, the operation updateEmployeeInfo takes a complex type as input and returns a
complex type as output. To handle the input parameter, you create a structure. To handle the
returned value, you write it to a ColdFusion variable, as the following example shows:
<!--- Create a structure using CFScript, then call the web service. --->
<!--- Write the returned value to a ColdFusion variable. --->
<cfscript>
stUser = structNew();
stUser.active = TRUE;
stUser.fname = "John";
stUser.lname = "Smith";
stUser.age = 23;
stUser.hiredate = createDate(2002,02,22);
stUser.number = 123.321;
ws = createObject("webservice", "http://somehost/echosimple.asmx?wsdl");
myReturnVar = ws.echoStruct(stUser);
</cfscript>
<!--- Output the returned values. --->
<cfoutput>
<br>
<br>Name of employee is: #myReturnVar.fname# #myReturnVar.lname#
<br>Active status: #myReturnVar.active#
<br>Age: #myReturnVar.age#
<br>Hire Date: #myReturnVar.hiredate#
<br>Favorite Number: #myReturnVar.number#
</cfoutput>