Blog Post

Troy Touts the Top Troubleshooting Transactions to Try in Acumatica

Published on

August 1, 2019

Troy Vars

Suggested Articles

Today I want to introduce a few transactions in Acumatica that don’t get a lot of coverage in training sessions. Some of these where refined and renamed as of Acumatica 2019R1. We will introduce the new features as well as give some pointers on how you might use them.

These transactions can be very powerful and really save your bacon when hunting down information; if you know where they are and how one might use them.

Number 5 – Access History

Modern UI Path – User Security  =>Inquiries => Access History (SM201045)

Access History logs some critical information for us. "Log in", "log off", "failed logins" and "session expired" information is captured here.  Filter by username and/or a date range and select your operation.

A couple quick clicks or excel downloads and you can get yourself a series of reports. Like who is logging on but closing their browser without logging off; whose session is expiring and after how long they have been timed out and which users can’t remember passwords or if nefarious individuals are trying to guess those passwords. Included is the handy dandy IP address of where those attempts are coming from.

On top of that some additional information is logged here that can really come in handy. 

Did you unpublish your customizations and forget which ones where published before you did that crucial upgrade? That’s logged here as well. Does someone keep unpublishing a customization for some reason and you want to find out who?

Trying to figure out who is kicking you out of test environment or why your licenses are being exceeded or consumed? Yep. That info is here, too.

A bunch of emails are not sending due to bad addresses on one off notifications. The success and failures of who initiated those emails are right at your finger-tips.

Image of Access History Screen Layout

Want to know who the last person was to consume OData from a generic inquiry before you shut it off and potentially break some Executives excel dashboard that they need for a Sales Meeting happening now? Check here first and you won’t have egg on your face.

Number 4 – Space Usage

Modern UI Path – System Management => System Maintenance => Space Usage (SM203525)

Ever wanted to know how much space all those beautiful images of your products are taking? Getting database size warnings from your IT department or SAS provider? Time to do some data cleanup or email archiving but don’t know where to start?

Space usage is the place. It calculates your data usage across all your tenants and breaks the information into some handy levels.

First off is the Tenant view. This view gives a breakdown of usage by tenant. If the testing or training tenant is larger than the production tenant, we definitely have a problem. With any tenant selected click on the View Tables button and get a quick view of just that tenants table size.

Space Usage report dialog in Acumatica
Acumatica Space Usage tables Tab

Next is the Snapshots tab. This tab shows all the snapshots that have been generated and how much space they are consuming. Snapshots are handy for backing up data on the fly or for exporting and restoring data later. Keep in mind your IT department or SAS provider may be taking nightly back-ups as well, so these snapshots may be redundant. If in doubt, check with the creator or your Acumatica Partner before deleting one.

Used space by tenants and snapshots
Figure 3. All records in APAdjust belong to the Company Tenant.

Finally, is the Tables tab. This tab shows you the size of the table for all tenants. The button here allows you to get a filtered down view of just the one table by each tenant. In Figure 3 all 1561 records in APAdjust belong to the Company Tenant. Any snapshots containing data will also show here just with the SnapShot type.

Number 3 – System Monitor

Modern UI Path – System Management => System Health Monitoring => System Monitor (SM201530)

This bad boy is all about monitoring running processes, like scheduled jobs, active users and system resources. Replacing the Running Processes form starting with 2019R1 it brings enhanced functionality with it.

Running Process tab is all about monitoring long run tasks and being able to view the screen, abort the job or view the active threads tied to it.  This with the new Resource Usage tab, gives System Admins access to the “Task Manager” of Acumatica. 

Active Users tab lets you focus in on who is logged on and how long they have been there. Really handy for tracking down pesky timeout problems or watching to make sure API’s are logging off when they are supposed to.

Acumatica system monitor resource usage


Number 2 – Request Profiler 

Modern UI Path – System Management => System Health Monitoring => Request Profiler (SM205070)

No top 10 list could be complete without the Request Profiler covered extensively during the Acumatica Developers Virtual conference in 2017. The videos are available on-line still https://www.acumatica.com/acumatica-virtual-developer-conference/y2017/ by request.  The Day 1 11:00 presentation by Sergey Marenich is worth the watch if you are doing any kind of debugging or performance testing of Acumatica.

IF NOT, you can still get benefit from this tool.  The main function of the tool is to allow the Admin to setup a series of logs that will be captured depending on the criteria selected. You can view the SQL transactions going to the database, set up trace messages for a specific user and log exceptions happening in the system. Thus when an user reports a problem start a trace log, have them recreate the problem and the trace log is captured by the system. You can then review the events leading up to the error.

In the example below (Figure 7) the system tracks me going to the Generic Inquiry Entry screen for AR Invoices. I navigate to a specific Invoice and open it by ref number. I then make a data change and save it causing an error.

acumatica request profiler
acumatica trace tab

Pressing the Trace Button opens another dialog showing me the detailed error message. In this case Customer Location ID is not found. I could use the pencil button to expand this further if the message was longer than the display window.

acumatica trace profier

Pressing the SQL Button shows the SQL data that was transmitted for the line I currently have highlighted, in this case the Save Operation that thru the error. Looking at the Location table due to my error message and noting that the row count = 0, a good indicator that the database table did not contain my record. I can drill into this line further with the pencil.

The SQL Profiler detail reveals that Parameter 1 (P1) was input by the user as MAI. Scrolling down shows me that P1 is used in the where clause as Customer Location ID. Long story short the Location doesn’t exist. This is a super simple example but should show the wealth of information that can be obtained by using this tool.

SQL Profiler in Acumatica

Number 1 – DB Structure Explorer

Modern UI Path – None can only be reached from editing the browser SM402000


UI path


A best kept secret from the developer world, the DB Structure explorer is ideal for anyone writing Generic Inquires to hardcore developers that want to understand Acumatica under the hood. This transaction helps you to understand the relationships between Data Access Classes (DACs) and the underlying table structure. Further it helps you understand how the Tables relate to one another and what the Primary Keys are.

Acumatica Checks and Payments

Coupled with the old CTRL-ALT Click trick of displaying the underlying field name and DAC (read table), this transaction helps us understand how things are connected. This can also be accessed from the customization menu under Inspect Element.

In the pictured examples we can see that the Checks and Payment screen AR302000 uses our old friend APAdjust DAC to record the application history of which Bills were paid by which checks. Further the outgoing References tab of the DB Structure Explorer tells us that APAdjust is child to both APInvoice and APPayment. This means that is the joining or cross-reference table for these documents. 

If I wanted to build a Generic Inquiry cross referencing APInvoice with APPayment I would do so by linking the child key fields to the parent key fields as displayed. Therefore, adjdDocType from APAdjust would link to APInvoice DocType. Likewise, adjgDocType would link to APPayment DocType like it does in the Generic Inquiry example pictured in Figure 13. Note: the adjD and adjG predecessors.

acumatica accounts payable payment records
Acumatica Merged database structure dialog
Acumatica accounts payable adjusting outgoing references
Figure 13.

For this and a lot more of amazing information about Acumatica or our other software solutions, contact our team or take a look at our Tech Knowledgy videos for how-to's, tutorials, demos, and more. We're here to help your business succeed.

Photo by ANIRUDH L on Unsplash


Written By