What is the Cognos SDK?

The Cognos SDK occupies a strange position in the Cognos development ecosystem. It gets thrown around as a solution to a number of problems, but a lot of people who work all the time in Report Studio or Framework Manager really don’t know what it is. People working with Cognos usually have a database or business analysis background, not programming, and often are not familiar with the term ‘SDK‘. A lot of the materials on the SDK immediately dive into details without a big-picture overview, so here’s my take on what it is and why you might be interested in it.

‘SDK’ stands for software development kit. It’s a set of code libraries, ie. jars or dlls. The SDK comes in three different programming languages: java, C#, and visual basic. It’s not a studio or plugin or executable program. It’s nothing that you’d use inside the main Cognos applications. It’s code that a programmer can use to write a script or application that talks to a Cognos server.

In general, it’s for administrative purposes rather than writing reports or queries. A few different uses:

  • Write your own custom security provider.
  • Integrate Cognos into your own application.
  • Script out adminstrative tasks.
  • Programmatically do just about anything you can do manually in Cognos Administration.

You can automate back ups, installs, permission grants, or whatever. If you’re an OEM provider of Cognos, using the SDK is essential. It will allow you to seamlessly integrate a huge amount of Cognos functionality into your own application. Your users may not even know or care that you’re relying on Cognos for your reports.

How to get started

Get a license (which is expensive, unfortunately), then download the installer from the usual IBM Cognos site. By default, it will be installed into an existing Cognos installation. Under the sdk folder, you’ll see the different versions. I’ve only used the java one and that’s what I’m going to talk about, but the csharp and vb versions should be equivalent in most ways.

A few important things to look at…there is a ‘lib’ folders with jars, which contain the SDK code. You’ll need to include these jars in your app. A lot of small sample applications like ViewCMReports, ReportDelete, and AuthenticationProvider are included. There are also some useful folders containing shared code, like Common and Security. There is a ‘doc’ folder that contains javadoc. This is mostly worthless. The user guide has much better documentation. It’s outside of the sdk folder, in webcontent\documentation\en\dg_sdk.html. It has good write-ups on how to set up your environment, how to run samples, what you can do, etc.

When you’re ready to start coding, look at a sample for some guidance and build off that. Most applications start by connecting to a running Cognos server, then logging in. The code in common\crnserver.java handles connection stuff. Feel free to copy it. For authentication, see Security\Login.java (and copy it, too!).

The quickest way to figure out how to do something is usually going to be finding a relevant sample and copying it. Studying the API is not very useful, unfortunately. Important objects usually have generic property arrays to hold useful information, and instead of well-named, self-documenting methods, you get a lot of ‘setValues’ and ‘adds’.  The names of the properties you need don’t seem to be documented anywhere except in the samples.

That said, the code is not particularly hard to deal with and the samples are quite good. It does take some time to get familiar with the API, but the difficulty just depends on what you’re trying to do. Something like automating package deployments is trivial, but writing your own security provider is a lot more challenging. If you need to extend the functionality of Cognos and you have programming resources on your team, the SDK is worth looking at.

¨Cognos relies on Web services to communicate with the server. It’s helpful to know about Web services and SOAP but not really necessary.
This entry was posted in software and tagged . Bookmark the permalink.

5 Responses to What is the Cognos SDK?

  1. You actually make it seem so easy with your presentation but I find this topic to be actually something which I think I would never understand. It seems too complicated and extremely broad for me. I’m looking forward for your next post, I’ll try to get the hang of it!

  2. bi centre says:

    The ibm cognos sdk will require you to have prior programming experience if you want to develop complex integration of cognos to your application. I would recommend to start off small and focus on creating a report page with prompts and then rendering in multiple formats.

    You can also purchase a sample solution at bicentresdkguide.blogspot.com.

  3. Tony van Muyden says:

    Older information already. Visual Basic 6.0 code and libraries are no longer supported nor included in the product.
    Code with the Visual Studio Libraries in C#.Net or VB.Net.
    85% of SDK applications are in Java, about 10% in C# and less that 5% in VB.Net.
    SDK is much more than what is delivered in the SDK folder to Users, it has Samples in Javascript, Report Execution interfaces CRX with samples, and consists of Components installed with the Server Software beside the SDK Product. See the Samples folder in Webcontent for the SDK directory.
    It has new interfaces for JSon, new FM Json automation etc.
    IBM Cognos Business Analytics Services – SDK Team supports not only the SDK Kit itself, but all published Tooling and Diagnostic programs , all the SDK Technotes with code, all the Migration Tools and includes BA Transformer API, and support for any TM1 API’s including the new REST, OData and TM1 Web API.

Leave a Reply

Your email address will not be published. Required fields are marked *