Posts Tagged ‘SDK’

Crystal Clarity for BusinessObjects and Visual Studio .NET

March 16th, 2011 No comments

Did you ever read Sherlock Holmes when you were a kid?

…or maybe CSI:Miami is more your style.

Sometimes as I work with software I find a mystery.  A mystery so unusual that I have to go searching for the answer.  At the beginning, I always assume that I know what the outcome will be, but on more than one occasion I’ve been hit by a twist at the end.

Today, my mystery surrounds Visual Studio .NET and the SDKs from BusinessObjects.

The Mystery

One of the ideas I have been promoting for a very, very long time was the idea that organizations should offload all their reporting to an Enterprise Reporting environment like BusinessObjects Enterprise and allow their .NET developers to do the real work of building complex, custom applications.  This is the best way to allow your .NET applications to scale and do what they are good at (building applications), while your reporting environment can scale and do what it’s good at (delivering insightful, actionable reports).

Earlier this week however, my customer intrigued me with a question:

“When we moved to the new release of Visual Studio, we found ourselves running into compatibility issues with the BusinessObjects XIr2 SDK.  Will we have the same compatibility issues with Visual Studio and  XI 3.1?”

My Surprise

As I dug a little deeper I discovered that this customer has significantly curtailed their use of the BusinessObjects SDKs because they wanted to use Visual Studio 2008 and BusinessObjects XIr2 didn’t support Visual Studio 2008.  They moved to Visual Studio 2008 but were only using opendocument to link to new report (instead of using the embedded Crystal Report Viewer) and they had built a custom Web Service to enable scheduling of reports (instead of using the Platform SDK).

Although I am not a developer, I was somewhat surprised at this problem.  I hadn’t done any SDK work since using the COM SDK in Visual Basic 6.  Even then I was just building a few examples.  Nothing big.  All a developer needed to do was point the Studio to the appropriate BusinessObjects Enterprise DLLs and he was off and running.  So what’s the problem?  I needed to investigate.

Was there really an incompatibility or had they missed something?

The Investigation

I started checking the forums and sending out emails to the top tier folks to see what they could tell me and the answer I got back was a complete twist from what I had expected.

First of all, there is a big difference between leveraging Crystal Reports embedded within a .NET application to provide reporting and using our .NET SDK to help provide a scalable, enterprise class reporting for your .NET applications.  I explain the difference in significant detail here:

Embedded Crystal Reports

For embedded reporting, customers typically would get a free version of Crystal Reports embedded within the Studio IDE.  This version would have a lot of functionality, but the developer could always get even more features, if he paid more $money and purchased the standalone version of Crystal Reports.

NOTE:  These stand-alone versions allowed users to create .rpt files
outside of Visual Studio.  It also meant that less technical users
could build reports for the .NET applications.

It’s important to understand whether or not you are using the ’embedded’ version of Crystal Reports.  If you are doing all your report design from within Visual Studio only, then you are using the embedded report designer.  By definition the embedded report designer is always compatible with the version of Visual Studio it was shipped with.

Starting with Visual Studio 2010, Crystal Reports is no longer included “in the box”, however it is still available as a free download.  Crystal Reports for Visual Studio 2010 supports Visual Studio 2010 only and Microsoft framework 2.0 and higher- Link to PAR

For the best, most up-to-date information about Crystal Reports for Visual Studio 2010 go to:

So to be clear, in order to get support for Visual Studio 2010, you need to download Crystal Reports for Visual Studio 2010.  This is the embedded version of Crystal Reports which works with Visual Studio 2010.

Stand-alone Crystal Reports

So now what about those customers who decided to purchase the stand-alone version of Crystal Reports.  What versions of Visual Studio is their Crystal Reports compatible with?

The stand-alone version definitely provides you more functionality.  It allows someone else to create a standalone .rpt file.  The developer can then include the report in his Visual Studio project.  However, not every version of Crystal Reports is compatible with every version of Visual Studio.  You need to make sure that these stand-alone versions are going to be compatible with the report rendering engine that is embedded within Visual Studio.  This rendering engine is what converts the .rpt file to .html during runtime.

Each version of Crystal Reports has an associated supported platforms document or PAR/PAM.

Standalong CR Designer Microsoft Suite .NET Framework PAR/PAM
Crystal Reports XIr2 SP6 Visual Studio 2002, 2003, 2005 Framework 1.0, 1.1, 2.0, 3.0 Link to PAR
Crystal Reports 2008 SP3 Visual Studio 2003, 2005, 2008 Framework 1.1, 2.0, 3.0, 3.5 Link to PAR

Here is another great matrix you should reference:

NOTE: Crystal Reports 2011 is currently in ramp up and does not yet support
Visual Studio 2010 or the 4.0 Framework.

Crystal Reports & BusinessObjects Enterprise

So this brings me to the situation my customer was asking about.

What if we are a customer who has implemented BusinessObjects Enterprise XI and all the reports are stored within the BusinessObjects Repository?  What support do we have from a Microsoft Visual Studio perspective?

In this situation I initially was unable to get the same clarity I did in the previous two scenarios.  There is no reference to Visual Studio within the BusinessObjects SDK PAR documentation that I could find.  In addition, if you are only using the BusinessObjects Enterprise SDK, then surely Visual Studio would be upward compatible.

As I checked the BOB forums, I did find that some folks had run into problems.

Word of Wisdom:  Do not upgrade to a new version of Visual Studio until you are sure that the compatible SDKs are available from SAP.

Let me say that again.  You should ASSUME that Crystal Reports is NOT compatible with new versions of Visual Studio.  This is due to the fact that there are Crystal Reports controls which are part of the Visual Studio IDE.  Therefore be very careful and always read the PAR.  Repeat:  Always read the PAR.

So, it’s pretty clear when it comes to Crystal Reports, but what about the BusinessObjects Enterprise SDKs alone?

You will notice that there is no mention of Visual Studio in the BusinessObjects Enterprise PAR documents.  This is because there are no embedded BusinessObjects Enterprise components in the Visual Studio IDE as there are for Crystal Reports.  Because of this looser form of integration between .NET and the Enterprise SDK, it is possible to support more variations of .NET and Framework versions.

NOTE:  Know that when you install the BusinessObjects Enterprise SDK for .NET,
the installer installs a new Crystal Viewer SDK.

For BOE XI 3.1 Platform PAR, it shows that .NET Framework 3.5 is supported, and not 4.0.   NOTE that it is shipped with the Visual Studio 2008 redistributable package, therefore use Visual Studio 2008.  Also in BOE XI 3.1, the SDK is installed in a common directory.  By default the directory is:
C:/Program Files/Business Objects/common/

Do know that it’s possible that when you upgrade to a new version of BusinessObjects, there may be issues with trying to connect to a older environment.  It shouldn’t be a problem, since there are other applications such as the Import Wizard, which are able to connect to an older CMS as well as the current environment, but that wasn’t the case for this user:  XI 3.0, .NET SDK and Visual Studio 2008….GRRR!

Although BusinessObjects BusinessIntelligence v4.0 is still in ramp up, early indications are that it too will ship with the Visual Studio 2008 redistributable package.

Compile Time vs. Run Time

After several conversations with technical support, I also found that there were some important differentiations to make between Compile Time and Run Time development and which .NET framework is supported.  Let me summarize how these scenarios are supported so there is no confusion.

BO Version Compile Time Framework Run Time Framework
BusinessObjects XI 3.1 VS 2005 or VS 2008 

Supports .NET 1.1 Framework ONLY.

Anything else may result in compiler errors

Framework 1.0, 1.1, 2.0, 3.0, 3.5
BusinessObjects v4.0 VS 2005 or VS 2008 or VS2010 

Supports .NET 2.0 Framework or higher.

Does NOT support .NET 1.1

Framework 1.1, 2.0, 3.0, 3.5

Supporting Escalations

I strongly recommend you call technical support and get clarification about your combination of products and whether or not they are supported.  If you have a problem and it appears to be a bug, engineering will only support it if it can be reproduced on a supported configuration.  Make sure you ask support whether or not you are on a supported platform.

NOTE:  You will also find that your bug will need to be reproduced
in either C# or Visual Basic .NET to be addressed by technical support.

My Advice

At the end of the day, check and double-check the PAR.  You can find them on SDN here or on the Support Portal here.

Clearly if you are going to use the Crystal Reports Viewer embedded within Visual Studio, then you need to check compatibility with your version of Visual Studio and of the .NET Framework.  Be very careful.

If on the other hand, you are only using the BusinessObjects Enterprise Platform SDK, then you are much safer ground.  In other words, if you chose NOT use the Crystal Reports Viewer embedded within your Visual Studio application and only opendocument, you can avoid the most significant incompatibilities between BusinessObjects/Crystal Reports and Visual Studio.

Before You Upgrade

Do not upgrade one part of your infrastructure unless you are sure that this does not include impacts in other places.  Do not upgrade versions of operating systems, databases, development platforms, etc. without fully considering the repercussions across your entire environment.

Sometimes you can get away with an unsupported configuration and not have any problems.  SAP is working hard to keep up with all the changes being made by our technology partners, but do understand that if you are want to use the latest and greatest development solutions from Microsoft, you may need to upgrade your entire BusinessObjects environment as well.

If your BusinessObjects environment is 3 years old, the chances are your Microsoft development environment will need to be 3 years old as well.

«Good BI»

There has always been confusion related to .NET framework for compile time and runtime.

I did not go through the whole thread though, let me summarize it below on what I understood. Feel free to query further.


o supports .NET 1.1 framework COMPILE time only

o A customer using anything else for compile time will result in compile errors.

o In VS version 2005/2008 ( supported for XI3.1), one has to select compile using 1.1 only.

o Above created project can be run in any .NET framework till 3.5 ( runtime support)


o Supports .NET FW 2.0 and above ( till 3.5) COMPILE time

o Does not support .NET FW 1.1

Where is Query Builder?

June 16th, 2010 1 comment

Last week I watched Forrest Gump with my kids and when talking with a customer today was reminded of his phrase, “Life is like a box of chocolates, you never know what you’re gonna get.”  Sometimes it’s the same with a new release and the sample content… you never know what you are going to get.  The customer was at XI 3.1 and asked:  What happened to the old Launchpad and Query Builder from XIR2?

Forrest Gump, Chocolates

Good-Bye Launchpad

The Launchpad was a default landing page that would allow an administrator to access the CMC, ePortfolio/InfoView and other sample SDK applications in one place.  This landing page was an HTML page that was part of Crystal Enterprise and was included in the XI release.  In XI 3.0, this Launchpad was discontinued.  Instead, users and administrator are provided up to three direct URL links:

  1. BusinessObjects Enterprise Central Management Console, http://boserver:8080/CmcApp
  2. BusinessObjects Enterprise Java InfoView, http://boserver:8080/InfoViewApp
  3. BusinessObjects Enterprise .NET InfoView, http://boserver/InfoViewApp/logon.aspx
NOTE:  The URL's are CaSE SEnSITivE on Java.

I’ve also been told that unlike in the past where the default URL changed for every release, this won’t be done in the future.  I chuckle to myself when I remember: enterprise10, enterprise11, enterprise115… if you don’t know what I’m talking about, you’re probably better off. 😉

Hello, Sample Applications

So what about the sample applications.  Where are they today?

The Query Builder application is the only sample application that continued forward with XI 3.0.  You can access this application if you are using a Java Application Server.  The URL is:

  • Query Builder, http//boserver:8080/AdminTools/
Query Builder Screenshot

Query Builder Interface

Once you log in via the interface, you will see the familiar Query Builder application interface.  It’s a great little sample application.

You can also find other sample applications published on SDK library on SDN.

Bring On XI 4.0

XI 4.0 will go into ramp-up (limited release) later this year.  I’m looking forward to seeing what new things we’ll discover in the samples that are provided there.  🙂

«Good BI»

Cool Dashboards from ProMorphics

May 31st, 2010 No comments

Although I’ve worked in a number of different industry verticals, I’m currently focused on the Utilities vertical.  I’m always on the look out for great dashboards and I found some!  I want dashboards that combine the best features of Xcelsius together with amazing usability and depth of function.  My latest discovery is from ProMorphicsProMorphics is a services organization and they have been a member of the SAP Ecosystem for a number of years.   I recently got a chance to view the results of some of their compelling dashboards  and the results speak for themselves.

When I spoke with ProMorphics they talked about their commitment to listen to the customer and to go the extra mile.  They’ve been extremely successful at using Xcelsius as a prototyping/rapid development tool so that they can get feedback and turn the results around extremely quickly.

Their sample dashboards focus on these three areas:

  • Environmental Health and Safety (EH&S)
  • Field Operations
  • Sales and Financial Performance (Peek Performance)

If you work in a utility related industry, you may want to engage ProMorphics and leverage their expertise.  It’s not surprising that 70% of their business comes from repeat customers.

ProMorphics Operations Dashboard with Custom Xcelsius Controls

Interactive Demos

Although ProMorphics does not allow you to download their .xlf files, you can view the dashboards via the following website:

Here is a 10 minute video walk-through of their Peak Performance dashboard with Kasia Szewczyk


It’s always good to see partners who exploit all the features within a solution.  In the screenshot above, you can see how they have built Google Map integration as well as a custom calendar control.  These are examples of custom Xcelsius controls written in Flex.  I saw example after example of custom controls, developed to make sure they gave the customer exactly what they wanted.  If you engage ProMorphics in a project, they will also make these custom Xcelsius controls available to you.  Some partners like Centigon Solutions do allow you to buy their Xcelsius controls separately but ProMorphics currently does not.

«Good BI»

Categories: Dashboards, Partners Tags: , ,

Crystal Reports Embedded And Its Limitations

September 26th, 2008 19 comments

So you may be asking…

What is Crystal Reports Embedded? Crystal Reports embedded is an architecture which allows the Crystal Reports Rendering engine to run within the confides of the application environment.  BusinessObjects provides a .NET runtime and a Java Report Component (JRC) which allows developers to embed Crystal Reports in their applications.  Crystal Reports Embedded is included free with every version of Crystal Reports we sell.

So why do I need Crystal Reports Server or BusinessObjects Enterprise?  Well, that leads me into a discussion of the limitations that existing within the “free” embedded report architecture.

Limitations of Embedded Reporting

The current Crystal Reports Embedded Runtime is limited to three concurrent user requests (e.g. three simultaneous processing threads).  These threads are queued such that if the .NET application requests a 4th thread, it must wait until one of the existing three completes before it will be processed by the embedded engine.

Here is a quick view of the Embedded Architecture:

In case you were not aware of this limitation, let me point you do an excerpt I found on the Crystal Reports Developer website:

How is the Report Engine configured differently across different Business Objects reporting solutions?
  • Report engine is embedded.

    In Crystal Reports for Visual Studio, the report engine is embedded in the application.
    This embedded report engine is limited to a maximum of three simultaneous user requests. This is not an arbitrary licensing limit; it is a limitation of the embedded report engine architecture.
  • Report engine is extracted into a separate report server process

    In the solution that uses the unmanaged Report Application Server (RAS), the report engine is extracted into a separate server process. That server process can run on the same machine or be placed on separate physical hardware, to increase performance by offloading processing from your application server. An unmanaged RAS server is no longer available as an upgrade option. It is recommended that you upgrade to Crystal Reports Server instead. For more information, see Upgrade Options.
    The Crystal Reports Advanced Developer edition provided a performance-governed version of the unmanaged Report Application Server (RAS), which is suitable for smaller deployments with less complex reports and fewer user interaction requirements. This product is no longer available.
    Or, it was possible to license the unmana ged Report Application Server (RAS) on a processor basis, where it takes full advantage of your hardware. This product is no longer available.
  • The separate report server process is encapsulated into a complete Enterprise architecture

    In the Crystal Reports Server or BusinessObjects Enterprise solution, an entire Enterprise architecture is added, which encapsulates the separate report server process (RAS). The managed Report Application Server (RAS) becomes only one server, among many other servers in the Enterprise architecture. This architecture provides a rich set of additional features, such as scheduling, load balancing, fail-over, and both vertical and horizontal scalability.

NOTE:  The red was added by me for emphasis.  For more information click here.

So there it is.  There is a limit of three simultaneous processing threads when you use Crystal Reports Embedded within a .NET or Java based application.

What if I need more scalability?

If you look over the product offerings available from SAP BusinessObjects, you will see that all the current offerings include the BusinessObjects platform. This means that you will need to purchase one of our server based product offerings in order to provide additional scalability.

There are a number of advantages to this platform.  The first is unlimited scalability.  One common problem we had in moving customers from an unmanaged environment to a managed environment was that certain parts of their application had to be rewritten.  With the platform, you need to “login”, retrieve your report from a “repository” (instead of a filesystem).  You also wanted to make sure you are using the Page Server instead of the RAS Server (which had more overhead).

Now by requiring customers to move to a repository/platform based platform earlier, they are able to reap the benefits of a dedicated reporting environment

Here is what a basic architecture might look like if you upgrade to CR Server:

And here is one with BusinessObjects Enterprise:

How does this affect Runtime Distribution?

This does NOT affect your ability to create Crystal Reports and embedded them into your Visual Studio or Java based applications and distribute them out.  It is important however that you only distribute out the DLLs and JAR files listed in the RUNTIME.TXT file under the …/Crystal Reports/Help/en directory.

For more information you can also check out my previous post about this topic here.


Manually Starting Services

September 19th, 2008 4 comments

Even though the SIA has been setup to automatically start services, another alternative is to control the starting of these services through scripts. One colleague of mine setup his BusinessObjects Enterprise SIA so that only the CMS and the FRS Input and Output services started up automatically.  All other services were setup to start manually.

In his experience, this made the starting of the SIA require less resources making startup (even) less error-prone that it already is.

Batch File for Starting Services

Below I have included all the contents of the batch file which you can download here.  Enjoy…

«Good BI»

:: Cleaning up
del /f /q "C:Program FilesBusiness ObjectsBusinessObjects Enterprise 12.0Logging*.log

:: Starting up dependencies
net start "SQL Server (MSSQLSERVER)" 

:: CMS configured to startup automatically with SIA
:: See Control Panel Services for startup configuration (automatic)
net start "Server Intelligence Agent (cdi6BOE)"
net start "Apache Tomcat 5.5.20"

:: add timeout to allow CMS to initialize
:: sleep 90

cd "C:Program FilesBusiness ObjectsBusinessObjects Enterprise 12.0win32_x86"
:: CMS and FRS configured to startup automatically with SIA
:: (CMC > Servers > Properties)
:: ccm.exe -managedstart cdi6BOE.CentralManagementServer
:: ccm.exe -managedstart cdi6BOE.InputFileRepository
:: ccm.exe -managedstart cdi6BOE.OutputFileRepository
ccm.exe -managedstart cdi6BOE.AdaptiveProcessingServer
ccm.exe -managedstart cdi6BOE.DestinationJobServer
ccm.exe -managedstart cdi6BOE.EventServer
ccm.exe -managedstart cdi6BOE.ProgramJobServer
ccm.exe -managedstart cdi6BOE.PublicationJobServer

:: Crystal Reports
ccm.exe -managedstart cdi6BOE.CrystalReportsCacheServer
ccm.exe -managedstart cdi6BOE.CrystalReportsJobServer
ccm.exe -managedstart cdi6BOE.CrystalReportsProcessingServer
ccm.exe -managedstart cdi6BOE.ListOfValuesJobServer
ccm.exe -managedstart cdi6BOE.ReportApplicationServer

:: Desktop Intelligence
:: ccm.exe -managedstart cdi6BOE.ConnectionServer
:: ccm.exe -managedstart cdi6BOE.DesktopIntelligenceCacheServer
:: ccm.exe -managedstart cdi6BOE.DesktopIntelligenceJobServer
:: ccm.exe -managedstart cdi6BOE.DesktopIntelligenceProcessingServer

:: Performance Management
ccm.exe -managedstart cdi6BOE.DashboardAnalyticsServer
ccm.exe -managedstart cdi6BOE.DashboardServer
ccm.exe -managedstart cdi6BOE.PMMetricsServer
ccm.exe -managedstart cdi6BOE.PMRepositoryServer
ccm.exe -managedstart cdi6BOE.PMRulesServer
:: ccm.exe -managedstart cdi6BOE.PredictiveAnalysisServer
:: ccm.exe -managedstart cdi6BOE.ProcessAnalysisServer
:: ccm.exe -managedstart cdi6BOE.SetsProfileServer
:: ccm.exe -managedstart cdi6BOE.SetsQueryServer

:: Voyager
:: ccm.exe -managedstart cdi6BOE.MultiDimensionalAnalysisServicesServer

:: Web Intelligence
ccm.exe -managedstart cdi6BOE.AdaptiveJobServer
ccm.exe -managedstart cdi6BOE.WebIntelligenceProcessingServer
Categories: Administrators Tags: , , , , ,