Top 10 Guidelines for Creating Web Services for Xcelsius

I came acros a document on my laptop which I got from BusinessObjects when I had trouble connecting a webservice to Xcelsius (project in 2009, so must have been Xcelsius 2008 SP1 or so). I thought I will post it here, but please note that I do not create websrvices myself and do not know if in the current verions (2008 SP4 and 2011) all 10 items are still valid. If 1 is obsolete please let me know.

Top 10 Guidelines for Creating Web Services for Xcelsius

Creating web services for third party applications to consume can often be difficult, if not daunting for the developer if appropriate documentation is not available. Web Services in general support many protocols including SOAP, BPEL, WSCL, WSDL and more. As well as messaging formats, there’s always the issue of how the WSDL should be defined in order to be appropriately consumed by the application.
Without the proper guidelines or assistance, one can spend endless hours troubleshooting their web services to work with third party applications. Let’s take a look at some guidelines around creating Web Services for Xcelsius:

1. Elements and folders can be tied to the component as Return Values. Meaning you can return elements both as single values or a collection of values, which can then be tied to components with in Xcelsius such as charts and selectors.

2. The schema portion of the Web Service Defintion Language (WSDL) is loaded into a validating parser when creating a connection within Xcelsius. The WSDL is validated immediately and if the schema is not completely conformed to the requirements, then an error will occur. Before you can continue to use the WSDL in your Xcelsius model, the WSDL will need to be fixed to conform to the expectations of the parser.

An example of a public WSDL that does pass validity and is used internally by our product group to perform testing can be found below to compare to your own WSDL for error checking:

http://services.aonaware.com/DictService/DictService.asmx?WSDL

3. If the schema portion of your WSDL has choice elements, only the first choice will be available to be used in the Web Service Connector Component within Xcelsius.

4. If the schema for your WSDL has dependencies on other schema files, make sure you use an import tag with a “schemaLocation” attribute that the application can get to.

Example: <xsd:import namespace=”http://www.sap.com/XML/namespace” schemaLocation=”xml.xsd”>

5. DIME, WS-Attachments and other binary formats are not supported. These binary formats are generally used to carry binary attachments such as images, sound files and videos which are not supported in Xcelsius.

6. Overloaded method names and methods with the same name but different return types, are not supported in Xcelsius.

7. SOAP headers are not supported. The SOAP header is an optional part of a SOAP message and almost all SOAP messages are placed in the body. Routing information, details from the creator of the message, and other information can be placed in the header but is not supported by Xcelsius.

8. Representational Style Transfer (REST) is not supported. REST is a model that allows for XML to be interpreted by reading a webpage that contained XML. Although this is not supported directly in Xcelsius, you can use REST via the Excel 2008 XML Maps instead.

9. Multiple schema blocks with a reference between them are not supported (look for more than one schema and/or an import line in either schema without a location).

    <xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:tns=”MySchemaONE” targetNamespace=”MySchemaONE” elementFormDefault=”unqualified” attributeFormDefault=”qualified”>
        i. …
    </xsd:schema>
    <xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:tns=”MySchemaTWO” targetNamespace=”MySchemaTWO” elementFormDefault=”unqualified” attributeFormDefault=”qualified” xmlns:n0=”MySchemaONE”>
        i. <xsd:import namespace=”MySchemaONE”/>
        ii. …
    </xsd:schema>

10. Types that reference another type in a recursive way will not load.
  <complexType name=”ParentType”>
    <sequence>
      <element name=”child” nillable=”true” type=”ChildType”/>
    </sequence>
  </complexType>

  <complexType name=”ChildType”>
    <complexContent>
      <extension base=”ParentType”>
      <sequence/>
      </extension>
    </xs:complexContent>
    </complexType>

The points mentioned are a few of the things to take into consideration when creating or troubleshooting your web services for compatibility with Xcelsius.

Recent Related Posts
Femke Kooij is a dashboard and report designer, developer and educator specializing in SAP | BusinessObjects Dashboards (better known as Xcelsius) and Crystal Reports. She has also a lot of experience with other SAP | BusinessObjects toolings like, Web Intelligence (WebI), Information Design Tool (Universe Designer), BusinessObjects Data Services (BODS) and the overall server platform BusinessObjects Enterprise (Launchpad, CMC). She spends a lot of her time thinking about and sharing her knowledge of Xcelsius to others through her own blog. Lately she is exploring other visualization tools like Qlikview and Tableau. On the later she is also posting some experiences. Currently she is in the employment of Cognizant Technology Solutions. Her blog only contains her personal views, thoughts and opinions. It is not endorsed by Cognizant Technology Solutions nor does it constitute any official communication of Cognizant Technology Solutions.

This entry was posted in Connection, Other and tagged , , . Bookmark the permalink.

7 Comments to Top 10 Guidelines for Creating Web Services for Xcelsius

  1. Venkat Kumar says:

    Using Xcelcius 2008 (Excelcius Engage) We are making a dashboard application which uses the Web service connection to call SOAP based web services.
    Hi Femke Kooij,

    Is there a way to Authenticate the Web Services passing User ID pwd from within one of the excel cells?

    The idea is to suppress the authentication and pass the credentials from within the excel cell or any other way which doesn’t require user to log in to the Web services while running the Dashboards?

  2. Rohit Kumar says:

    Hi Femke Kooij,

    I’m facing one problem i want to pass the username and password in Xcelisus header and it is not working as you told Xcelisus does not support SOAP header so i want to ask you is there any other way to pass the user credential using SOAP header.

    Thanks in Advance
    Rohit Kumar

    • Femke Kooij says:

      No sorry via soap header I do not know. You could try to get them via flash variables though, but you have to script that and I haven’ t done that myself either so I can’t help you with an example code.
      Good luck though.

  3. wah says:

    If you refresh the WSDL in Xcelsius 2008 (even if the WSDL is unchanged), all of the fields on the Definition tab of the Data Manager are cleared and need to be remapped to the Excel spreadsheet. Is any way I can add method in existing web service without losing mapping?

  4. Great post. I used to be checking constantly this blog and I am impressed!

    Very useful info specifically the last section :
    ) I deal with such info a lot. I was seeking this certain information for a
    long time. Thanks and good luck.

  5. Faruq says:

    Thank you for article. It help me understand wsdl better. Btw do you have any experience feeding data from SAP source into html / js dashboard instead of xcelsius?