Skip to Content
Former Member
May 01, 2009 at 12:22 AM

Questions on using a SOAP web service's data in a Crystal Reports report


I'm attempting to create a report using CR 2008, accessing data from a SOAP web service. I've run into a few problems, and need some advice.

1) CR doesn't seem to support WSDL files that use relative URI imports (for example, I have a relatively complicated WSDL file that imports other WSDL files and schemas using relative URI locations). To solve this problem, I have downloaded all of the files to my local hard drive, and changed the "location" attributes to point to local files. Is there any other solution to this problem?

2) CR doesn't seem to support circular references within schema files. To solve this problem, I have removed circular references from my local schema files. Of course, my actual web service will still potentially return data structures with these circular dependencies. Is there any other solution to this problem?

3) CR doesn't seem to support request documents that allow for arrays of elements. For example, my schema allows the user to specify an array of Instruments that should be returned by the web service. In the meantime, I have changed the schema to only specify single instances of the Instrument element in the request. Is there any other solution to this problem?

4) CR doesn't seem to support empty values for optional attributes that are specified in the schema. So, when the "Enter Values" parameter form appears, I am required to enter values for these attributes, even though they are listed as optional in the schema. To avoid this problem, I have commented out the optional attribute values in the schema. Is there any other solution to this problem?

5) When the schema specifies that a value is based on a restricted simple (string) type, the CR parameter form shows a drop list with ellipses (...), but the drop list does not contain the enumerated types specified in my schema. Instead, I must manually enter a value. Do you know of any reason why the drop list is not populated?

6) The SOAP response document from my web service is relatively complicated. So, in the "Data" page of the Standard Report Creation Wizard, each and every XML element level of the response document listed in the schema is shown as a separate entry. If I choose just the top level element ("fetchInstrumentSetResponse"), then very little data is shown on the next page of the wizard (only the ID attribute). But, if I select each and every element type from the response document, CR prompts me for the request document parameters for each row I have selected (I see the same form 30+ times), even though there really should only be a single SOAP request to the web service to return this response document. It seems to be treating each of these elements as a separate "database table", with a different query string for each. Am I using this feature incorrectly?

If you can point me to somewhere in the documentation that handles this in more detail, that would be great (all I could find were the step-by-step instructions on how to connect to a web service as a data source).