BOUG UK Technical SIG Meeting 11 Dec 2007 BOXI R2 SDK Programming Sean Reynolds Invision Solutions Ltd BOXI R2 SDK Programming Slide 1
About the presenter Sean Reynolds Director / Consultant Invision Solutions Ltd A small consultancy specialising in BI Business Objects Solution Provider Partner BOXI R2 SDK Programming Slide 2
Aims To provide an introductory overview to XIR2 SDK Programming (for the uninitiated) To demonstrate how we can begin building applications with the SDK. BOXI R2 SDK Programming Slide 3
Contents What is the SDK? What can we do with the SDK? Technical Details Useful Resources Demonstration BOXI R2 SDK Programming Slide 4
Contents What is the SDK? What can we do with the SDK? Technical Details Useful Resources Demonstration BOXI R2 SDK Programming Slide 5
What is the SDK? What is the SDK? A toolkit enabling application developers to tap into BusinessObjects functionality to create custom solutions BOXI R2 SDK Programming Slide 6
What is the SDK? Definitions I API = Application Programming Interface - An abstraction layer sitting on top of system services, exposing the functionality. - Provides a mechanism for application developers to tap into (or call ) system functionality. - Exposed as Java Beans,.Net libraries, COM components, BOXI R2 SDK Programming Slide 7
What is the SDK? Definitions II SDK = Software Development Kit - Application developers toolkit - API + Documentation + Samples + Tools NB: Tools includes - report viewers - components such as WebIntelligence Applet - Crystal Reports plugins for MS Visual Studio.Net and Eclipse (Java) BOXI R2 SDK Programming Slide 8
What is the SDK? Definitions III OOP = Object Oriented Programming - Objects are a way of representing system components. - Objects have properties, methods and events. e.g. objects created from IEnterpriseSession have a logon (to CMS) method. Object Model - Describes the structural relationship of objects. - Provides developers with a map of exposed system functionality. BOXI R2 SDK Programming Slide 9
What is the SDK? Object Model e.g. Report Engine BOXI R2 SDK Programming Slide 10
What is the SDK? API Reference BOXI R2 SDK Programming Slide 11
Contents What is the SDK? What can we do with the SDK? Technical Details Useful Resources Demonstration BOXI R2 SDK Programming Slide 12
What can we do with the SDK? What can we do with the SDK? Integration - Develop a framework application to allow System 1 to interact with System 2 via their APIs Application development Customisation - e.g. Modify look & feel of Infoview Extend out of the box products - e.g. Develop a scheduling manager, like BO6.5 BCA Console. Extend DeskI reports with VBA Macros Develop and schedule BOXI Program Objects Build our own Infoview or CMC BOXI R2 SDK Programming Slide 13
Contents What is the SDK? What can we do with the SDK? Technical Details Useful Resources Demonstration BOXI R2 SDK Programming Slide 14
Technical Details Architecture I BOXI Enterprise APIs live at the Application Tier - e.g. Infoview Desktop APIs live on the client - e.g. Desktop Intelligence, Designer XI BOXI R2 SDK Programming Slide 15
Architecture II Technical Details BOXI R2 SDK Programming Slide 16
Technical Details Development and Hosting platforms Java 2 Enterprise Edition - APIs exposed as Java class libraries - Can build applications using JSP (and associated technologies) hosted on the App Server, e.g. Tomcat, WebSphere, - Cross platform via Java Runtime.Net - APIs exposed as.net class libraries - Can build applications using ASP.Net (C#, VB, ) on IIS - Native to MS Windows but (theoretically) cross platform via.net Common Language Runtime COM (MS Component Object Model) - MS Windows technology. - (increasingly becoming) Deprecated. Check latest PARS / platforms.txt for supported platforms. BOXI R2 SDK Programming Slide 17
Technical Details Which SDK should I use? Java Reporting Component (JRC) (Crystal) Report Designer Component (RDC) (Crystal) Crystal Reports for.net (Crystal) BusinessObjects Enterprise SDK (Administration) Report Application Server SDK (Crystal) Universe Designer SDK Desktop Intelligence SDK Report Engine SDK (WebI and DeskI 3-tier) Viewers SDK Web Services SDK (Useful for negotiating firewalls, make SOAP calls on HTTP port) Program Objects Interface BOXI R2 SDK Programming Slide 18
Technical Details SDK Picker (on Developer Library) BOXI R2 SDK Programming Slide 19
Technical Details Accessing the System Database I Stores system metadata (user accounts, folders properties, object properties, ) Managed by the CMS service. Does not store resource files such as reports and universes (as with E6.5). These are held on disk in the FileStore, managed by Input/Output FRS. Akin to the E6.5 Repository. Relational database. System data held in Binary fields and so we cannot read data directly with SQL. But, we can access system data using the SDK. BOXI R2 SDK Programming Slide 20
Technical Details Accessing the System Database II We can query the System Database using an abstraction layer, made up of 3 virtual tables: - CI_INFOOBJECTS (user desktop info + ) - CI_SYSTEMOBJECTS (administration info) - CI_APPOBJECTS (App info + universe metrics) We query the System Database using a SQL like syntax, e.g. oinfoobjects = oinfostore.query( SELECT SI_NAME, SI_ID FROM CI_INFOOBJECTS WHERE SI_KIND = CrystalReport ) BOXI R2 SDK Programming Slide 21
Technical Details Accessing the System Database III The Query Builder is a pre-built SDK application for executing System Database queries. Accesible from the BOXI Administration Launchpad BOXI R2 SDK Programming Slide 22
Technical Details What do I need to know to develop with the BOXI SDK? Good knowledge of the BOXI products that you are programming against. Working knowledge of system administration. Web / Desktop development skills. Platform / language specific skills - Java,.Net, COM, HTML, Javascript, VBA, Creativity and imagination - an overworked phrase, but true. BOXI R2 SDK Programming Slide 23
Contents What is the SDK? What can we do with the SDK? Technical Details Useful Resources Demonstration BOXI R2 SDK Programming Slide 24
Useful Resources Useful Resources Diamond Community http://diamond.businessobjects.com/ Developer Library http://devlibrary.businessobjects.com/ BusinessObjectsXIR2SP2/en/devsuite.htm Business Objects documentation - Can be downloaded from Developer Library Samples - Can be downloaded from Developer Library BOB Forum (SDK) http://www.forumtopics.com/busobj/ Books - e.g. Pro Crystal Enterprise/Business Objects XI Programming. By Carl Ganz (2006). Apress. [Good on System DB Access] BOXI R2 SDK Programming Slide 25
Diamond Community Useful Resources BOXI R2 SDK Programming Slide 26
Developer Library Useful Resources BOXI R2 SDK Programming Slide 27
Contents What is the SDK? What can we do with the SDK? Technical Details Useful Resources Demonstration BOXI R2 SDK Programming Slide 28
Demonstration Demonstration A code walkthrough of Logging in Navigating folders Viewing WebI reports Logging out BOXI R2 SDK Programming Slide 29
Demonstration Demonstration BOXI R2 SDK Programming Slide 30
Questions? Feel free to email me : sreynolds@invision-solutions.com BOXI R2 SDK Programming Slide 31