Archive for October, 2013
I recently posted a comparison of the engine used by CR Server/ BOE and the runtime engine used by application developers. The key difference is going to be in performance, especially in high volume environments. For those of you who still plan on using the runtime engine there is a great pair of documents that explains how to get the most out of your hardware/software combination.
The first one is newer and is designed to help you select the most appropriate engine for your deployment and explain the differences between the engines. It then highlights the advantages of the more expensive engines while giving you a method to estimate the number of supported users in the runtime engine. The one thing that this document doesn’t do is provide specific techniques that you can use to maximize throughput of the runtime engine. But there is an older document that fills in this gap. I have confirmed with the folks at SAP that this older document still applies in .NET runtime deployments.
If you have any trouble locating these documents because the links have changed, please let me know.
I did something for the first time this week. I wrote a report custom function to use in production report. I think of Custom Functions as being primarily useful if you have a repository and can use it once across reports. I haven’t run into a situation where a single report merits having its own function. But I found a perfect example in a recent project. In this report we need to convert total seconds into a string that looks like 12:45 [hh:mm]. The formula is easy and is even posted on my “formulas” page. But by the time the report was done we had used the same logic in 140 different formulas. And after that we discovered that our logic had to also account for negative times. This meant changing a whole bunch of formulas. It was at that point that I decided to write it as a function and update all the formulas to use the function. That way, if we found another improvement, we will only have to Continue Reading »
Using a Report Custom Function
I read a forum thread where users were comparing the different web deployment options for Crystal Reports. One post, by Blair Wheadon of SAP, gave a good comparison of the two different CR engines. He compares the one that supports CR Server/BO Enterprise with the CR runtime engine that supports home grown and third party web applications. He has given me permission to post it here:
Its important to understand the differences between SAP Crystal Server, and other server reporting products based on our runtime engine.
Our runtime engine is designed and licensed to add reporting to server applications. It is a lightweight, embeddable component engine without any security or scheduling built it. It is limited to processing a maximum of 3 simultaneous report requests. It is designed to run within the web server itself. Server products like those sold by Reportal and Christian Steven depend on this limited runtime engine, and add their own scheduling functionality.
SAP Crystal Server however is the same technology used by our high-end SAP BusinessObjects Business Intelligence product, with some limitations that allow us to price it very aggressively. It includes support for Xcelsius dashboarding, the new Explorer tool for casual BI users, Sharepoint and Office integration, Active Directory and LDAP security integration, scheduling, and new Enterprise-class features to reduce the cost of ownership like lifecycle management (for promoting reports between test, development, and production), auditing, and monitoring to ensure uptime.
Unlike the limited runtime engine, the SAP Crystal Server report engine uses all the server resources available, including page-level caching, and unlimited threads to effectively manage load. Plus it now includes entry-level BI functionality like dashboard support, the Explorer tool for casual BI use cases, and support for 64-bit servers.
The major limitations are: limited to a single server, no support for ERP integration (like SAP integration or Oracle integration), mobile support available only as an add-on, and it does not include Web Intelligence. None of these limitation are material to customers looking for a simple reporting server.
It does not use CPU licensing, so you can throw as many CPUs at your reporting problem as you want (as long as you’re on a single server) , and deploy to either virtual or physical servers without any licensing impact.
Ido Millet of Millet software has added a new feature to Visual Cut. Visual Cut is one of the products in my desktop scheduling tools list. Now, when you export to Excel you can now have Visual Cut automatically invoke an existing Macro. The Macro can be in the target file (if you are replacing data in a file) or in a completely separate file. This means, for example, that you can export data to replace an existing tab in a workbook, and then automatically invoke a macro to make changes to the replacement data. If you have a specific use for a feature like this, I would like to hear from you.
For more information about Visual Cut and a comparison to other tools in this category, see my annual review of desktop schedulers.