At some point I will need to be able to create reports from the application database using Crystal Reports.  I currently do this by using an ODBC connection to my SQL Server (or Oracle) database.  Can I do the same thing using the Personal Edition?  If so, how?

I looked at the Agile Reporting tool in the Forge and I may eventually go that way but I know my potential clients already use Crystal.

Hi Curt,

You can expose a webservice with the data that feeds your reports. Crystal is able to use a webservice as a datasource as far as I can remember. In terms of performance it might even be better, as connecting to a database in the cloud will probably give you some data transfer performance penalty. The webserive can already do most of the processing and eventually paging, and give back the preprocessed results for crystal to simply show and format them.
Thanks I will definitely try that.  Gives me a reason to play with web services too!
So I finally had the chance to play with this.  I have an action that runs a query that pulls data from the database that I want to expose to Crystal.  I have a web service that calls that action.  I create a connection in Crystal using the proper URL and it finds my service and method, so I know everything is good so far.  When I try and get fields from the datasource it only shows one, the record ID.  I played around with creating different output parameters but nothing changed.  I know it's something simple.  Anyone know what I'm missing?
Take a look at this video. I tried to show this scenario and everything went ok.

Are you using entities in the output or structures? any kind of nesting?

Well... here's a second one that already groups Companies and Opportunities on the platform, and has Crystal going through it. A bit easier as Crystal does the linking automatically.

I've attached the Sales module I used for the demo and you can check the Crystal reports from both videos at Part 1 and Part 2 respectively
Thanks so much!  I'll work on this on Monday.
I created my web service exactly as was done in the first video but now it sees no data fields.  The wsdl is at if anyone wants to investigate.  Thanks.
Curt Raddatz wrote:
At some point I will need to be able to create reports from the application database using Crystal Reports.  I currently do this by using an ODBC connection to my SQL Server (or Oracle) database.  Can I do the same thing using the Personal Edition?  If so, how?

I looked at the Agile Reporting tool in the Forge and I may eventually go that way but I know my potential clients already use Crystal.

Paulo, is there a reason you repeated my post? 

(Note - in another thread I determined that the Agile Reporting component is no longer available which is why I have a renewed interest in Crystal.)
It's now looking more like a Crystal issue.  I tried using a connection to a public web service - - and I get the exact same results, shows the functions but no fields. 

Also, just for the heck of it called my web service from another eSpace - worked like a champ!

Time to start looking for a solution over there.
So, I've done a lot of research into this and the bottom line (as described here - seems to be that what Crystal Reports describes as a web services datasource is actually an extremely small subset of web services which doesn't allow input parameters and only allows one output field. 

The version I am using of Crystal Reports is 2008 so the fact that it is so old may be part of the issue.  I'm going to look at newer versions and see if I can get further.

The reason I'm pursuing this is because it would be a great solution for reporting without having to do any work in the platform.  I'll post additional information as I find it.
Downloaded a trial version of Crystal Reports 2013 and it worked like a champ!!  Problem solved.
Yes, it worked great for me a year or two ago. The downside is that if you want to consume Web Services with server-side Crystal Reports, you need a fairly expensive license for their server-side stuff.


We use SQL reporting services for most of our reporting needs, so I am not particularly familiar with the latest Crysal reports (stopped using it about 12 years ago) but I am however curious about why you chose to go with the web services approach.

Is there a particular technical reason why you could not connect Crystal to the database directly using an ODBC or ADO connector?  I realize this means you may have to write the queries in native SQL (view or stored procedure), but in my experience it has some significant advantages.

Using a webservice introduces two significant (and in my opinion uneccessary) overheads.  The first is that you are now involving the webserver as part of the delivery pipeline.  This includes all the overhead associated with the request-response handling, caching, logging, etc.  

The second overhead is that the pipeline will now include two transformations. The first happens when the data stream gets converted into XML/JSON (depending on the type of service) and the second happens in Crystal when the data stream needs to be converted back to the dataset. 

By going to the direct database connection, you are not only eliminating the data transformations, but you are also eliminating the whole web server layer.  Both the ADO and ODBC pipelines are way more efficient at handling data transmissions than any web server based technology.  Lastly, as Justin mentioned, you also avoid the cost of the more expensive license.

Anyway, these are just my 2am middle of the night ramblings.  Would love to hear your thoughts.


I'm using the Personal Edition to create a prototype for a client.  The client has already purchased many licenses for Crystal Reports (version 2008 - I will get them to upgrade) so a requirement was to be able to use Crystal as part of the solution.  Since the Personal Edition doesn't allow ODBC/ADO access I needed to have another way to get the data.  The second post in this thread suggested the web services approach which I have been pursuing since that time when I ran into all my challenges.  Now that it works it is certainly a very easy approach.  I can create a query and a web service that runs that query very quickly in Outsystems.  I can then create the report in Crystal very quickly as well.  To Justin's point, I was able to do all this without the Crystal Report Business Object Server so I think it's a pretty good solution and inexpensive given the requirement.  If Outsystems had a native report writer I probably could have convinced them to use that but it doesn't.

I understand the inefficiencies you mention and if I had performance issues after starting the project with an Enterprise version I would certainly consider going directly at the database using ODBC/ADO.  Remember that these are just reports, so response time can be in minutes and still be acceptable.  In addition they would normally be run at off-peak hours and/or against a backup copy of the database so the impact on the live system is almost nothing.

For me the biggest attraction to the approach is that I can enhance my web service using Outsystems code to handle security and other issues instead of having to have a DBA-type person do all that.  The whole reason I'm even looking at Outsystems is to be able to do this project with as few people as possible so having someone to manage the database directly in SQL, which I can certainly do with an Enterprise license, I only want to do as a last resort.

Let me know if you have any other thoughts.  I'm always happy to discuss.


Hi guys. I am having issues using CR. I have created my soap web service. I can create the datasource in CR. After pasting in url for wsdl it recognizes the service and port and method. The datasource shows up with all the fields like you would expect in CR. I can select some fields and put them on the report. However when previewing I get an error. It says "Cannot determine the queries necessary to get data for this report. Details: Unexpected error."

I started with CR 2008 and then switched to 2016. I get the same error with both. I tried switching my output parameter in the web service method to a record. That works, I can retrieve one record in crystal. However when I use a record list, i get the error in crystal. Any suggestions?

So i figured out that if I limit the records with a filter it works. I don't know the exact number. Seems to be about 1500 records. Might vary depending on the fields displayed ? Not sure why this is. Is some setting in outsystems or is this a crystal report thing ? Whats the most data anyone has pulled into a crystal report via a web service? The 1500 records load quickly. In about 3 seconds.

Also im using outsystems PaaS cloud if that makes any difference.