Data migration to general ledger: Best practices vs common pitfalls in FBDI templates

We’re in the middle of a major GL migration to Oracle Fusion Cloud from a legacy ERP system. Using FBDI templates for historical journal entry migration, but running into several challenges with data mapping and validation errors.

The main issues we’re facing: segment value mapping from our old 8-segment structure to Fusion’s chart of accounts, handling intercompany eliminations that were structured differently in the legacy system, and ensuring opening balances reconcile perfectly. We’ve done several test loads and each time discover new validation errors that aren’t obvious from the FBDI template documentation.

What are the key best practices for GL data migration that aren’t well documented? Specifically interested in data mapping strategies, how to structure FBDI templates for complex scenarios, and reconciliation processes that catch issues before go-live. Our cutover window is tight and we can’t afford multiple iteration cycles.

GL FBDI Migration: Pre-Checks, Execution Sequence, and Rollback


Pre-Upgrade Checks (Run Before Any Load)

Chart of Accounts validation first. Before mapping a single segment, export your complete value set from Setup and Maintenance → Manage Chart of Accounts and reconcile segment cardinality. An 8-to-N segment restructure is the #1 source of silent mapping failures — values that pass format validation but post to wrong natural accounts.

Critical pre-checks:

  • Confirm all segment values are enabled and active in Fusion value sets. Inactive parent values cause child postings to fail with GL_INVALID_CCID errors that surface only at import, not during template validation.
  • Validate ledger currency, calendar, and period status. Periods must be Open or Future Enterable — attempting to load into closed periods fails the entire batch, not individual lines.
  • Run Account Hierarchy integrity check. Cross-validate your legacy account groupings against Fusion tree structures before mapping. Mismatched rollup nodes silently corrupt financial reporting without raising import errors.
  • Confirm Intercompany Balancing Rules are configured in Manage Intercompany Balancing Rules. If rules aren’t established before load, intercompany journals post unbalanced and require manual correction post-cutover (verify in your version — rule enforcement behavior varies).
  • Check Suspense Account configuration. Know exactly where out-of-balance entries land so you can detect them immediately post-load.

Migration Execution Sequence

  1. Load reference data first: segment values, account combinations (GLCC), and cross-validation rules. Validate via Account Combination inquiry before any journal load.
  2. Build your FBDI in strict column order. The GlInterface template requires LEDGER_ID (not ledger name), ACCOUNTING_DATE in YYYY-MM-DD, and STATUS = NEW. Deviations here produce non-obvious rejections in GL_INTERFACE rather than meaningful error messages.
  3. Load opening balances as a single journal batch using Journal Category = Opening Balance and Journal Source = Manual (or a dedicated migration source). Keep this batch isolated — mixing historical transactions with opening balances complicates reconciliation.
  4. For intercompany: replicate the originating entity / recipient entity structure using INTERCO_SEGMENT mapping. If your legacy system stored eliminations as standalone entries rather than paired transactions, reconstruct paired entries manually before load — Fusion’s balancing engine expects symmetric pairs.
  5. Run Import Journals via Scheduled Processes and immediately query GL_INTERFACE_CONTROL and GL_INTERFACE for rows where STATUS = ERROR. Do not proceed until the error table is empty.
  6. Post journals and run Trial Balance by Ledger report. Reconcile to your legacy extract at both summary and segment level before declaring the batch complete.
  7. Run Account Analysis on your suspense account to confirm zero balance before cutover sign-off.

Rollback Procedure

If post-load reconciliation fails:

  • Do not reverse journals manually at scale. Use Reverse Journals batch function with the original batch name to generate system-generated reversals — this preserves audit trail integrity.
  • If the period must be re-opened, use Manage Accounting Periods — escalate to Oracle if period status is stuck (verify rollback permissions in your provisioned roles).
  • Purge the GL_INTERFACE staging table for the failed source using Purge Interface Tables scheduled process before reloading corrected data.
  • Restore segment value mappings from your pre-migration export if COA changes were applied; re-derive Account Combinations after restore.

Undocumented pitfall: the FBDI Excel template performs client-side validation that differs from server-side import validation. Always test loads against a non-production environment with production-equivalent value sets — discrepancies between sandbox and production COA configurations are the primary cause of late-cycle iteration failures.


This draft is based on general Oracle Fusion Cloud knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

The segment mapping is critical. Don’t try to force your old structure into Fusion’s COA. We’ve found it’s better to create a detailed mapping spreadsheet first, validate it with finance stakeholders, then build transformation logic in your ETL tool before even touching FBDI templates. Also, test with small batches first - don’t load millions of journal lines in your first attempt.

For intercompany eliminations, you need to understand how Fusion handles balancing segment values differently than most legacy systems. The FBDI template has specific columns for intercompany accounts and you must ensure your balancing segments are properly configured in the COA before migration. We spent weeks troubleshooting elimination entries that wouldn’t balance because our segment mapping didn’t account for Fusion’s balancing rules.

The FBDI template documentation is notoriously incomplete for complex scenarios. Here’s what we learned: always populate the LEDGER_NAME column explicitly even though it seems redundant, use ACCOUNTING_DATE not GL_DATE for opening balances, and never mix different journal sources in the same FBDI file. We created separate templates for opening balances, historical transactions, and intercompany entries. This made troubleshooting much easier when validation errors occurred.

Good points about separating the templates. We’ve been trying to load everything in one go which is probably causing some of our validation issues. What about reconciliation - do you reconcile at the journal level or at the balance level? We’re finding discrepancies that are hard to trace back to specific entries.

Reconciliation should happen at multiple levels. We do journal-level validation in our ETL process before creating FBDI files, then balance-level validation after load using Fusion’s Account Analysis reports. The key is building automated reconciliation scripts that compare source system trial balances with Fusion balances by segment combination. Don’t rely on manual Excel reconciliation - it’s too error-prone for large migrations.

Having led multiple GL migrations to Fusion Cloud, I can share comprehensive best practices across all three critical areas:

Data Mapping Strategies: The biggest mistake organizations make is trying to replicate their legacy COA structure in Fusion. Instead, use migration as an opportunity to simplify. Start with a detailed mapping document that includes not just segment values but also business rules for combination validation. For your 8-segment to Fusion mapping, identify which legacy segments map to Fusion’s natural account, cost center, and balancing segments. Create a reference data spreadsheet with columns: Legacy_Segment1 through Legacy_Segment8, Fusion_Natural_Account, Fusion_Cost_Center, Fusion_Department, Fusion_Balancing_Segment, and most importantly, a Transformation_Rule column that documents any business logic applied during mapping. This becomes your single source of truth.

For intercompany eliminations specifically, understand that Fusion uses the balancing segment differently than most legacy systems. In OFC 23b, you need to ensure your intercompany accounts are properly flagged in the COA with the intercompany attribute set to Yes. Your FBDI template must include both the DR_BALANCING_SEGMENT and CR_BALANCING_SEGMENT columns populated correctly. We’ve found that pre-validating intercompany combinations in a staging table before creating FBDI files catches 80% of balancing errors.

FBDI Template Usage and Structure: Don’t use the standard FBDI template as-is for complex migrations. Create specialized templates for different journal types: one for opening balances (using ACTUAL journal source and OPENING_BALANCE category), one for historical transactions (MANUAL source), and separate templates for intercompany entries. Critical FBDI template practices: always populate LEDGER_NAME explicitly even though ledger ID might seem sufficient; use ACCOUNTING_DATE for the GL period you want the entry to land in; populate CURRENCY_CODE even for your functional currency; and include USER_JE_SOURCE_NAME and USER_JE_CATEGORY_NAME rather than relying on defaults.

For validation error prevention, build a pre-validation layer in your ETL process. Before generating FBDI files, validate that all segment combinations exist in your COA, all account combinations are enabled, and date ranges fall within open periods. We use SQL scripts that query Fusion’s GL_CODE_COMBINATIONS table to validate combinations before migration. This catches 90% of validation errors before they hit the FBDI import process.

Reconciliation Processes: Implement a three-tier reconciliation approach. Tier 1: Source system extraction validation - ensure your extract from the legacy system matches the legacy GL trial balance exactly. Use SQL sum checks on your staging tables grouped by account to verify totals. Tier 2: Transformation validation - after applying mapping rules but before FBDI generation, verify that debits equal credits and that balancing segment totals net to zero for intercompany entries. Build automated scripts that flag any out-of-balance conditions. Tier 3: Post-migration validation - after FBDI import, run Fusion’s Account Analysis and Trial Balance reports and compare against your source system using automated reconciliation scripts.

For opening balances specifically, we create a detailed reconciliation workbook with tabs for each major account category (Assets, Liabilities, Equity, Revenue, Expenses). Each tab shows source system balance, mapped Fusion account, converted balance, and variance. This must reconcile to zero before you proceed with transaction history migration. Also, leverage Fusion’s Data Quality Management framework to build ongoing validation rules that will catch data issues post-go-live. The tight cutover window you mentioned requires this level of automation - manual reconciliation simply won’t scale for enterprise GL migrations.