This module adds options for deduplication of exchange records on the exchange type:
- deduplicate_on_exchange: when a record is created, check if older records for the same record are still pending. If so, mark them as obsolete, so only the freshest one is sent or processed. Records without a related record match on the exchange type alone, which suits full-dump payloads where only the latest one matters.
- delete_obsolete_records: Delete records marked as obsolete.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Adds options on EDI exchange types to automatically mark older pending exchange records as obsolete when a newer one is created, and to delete obsolete records via a daily scheduled job.
This module extends the EDI framework so that, for each exchange type, you can decide whether older pending exchange records should be automatically superseded by the newest one.
- On the exchange type form, two new options appear: "Deduplicate on Exchange" and "Delete obsolete records" (the second only shows when the first is enabled). When deduplication is on, creating a new exchange record marks any older records for the same document and exchange type that are still in a pending state as "Obsolete".
- A new "Obsolete" state is added to exchange records. Records can also be flagged with "block obsolescence" so they are never marked obsolete.
- A daily scheduled job ("EDI exchange delete obsolete records") runs on EDI backends and deletes records that are in the obsolete state, if the exchange type allows it.
- The module also keeps a deprecated "Deduplicate on Send" field as an alias of the new option, and validates that the configured record states used for deduplication are valid.
It touches the edi.exchange.record, edi.exchange.type and edi.backend models, and adds fields to the exchange type form view.
Depends on
Models and fields (2)
- edi.exchange.type · extends an existing modeldeduplicate_on_send (Deduplicate on Send), deduplicate_on_exchange (Deduplicate on Exchange), delete_obsolete_records (Delete obsolete records), deduplicate_on_exchange_record_status
- edi.exchange.record · extends an existing modelblock_obsolescence, edi_exchange_state
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 3 confirmed, 6 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/edi-framework.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0Go to "EDI -\> Config -\> Exchange Type".
Enable "Deduplicate on Exchange" option -\> Enable "Delete obsolete records" option.
Usage
Source · Odoo 19.0With all the types that have been enabled "Deduplicate on Exchange" option, this module will check, when a record is created, if older records for the same record (or for the same type, when no record is linked) are still pending. If so, mark them as obsolete (except "block_obsolescence" records). An obsolete record is neither sent nor processed: its job does nothing.
- "block_obsolescence" is an technical option on records to avoid marking them as obsolete.
- You can restrict deduplication to specific exchange states with the technical field "deduplicate_on_exchange_record_status" (comma-separated values from "edi_exchange_state").
With all the types that have been enabled "Delete obsolete records" option, the cron will remove their obsolete records.
- If the records are obsolete, delete them even if their type's flag has been disabled.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.