Comparing data migration tools for formula, cost, and part modules

We’re planning a major data migration to Agile 9.3.4 covering formula management, cost structures, and part master data. I’m evaluating different migration tools and approaches. We’ve looked at Agile’s native SQL Import, third-party ETL tools like Informatica, and custom Java-based importers using the Agile SDK.

Each tool seems to have different strengths depending on the module. For formula management, we need to preserve complex calculation logic and dependencies. For cost data, we need accurate currency conversion and cost rollup validation. For parts, we’re dealing with 50,000+ records with extensive attribute mappings.

What migration tools have you used for these specific modules? What worked well and what didn’t? I’m particularly interested in hearing about real-world experiences with tool selection trade-offs and any module-specific requirements we should consider.

Pre-Upgrade Checks (Source → Agile 9.3.4)

Verify before any migration tooling decision:

  • Confirm source version schema compatibility with 9.3.4 target — Agile’s data model for Formula Management changed significantly across 9.3.x minor releases (verify exact delta in your version’s release notes)
  • Audit PG&C (Product Governance & Compliance) dependencies tied to formula records; these have foreign-key constraints that break silent on bulk SQL imports
  • Validate Cost Rollup hierarchy depth — Agile 9.3.4’s cost structure enforces parent-child BOM levels differently than flat-file assumptions most ETL connectors make
  • Run Agile Database Validation Utility against source schema before extraction; unresolved orphaned records in ITEM_P2PRICEHIST and ITEM_P2BOMMFR tables will corrupt target loads
  • Confirm SDK version alignment — Agile Java SDK must match the target 9.3.4 server version exactly; mismatched SDK calls fail silently on attribute writes (verify in your version)
  • Export full ACS (Agile Content Server) configuration and workflow definitions before any tooling touches the environment

Migration Sequence (Numbered — Module Order Matters)

  1. Migrate Part Master first (50K+ records) — use Agile SDK-based importer over SQL Import for this volume; native SQL Import bypasses business rule validation and will not trigger AutoNumber generation or Page Two/Three attribute inheritance correctly
  2. Batch parts in sets of 5,000–10,000 with explicit commit intervals; SDK IItem.save() calls within a single session degrade past 15K objects without session recycling
  3. Cost Structures second — Informatica or similar ETL is acceptable here only if you build a custom connector using Agile’s Web Services API rather than direct table writes; direct writes to ITEM_P2PRICES skip currency conversion triggers
  4. Implement currency normalization in the ETL transformation layer before load, not post-load; attempting cost rollup recalculation after import via Cost Rollup Manager on dirty data produces cascading rounding errors
  5. Formula Management last — this module has the highest dependency surface; calculation logic and formula-to-BOM linkages must be loaded after parts exist in target
  6. Use custom Java SDK importer for formulas, not SQL Import or generic ETL; IFormula and IFormulaComponent objects require SDK-level traversal to preserve calculation dependency chains (verify interface names in your version)
  7. Post-load: execute Agile Formula Recalculate batch job and validate against source system output checksums before cutover sign-off

Rollback Procedure

  • Do not perform migration directly on production; all work on a full production clone
  • Before each module load phase, take a cold backup of the Agile schema (Oracle RMAN or equivalent) — one snapshot per phase, not one global snapshot
  • If part migration fails mid-batch: restore schema snapshot, fix batch boundary logic, rerun from clean state — partial SDK loads leave status flags in ITEMS table that cause duplicate-detection false positives on retry without a clean restore
  • If cost load produces rollup validation failures post-import: restore cost schema snapshot; do not attempt in-place correction on 9.3.4’s cost tables without Oracle support involvement — cost hierarchy corruption is non-trivial to repair manually
  • Formula rollback: restore schema + purge Agile search index cache post-restore; stale index entries for formula records survive schema restores and cause ghost results in Agile Web Client searches

Tool summary verdict: SDK for parts and formulas, ETL with Web Services connector for costs. SQL Import is viable only for flat reference data with no rule dependencies.


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

We used SQL Import for parts and it worked reasonably well for straightforward attribute mapping. However, for formulas with complex dependencies, we had to use a custom Java importer because SQL Import doesn’t handle formula validation or dependency resolution automatically. The tool choice really depends on your data complexity.

Informatica gave us the most flexibility for cost data migration. We needed to transform legacy cost structures, apply exchange rates, and validate rollups before import. The ETL tool let us build those transformations into the migration pipeline. SQL Import would have required extensive pre-processing in staging tables, which felt more error-prone. The downside was licensing cost and the learning curve for our team who weren’t familiar with Informatica.

For formula management specifically, consider the dependency chain complexity. If your formulas reference other formulas or parts, you need a tool that can handle ordered imports. We used a custom Python script that analyzed dependencies first, then generated import batches in the correct sequence. Native tools don’t typically provide this dependency analysis out of the box.

Don’t overlook the importance of validation and rollback capabilities. We initially chose SQL Import for its simplicity but quickly realized it lacked good validation reporting. When imports failed, troubleshooting was painful. We switched to a hybrid approach: Agile SDK for complex modules like formulas where we needed real-time validation, and SQL Import for simpler modules like basic part attributes. The SDK gave us better error handling and the ability to implement custom validation rules before committing data.

From a cost-benefit perspective, SQL Import is hard to beat for straightforward migrations. It’s included with Agile, no additional licensing, and works well for parts with standard attributes. But the moment you hit complex scenarios-formula dependencies, multi-currency costs, or conditional logic-you need something more sophisticated. We’ve seen projects where teams spent more time working around SQL Import limitations than they would have spent implementing a proper ETL solution from the start.

After managing migrations across all three modules you mentioned, here’s my assessment of tool strengths, weaknesses, and module-specific requirements:

SQL Import Strengths:

  • Native Agile tool, no additional licensing
  • Excellent for high-volume part master data (we’ve done 100K+ parts)
  • Good performance for straightforward attribute mappings
  • Built-in error logging and batch processing
  • Works well for cost data when currency conversion is handled upstream

SQL Import Weaknesses:

  • No dependency resolution for formulas
  • Limited validation-errors only surface during import execution
  • Poor handling of complex object relationships
  • Minimal transformation capabilities
  • Difficult to implement conditional logic

ETL Tools (Informatica/Talend) Strengths:

  • Powerful transformation engine for cost structure conversions
  • Good for data cleansing and validation before import
  • Can handle complex business rules (currency conversion, unit conversions)
  • Reusable mapping templates across projects
  • Strong audit trail and data lineage tracking

ETL Tools Weaknesses:

  • Significant licensing costs
  • Requires specialized skills
  • Can be overkill for simple migrations
  • Integration with Agile requires custom connectors or staging tables

Agile SDK/Custom Code Strengths:

  • Full control over validation logic
  • Can implement formula dependency analysis
  • Real-time error handling and rollback
  • Ideal for formula management where calculation logic needs validation
  • Enables complex conditional imports based on runtime data checks

Agile SDK/Custom Code Weaknesses:

  • Development time and cost
  • Requires Java/programming expertise
  • Performance can be slower than bulk SQL imports
  • Maintenance burden for custom code

Module-Specific Requirements:

Formula Management: This module has the most complex requirements. Formulas often reference other formulas, parts, and cost elements. You need dependency analysis to determine import order. Recommendation: Custom SDK-based importer that:

  1. Analyzes formula dependency graphs
  2. Validates calculation syntax before import
  3. Imports in dependency order (base formulas first, then dependent formulas)
  4. Provides detailed validation reports

We built a Java tool that parsed formula expressions, identified dependencies, and generated an ordered import sequence. Worth the development investment.

Cost Management: Requires accurate transformation of cost structures and currency handling. Recommendation: ETL tool if you have complex transformations (multiple source systems, currency conversions, cost rollup calculations), otherwise SQL Import with pre-processing in staging tables. Key considerations:

  • Multi-currency support and exchange rate application
  • Cost rollup validation (ensuring component costs sum correctly)
  • Cost type mapping (material, labor, overhead)
  • Historical cost preservation vs. current cost import

Part Master Data: Usually the highest volume but most straightforward. Recommendation: SQL Import for bulk loading with these best practices:

  • Use staging tables for data validation
  • Implement batch processing (5,000-10,000 parts per batch)
  • Pre-calculate any derived attributes
  • Handle part classification and taxonomy mapping upstream
  • Validate BOM relationships separately from part attributes

Real-World Migration Story:

We managed a migration with 60,000 parts, 2,500 formulas, and 150,000 cost records. Our tool selection:

  • Parts: SQL Import (completed in 3 days)
  • Costs: Informatica ETL (2 weeks including transformation logic)
  • Formulas: Custom Java importer using Agile SDK (1 week development, 2 days execution)

Total project: 6 weeks including validation. If we’d tried to force everything through SQL Import, we estimate it would have taken 10-12 weeks due to formula dependency issues and cost transformation challenges.

My Recommendation for Your Project:

Given your scope (50K parts, formulas with complex logic, cost structures), use a hybrid approach:

  1. SQL Import for part master data-it’s the right tool for high-volume, straightforward data
  2. Custom SDK importer for formulas-the dependency analysis and validation are worth the development cost
  3. ETL tool OR SQL Import with staging transformations for costs-depends on your transformation complexity and whether you already have ETL infrastructure

This balanced approach optimizes for speed (SQL Import for parts), accuracy (SDK for formulas), and transformation capability (ETL or staging for costs). The key is matching tool strengths to module-specific requirements rather than forcing a one-size-fits-all solution.