Skip to Content
New with BI 4.1 is the possibility of creating a universe on top of a Web Service. In this blog post I would like to show you how to create your first universe based on a Web Service. For this example I am using a Web Service that takes as Input two currencies and delivers as output the actual conversion rate.
In order to create a universe with all its components, you can take advantage of the new “Universal Wizard” that was introduced in BI 4.1:
0_Wizard.png
You can re-use one of your existing projects or create a new one, I choose to create a new project:
0_Wizard_2.png
After entering a name for the local project ( e.g. “_WebService”) hit next.
The wizard will start guiding you now with the creation of a connection. In order to create a connection to a Web Service, you need to select Relational data source:
0_Wizard_3.png
Enter now the name of the connection (e.g. “WebService1_Connection”)
0_Wizard_4.png

You are asked now to select a driver, select here the Web Service Connector in the category Generic:

0_Wizard_5.png
In the following screen you enter Web Service Description (WSDL) in the Web Service URL box:
0_Wizard_6b.png

Now you can test the connection and hit Finish.

The Universal Wizard proceeds now seamlessly into the process of creating a Data Foundation. Enter a name (e.g. WebService1_DataFoundation) for the Data Foundation and click Next:

0_Wizard_7.png

Select the table from the Web Service and hit Next:

0_Wizard_8.png

The Universal Wizard proceeds at this point seamlessly into the process of creating a Business Layer (im starting to really like this wizard!). Enter a name (e.g. WebService1_BusinessLayer) and hit Finish:
0_Wizard_9.png

Because this Web Service takes two inputs, the Edit Input Columns dialog appears. For now I am not binding the input columns to a parameter, simply because we do not have any parameters at this point in time. Go ahead and hit OK:

0_Wizard_10.png

By now, the Universal Creation Wizard has finished its task by creating all basic objects that a universe needs. In our case, the web service has two mandatory inputs, so we need to take care about those in order to get some data back from the web service. 

I have a list of world currencies in a CSV file, so I am creating two parameters in the Data Foundation that will get their List Of Values from the CSV file:

10_Parameter.png

Go to the data foundation and right-click on the table, hit Edit Input Columns:

11_InputColumns.png

And map the newly created parameters in the Data Foundation with the Web Service input parameters:

/wp-content/uploads/2013/08/13_271491.png

After mapping the parameters you are good to go!

Now lets create a test query in the business layer and enter two currencies:

/wp-content/uploads/2013/08/14_271492.png

the conversion rate is delivered by the Web Service (nice!): 

/wp-content/uploads/2013/08/12_271493.png

You could use this Information in your BI reports and e.g. offer your users the possibility of changing the currency dynamically. Now image the amount of Web Services available in the Internet and how you can enrich your BI Reports.

Thank you for reading and I hope you enjoyed this blog.

To report this post you need to login first.

45 Comments

You must be Logged on to comment or reply to a post.

  1. Ryan Baumann

    Victor,

    Thanks for this tutorial.

    However I am struggling to find where the Generic “WSDL 1.1” driver is for IDT…I don’t have it on my install LOV for connection options.  Any suggestions on were to download the driver for WSDL 1.1? 

    Thank you

    (0) 
    1. Victor Gabriel Saiz Castillo Post author

      Hello Ryan,

      You can go to your client tools base install (I guess not 4.1 in your case) and check the installation options, probably you will find something is missing. Else give it a try and open a new thread for other ideas.

      Best regards,

      Victor

      (0) 
    2. Joseph FRAMENT

      Hi Ryan, I have exactly same pb as you, i.e. we have just upgraded to 4.1 but can NOT see

      the new WSDL Webservice connector. How have you managed to install it eventullay? Thanks, Joseph

      (0) 
      1. Ryan Baumann

        Hi Joseph,

        Unfortunately we had to find workarounds to using web service Universe connections for Universe data sources since our corporate infrastructure team will not upgrade our Bobj 4.0 to environment to version 4.1 until next year.

        Let me know if you get WSDL Webservice data sources to work in 4.1 please…it should be very helpful.

        (0) 
    3. Clay Keller

      Joseph, Ryan – I have same prob & recently “updated” from 4.0 to 4.1 SP2.  After some sleuth attempts, I opened a case with SAP Support.  I’ll let you know.  Ryan – did you resolve?

      Victor – Thanks for article revealing where to find web services & xml drivers!  Sorry to hijack.

      (0) 
        1. Clay Keller

          Thanks Victor. Unfortunately, no “change/modify” ability on the 4.1 SP2 Client Tools “Update”.  … and since web services & xml drivers are new to 4.1, no use trying to change/modify” 4.0 SP6 base/full install.  I’ve had a talk with Support & am now uninstalling 4.1 SP2 Client Tools Update, 4.0 SP6 full/base, and installing 4.1 SP2 Client Tools full/base. :>(

          I’ll ask Support to consider an ADAPT b4 closing the case.  thx, Clay

          (0) 
        2. Clay Keller

          Victor – you were right.  Even though I installed 4.1 SP2 Client Tools Update, if one were to “change/modify” the the 4.0 base install (in Control Panel/Pgms), the pops-ups will allow one to check/add Web Service & XML drivers.  … assuming the self extracted installs are still in temp directories.  Saves time over uninstall/reinstall.  Clay

          (0) 
  2. Jerome Dal

    I succeeded using a web service with that tutorial on a SAP BI 4.1 SP2 platform (and using soapui software to simulate a web service). Great!!

    One question: you said “You could use this Information in your BI reports and e.g. offer your users the possibility of changing the currency dynamically.”. By dynamically, you implied the use of refresh button and filling prompt filters?

    Actually, I’m interested in changing the web service parameters through values inside the report, such as input controls for instance. Is that possible?

    (0) 
    1. Victor Gabriel Saiz Castillo Post author

      Thanks for commenting Jerome.

      That fully depends on the frontend that you use, I think your question is about Web Intelligence: Input Controls are per definition report filters that are not sent to the datasource, so you need to refresh the query with the web service in order to change the parameters.

      (0) 
  3. Namit Jain

    Victor,
    I am trying to make a connection to secure Web-service but i am getting the
    following error

    “WSDLException: faultCode=PARSER_ERROR: Problem parsing ‘- WSDL
    Document -‘.: org.xml.sax.SAXParseException: The element type “BR”
    must be terminated by the matching end-tag “</BR>”.”

    The error states it finds an element <BR> in the WSDL, but there is no such
    element in the WSDL

     

    Tool: IDT
    Version: 4.1 (SP2)

    Note: I am able to view web service data via crystal and web browser but need
    to build a universe and i am trying this is IDT 4.1 (SP2)

    (0) 
  4. Madheswaran P

    Hi Victor,

    I have a requirement to create a dashboards using web services from BO universe (little bigger universe having around 3000 objects with lots of calculation). Is there a way to create a web services from the entire universe? I am aware we can create a web services using QaaWs for some part from the universe as a Query. We dont want to create separate query for each and everything instead want to create a single web services for entire universe. please let me know is there any option to achieve the same.

    Thanks & Regards

    Madhes

    (0) 
    1. Victor Gabriel Saiz Castillo Post author

      Hi Madhes,

      qaaws creates a web service from an universe, so I am not sure how to create a better fit to your requirement (create a web service from universe). I think you should create a new thread to hear hopefully other opinions from the community.

      Best regards,

      Victor

      (0) 
  5. Mian Kaukab

    Great Post Victor.

    I am trying to utilize a web service on top of a Function Module. I am using the same web service in dashboard but when made business layer along with all the INPUTS as Parameters upon testing i am getting “Attempted read from closed stream”. Any idea whats happening and how to resolve this error.

    Thanks again.

    (0) 
    1. Victor Gabriel Saiz Castillo Post author

      Hi Mian,

      thanks for leaving a comment.

      I have not seen that error message myself, but I searched in notes and it seems that specific error is currently under investigation by support:

      1998298 – BI4.x : WSDL sharepoint failure in Information Design Tool

      Best regards,

      Victor

      (0) 
      1. Venugopal Kavuru

        Hi Victor,

        Thanks for lucid explanation,

        however there is some clarity needed while creating relational connection.

        In the screen shot above the HTTP Proxy: Proxy Address , intentionally blurred.

        HTTP Proxy info question.png

        1) Is this the proxy of the WSDL web service or

        2) the proxy of the local internet within our office ?

        Please advise.

        Regards,

        Venu.K

        (0) 
  6. Nicholas Chu

    Hello,

    Helpful tutorial.  Have you been able to create a parameter that allows multiple values in the IDT data foundation and map it to the Edit Input Columns part of the webservice?

    I have been unable to assign a multiple value to a web service prompt yet.

    Thanks!

    Nick

    (0) 
  7. Mahboob Mohammed

    Hi Victor,

    I have BO 4.1 SP5 client tools installed on my machine (installed update on BO 4.0 SP9). I want to create a universe on top on Web Service as you’ve done, but I don’t see the Web Service (WSDL 1.1) Web Service Connector under Generic when I’m creating a connection. How do I install that driver?

    Any help is greatly appreciated,

    Mahboob Mohammed

    PS: The post is amazing, looking forward to address some of my users’ requests using the knowledge from your post.

    (0) 
    1. Victor Gabriel Saiz Castillo Post author

      Thank you.

      Go to the base Installation of your Client Tools and hit “modify”, there you should be able to add the Driver (see Response above from Clay Keller on Dec 20, 2013 5:04 PM)

      (0) 
  8. Jonathan Johnson

    Hi Victor,

    I was able to successfully connect to the HTTP web service in your example. However when I try to connect to a HTTPS web service it is not successful.

    My company proxy-pac is blocking the connection test from IDT because of an open proxy rule set. It is not being blocked when I try accessing the web service through my browser, making me think it is IDT specific.

    Do you know how IDT interacts with HTTPS web services differently than HTTP?

    Thanks,

    Jonathan

    (0) 
    1. Mahboob Mohammed

      Hi John,

      I’ve a similar issue.

      FYI: I’ve installed BO 4.1 SP5 Client tools on Dev Server (base install) for some reason.

      So, I can open this test WSDL from the browser, but when I try to create a connection, it gives me an error.

      Please let me know how you resolved it. Also, did you ever try to connect to an External Restful webservice?

      Thanks,
      Mahboob Mohammed

      (0) 
  9. Mahboob Mohammed

    Hi Victor,

    When I try to Edit Input Columns and map them to the newly created Parameters, the OK button is grayed out for some reason. Can you please help? I’m at BO 4.1 SP5 Patch 3.

    Edit Input Columns.PNG

    Thanks,
    Mahboob Mohammed

    (0) 
    1. Dilip B

      Hi Mahboob,

            While creating the Parameters make sure that “Allow Multiple values” option is unchecked on the Parameter options (see below image)1.JPG.

      (0) 
      1. Mahboob Mohammed

        Thanks Dilip. I haven’t worked on this for months as that project is low priority as of now, will let you know when I get back to working on it.

        Mahboob Mohammed

        (0) 
  10. Shailendra Sharma

    Hi Victor,

    Thanks for sharing this information.

    This is quite useful in my scenario, however when I am following the same approach, I am getting the response as -1.0. Please see the below screenshot:

    /wp-content/uploads/2016/07/screenshot_1005698.png

    Can you please let me know, where I am wrong?

    Thanks,

    Shailendra

    (0) 
  11. MAHARAJ MUTHUSAMY

    Hi Victor

    Thanks for very nice write up

    I tried to follow all the instructions. I created the Universe.  My connection was successful in Information Design tool. I built the data foundation layer and Business layer as per your instruction.  I published the universe. The only difference is i used a different web service (http://www.webservicex.net/ConvertTemperature.asmx?WSDL)

    I am getting an error in my BO Webi when i tried to create reports from that universe. Please let me know if i am missing any other configuration  in Business objects. I am able to use the webservice successfully in SAP dashboard.

    BO – WebiRichclient Error trace Log:

    **ERROR:C3_DSL_LOVIterator:(A) *** TODO : c3DslStaticLOVIter::Save : the rest … *** : (false) [kc3dslds_lov.cpp;3701]
    kc3CoreEngineImpl.cpp:10541:long __thiscall IECore::kc3CoreEngineImpl::int_GetListOfValues(struct IECore::ic3LovManager::dgLOVObject &,class ibo_ptr<struct ic3DataProvider> &,const class ucs2string &,enum IECore::kc3CoreEngineImpl::tag_LovState,bool,bool,bool,const char *,class std::basic_ostream<char,struct std::char_traits<char> > &,const class ucs2string &,const class std::vector<struct RESTRICTIONPATH,class

    Thanks
    Maharaj

    (0) 
  12. Monty Malladi

    We are trying to access a SOAP WSDL generated from a cloud application.We are supplying the username and password when establishing the relational connection initially. It connects and tests out to without issues.

    The structure of the WSDL is returned in hierarchical format. Now we build a data foundation using one of tables inside this hierarchy.

    The WSDL prompts us to enter a user name under input columns, but it does not prompt for a password. Now when trying to view the data from here it throws an error saying premature end of file. The WSDL generated by the cloud application is HTTPS format. 

    Has anyone successfully used a could based WSDL to build a UNX?

    Any guidance is appreciated.

    (0) 

Leave a Reply