Things That Should Never Happen
Here's an idea for a Dashboard. The idea is to show things that should never happen.
Corporate Controllers are especially interested in things that should never happen because catching these things as quickly as possible can save a lot of time. Otherwise, you don't catch them until month-end and then no one can remember the story surrounding why it happened.
Now, when it comes to transactions, since you can't change a transaction in Acumatica after it has been released/posted, catching something after it released/posted doesn't help you very much. But you can use this method to try and catch things on documents before transactions get released/posted. Validating Sales Order information is a great example of this.
Of course, customizing a screen to incorporate your specific business rules and prevent the bad data entry from happening is best, but maybe you're too cheap to pay for a customization or it would be too cumbersome to bake all of your rules into the screen, especially if they are a moving target, having a tendency to evolve over time.
Another situation where a Things That Should Never Happen dashboard makes sense is on master records like Vendors. So that's the example I'm going to use in this post.
Let's say you have a rule that, when setting up a Vendor, you want your people to put the Vendor's website in the Web field on the Vendors (AP303000) screen. I mean, who doesn't have a website these days right? Or, if they don't have one, maybe it's ok for your people to put something like "www.NoWebsite.com" in the Web field.
And you want a way to catch when vendors get created without a Web field value without having to customize the Vendors (AP303000) screen.
First, you can take the Vendors (AP3030PL) inquiry that is available in Acumatica 2017 R2 and add the Web field to it. For the sake of time, I won't show how to do this.
Next, you need to create a filter on this inquiry which shows the things that should never happen. I created one called TTSNH, a clever abbreviation:
Make sure you make it a Shared Filter by checking the Shared checkbox in the screenshot above.
Now that you have your Shared Filter in place, you can create your dashboard. I called mine "Things That Should Never Happen":
You can use this one dashboard for everything that should never happen and just keep adding Dashboard Widgets for each individual thing that should never happen.
In the screenshot above, I just added one widget for our Vendors Missing Website example, but you can keep adding more and more "things that should never happen" widgets.
How did I build that widget?
First, click the DESIGN button, then click add a new widget to create your widget:
Then, choose Scorecard KPI and click NEXT, then choose the Vendors inquiry which is located at Hidden -> Primary Lists -> Vendors on the Site Map. For the rest of the information, see this screenshot:
Some notes about the screenshot above:
- We are using the TTSNH Shared Filter that we created earlier. This is what causes the dashboard to only count vendors without websites. Note, in Acumatica 2018 R1, you can do the filter on-the-fly in the Dashboard Widget without having to create the Shared Filter. For more on that, click here and note the screenshot with the FILTER SETTINGS button.
- Our "normal" color is green, but our "alarm" color is red. That means that whenever there are any vendors without a website, the Dashboard Widget will be red. Otherwise it will be green.
The result is a dashboard widget that looks like this:
Yikes! I have 75 vendors without a website. I need to fix that. To see the list of vendors without vendors, just click the number 75 in the screenshot above and it will take you to the TTSNH tab of the Vendors inquiry. Then you can click on a vendor to add their website:
Then add the website to the Vendor:
After you add the website to the Vendor, you can go back to the Dashboard and see that now there are only 74 vendors that need a website added:
I then added a website to all of the vendors that were missing a website (I cheated and used an Import Scenario). The end result is that there are no more vendors that need a website added. Because the number in the widget is now 0, the widget turns green like this:
Last thing. Find someone why cares a lot about catching these Things That Should Not Happen (likely the corporate controller) and make this dashboard their homepage so it's the first thing they see when they login in the morning.
Wait, just thought of another thing. Sometimes you can't catch things that should never happen by building a Generic Inquiry the normal way. If this is the case, you can build a SQL View which allows you to do more advanced things like use subqueries in your WHERE clause. Then you can make the Generic Inquiry using the SQL View and build your Dashboard Widget on top of it like normal. Also, don't forget that you can push SQL Views into Acumatica using Customization Projects which is needed for Acumatica SaaS customers.
Congratulations! You just took a major step towards keeping your Acumatica data clean.
I did something similar. If you are using email or Exchange integration, you want to monitor and make sure the system is properly processing all emails. Having a bunch of pending emails falls into the TTSNH category.
Monitoring for unprocessed emails requires you to watch the SMEmail table. I filtered on the MPStatus field, looking for "Failed" or "Pending Processing" messages. The query lists those that qualify.
Following the same steps you outlined above, I created a dashboard widget that shows the number of pending emails. By adding a link to screen CO409070 - All Emails, you are able to drill down into each pending message and process it manually.
Not fancy but it gets the job done. Nothing erodes confidence in the users of a system like not having safeguards built in to protect from accidents or processing failures.
We just got onto the Automated Notifications train and finally solved how to monitor failed emails. You can setup an email to notify you (or others) when an email hits "failed status". Just thought I'd mention it, because it has plagued me for 2 years. Now I have to 2 options to use. Thanks Shawn/Tim!
Nice solution. Here is the Tech Tuesday article that @shawn-slavin mentioned which uses the new Business Events feature:
Business Events is better than Automation Notifications in my opinion because it's built on Generic Inquiries which are a lot more flexible, but it's only available in Acumatica 2018 R1 or later. Here is another post that I wrote on Business Events: