(Y)et (A)nother (R)eporting (T)ool
Updated: Oct 2, 2020
....it seems like making quick, sharable, easy, dynamic reports should be a solved problem. Yet, it isn't. Until now.
Recently we've been talking more about our new reporting tool, infomaptic. I'd like to take a few minutes to explain what it is and why we built it. I'm sure that at least some of you are thinking things like:
yart!? ¹, why would you build this?
there are so many of these, another one?
I thought you were making a programming language, what happened to that? ²
are you a custom development company or a software company?
I'll start with a little background. There are three primary reasons that got us here:
While doing custom development work we were continuously asked to make tools that exported a pdf or html report "just so"
There's always some little bit of processing or formatting or something to do when making reports
Sometimes you need a way to quickly report on some data or attributes
I got tired of writing the same code for multiple clients
Well, that's four items (a classic Christopher move); I guess you got one for free.
What is it?
It's a tool that allows you to design a template that can be applied to any record in an associated Esri Feature or Map Service which can then be used to generate an html or pdf document. It can handle things like related records, graphs, charts and maps, but for now we are focusing on simple reports that show attributes, static text and images. We took it a step further by adding a scripting language behind it so that you can change the data or even alter the look of the report with simple expressions. With this language (that we call atelerix) it should be easy to do things like display the year from a date field:
It may sound simple, but combining a simple template layout engine with a scripting language that's custom made to transform data creates a very powerful reporting tool that is simple to use and can grow with your reporting needs.
The need for a reporting tool
Dymaptic has been around for four years now! It has been an exciting time with its ups and downs, but one ³ constant has been clients asking us to build a report for this or a PDF for that. There are plenty of tools out there (and we've now used several trying to find solutions for our clients), but none that were cost effective or flexible enough to do what we needed. Also, there are very few that can connect directly to an ArcGIS Feature or Map Service and load that data into a report.
So about a year ago we started working on a backend engine that could convert a JSON configuration file to an HTML page using a very simple grid layout. We've used it both internally and on client projects and it has come a long way! It can now not only do simple data output, but graphs, charts, maps, and ArcGIS attachments from either SQL databases or ArcGIS Services. It proved to be so powerful that we felt we needed to add a UI to design the reports and let folks start using it on their own.
That little bit of tweaking
Data isn't perfect and every time I build a report I realize that again. I want the date formatted differently or this value converted to camel case instead of upper case or even something more complex like buffering a point on a map.
I don't want to keep adding more columns or more feature services that required a python script to be executed to generate them. That seems old fashioned in today's world of on-demand-everything! While we were working on the reporting tool backend I was also tinkering with the idea of building a very light weight scripting language to generate data on the fly (that's probably worth an entire blog post on its own). It was the combination of these things that got me thinking that the scripting language should be built right into infomaptic!
The rest is history, as they say. We now have a pretty great reporting tool (we are even using it internally to report on our own hours, projects, vacation, etc.) that's powered by a very light scripting language that gives the report so much flexibility!
I'm really excited to start sharing this tool with you in the coming weeks and months as we officially launch infomaptic!
1. I'll admit that YART (Yet Another Reporting Tool) is a catchy name, but I didn't think of it until now, which is way after we decided to call it infomaptic.
2. It's still here! It's called Atelerix and it powers a lot of the flexibility of infomaptic. More on it soon!
3. Not strange in a bad way, but strange in that it seems like making quick sharable, easy, dynamic reports should be a solved problem already!