BOM import utility fails in configuration management due to unit of measure mismatch

We’re experiencing critical failures when importing BOMs through the standard SAP PLM import utility in our configuration management module (SAP PLM 2020). The import process consistently fails when processing materials with custom material types that have specific unit of measure requirements.

The error occurs during the validation phase:


ERROR: UoM conversion failed for material MAT-Custom-001
Expected: EA, Found: PCE
Validation failed at BOMImportValidator.java:234

Our custom material types require precise unit handling, but the standard import utility doesn’t seem to recognize our UoM configuration. We’ve verified the material master data has correct UoM settings, but the BOM import fails to map them properly. This is blocking our new product configuration rollout for Q2 launch. Has anyone dealt with custom material type handling in BOM imports and found a way to configure proper UoM validation?

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:

  1. Define UoM conversion in table T006A for all custom material type base UoMs
  2. Configure the BOM import to use material-specific UoM instead of type-default UoM
  3. 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:

  1. Back up your current BOM import configuration
  2. Register custom material types in the configuration file
  3. Verify all UoM conversion factors exist in T006A
  4. Update import template to include UOM_OVERRIDE column
  5. Modify import configuration to use MATERIAL_MASTER as UoM source
  6. Test with a small batch of custom material type BOMs
  7. 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.

I’ve seen similar issues with custom material types. The BOM import utility in SAP PLM 2020 has strict validation rules that don’t always align with custom configurations. Check your material type settings in SPRO under Material Master > Basic Settings. Make sure your custom types have proper UoM group assignments. Also verify the import template includes the correct UoM mapping columns.

We had the exact same problem last year. The root cause was that our custom material types weren’t registered in the BOM import configuration tables. You need to extend the standard validation class to handle custom material types. We created a custom validator that checks UoM compatibility before the standard validation runs. This prevented the conversion errors. Also make sure your UoM conversion factors are defined in the system for all custom material types - the import utility doesn’t auto-create these conversions like manual BOM entry does.

Check table T006 for your UoM definitions and T006A for conversion factors. The BOM import reads directly from these tables during validation. If your custom material types use UoMs that aren’t properly defined with conversion factors, the import will fail even if the material master looks correct.

I recommend enabling debug logging for the BOM import utility to see exactly where the UoM validation is failing. Add these parameters to your import configuration:


log.level.bom.import=DEBUG
log.validation.details=true

This will show you the exact material type and UoM combination causing issues. In our case, we discovered the import utility was using base UoM from material type definition instead of the actual material UoM, which caused mismatches for custom types.

Tested this on SAP PLM 7.02 SP12 — adding the custom_material_types.properties file with uom.strict=false resolved our BOM import failures for custom material type MAT-Custom immediately.

The standard BOM import in SAP PLM 2020 has limitations with custom material types. We ended up writing a pre-processor script that normalizes UoM values before the import runs. The script reads the material master UoM settings and converts all BOM line items to use compatible UoMs based on the material type configuration. It’s an extra step but eliminates the validation failures. You could also look into using the BOM API directly instead of the import utility - it gives you more control over validation logic.