Alfresco Business Reporting – The Current Status

alfresco business reporting logoIt has been quiet around the Alfresco Business Reporting tool for the last few months. The usual; family and work. I intended to release a new version before the Alfresco Summit in Barcelona, but it did not make it. A huge tender needed more attention than time available, so my side-project slipped unfortunately.

Last months
MyBatisLast few months had the focus of Harvesting. I’ve been working to make the reporting tool work against other database vendors than MySQL. Since Alfresco (Community) ships with Postgresql by default, it would make sense to support this database too. There has been quite some demand for this as well. I implemented MyBatis, the same framework Alfresco uses to access the database in a vendor neutral way. Right now this layer of the module is restructured and working against MySQL and Postgresql. Supporting any new vendor would be almost just like creating a new list of SQL queries. (Any volunteers for SQL-Server and Oracle?)

Next to that I did a major rewrite of the harvesting mechanism. This was initially developed fully in JavaScript. It seemed to make sense at that point in time. But not today. Now it has a modular structure, Java based and ActionExecutor driven. As it should. This enables a nice and clean way of expanding the types of information that can be harvested.

These weeks
SpeakingBarcThese weeks I am preparing my talk about this module at the Alfresco Summit. Next to that I was trying to get the new version released, but that won’t work out; work intervened. Currently I am testing the AMP against various versions of Alfresco, Community and Enterprise, and database versions and cross-versions (Alfresco running MySQL, Reporting in Postgresql, and all other combinations you can imagine).

Next to that I have to find a way to work around shipping the sample reports. A vendor-neutral way of getting the metadata into the reporting environment is one, getting it out and back into Alfresco is another. SQL is kind of standardized, database functions are not. So getting a month from a date, or a time_diff of two timestamps really is killing cross-database portability of reports. I intend to ship two sets of reports, one against MySQL, another against Postgresql

Soon to be done
A list of stuff to be done is still there. Entries vary. Focus will be mainly Report Execution. I want to get rid of the remaining JavaScript in the area of Report Execution. And, more important, I want to fix the Excel output. Damn versioning issue with Apache POI between Alfresco and Pentaho Reporting… See what can be done in upgrading the Report Designer to a newer thingy. Maybe have a look at the AAAR project and see what can be done.

On the harvesting side I am already started with harvesting workflow tasks. The blunt Harvest-all version is there, just need to include to ‘harvest changes since last successful harvesting run’. And copy the logic to not just harvest workflow tasks, but also processes. Then we’re one step further again!

I look forward to the Alfresco Summit. Lets see if a good chat with my fellow reporting guys results in some nice joint idea’s.