Skip to main content
Question

How to handle deletes in Acumatica

  • June 4, 2026
  • 2 replies
  • 72 views

For building an ETL pipeline to warehouse Acumatica data, are there any approaches to detect deleted records besides the traditional primary key comparison method?

2 replies

Forum|alt.badge.img+2

Hi ​@PradheepPrabhakaran 

 

If you are using Acumatica 2025 R1 or later, you could try the following (see the section on ‘Tracking Removed Records for Synchronization’):

https://help.acumatica.com/Help?ScreenId=ShowWiki&pageid=27f3a57a-0def-48ad-ba80-3ab664a98fde

 

This will only return the NoteID field for each deleted record though.

 

If you need something more real-time rather than on demand, you could also try Push Notifications:

https://help.acumatica.com/Help?ScreenId=ShowWiki&pageid=d8d2835f-5450-4b83-852e-dbadd76a5af8


harutyungevorgyan
Jr Varsity I
Forum|alt.badge.img+4

Hi ​@PradheepPrabhakaran ,

There is no single mechanism that covers every table.

Detection options (choose by version and table):

  1. Tracked removed records (2025 R1+). As @stephenbologna39 said, this returns only the NoteID of each deleted record. Key your warehouse rows on NoteID for the tables where you use it.
  2. Preserved deleted records. For tables that keep the DeletedDatabaseRecordsoft-delete flag  (or where you add the soft-delete column through a customisation), a GI with Show Deleted Records can return them. DAC-based OData v4 filters them out. Deleted rows then stay in the table, so check for table growth.
  3. Push notifications per entity GI. A delete shows up as a row in Deleted that has no matching key in Inserted within the same message. Write those rows to a tombstone staging table. De-duplicate on the message Id. Failed messages are kept for only two days, so this layer needs the reconciliation below.
  4. Your own tombstone table. This is version-independent and works for any graph that deletes through the cache. Attach an attribute to the entity's NoteID through a DAC extension with [PXMergeAttributes], and expose the log table through OData.