ERP migration
Field-level mapping, validation, and rollback between VIENNA Advantage and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
VIENNA Advantage
Source
Odoo ERP
Destination
Compatibility
9 of 12
objects map 1:1 between VIENNA Advantage and Odoo ERP.
Complexity
BStandard
Timeline
5-7 weeks
Overview
Moving from VIENNA Advantage to Odoo ERP is a cross-platform schema migration with three structural complications: the Business Partner entity in VIENNA Advantage covers customers, vendors, and employees as one record type, while Odoo separates these into Contacts, Suppliers, and Employees with a dedicated HR app; there is no documented public API for VIENNA Advantage, so we extract via direct database access with strict tenant-ID filtering on every table join; and DMS-stored documents require path reconstruction and manual re-association to their parent records in Odoo's document management system. We sequence the migration in dependency order starting with Chart of Accounts and Products, then Business Partner splitting, then Orders, then Invoices and Payments, then GL Journal entries in fiscal-period chunks, then Inventory and Projects. Workflow automation rules, Canvas-based custom module extensions, and document versioning metadata do not migrate; we deliver a Workflow Reconstruction Handbook and a Custom Field Schema Map for the destination implementation team. We do not rebuild workflows, automations, or forms inside the migration scope.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a VIENNA Advantage object lands in Odoo ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
VIENNA Advantage
Business Partner
Odoo ERP
Contact + Supplier + Employee (split required)
1:manyVIENNA Advantage Business Partners unify customers, vendors, and employees under a single record type with a BP Type field (Customer, Vendor, or Employee) determining the entity role. We split each Business Partner into an Odoo Contact (if Customer), a Supplier record (if Vendor), or an Employee record in the Odoo HR app (if Employee). The split is computed using the c_bp_type or equivalent column from the source schema, with the original BP name, address, tax ID, and payment terms carried across each derived record. The original VIENNA Advantage Business Partner ID is preserved in a custom field va_bp_id__c for audit traceability.
VIENNA Advantage
Product / Item
Odoo ERP
Product Template + Product Variant
1:1VIENNA Advantage Products map to Odoo Product Template records. Standard fields (name, SKU, UOM, category, cost price, sale price) transfer directly. BOM-linked manufactured items require additional mapping: Odoo distinguishes between product type (stockable, consumable, service) and requires a BoM record to be created for each manufactured item. Product variants (size, colour) in VIENNA Advantage map to Odoo Product Attribute and Variant lines on the Product Template.
VIENNA Advantage
Sales Order / Purchase Order
Odoo ERP
Sale Order + Purchase Order
1:1VIENNA Advantage Sales Orders map to Odoo Sale Order; Purchase Orders map to Odoo Purchase Order. Order headers (partner reference, date, payment terms, incoterms) transfer directly. Order lines map product, quantity, UoM, unit price, discount, and tax from the VA order line schema. Status mapping (Quotation, Quotation Sent, Sales Order, Done, Cancelled) aligns with Odoo's sale order states. Warehouse assignment on VA lines maps to Odoo's picking policy on the sale order.
VIENNA Advantage
AR/AP Invoice
Odoo ERP
Account Move (Invoice/Bill)
1:1VIENNA Advantage Accounts Receivable and Accounts Payable invoices map to Odoo Account Move with move_type = out_invoice (for AR) or in_invoice (for AP). The partner_id, invoice_date, invoice_number, and line-level account, debit/credit amounts, and tax transfer. Payment state in Odoo (in_payment, paid, partial) is computed post-import by matching the VA payment records. Open invoices versus posted/voided status must be preserved so that Odoo calculates correct outstanding balances on day one.
VIENNA Advantage
Payment Record
Odoo ERP
Account Payment
1:1VIENNA Advantage Payment records map to Odoo Account Payment, linked to the reconciled Account Move via reconcile_model_id. Payment method (cash, bank transfer, cheque) maps to Odoo's journal, payment_method_line, and amount. Partial payment versus full payment is preserved via the amount field. The reconciliation link between Payment and Invoice is reconstructed by matching VA's invoice_number or payment_reference to the Odoo Account Move reference.
VIENNA Advantage
GL Journal Entry
Odoo ERP
Account Move (Journal Entry)
1:1VIENNA Advantage General Ledger journal entries map to Odoo Account Move with move_type = entry. We chunk journal extraction by fiscal period to avoid oversized API payloads and to preserve Odoo's fiscal lock mechanism. Each journal entry line carries account code, debit, credit, and dimension tags (cost centre, project) which map to Odoo's analytic account if configured. VA dimension labels are captured and documented for the Odoo implementation team to map to the correct analytic account structure in Odoo.
VIENNA Advantage
Chart of Accounts
Odoo ERP
Account Chart Template + Account
1:1The VIENNA Advantage chart of accounts (COA) maps to Odoo's account.account table. We extract account code, name, account_type (asset, liability, equity, income, expense), and reconcile flag. The VA account structure is loaded into Odoo before any journal entries or invoices so that all move lines reference valid account IDs. If VA uses a non-standard COA, we generate the accounts in Odoo using the country-specific COA template as a baseline and patch mismatches.
VIENNA Advantage
Warehouse / Inventory Record
Odoo ERP
Inventory Move + Product Quantity
1:1VIENNA Advantage warehouse-level stock records (on-hand quantity, reorder point, locator, expiration date) map to Odoo's stock.quant table for current quantities and stock.location records per warehouse site. We extract the VA warehouse name, code, and address to create matching Odoo stock.location records with location_type = internal. On-hand quantities per product per warehouse import as stock.quant entries. Open and confirmed picking orders in VA map to Odoo stock.picking records with the corresponding picking_type.
VIENNA Advantage
Project and Task
Odoo ERP
Project + Task
1:1VIENNA Advantage Projects map to Odoo Project records. Phases, assigned resources, billing rules (billable vs. non-billable), and time entries transfer. Sub-task hierarchies in VA map to Odoo Task with parent_id set. Billable flags map to Odoo's sale_line_id on Project if the customer uses Odoo's billing integration with Sales. We preserve the original VA project code in a custom field va_project_id__c.
VIENNA Advantage
DMS Document
Odoo ERP
IrAttachment (linked to record)
lossyVIENNA Advantage DMS documents (binary files, version history, folder metadata) require a separate extraction pipeline. We extract binary files and the parent record metadata (BP ID, Order ID, Project ID) from the DMS schema, then re-associate each file to the migrated Odoo record as an IrAttachment. Odoo's document management relies on the ir.attachment model; we re-create the folder structure as Odoo document directories and attach files to the correct res_model and res_id. Documents without a resolvable parent record are held in a catch-all document directory for manual re-association by the customer's admin. Version history and workflow routing metadata are captured in a separate document.
VIENNA Advantage
Custom Field / Canvas Extension
Odoo ERP
Custom Field / Module Extension
lossyCustom fields added via the VIENNA Advantage Canvas framework are stored per-module with type, required flag, and default value metadata. We extract the full custom field schema alongside the data and generate the equivalent Odoo custom field definitions (ir.model.fields with the matching field_type). Canvas-specific field types (e.g., virtual fields, calculated fields) are documented as is because Odoo does not natively replicate Canvas's declarative calculation model; the implementation team evaluates Odoo Computed fields as the replacement. Custom module logic does not migrate; we deliver the schema and data, not the behaviour.
VIENNA Advantage
Workflow Automation Rule
Odoo ERP
Not migratable
1:1VIENNA Advantage workflow automation rules (approval routing, document routing, conditional triggers) are declarative configurations stored in the VA framework with no documented export format. We do not migrate workflow definitions as executable records. During discovery, we capture screenshots and configuration notes for every active workflow, categorise them by module and trigger type, and deliver a Workflow Reconstruction Handbook mapping each VA workflow to an equivalent Odoo Studio automation, Server Action, or Base Automation rule. The customer's Odoo implementation consultant rebuilds the approval chains; we do not include workflow rebuild in the standard migration scope.
| VIENNA Advantage | Odoo ERP | Compatibility | |
|---|---|---|---|
| Business Partner | Contact + Supplier + Employee (split required)1:many | Fully supported | |
| Product / Item | Product Template + Product Variant1:1 | Fully supported | |
| Sales Order / Purchase Order | Sale Order + Purchase Order1:1 | Fully supported | |
| AR/AP Invoice | Account Move (Invoice/Bill)1:1 | Fully supported | |
| Payment Record | Account Payment1:1 | Fully supported | |
| GL Journal Entry | Account Move (Journal Entry)1:1 | Fully supported | |
| Chart of Accounts | Account Chart Template + Account1:1 | Fully supported | |
| Warehouse / Inventory Record | Inventory Move + Product Quantity1:1 | Fully supported | |
| Project and Task | Project + Task1:1 | Fully supported | |
| DMS Document | IrAttachment (linked to record)lossy | Fully supported | |
| Custom Field / Canvas Extension | Custom Field / Module Extensionlossy | Fully supported | |
| Workflow Automation Rule | Not migratable1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
VIENNA Advantage gotchas
No documented public export API
Multi-tenant cloud instances share a database
DMS document storage path reconstruction
Workflow rules are not portable
Community tier has no SLA or migration support
Odoo ERP gotchas
No rollback for CSV imports
External ID conflicts on re-import
Many2many field encoding in CSV imports
Large export timeouts require batching
Version schema drift between Odoo releases
Pair-specific challenges
Migration approach
Schema discovery and scoping
We request read-only database credentials for the VIENNA Advantage instance and run a schema discovery scan covering all active modules. We map table names to VIENNA Advantage entity types, identify tenant-ID columns and foreign key constraints, locate the custom field tables created by the Canvas framework, and identify the DMS document table and storage path format. We produce a Schema Discovery Report listing every table, the record counts per table, and the extraction strategy (direct SQL, staged export, or manual process) for each. This phase establishes the migration timeline estimate and identifies any VA version-specific schema quirks before extraction begins.
Destination Odoo instance preparation
We work with the customer's Odoo implementation team to confirm the target Odoo edition (Community, Online, or Enterprise), installed apps, and chart of accounts structure. We pre-create the Odoo schema including product categories, warehouse locations, tax templates, payment terms, and analytic account structure before any data import. If the customer uses Odoo Enterprise, we deploy the schema via the Odoo.sh migration tool or direct XML-RPC. If Odoo Community, we use CSV import or XML-RPC in batches. We validate that the COA in Odoo covers all account codes present in the VA GL before journal import begins.
Data extraction with tenant isolation
We run SQL extraction queries against the VIENNA Advantage database with mandatory tenant-ID scoping on every join. Extraction is sequenced: Chart of Accounts and tax rates first, then Products and product categories, then Business Partners (split into contacts, suppliers, employees), then open and historical orders, then invoices and payments, then GL journal entries by fiscal period, then warehouse stock records, then projects and tasks, then DMS documents. Each extraction phase produces a CSV or JSON file with a manifest of record counts, extraction timestamp, and source query hash for audit. We flag any table where the VA schema does not cleanly map to an Odoo object and escalate to the customer for a manual data extraction decision.
Business Partner splitting and contact reconciliation
We apply the Business Partner split logic: VA BP records with type = Customer become Odoo res.partner records with type = contact; type = Vendor become Odoo res.partner records with type = supplier; type = Employee become Odoo hr.employee records. For BP records that have multiple roles, we create one Contact and one Supplier record from the same VA BP, using the original VA BP ID as an external identifier to prevent Odoo's dedupe engine from merging them. We run a pre-import reconciliation showing the VA BP count versus the combined Odoo Contact + Supplier + Employee count so the customer's admin can verify the split logic before the import runs.
Sandbox import, validation, and sign-off
We run a full import into the customer's Odoo sandbox (or a scratch Odoo instance we provision for validation) before touching production. The customer's Odoo consultant and finance lead reconcile record counts, spot-check 30-50 records per object against the VA source, and verify that the GL trial balance in Odoo matches the VA trial balance for each imported period. Any field mapping corrections, missing accounts, or split logic adjustments happen in sandbox. We do not begin production import until the sandbox sign-off is received in writing from the customer's project lead.
Production migration and cutover
We run production migration in dependency order: accounts and taxes, products, contacts and suppliers, employees, sale and purchase orders, invoices and payments, GL journal entries (by period), warehouse stock, projects and tasks, then DMS documents. Each phase emits a row-count reconciliation report. We freeze VA writes during the cutover window, run a final delta import of any records modified during the migration, then enable Odoo as the system of record. We deliver the Workflow Reconstruction Handbook and Custom Field Schema Map to the Odoo implementation team. We provide a one-week hypercare window for reconciliation issues; we do not rebuild workflows, automations, or Odoo Studio customisations inside the standard migration scope.
Platform deep dives
VIENNA Advantage
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across VIENNA Advantage and Odoo ERP.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
VIENNA Advantage: Not publicly documented.
Data volume sensitivity
VIENNA Advantage doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during VIENNA Advantage to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your VIENNA Advantage to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave VIENNA Advantage
Other ways to arrive at Odoo ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.