If you have had to manage an ERP system for a company, then you know how difficult it can be to keep track of your customized reports. While you are making changes to a report, you always think that you’ll remember what changes were being made and why. But as time rolls on, month after month, and year after year, the reports in your ERP system can become chaotic.
When was that report changed last? Who requested the change? What changes were made? Was this report even customized or is it the stock report?
Or maybe you need to roll the report back to a prior version, some version in between the original out of the box version and the most current version. Did you save an archived copy of the report every time you made a change?
Report Versions
One of my favorite features in the Acumatica Report Designer program is the ability to save a report as a new version.
When saving a report, all you have to do is click the Save as new version box, then put something in the Version description field:

The Version description field is a good place to put in who requested the change, why the request was made, and what changes were made. Acumatica will automatically track when the report gets saved.
Once you save different versions of a report, they will appear on the Report Versions tab of the report in Acumatica:

As you can see, the Version description field shows up in the Description column and the date that the report was saved shows up in the Created column. I saved all my versions on the same day, so of course all the dates are the same.
Version Description Character Limitation
I wish the Version description field was a little larger so you could enter more information about the version.
But it’s only 50 characters wide. Still, that’s enough room to enter a summarized version of what changes you made.
Activate Prior Versions
It’s very easy to roll back to a prior version. All you need to do is click the row of the version that you want and then click the ACTIVATE button.

Then you will see that the version you selected is now active:

Now, when you run the report, it will use the report definition from the prior version of the report.
My Thoughts
This is a nice feature because it allows you to easily rollback to a prior version. Also, with a prior version active, when you open the report in the Report Designer program, it will open the prior version. Then you could make a change and save the report with a new version or maybe as a new report entirely.
The best part about this is that Acumatica tracks all this for you, without you having to have some kind of source code control software or offline version tracking software running. Everyone is accessing the same central list of reports and report versions without having to do any manual work. And there can only be one active version so no one gets confused.
Some Improvements
Of course it would be nice if the Version description field was longer, maybe 255 characters instead of 50 characters.
It would also be nice to have another column called Requestor so you could track who requested each change. The column could be a lookup to all the Acumatica users. Even if a requestor doesn’t use Acumatica, you could add them as a user without any permissions just to get them in the list. You won’t be penalized since Acumatica allows unlimited users.
Where Info Is Saved
If you’re wondering where the information gets saved in the database, it gets saved in the UserReport table:

(there are also columns LastModifiedByID, LastModifiedByScreenID, and LastModifiedDateTime, but they wouldn’t fit in the screenshot above)
The cool thing is that the actual report definition gets saved in the Xml column so there is no file outside the database that you have to worry about. If you were to save the report using File -> Save As… instead of File -> Save To Server… and then open the file in Notepad, you would see something like this (just the first few lines shown):

Which, as you can see, is the same information that is stored in the Xml column in the UserReport table.