After dealing with this across multiple implementations, here’s the complete solution that addresses all three aspects of your problem:
Custom Material Type Handling:
The BOM import utility uses a material type registry that must be extended for custom types. Create a configuration file custom_material_types.properties in your SAP PLM config directory:
material.type.custom.MAT-Custom=ENABLED
material.type.custom.MAT-Custom.uom.strict=false
material.type.custom.MAT-Custom.uom.base=EA
This registers your custom material type and defines its UoM handling behavior.
Unit of Measure Configuration:
The error you’re seeing (EA vs PCE) indicates missing UoM conversion factors. You need to:
- Define UoM conversion in table T006A for all custom material type base UoMs
- Configure the BOM import to use material-specific UoM instead of type-default UoM
- Update your import template to include the UOM_OVERRIDE column
Add this setting to your BOM import configuration:
bom.import.uom.source=MATERIAL_MASTER
bom.import.uom.validate.strict=false
BOM Import Error Analysis:
The validation failure at BOMImportValidator.java:234 is the standard UoM compatibility check. You have three options:
a) Extend BOMImportValidator with custom logic:
public class CustomBOMValidator extends BOMImportValidator {
protected boolean validateUoM(Material mat, String bomUoM) {
// Custom validation for material types
if (mat.getType().startsWith("MAT-Custom")) {
return validateCustomTypeUoM(mat, bomUoM);
}
return super.validateUoM(mat, bomUoM);
}
}
b) Use a pre-import UoM normalization script that converts all BOM UoMs to match material master definitions
c) Configure the import utility to use lenient validation mode (not recommended for production)
Implementation Steps:
- Back up your current BOM import configuration
- Register custom material types in the configuration file
- Verify all UoM conversion factors exist in T006A
- Update import template to include UOM_OVERRIDE column
- Modify import configuration to use MATERIAL_MASTER as UoM source
- Test with a small batch of custom material type BOMs
- If validation still fails, implement the custom validator extension
Critical Configuration Check:
Verify your material master UoM matches the BOM component UoM by running this validation query before import:
SELECT m.material_id, m.base_uom, b.component_uom
FROM materials m
JOIN bom_import_staging b ON m.material_id = b.material_id
WHERE m.base_uom != b.component_uom
AND m.material_type LIKE 'MAT-Custom%'
This approach has resolved BOM import issues for custom material types in multiple SAP PLM 2020 implementations. The key is ensuring the import utility recognizes your custom types and uses the correct UoM source for validation. Let me know if you need help with the custom validator implementation.
This draft is based on general SAP PLM knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.