CFO here (mid-market services). We’re migrating data into Business Central Online from several custom MySQL systems. Current approach is to land data in Azure SQL (staging) and use a lightweight app layer (demo below) for validation, idempotent loads (hash keys), retry/queues, and audit logs before sending to BC via APIs or Configuration Packages. Goal: accuracy, repeatability, and clean reconciliation—not selling anything, just looking for honest, battle-tested feedback.
Environment (high level):
Sources: multiple MySQL CRMs (customers/vendors/jobs/invoices/receipts).
Staging: Azure SQL (normalized as feasible).
App layer: validation rules (dimensions/posting groups/no. series), retry queue, error triage, full audit trail.
Load into BC: APIs and/or Config Packages depending on entity/volume.
Scope (demo): Customers, Vendors, Jobs, Open AR/AP (historicals policy still under debate).
Targeted questions (would love real-world experience):
Migration pattern: Would you keep the app layer for validation/queues, or go straight ETL (ADF/SSIS/SmartConnect/KingswaySoft) + Config Packages? When has each approach won for you, and why?
Dimensions & posting groups: Where do you validate/enforce combos and defaults (staging vs app vs BC)? Common pitfalls you hit (e.g., blocked dimension values, posting group mismatches, No. Series collisions, cross-company mappings)?
Reconciliation: What did you actually tie out to declare success (TB by period, subledger to GL, open docs, samples to source)? Any “golden reports” or checklists you rely on for sign-off?
Historicals & throughput: Did you load detailed ledgers/docs or summarize to openings + selective open items? Any tips on BC API throttling, batch sizing, or safe re-load/delete patterns during trial runs?
Disclosure:
This is not a product pitch. The demo runs DEMO_MODE with read-only endpoints and seeded fake data. No sign-ups, no tracking, no PII; I’m a CFO trying to sanity-check the approach and gather alternatives before we lock our cutover plan. If linking isn’t allowed, I’ll replace with screenshots or a short Loom.
Mod note:
Link is in the first comment to avoid automod. If this violates rules, I’ll remove the link and post screenshots only.