Extracting the WSDL Definition

Extracting the WSDL definition is as easy as acting upon the definition returned from the site

Example: https://[yourURI].attendanceondemand.com:8192/cc1.aew/wsdl/IAeXMLBridge

Note The WSDL is held under an SSL but does not require authentication to extract. The endpoint, however; operates both under SSL and requires authentication using basic authentication.

Note The Endpoint URL differs from the WSDL URL:

The cc1.aew is replaced with cc1exec.aew

The /wsdl/ is replaced with /soap/

The Endpoint (execution path) for the above example would be

Example: https://[yourURI].attendanceondemand.com:8192/cc1exec.aew/soap/IAeXMLBridge

This can be seen within the WSDL definition under the service/port/soap:address node.

1
2
3
4
5
<service name="IAeXMLBridgeservice">
<port name="IAeXMLBridgePort" binding="tns:IAeXMLBridgebinding">
<soap:address location="https://aodws.attendanceondemand.com:8192/cc1exec.aew/soap/IAeXMLBridge" />
</port>
</service>

Also remember to alter the URI portion of the endpoint (execution path) URL and place your client’s URI. (In the example above, the “aodws” is replaced with your client’s URI)

When building your objects to access Attendance on Demand, remember that

  • The WSDL contract is the same for all clients. It is not necessary to re-contract unless additional functionality has been added and you wish to take advantage of the new capabilities.

  • Set the authentication. You will require an account and password, preferably one for each client. Basic Authentication requires the account credentials to be present for each HTTP round trip.

  • Set your timeouts. Based upon the type of call you are making, and the size of the client database, some calls will require additional time to execute.

  • Wrap your calls with exception handlers (if supported in your development environment). Most errors are returned as exceptions.

Some development environments re-compile or reinterpret the entire WSDL interface upon instantiation. This is not necessary when using CC1 and only adds additional delays. Avoid this behavior if possible.

Key Concepts