Quality issue records missing CAD references after bulk import of legacy data

We recently completed a bulk import of 3,500 legacy quality issue records using the Bulk Data Loader in Windchill 12.0 CPS05. The import process completed successfully, but we’re now discovering that CAD document references are completely missing from the quality issues.

Our legacy system had direct links between quality issues and CAD drawings, and we mapped these relationships in our import CSV files. The bulk import mapping included both the quality issue attributes and the CAD document references using the standard reference mapping columns.

Here’s a sample from our import log showing successful processing:


Processed: QI-2024-1523 | Status: SUCCESS
CAD Reference: DWG-45892 | Link Status: PENDING

The quality issues themselves imported perfectly with all attributes, but when we open them in Windchill, the CAD references tab is empty. This breaks our traceability requirements completely. We need to link quality issues to their associated CAD documents for compliance audits. Has anyone encountered this with legacy data migration and CAD reference linking? What’s the proper approach to establish these references post-import?

Thanks for the responses. We did import CAD documents first, and our CSV format includes document numbers. But I think the version/iteration detail might be the issue - we only included the document number assuming it would link to the latest version. How do we fix this for 3,500 already-imported records?

I implemented something similar last year. Created a post-import script that reads a mapping file and establishes CAD references programmatically. The trick is handling version resolution correctly - you need to decide whether to link to latest version or specific historical versions based on the quality issue creation date. Also important: wrap everything in transactions and add proper error handling because some CAD documents might not exist or be in wrong lifecycle states for linking.

Here’s a complete solution for establishing CAD references post-import. This addresses all three key aspects: bulk import mapping correction, CAD reference linking automation, and legacy data migration validation.

Step 1: Validate Your Existing Data First, export your current quality issues and verify the CAD document numbers exist in Windchill. Run a query to identify any missing CAD documents:


SELECT qi.number, qi.cad_ref_number
FROM quality_issues qi
LEFT JOIN cad_documents cd ON qi.cad_ref_number = cd.number
WHERE cd.number IS NULL

Step 2: Create Reference Linking Utility Develop a Java utility to establish the missing links programmatically. Here’s the core approach:


// Pseudocode - CAD Reference Linking Process:
1. Query all quality issues with missing CAD references
2. For each quality issue, lookup CAD document by number
3. Determine appropriate version (latest released or date-matched)
4. Create WTPartDescribeLink between quality issue and CAD document
5. Set link attributes (reference type, creation date, etc.)
6. Commit transaction and log results
7. Handle exceptions for missing documents or lifecycle conflicts
// Reference: Windchill Customization Guide Section 8.4

Step 3: Handle Version Resolution Logic For legacy data migration, you need clear rules for version selection:

  • If quality issue date < CAD latest release date: Link to version that was current at issue creation
  • If quality issue date >= CAD latest release date: Link to latest released version
  • If no released version exists: Link to latest version regardless of state

This ensures historical accuracy in your traceability.

Step 4: Bulk Processing Strategy Process in batches of 500 records to avoid memory issues:

  • Read mapping file (CSV with QI number, CAD number, creation date)
  • Process each batch in separate transaction
  • Log successful links and failures separately
  • Generate reconciliation report showing link status

Step 5: Validation and Verification After processing:

  1. Run count query to verify all expected links were created
  2. Spot-check 50-100 quality issues in UI to confirm references appear correctly
  3. Test traceability reports to ensure compliance requirements are met
  4. Verify lifecycle state transitions still work with new references

Critical Considerations for Bulk Import Mapping:

  • Always include version/iteration identifiers in reference columns
  • Import dependent objects (CAD documents) before referencing objects (quality issues)
  • Use the ReferenceResolver utility post-import for standard reference types
  • For custom reference types, programmatic linking is required

Legacy Data Migration Best Practices:

  • Maintain original system IDs in Windchill custom attributes for troubleshooting
  • Create detailed mapping documentation showing old ID to new ID relationships
  • Keep import CSV files as audit trail for compliance
  • Test migration process on subset (100-200 records) before full migration

This approach has worked successfully for migrations involving 10,000+ quality issues with CAD references. The programmatic linking typically takes 2-3 hours for your volume of 3,500 records, and you’ll have complete traceability restored with proper version control.

I’ve seen this exact issue. The Bulk Data Loader doesn’t automatically resolve CAD references during import - it creates pending links that need a separate resolution step. Check your Method Server logs for reference resolution errors. You probably need to run the ReferenceResolver utility post-import.

The problem is likely in your CSV mapping format. CAD references in Windchill require specific syntax: you need to include both the CAD document number AND the version/iteration details. If you only mapped the document number, the bulk loader can’t establish the link because it doesn’t know which version to reference. Also, make sure the CAD documents were imported BEFORE the quality issues - reference resolution fails if the target objects don’t exist yet. What does your reference mapping column look like in the CSV? Should be format: CADDocNumber|VersionID|IterationID