Updated February 24th, 2011 with clarifying information around supported licenses.
Due to a few questions which have come up regarding licensing errors while consuming web services created by the WSDT, I was compelled to install the tool and try to work through some of the issues that people are seeing. This blog documents my experience with installing the WSDT, creating a web service, and then utilizing that web service via Xcelsius.
One of the main takeaways from this exercise is that the Web Service Design Tool only accepts licenses from Xcelsius Engage Server and Crystal Reports Server. This is important for those of you that are receiving the CAL license error when trying to invoke your web services created with the tool. Ensure that you are using either an Xcelsius Engage Server or Crystal Reports Server license key.
The WSDT will accept keys in two ways:
A manually entered Xcelsius Engage Server keycode. In this case, the number of simultaneous connections is equal to the number of CAL in the keycode.
When used with a platform (BOE, Edge, or CRS), then the number of simultaneous connections is equal to the sum of CAL and NUL licenses in the platform.
Both of these methods can be used at the same time, in which case the total number of simultaneous connections is the sum of both amounts.
First, I ensured that I met the pre-requisites to install the tool. These are:
Either IIS 6 or IIS 7 and the IIS Metabase compatibility component installed
.NET Framework 3.5 SP1
Microsoft Visual C++ 2008 Redistributable
Windows Server 2003 or 2008
After installing the tool, my first step was to create an ODBC connection to the sample eFashion Access database. I then created a query against this connection, which returned all of the rows from the Article_lookup table. I executed the query to ensure that everything was working fine.
I created a web service against the query and left all of the default options for the deployment of the web service to IIS. Remember that you cannot include spaces in the name of the web service.
The first problem that I ran into after deploying the web service, was that IIS kept giving me an HTTP 404 error when trying to load the ASMX page. This was fixed by following the steps below:
Open IIS Manager
Right-click on Web Service Extensions
Type in the name of the extension as “ASP.NET 2.0”
Type in the path to the appropriate DLL for .NET Framework 2.0. This is C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
Set the extension status to “Allowed”
Windows Explorer, navigate to C:\Windows\Microsoft.NET\Framework\v2.0.50727
Right-click on “Temporary ASP.NET Files”
Select “Sharing and Security”
Add “Network Service” to the list of allowed accounts and set to “Full” access
This got me to the point where I could load the ASMX page:
I ran into another problem when I tried to invoke the web service. This presented me with the following error:
I was able to get around this problem by adding the Network Service account to the list of allowed accounts for accessing C:\WINDOWS\Temp. The appropriate rights are “List Folder”, “Read Data”, and “Delete”.
Now, being able to invoke the web service, I finally get to the error which many of you are seeing:
So, I checked to see which licenses were recognized in the WSDT:
As you can see, the total number of available licenses is 0. I tried deleting the license key and re-adding it. When I did so, I received an error that the license key was invalid. I then tried adding a new Xcelsius Enterprise and Xcelsius Present key – neither were recognized as valid keys. I then tried connecting to a Crystal Reports Server installation via the “Server URL”, “User Name”, and “Password” fields in the WSDT Options panel. This retrieved 10 available licenses from my Crystal Reports Server installed keys. I was then able to invoke my web service.
The problemseemed to be that the WSDT did not recognize standalone keys from Xcelsius. However, based upon further research, it was determined that the WSDT only recognizes CAL-based keys from Xcelsius standalone installations. Specifically, it only accepts Xcelsius Engage and Crystal Reports Server keys.
Another problem which I found during this process of troubleshooting involved the web service still working correctly even if there were no licenses configured in the WSDT. I saw this after removing all licenses from the CMS and all licenses for standalone products from my system. I was still able to invoke the web service. To correct this, I had to restart the SAPLicenseService which is installed by the WSDT.
After getting through all of these issues, I then wanted to create an Xcelsius model against one of my test web services. First, I configured my web service in Xcelsius. You can see a screenshot of this configuration below.
I defined the Resort record under the PropertiesRow to insert a cell into my spreadsheet by selecting the “Resort” record and then clicking the box with the red arrow. This allowed me to set my destination cells. As I knew there are only five resorts, I selected a range of five rows in my spreadsheet.
I then inserted a table into the canvas and set the Display Data as the five rows where my resorts will be inserted from the web service.
Finally, I inserted a Connection Refresh Button into the canvas and set it to refresh the Property List Connection. I then previewed my Xcelsius model and, if my resort values were to change, I could dynamically update them via the “Refresh” button.