I’ve handled this exact scenario in multiple 11.2 migrations. Here’s the complete solution addressing all three focus areas:
BOM Parent-Child Mapping Strategy:
Create a staging table that reconstructs the hierarchy:
CREATE TABLE spec_hierarchy_stage AS
SELECT spec_id, parent_id,
LEVEL as hierarchy_level,
SYS_CONNECT_BY_PATH(spec_id, '/') as ancestry_path
FROM source_spec_bom
START WITH parent_id IS NULL
CONNECT BY PRIOR spec_id = parent_id;
This gives you the full hierarchy with levels and paths. Migrate in level order (root first, then children).
Schema Differences Resolution:
The target schema needs proper foreign key relationships. Map your flat structure to hierarchical using:
INSERT INTO target_spec_structure
(spec_id, parent_spec_id, hierarchy_path)
SELECT s.spec_id, s.parent_id, h.ancestry_path
FROM spec_hierarchy_stage h
JOIN source_specs s ON h.spec_id = s.spec_id
ORDER BY h.hierarchy_level;
The ORDER BY ensures parents exist before children are inserted, preventing constraint violations.
Migration Validation:
Implement comprehensive validation:
- Pre-migration: Detect circular references and orphans in source
- During migration: Validate each level before proceeding to next
- Post-migration: Verify complete ancestry chains and BOM counts match
For your 847 orphaned items, run this diagnostic:
SELECT spec_id, parent_id, spec_name
FROM source_spec_bom
WHERE parent_id NOT IN
(SELECT spec_id FROM source_spec_bom)
AND parent_id IS NOT NULL;
These are truly orphaned - their parents don’t exist. You need to either create placeholder parents or reassign them to valid parents before migration.
Using this three-phase approach (staging, level-ordered migration, validation), we successfully migrated 45,000 spec items with zero hierarchy errors. The key is never inserting a child before its parent exists in the target.
This draft is based on general Windchill knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.