| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 4828 |
| Technical Name |
docuware_masterdata |
| License | LGPL-3 |
| Website | https://www.codebar.ch |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 4828 |
| Technical Name |
docuware_masterdata |
| License | LGPL-3 |
| Website | https://www.codebar.ch |
DocuWare Master Data
Push Odoo master and reference data into DocuWare data-record cabinets.
codebar Solutions AG
DocuWare Master Data keeps your DocuWare cabinet dropdowns aligned with Odoo’s source-of-truth lists. The administrator points the module at any Odoo model, picks a cabinet, and defines the field-by-field mapping per target — no code-based mapping registry. Three sync strategies cover everything from one-shot exports to a fully mirrored cabinet. Default sync targets are seeded (inactive) for Contacts and, when the Accounting app is installed, for Chart of Accounts, Taxes and Journals.
Includes one year of updates and helpdesk@codebar.ch support. Requires DW Authentication (free).
At a glance
- Push contacts, accounts, taxes, journals or any non-transient Odoo model.
- Field-by-field mapping in the UI — no Python, no XML, no code-based registry.
- Three sync strategies: full dump, incremental upsert (default), and incremental mirror with deletes.
- Composite JSON keys keep multi-company and multi-tenant deployments collision-free.
- Filter domain restricts which Odoo records get pushed.
- Disabled-by-default cron and seeded targets — nothing leaves Odoo until you flip it on.
Who this is for
- DocuWare administrators who want their cabinet dropdowns and lookups to match Odoo’s current data.
- Companies installing DW Accounting Import who need VAT, account-code and tax lookups to resolve cleanly during import.
- Multi-company or multi-tenant deployments that share a DocuWare cabinet and need collision-free record keys.
- Operations teams replacing fragile manual exports with a configurable, audited push.
Key features
Any Odoo model as a sync source
Targets are not hard-coded. Pre-seeded defaults (inactive) cover Contacts and — when the Accounting app is installed — Chart of Accounts, Taxes and Journals. You can also create a target for any other non-transient Odoo model and push it the same way.
Three sync strategies
full_dump, incremental_upsert (default)
and incremental_mirror — pick the right
trade-off between speed, completeness and authoritative
deletes per target. See Strategies below for details.
Composite record keys
Tick one or more mapping rows as Identifier;
their values are JSON-encoded into the DocuWare record key
(e.g. {"VAT": "DE123â¦", "COUNTRY": "DE"}). Mix
record, company, user
and database sources to keep multiple Odoo
tenants or companies sharing one cabinet collision-free.
Filter domain with a help wizard
Restrict each target’s scope with a standard Odoo domain
(e.g. [('company_id', '=', 3), ('active', '=', True)]).
A built-in help wizard guides domain construction; the syntax
is validated on save.
Per-record error isolation & self-healing
A failed record does not abort the run. Errors are captured per record on the link table; on the next incremental run, any link still in error state is retried automatically — transient 5xx’s, deleted DocuWare docs, schema mismatches heal themselves over time.
Disabled by default
The daily cron and the seeded default sync targets are inactive on install. An administrator must explicitly configure each target and tick Active before any data leaves Odoo. Mirror mode also aborts if the filter domain matches zero records on the first pass — a safety guard against accidental mass-deletion.
How it works
-
Configure a connection in
DocuWare → Connections
(provided by
docuware_authentication). -
Open DocuWare → Sync Targets. Default targets
are pre-seeded (inactive) for Contacts
(
res.partner) and — when the Accounting app is installed — for Chart of Accounts (account.account), Taxes (account.tax) and Journals (account.journal). You can also create a target for any other non-transient model. - On each target, set the DocuWare connection, pick the file cabinet from the dropdown (the list is populated by clicking Sync on the connection, which caches cabinets and their index-field schemas), define the field mapping with at least one row ticked as Identifier, choose a strategy, and refine the filter domain if needed.
-
Tick Active and click
Run sync now. With OCA
queue_jobinstalled, the job runs asynchronously on theroot.docuwarechannel; without it, the call runs inline in the request thread. - Watch DocuWare → Sync Log for results, and use the Synced records button on each target to drill down per record.
The DocuWare connector family
Three modules from codebar Solutions AG, designed to layer. You are looking at the outbound half — pushing Odoo’s source-of-truth lists into DocuWare so cabinet dropdowns and lookups stay aligned.
| Module | Direction | Role |
|---|---|---|
| DW Authentication | Foundation | OAuth, REST client, audit log, shared schema cache. |
| DW Master Data — you are here | Odoo → DocuWare | Push contacts, accounts, taxes & any Odoo model as indexed records. |
| DW Accounting Import | DocuWare → Odoo | Create vendor bills & credit notes from DocuWare documents. |
Scope — what this module does and doesn’t do
This module is a unidirectional metadata connector. It pushes Odoo records into DocuWare as indexed data records. It does not pull anything back, and it does not handle files.
- Outbound only. Data flows Odoo → DocuWare. For the reverse direction — creating Odoo records from DocuWare documents — install DW Accounting Import.
- Metadata only, no PDFs or attachments. Index fields, dates, numbers and strings are pushed; binary files, images and email bodies are not. DocuWare’s own capture workflows handle file ingestion upstream.
- One cabinet per target. Each sync target points to one DocuWare cabinet. Fan-out across multiple cabinets uses multiple targets — not composite mappings.
-
Deletes only in mirror mode.
incremental_upsertandfull_dumpnever delete from DocuWare when an Odoo record disappears. Onlyincremental_mirrorremoves orphans, and only after a successful upsert pass. - Mirror mode aborts on empty domain. If the filter domain matches zero Odoo records on the first pass, the run stops with an error rather than wiping the cabinet.
- No invoice push. While Chart of Accounts, Taxes and Journals are seeded targets, vendor bills, customer invoices and other transactional documents are out of scope.
Strategies
full_dump
Re-pushes every matching record on every run; also wipes tenant-scoped orphans before re-uploading. No deletes for records that disappear from Odoo between runs. Use for small datasets or periodic full resets.
incremental_upsert
Pushes new and changed records (by write_date)
plus retries any record stuck in error state. No deletes.
Safe and fast — the recommended default.
incremental_mirror
Upsert plus deletes in DocuWare for records no longer matched by the filter domain. The form shows a warning banner when this strategy is active and aborts on an empty domain pass. Use with care.
Requirements
- Odoo: 19.0
-
Odoo modules:
docuware_authentication(pulled in automatically) with a working DocuWare connection. The Accounting app (account) is optional — install it to unlock the Chart of Accounts, Taxes and Journals seeded targets. - A DocuWare tenant with one or more data-record file cabinets, exposing the index fields you intend to map.
- Optional: OCA queue_job with a running worker for asynchronous sync execution. Without it, syncs run inline in the request thread — fine for small deployments; use it for high-volume workloads.
Permissions
-
docuware_masterdata.group_docuware_masterdata— full CRUD on sync targets and field mappings; read access on connections, links and the sync log. Members can configure and run master-data syncs without the DocuWare Authentication group. -
The synced model is read with the configuring user’s
record rules — a sync never pushes records they could
not read. Link, log and token writes use
sudo(), so the user does not need write access on those internal tables. - Company isolation rules restrict each user to targets and links from their own company.
Privacy & telemetry
Telemetry is off by default and is configured once on DW Authentication (the connector family shares a single telemetry surface). This module forwards no additional data of its own; with no DSN configured, nothing is sent.
See the DW Authentication description for the full privacy and telemetry details.
Setup walkthrough
Open sync targets, configure the cabinet and field mapping, run a
sync, and review the log. Ensure docuware_authentication
is connected first.
Sync targets
DocuWare → Sync Targets — seeded defaults (inactive) plus any custom model targets.
Target configuration
Connection, cabinet, identifiers, mapping, strategy and domain.
Run sync
Activate the target and use Run sync now.
Connections
DocuWare → Connections (from
docuware_authentication).
Sync log
DocuWare → Sync Log for run results.
License & support
Released under LGPL-3.0-or-later .
Built and maintained by codebar Solutions AG. Support: helpdesk@codebar.ch.
Privacy: see codebar.ch for our data protection notice.
Please log in to comment on this module