Salto for
NetSuite
Articles
SHARE
Sonny Spencer, BFP, ACA
June 11, 2023
5
min read
About Salto: Salto's platform helps you and your team deploy, track, and manage your NetSuite customizations effortlessly. Learn more here.
Deleting transaction records in NetSuite is certainly not a new concept. A user with the “Full” role permission for a given record type has the ability to delete records of that same type. In theory, if you have granted end users in your NetSuite environment the freedom to delete transaction records it is reasonable to assume that they will do so. As such, it is generally recommended that user role permissions are limited to the “Edit” level.
Salto Tip: Ensure that you have “Deletion Reason” enabled in your NetSuite environment. This will force users who wish to delete a particular record to provide the reason why they are deleting the record.
To enable this feature, navigate: Setup -> Company -> Enable Features -> Company -> Use Deletion Reason.
So now when a NetSuite transaction record is deleted from the system, you will know why. But what if a NetSuite transaction record is deleted automatically by the system without any user intervention?
In this blog we will explore some of the common use cases where NetSuite will automatically delete a transaction record in the system. It is essential for NetSuite Administrators to understand these use cases, so they are in a position to explain to both end users and auditors when questioned on missing transaction numbers. We will also explore the reporting available in NetSuite to track such transactions.
The first use case to consider is when a journal entry is posted to NetSuite with a reversal date. When posted, NetSuite will automatically create the reversing journal entry and link it to the original journal entry. If a user subsequently modifies the original journal entry and removes the reversal date, the corresponding reversing journal entry will be automatically deleted by NetSuite.
The good news here is that if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will automatically capture the deletion reason memo as “Reversal date removed”, which can then be reported on.
This use case makes logical sense - if you remove the reversing entry from the original journal entry, the reversing entry will be deleted. The next examples are not so obvious.
The next use case is centered all around foreign currency - specifically on realized gains/losses on transactions. Let’s consider a scenario where we receive a payment for an invoice in a currency that differs from our functional currency of USD:
When the payment is applied, NetSuite will create a currency revaluation record to recognize the realized loss of USD 22.00 [(1.12 - 1.098) * 1,000].
If in the same (open) accounting period you realize this payment was applied to the wrong invoice, you are able to modify the payment application and apply to the correct invoice.
NetSuite will automatically delete the previously created currency revaluation record for USD 22.00 and replace with a new currency revaluation record for USD 10.00 [(1.12 - 1.1) * 1,000].
Unfortunately, even if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will not capture any value for the deletion reason memo. That said, you are still able to report on this deleted transaction.
For additional details refer to SuiteAnswer 82643 Currency Revaluation Transactions: Realized Gain/Loss
Another use case to consider is when running the period close checklist - specifically when running the “Eliminate Intercompany Transactions” task.
There will be occasions where you run this particular period close task and then need to run it again. Perhaps an advanced intercompany journal entry was posted with errors or the accounting period was reopened to allow for additional entries to be posted. Regardless of the reason, any time this period close task is re-run, the previous elimination journal entries will be automatically deleted and replaced with new elimination journal entries. This will result in gaps in your journal entry number sequencing.
The good news here is that if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will automatically capture the deletion reason memo as “This transaction was deleted by script or web service”, which can then be reported on. This does not point directly to the journal entries being deleted when re-running the elimination process, so this is something you will want to be aware of.
For additional details refer to SuiteAnswer 63051 Processed Intercompany Elimination Record: The Processed Records page
Fortunately, NetSuite offers several reporting options to capture deleted transactions in the system.
View Audit Trail
Navigate: Transactions -> Management -> View Audit Trail
On the resulting screen, select the “Action” as “Delete”, then adjust the other report criteria as necessary. Click on “Submit”
The downside of using this particular report is that the results cannot be customized, so the report columns displayed are the only ones available.
Transaction Numbering Audit Log
Navigate: Transactions -> Management -> Transaction Numbering Audit Log
This particular reporting feature is a saved search, so it can be customized. As such, it has the added benefit of additional columns in the results, e.g. “Deletion Reason Memo”.
This is a great report to use to quickly obtain details about transaction records that have been deleted in the system.
Deleted Record Saved Search
Alternatively, if you are looking to report on a broader population of deleted records in the system (not just deleted transaction records), you should create a “Deleted Record” saved search. The saved search results will capture the deletion of folders and files in addition to entity and transaction records.
As this is a saved search, you can set up a dashboard reminder to capture the number of deleted records over a given period of time to monitor how frequently users are deleting records in NetSuite. It could help to catch unexpected activity that requires a review of user role permissions.
The downside of this particular saved search is that the number of fields available to report on are limited.
NetSuite Administrators need to be aware of common use cases where NetSuite will automatically delete transaction records in the system. Missing transaction numbers will typically raise concerns during an audit, so be prepared with your audit trail/audit log reporting to justify the missing records.
Don’t forget, the best way to reduce the number of transactions deleted in your NetSuite environment is to lock down user role permissions; only grant “Full” level permission when it is essential!
Salto for
NetSuite
NetSuite
SHARE
Sonny Spencer, BFP, ACA
June 11, 2023
5
min read
About Salto: Salto's platform helps you and your team deploy, track, and manage your NetSuite customizations effortlessly. Learn more here.
Deleting transaction records in NetSuite is certainly not a new concept. A user with the “Full” role permission for a given record type has the ability to delete records of that same type. In theory, if you have granted end users in your NetSuite environment the freedom to delete transaction records it is reasonable to assume that they will do so. As such, it is generally recommended that user role permissions are limited to the “Edit” level.
Salto Tip: Ensure that you have “Deletion Reason” enabled in your NetSuite environment. This will force users who wish to delete a particular record to provide the reason why they are deleting the record.
To enable this feature, navigate: Setup -> Company -> Enable Features -> Company -> Use Deletion Reason.
So now when a NetSuite transaction record is deleted from the system, you will know why. But what if a NetSuite transaction record is deleted automatically by the system without any user intervention?
In this blog we will explore some of the common use cases where NetSuite will automatically delete a transaction record in the system. It is essential for NetSuite Administrators to understand these use cases, so they are in a position to explain to both end users and auditors when questioned on missing transaction numbers. We will also explore the reporting available in NetSuite to track such transactions.
The first use case to consider is when a journal entry is posted to NetSuite with a reversal date. When posted, NetSuite will automatically create the reversing journal entry and link it to the original journal entry. If a user subsequently modifies the original journal entry and removes the reversal date, the corresponding reversing journal entry will be automatically deleted by NetSuite.
The good news here is that if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will automatically capture the deletion reason memo as “Reversal date removed”, which can then be reported on.
This use case makes logical sense - if you remove the reversing entry from the original journal entry, the reversing entry will be deleted. The next examples are not so obvious.
The next use case is centered all around foreign currency - specifically on realized gains/losses on transactions. Let’s consider a scenario where we receive a payment for an invoice in a currency that differs from our functional currency of USD:
When the payment is applied, NetSuite will create a currency revaluation record to recognize the realized loss of USD 22.00 [(1.12 - 1.098) * 1,000].
If in the same (open) accounting period you realize this payment was applied to the wrong invoice, you are able to modify the payment application and apply to the correct invoice.
NetSuite will automatically delete the previously created currency revaluation record for USD 22.00 and replace with a new currency revaluation record for USD 10.00 [(1.12 - 1.1) * 1,000].
Unfortunately, even if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will not capture any value for the deletion reason memo. That said, you are still able to report on this deleted transaction.
For additional details refer to SuiteAnswer 82643 Currency Revaluation Transactions: Realized Gain/Loss
Another use case to consider is when running the period close checklist - specifically when running the “Eliminate Intercompany Transactions” task.
There will be occasions where you run this particular period close task and then need to run it again. Perhaps an advanced intercompany journal entry was posted with errors or the accounting period was reopened to allow for additional entries to be posted. Regardless of the reason, any time this period close task is re-run, the previous elimination journal entries will be automatically deleted and replaced with new elimination journal entries. This will result in gaps in your journal entry number sequencing.
The good news here is that if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will automatically capture the deletion reason memo as “This transaction was deleted by script or web service”, which can then be reported on. This does not point directly to the journal entries being deleted when re-running the elimination process, so this is something you will want to be aware of.
For additional details refer to SuiteAnswer 63051 Processed Intercompany Elimination Record: The Processed Records page
Fortunately, NetSuite offers several reporting options to capture deleted transactions in the system.
View Audit Trail
Navigate: Transactions -> Management -> View Audit Trail
On the resulting screen, select the “Action” as “Delete”, then adjust the other report criteria as necessary. Click on “Submit”
The downside of using this particular report is that the results cannot be customized, so the report columns displayed are the only ones available.
Transaction Numbering Audit Log
Navigate: Transactions -> Management -> Transaction Numbering Audit Log
This particular reporting feature is a saved search, so it can be customized. As such, it has the added benefit of additional columns in the results, e.g. “Deletion Reason Memo”.
This is a great report to use to quickly obtain details about transaction records that have been deleted in the system.
Deleted Record Saved Search
Alternatively, if you are looking to report on a broader population of deleted records in the system (not just deleted transaction records), you should create a “Deleted Record” saved search. The saved search results will capture the deletion of folders and files in addition to entity and transaction records.
As this is a saved search, you can set up a dashboard reminder to capture the number of deleted records over a given period of time to monitor how frequently users are deleting records in NetSuite. It could help to catch unexpected activity that requires a review of user role permissions.
The downside of this particular saved search is that the number of fields available to report on are limited.
NetSuite Administrators need to be aware of common use cases where NetSuite will automatically delete transaction records in the system. Missing transaction numbers will typically raise concerns during an audit, so be prepared with your audit trail/audit log reporting to justify the missing records.
Don’t forget, the best way to reduce the number of transactions deleted in your NetSuite environment is to lock down user role permissions; only grant “Full” level permission when it is essential!