Welcome!

ColdFusion Authors: Yakov Fain, Pat Romanski, Liz McMillan, Maureen O'Gara, Greg Ness

Related Topics: ColdFusion

ColdFusion: Article

ColdFusion and Crystal Enterprise Integrations

A primer

This document is a primer. It's designed to inform you, the reader, of what can be done and what to consider before attempting integration. It's not riddled with proprietary code that describes exactly how to do integrate between ColdFusionMX and Crystal Enterprise.

Why ColdFusion and Crystal Enterprise?
Reporting is not just some set of documents with some data on it. It can be so much more. Reporting is at the core of every business. Most developers believe that their applications drive their business. However, reporting is the core deliverable and it's the very heart of every business. Reporting is the intelligence of how your business is running and how you can streamline it to run more efficiently. With that in mind, your applications are mechanisms of what your business does. They allow you to perform your job more efficiently. They are tools that allow you to capture your data.

Now, more than ever, the development community is moving into a new era of rich media. The general consensus of the ColdFusionMX and Legacy ColdFusion community is that reporting is a beast best left undisturbed, or that they can produce metrics faster and quicker via a few well-written <CFQUERY> and <CFOUTPUT> tags that will deliver a sparse few details in html. However, contrary to the popular belief of most developers, reporting is a vast and useful topic. Companies spend millions on reporting solutions that provide everything from Web metrics, to trending and analysis, to financial reports. This is not something that most ColdFusionMX or Legacy ColdFusion developers are comfortable with. Allaire's (now Macromedia) attempt at including Crystal Reports through the <CFREPORT> tag was all but futile, as most developers wouldn't use it, choosing to write their metrics pages through <CFQUERY> and <CFOUTPUT> tags.

With Business Objects (previously Crystal Decisions) pushing its Crystal Enterprise product, this merely exacerbated the subject. Crystal Decisions licensed Microsoft's ASP technology and created a new twist on it, delivering CSP (Crystal Server Pages) within its Crystal Enterprise product. The vast majority of Internet developers, especially ColdFusionMX developers, have yet to successfully integrate their application environments and their reporting environments. It has, for the most part, always been that you're either in the application environment or in the reporting environment.

ColdFusionMX v7 was released with a new banded report writer as well as various other reporting oriented features. The CF community rejoiced. However, those that rejoiced because they can now abandon Crystal for CFMX 7 will have to continue to use Crystal. The reason being: Crystal is an expensive undertaking and most companies will not abandon a solution that they have so much invested in.

Corporate and Application History
As most ColdFusion developers know, ColdFusion was originally developed by Allaire and Allaire was later acquired by Macromedia. ColdFusion is in its seventh version and has moved from a C++ platform to a Java platform. Crystal on the other hand has a longer history. It's currently in its 11th version and has changed hands several times. The part of the story that I know, beginning from the time I started interfacing with the tool, is that it was sold to Seagate. It was then sold back to the original company (who renamed itself Crystal Decisions) and subsequently acquired by Business Objects.

The Difference Between Crystal Reports and Crystal Enterprise
When people start talking about "Crystal" they refer to it in two different aspects:

  1. Crystal Reports
  2. Crystal Enterprise
Crystal Reports is a banded report writer in its 11th version. Its features are numerous and robust. Crystal Enterprise is a culmination of server-based services designed for the deployment and delivery of reports and reporting, primarily developed through either the Crystal Reports IDE or "on the fly" using CSP. As I said previously, Crystal Decisions licensed Microsoft's ASP technology and created a new twist on it, delivering CSP (Crystal Server Pages) within its Crystal Enterprise product.

I have found that Crystal Reports developers and Crystal Enterprise developers don't normally travel in the same circles. Report developers, in my experience, know a lot about displaying data and how Crystal Reports, as a banded report IDE, functions. In general they have not been exposed to the server-side aspect of development. Conversely, I've found that Crystal Enterprise developers are well versed in the Crystal Enterprise APIs, server architectures, and performance tuning.

I have run across a few that are very good at both, but they just seem to be few and far between. My personal experience leans toward Crystal Enterprise, rather than actual report development. I prefer server-side API development and performance tuning. I'm fairly well versed in Crystal Report development, but I have found that there are many other developers who know the IDE better than I do. I consider it a presentation layer and prefer to continue my development from a server-side aspect. However, knowing its strengths and weaknesses is definitely an asset.

Enter the ColdFusion Developer
Cold Fusion developers have always been told either you can't do ColdFusion and Crystal, or that they need to use the <CFReport> tag. Both are total disasters, of course. The new reporting-oriented features of CFMX 7 are really nice. I've got to hand it to Macromedia, Tim Buntel, Damon Cooper, and team. They have put together a rock-solid set of features (such as CFDocument) that I have put to good use and look forward to them strengthening in the future.

The reason I mention it in this way is, while the banded report tool is nice and robust and integrated, it is still a 1.0 release. Business Objects, on the other hand, has had 11 versions to get it right. Although I feel they still could improve, it's a far cry from version 1.0. That leads me to the statement that my father drilled into me at a young age: "Use the right tool for the job."

If I am going to write a report that's not too complex, or maybe has a little drill through or drill down, I'll likely use CFMX 7 and one of the new report features, like the banded report writer or the CFDocument tag. I'll wrap it up into a PDF or FlashPaper. However, if I need to write a report that has many layers, sub layers, sub reports, or I want to use a code repository and I need to manage my reports, or any combination thereof, I'm more than likely going to use Crystal. I can probably work around those issues. What I can't work around is something I mentioned earlier. Often, I need to deploy through a system that the company has a huge investment in. I evaluate each deployment strategy individually. I use Crystal when I need to do some heavy lifting. I use CFMX 7 when the reporting isn't so intensive. As I said, use the right tool for the job. Crystal Enterprise has a huge strength in report deployment. It has been designed around crunching reports that, in some cases, may take days to complete. It can deliver you the first page in a report while it is still building the remaining pages. It schedules, maintains, manages, and secures documents and reports and does it all natively.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.