Thursday, January 22, 2009

WebFOCUS Automagically

What if developing WebFOCUS applications could be done with the click of a button? It sure would ruin all the fun, wouldn't it?

After manually building WebFOCUS applications for years, I got tired of the redundant work. Really, I was just copying a tried-and-true template and then making some manual changes to the code. I finally thought, "Why not just generate the underlying logic?"

My starting point for this magic is the WebFOCUS metadata. It has most of what a person needs for developing a report -- the name of the table/view and the column names. Using the WebFOCUS Developer Studio, I add a few additional things to the standard metadata: include some column descriptions, identify the dimensions and measures, mark which columns should be parameters on a launch page (and where to find a list-of-values for pull-downs), hide some columns from the user, and so forth.

With that done, I use a C++ application to parse the metadata and use that to generate an HTML launch page and WebFOCUS report logic. Both are highly parameterized and dynamic. The webpage allows the user to specify detail/summary report, enter selection criteria, and identify sort columns, page-breaks, subtotals, output formats, etc.

If the selection columns are dates, the tool automatically generates GUI calendar controls. If there is a list-of-value program identified in the metadata, the launch page will be generated with dynamically populated pull-downs (for either single- or multiple-selections). For long lists of values, pop-up searches are available.

The user can also select which columns to display on the report, change the column titles, and resequence the columns.

I put some extra work into the generated code to make sure the WebFOCUS Developer Studio could open the results -- for example, the HTML Painter can display the launch screen. That means a developer can in the future easily enhance and support the generated application.

Not happy to just create one WebFOCUS application at a time, I added a mass-generation feature: the utility reads all WebFOCUS metadata in a folder and generates hundreds of launch pages and reports in seconds.

So, is it as fulfilling to click a button instead of typing for days to develop an application? Well, the results are the same and it is fun to see the look on peoples' faces when I crank out hundreds of WebFOCUS reports in seconds.

Will you see this as a new feature for WebFOCUS sometime in the future? Not if the vendor wants to keep its Consulting revenues!

No comments:

About Me

My photo

I am a project-based consultant, helping data-intensive firms use agile methods and automation tools to replace legacy reporting and bring in modern BI/Analytics to leverage Social, Cloud, Mobile, Big Data, Visualizations, and Predictive Analytics. For several world-class vendors, I led services teams specializing in providing software implementation and custom application development. Based on scores of successful engagements, I have assembled proven methodologies and automated software tools.

During twenty years of technical consulting, I have been blessed to work with smart people from some of the world's most respected organizations, including: FedEx, Procter & Gamble, Nationwide, The Wendy's Company, The Kroger Co., JPMorgan Chase, MasterCard, Bank of America Merrill Lynch, Siemens, American Express, and others.

I was educated at Valparaiso University and the University of Cincinnati, graduating summa cum laude. In 1990, I joined Information Builders, the vendor of WebFOCUS BI and iWay enterprise integration products, and for over a dozen years served in branch leadership roles. For several years, I also led technical teams within Cincom Systems' ERP software product group and the custom software services arm of Xerox.

Since 2007, I have provided enterprise BI services such as: strategic advice; architecture, design, and software application development of intelligence systems (interactive dashboards and mobile); data warehousing; and automated modernization of legacy reporting.