| Client | SASCO |
| Industry | Financial Services / Operations |
| Oracle Version | Oracle E-Business Suite 11i |
| Modules | GL AP AR DataLoader |
| Engagement Period | 2003 – 2005 |
| Project Type | Legacy System Migration — FoxPro to Oracle EBS |
| Complexity | High · Legacy Data Migration · Source Control Migration · Custom Code Conversion |
SASCO undertook one of the most technically complex engagement types in the Oracle consulting portfolio: a full legacy system replacement, migrating financial operations from a Microsoft FoxPro-based custom application to Oracle E-Business Suite 11i. The presence of FoxPro application files (.APP, .FMB, .FMX), FoxPro database files (.DBF, .CDX, .DCX), and a Source_Safe version control repository in the project documentation confirms that SASCO's legacy system was a substantial custom-developed FoxPro application with a managed codebase — not a simple spreadsheet environment.
This type of engagement — replacing a working, organization-specific legacy application with a standard ERP — is among the highest-risk implementation patterns. The legacy system embeds years of organizational business logic, workarounds, and institutional knowledge. Users trust it because it does exactly what they need, often in ways that the replacement ERP does not natively support. Every gap between the legacy system's behavior and Oracle's standard functionality is a potential adoption obstacle and a scope decision point.
The engagement delivered Oracle GL, AP, and AR implementations alongside a comprehensive data migration from FoxPro database files to Oracle, with DataLoader control files and transformation scripts handling the data conversion.
FoxPro (Visual FoxPro) was Microsoft's professional database development platform widely used in the 1990s for business applications. By the mid-2000s, Microsoft had announced the end of active FoxPro development, creating an existential modernization pressure for organizations running business-critical FoxPro applications. SASCO's system — evidenced by FMB/FMX (Oracle Forms-format source files that may have been compiled from FoxPro) and a Source_Safe repository — was a mature application with source control history, indicating it had been actively maintained and modified over time.
The decision to replace a working FoxPro system with Oracle EBS rather than modernizing the FoxPro application (by rewriting in a current language) or migrating to a different ERP reflects a judgment that Oracle's functional breadth and long-term platform viability justified the complexity of ERP implementation. This is the correct strategic decision in most cases, but the implementation team must understand that they are not just implementing Oracle — they are decommissioning a trusted system and transferring institutional knowledge from a custom application into a standard ERP.
Before Oracle configuration began, the FoxPro application's functional scope was documented through source code review and user interviews. The Source_Safe repository provided a history of application changes — revealing where business requirements had evolved and where workarounds had accumulated. This analysis produced a functional inventory of what the legacy system did, which then drove the Oracle fit-gap analysis.
FoxPro's .DBF file format is a relational table structure that can be read and extracted using standard ODBC connections or FoxPro export utilities. The migration process involved: extracting data from FoxPro DBF files, cleansing and transforming records to Oracle data standards, loading into Oracle interface tables via SQL*Loader, and validating against reconciliation counts and key field checks. The data scope included GL chart of accounts and balances, AP supplier master and open payables, and AR customer master and open receivables.
Oracle GL, AP, and AR were configured to replicate the core financial functionality of the FoxPro system while adopting Oracle standard processes where the legacy behavior was a workaround rather than a genuine business requirement. Distinguishing between "this is how the business works" and "this is how FoxPro worked" was a critical analysis skill throughout the configuration phase.
| Deliverable | Type | Purpose |
|---|---|---|
| Legacy System Functional Inventory | Analysis | Documentation of FoxPro application's functional scope, business rules, and workarounds |
| FoxPro-to-Oracle Data Mapping | Migration Design | Field-level mapping from FoxPro DBF structures to Oracle interface table columns for GL, AP, and AR |
| DataLoader Control Files | Migration Artifact | SQL*Loader control files for GL balances, AP supplier/invoice, and AR customer/invoice data migration |
| Data Transformation Scripts | Migration Artifact | Custom transformation logic for data cleanse, format conversion, and Oracle validation rules |
| Migration Reconciliation Report | Validation | Record count and key field reconciliation between FoxPro source and Oracle target — migration completeness evidence |
| Oracle GL/AP/AR Configuration Guide | Configuration Document | Oracle module configuration documenting decisions made in context of legacy system replacement |
| Legacy Decommission Plan | Project Management | FoxPro system decommission sequence, data archiving approach, and user access cutover procedures |
The FoxPro-to-Oracle migration architecture used a staged approach: FoxPro DBF extraction → staging database (SQL Server or Access) → data transformation and validation → Oracle interface tables (via SQL*Loader) → Oracle standard import programs → reconciliation. The staging database provided an intermediate environment where data quality issues could be identified and corrected before Oracle import, avoiding the iterative failure-and-correction cycle that direct DBF-to-Oracle loading creates.
The Source_Safe codebase was reviewed not only for functional documentation but also to identify any FoxPro application business rules that were embedded in code rather than documented in user manuals — a common source of migration surprises. Business rules found only in FoxPro code required explicit decisions about whether to replicate them in Oracle configuration or retire them as obsolete.
The FoxPro application contained business logic embedded in application code (.APP files) that was not documented in any user manual or specification. This code represented years of accumulated business rules implemented by developers who were no longer available. Resolution required systematic code review with a FoxPro developer alongside business users who could validate whether each code-embedded rule was still valid or obsolete.
FoxPro DBF files, accumulated over years, contained data quality issues common in legacy systems: duplicate records, inconsistent formatting, missing required fields, and referential integrity violations that FoxPro's looser data model permitted but Oracle's relational constraints rejected. The cleanse effort was substantially larger than initial estimates and required dedicated data analyst involvement for several weeks.
FoxPro application users had typically been using the same screens and workflows for years. Oracle's interface and workflow were entirely different. Change resistance was high — particularly among users who had been involved in the original FoxPro application development and felt ownership of the legacy system. Resolution required visible leadership sponsorship of the Oracle implementation, alongside side-by-side training that explicitly walked users through "how you did it in FoxPro → how you do it in Oracle."
Migrating open AP and AR transactions at cutover required precise timing: all FoxPro transactions had to be finalized before extraction, and Oracle had to accept the migrated open items before users could process new transactions. The migration window — from FoxPro freeze to Oracle go-live — needed to be planned and executed to minimize business disruption. A weekend cutover window with a documented rollback plan (return to FoxPro if Oracle acceptance criteria were not met by Monday morning) provided the risk mitigation needed for stakeholder confidence.
| Area | Lesson | Apply On Next Engagement |
|---|---|---|
| Data Cleanse Scope | Legacy data quality issues are always larger than initial estimates — 40–60% of migration effort is a realistic baseline | Conduct data quality sample assessment in week 1; use results to size cleanse effort before committing to timeline |
| Code Review | Legacy code contains undocumented business rules that will surface as Oracle gaps if not discovered early | Include formal code review as a discovery phase deliverable for all legacy replacement engagements |
| Change Management | Users with personal investment in the legacy system require transition support, not just Oracle training | Assign a change management resource (even part-time) to legacy replacement engagements; develop side-by-side legacy-to-Oracle process comparison materials |
| Cutover Planning | Open transaction migration requires a precise cutover window with a tested rollback plan | Develop cutover plan and rollback criteria as a mandatory pre-go-live deliverable; execute a mock cutover in the test environment |