I’ve implemented supplier CAD upload solutions with proper alternate part handling across multiple Windchill deployments. Your situation requires addressing all three focus areas:
Supplier CAD Upload Configuration:
The supplier upload portal needs to distinguish between true duplicates (same supplier uploading twice) and alternate suppliers (different suppliers with same part number). Modify the upload validation to check supplier context:
SupplierOrganization uploadSupplier = context.getSupplierOrg();
WTPart existingPart = PartHelper.findByNumber(partNumber);
if (existingPart != null) {
SupplierOrganization existingSupplier =
SupplierHelper.getPrimarySupplier(existingPart);
if (!uploadSupplier.equals(existingSupplier)) {
// Different supplier - create alternate
createAlternatePart(uploadSupplier, partNumber);
}
}
Duplicate Part Detection Logic:
The current duplicate detection is too simplistic - it only checks part number without considering supplier context. Implement multi-dimensional duplicate checking:
- Part Number + Supplier Combination: Allow duplicates across suppliers
- Supplier-Specific Upload History: Block true duplicates from same supplier
- Specification Match: Verify new supplier part meets original specification
Update the duplicate detection configuration:
wt.supplier.upload.duplicateCheck=SUPPLIER_AWARE
wt.supplier.upload.allowAlternateSuppliers=true
wt.supplier.upload.requireSpecMatch=true
Alternate Part Mapping Implementation:
When duplicate part numbers are detected from different suppliers, automatically create alternate part relationships:
public class SupplierAlternateMapper implements UploadProcessor {
public void processUpload(SupplierCADUpload upload) {
String partNumber = upload.getPartNumber();
SupplierOrganization supplier = upload.getSupplier();
WTPart masterPart = PartHelper.findMasterPart(partNumber);
if (masterPart == null) {
// First supplier for this part - create master
masterPart = createMasterPart(partNumber, upload);
}
// Create supplier-specific alternate
WTPart alternatePart = createAlternatePart(upload, supplier);
// Link alternate to master with supplier metadata
AlternateLink link = AlternateLink.newAlternateLink(
masterPart, alternatePart);
link.setSupplier(supplier);
link.setAlternateType("SUPPLIER_ALTERNATE");
PersistenceHelper.manager.save(link);
}
}
Complete Implementation:
-
Configure Supplier Organizations:
Ensure each supplier is properly registered with unique organization IDs:
Supplier: Acme Manufacturing (ORG-ACME-001)
Supplier: Global Parts Inc (ORG-GLOBAL-002)
-
Update Upload Validator:
Replace the simple duplicate check with supplier-aware validation:
if (isDuplicatePartNumber(partNumber)) {
if (isDifferentSupplier(currentSupplier, existingSupplier)) {
// Allow upload and create alternate
proceedWithAlternateCreation();
} else {
// Same supplier - true duplicate, block upload
throw new DuplicatePartException();
}
}
3. **Implement Alternate Part Creation Workflow**:
When alternate is created, establish proper relationships:
- Link to master part specification
- Associate with supplier organization
- Copy relevant attributes from master
- Set alternate part type and relationship metadata
4. **Configure Part Numbering Strategy**:
Use internal object IDs for uniqueness while displaying standard part numbers:
Display Number: BRKT-001 (shown to users)
Internal ID: BRKT-001-ORG-ACME-001 (system unique key)
Supplier: Acme Manufacturing
Master Part: BRKT-001-MASTER
5. **Update Upload Portal UI**:
Modify the upload interface to show clearer messaging:
Instead of: “WARNING: Duplicate part number detected”
Show: “Part BRKT-001 exists from another supplier.
Creating alternate supplier part for Global Parts Inc.”
**Verification Steps:**
After implementation:
1. Test upload from first supplier (Acme) - should create master part
2. Test upload from second supplier (Global) with same number - should create alternate and link to master
3. Verify alternate relationships are correctly established in the database
4. Check that both parts appear in searches with proper supplier attribution
5. Confirm that BOM can reference either alternate based on supplier selection
**Business Process Integration:**
The alternate part mapping enables proper supplier management:
- Procurement can compare quotes across supplier alternates
- Engineering can qualify multiple suppliers for same part
- Manufacturing can switch suppliers without BOM changes
- Quality can track supplier-specific performance data
Your supplier CAD upload process will now correctly handle multiple suppliers using the same part numbers by automatically creating and managing alternate part relationships based on supplier context. This maintains part number standards while supporting multi-supplier sourcing strategies.