Skip to Content
The BI Java SDK is a Java software development kit that opens up both SAP and non-SAP data sources to your own analytical Java interfaces. In achieving this level of openness, the SDK is a key new component of NetWeaver with which you can build custom Java applications that render results of queries on diverse, heterogeneous OLAP systems as well as relational databases.

So — what does that mean? Why use the BI Java SDK instead of, say, BW’s Web Application Designer? After our announcement last week that we posted the SDK for download on SDN, an astute reader asked just that question in the BW forum.

The short answer is that the BI Java SDK is not a replacement for the Web Application Designer. It’s an additional tool for a different set of needs and perhaps for a different target user. Since it’s designed for Java developers, it gives you total freedom to do whatever you want with your data, and to visualize it however you want.

Let’s compare the two informally in a little table (note that I say ‘informally’ – this table by no means exhausts use cases or scenarios for either tool):

 
Web Application Designer
BI Java SDK
Target user BW content developer; no need to be an engineer Java developer (with business intelligence questions to solve)
Ease-of-use Easy to use You need to be an engineer
Querying capabilities Anything you can do with the Query Designer Any query you can create yourself – supplemented by any calculations you may want to perform on top of it
Supported data sources BW Diverse OLAP and relational sources, BW and non-BW
Visualization Full suite of Web items and stylesheets included so that your output automatically looks nice You design it yourself – no limitations

Now, having said that you need to be a Java engineer to use the BI Java SDK, you should know that we’ve designed it with ease-of-use in mind. This isn’t just a Java API with half-written Javadocs for you to fish around in on your own. We provide examples, a complete documentation set, and simplified command interfaces that help you build complicated MDX or SQL statements without having to write them from scratch. But that’s a different story (or at least a different blog).

For now, if you’re curious, bear in mind that you might consider the BI Java SDK as a solution if:

  • The information you need for an analytical application is stored in BW, but is available only in disparate objects
  • You do not have the time or budget to quickly develop an additional InfoProvider for one particular application
  • BW does not offer the level of custom calculation or simulation capabilities you need
  • You are a Java developer, and you wish to leverage this ability and the flexibility of custom application design together with the ease of integration and deployment of SAP’s NetWeaver
  • You’d like to integrate data from both relational and multidimensional (OLAP) data sources into one application
  • You want to create an analytical application involving data from a third-party data source

You can read about one particular business scenario in more detail in the BI Java SDK documentation set.

I hope that helps get you started with the BI Java SDK. Download it from the SDN downloads page, and let us know what you’re doing with it by posting to the Business Information Warehouse forum. Enjoy!

To report this post you need to login first.

10 Comments

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

  1. Eric Barfield
    Can I take a Bex template and modify it with in the BI SDK?  I assume I could call on it in Java.  But, can I modify it.  Sort of use it as a kick start for coding.  In the same manor you could edit code produced from the GUI machine.

    eric.a.barfield@lmco.com

    (0) 
    1. Moya Watson Post author
      Hi Eric —

      Thanks for reading/writing.  I’m not totally sure what you mean by template – if you’ve got a query you’ve created with BEx that you want to modify with the BI Java SDK, the BI Java SDK offers you the ability to extend queries in whatever way you want (limited only by MDX!), and visualize result sets however you wish, but you’d have to set them up using the Java APIs of the SDK first (this being sort of the vision of an SDK in general – as we describe in the table above. complete freedom; build it yourself). 

      As far as kick-starts for coding, check out the series of examples included with the SDK documentation set – or you can also go directly to it at this link —

      https://media.sdn.sap.com/public/html/submitted_docs/BW/BI_SDK_JavaDocs/bi_sdk_doc/docs/examples.html

      The command interfaces in the SDK are also designed to help kick-start you into easily manipulating queries — look for another weblog on that soon;

      cheers;
      -m

      (0) 
      1. Mcl Taylor
        Hello Moya.
        Can yoy help-me in a question with BI Java SDK?

        Can i simple replicate a query created in Bex with the BI Java SDK !

        Is Possible to capture a entrance variable and filters of the querie and replicate this in a Java side?

        Regards.
        Taylor

        (0) 
        1. Moya Watson Post author
          hi taylor;
          have a look at the examples here:
          http://help.sap.com/javadocs/NW04S/current/bi/examples.html

          tutorial 1 gets you started with replicating a query created in BEx Analyzer with the BI Java SDK.

          read about how to create this step-by-step in the developer’s guide (http://help.sap.com/javadocs/NW04S/current/bi/devguide/devguide.pdf).

          example olap 7 deals with filtering, and olap 10 deals with variables.

          these and the developer’s guide should help you get started.

          thanks,
          -m

          (0) 
          1. Mcl Taylor
            OK Maya.
            Thank`s a lot.

            Can i make only one more question… please !

            When i connect in BW with a some BW user …the BI Java SDK Returns all cubes and all Queries.

            But this user has authorization to see only two cubes in BW.

            How i can control the BW authorization with the BI Java SDK?

            Its is possible?

            Best Regards.
            Taylor.

            (0) 
          2. Mcl Taylor
            OK Maya.
            Thank`s a lot.

            Can i make only one more question… please !

            When i connect in BW with a some BW user …the BI Java SDK Returns all cubes and all Queries.

            But this user has authorization to see only two cubes in BW.

            How i can control the BW authorization with the BI Java SDK?

            Its is possible?

            Best Regards.
            Taylor.

            (0) 
          3. Mcl Taylor
            OK Maya.
            Thank`s a lot.

            Can i make only one more question… please !

            When i connect in BW with a some BW user …the BI Java SDK Returns all cubes and all Queries.

            But this user has authorization to see only two cubes in BW.

            How i can control the BW authorization with the BI Java SDK?

            Its is possible?

            Best Regards.
            Taylor.

            (0) 
          4. Mcl Taylor
            Hi Moya.
            Thanks for Reply.

            My problem is a little more complex Moya.

            The tutorials are in “Hard Coded” for all itens, parameters, cubes, mdx Queries …etc !!!

            In my application, i using the swing and BI Java SDK to list al cubes and execute the queries.

            When i try to execute the query i need add all dimensions in rows to set in moveDimensionToRows.

            look the code:

            IBIQuery query = olap.createQuery(cube);
            IBICommandProcessor commandProcessor = query.getCommandProcessor();

            Dimension dimension2 = olap.getObjectFinder().findDimensionFirst(cube, “EPINSTALA__0UCRATE_CAT”);
            Dimension dimension1 = olap.getObjectFinder().findDimensionFirst(cube, “0CALMONTH”);

            // Move the (dimension1 and dimension2 to rows. <– Problem is Here – How to capture only dimensions in rows???
            commandProcessor.moveDimensionToRows(dimension2);
            commandProcessor.moveDimensionToRows(dimension1);

            // Execute the query and retrieve the result set.
            IBIDataSet dataset = query.execute();

            Problem –> When i try to execute the query without set moveDimensionToRows, this return only the global result of query (1 row only).
            To return all data in my Grid (JTable), i need to set moveDimensionToRows.
            How i can capture only the rows dimensions to set in moveDimensionToRows and collum dimension ???

            Hoe to separate row dimension and collum dimension???

            Thanks for your help Moya …it is very urgent !

            Regards.
            Taylor.

            (0) 
            1. Moya Watson Post author
              hi taylor – it seems you need some more direct assistance – looks like you’ve already contacted us directly. by the way – if you or anyone ever needs urgent help, the formal way to get it is to write up a support ticket; that’s the best way to get urgent help. blogs on the SDN tend to not be good places for support – especially if someone’s out of town (i was!) and not monitoring.
              thanks,
              -m
              (0) 
  2. Michael Cavanaugh
    Moya,

    I have used the BI SDK and the XMLA interface.  We are putting this to test as an alternative to getting data out of BW.  However, I do not see that this logs information in the statistics table RSDDSTAT. Have you run across this scenario?

    Regards,
    Michael

    (0) 

Leave a Reply