I’ve dealt with this exact scenario multiple times during ERP integrations. The solution requires addressing all three focus areas systematically.
UOM Master Maintenance:
First, export your complete UOM list with API names. In JavaClient, go to Admin > Data Settings > Lists, select ‘UOM’, and use File > Export. The export includes both display names and API names. Here’s what you’ll see in the export:
Display Name,API Name,Description,Enabled
Each,EACH,Single unit,TRUE
Piece,PC,Individual piece,TRUE
Create a mapping table in your SAP extraction script that converts SAP UOM codes to Agile API names. Common mappings: SAP ‘EA’ → Agile ‘EACH’, SAP ‘PC’ → Agile ‘PC’, SAP ‘M’ → Agile ‘METER’.
BOM Import Validation Rules:
The Web Services validation is stricter because it bypasses the UI layer’s automatic lookups. Your import XML must use exact API names in the UOM field:
<BOMLine>
<ItemNumber>P-12345</ItemNumber>
<Quantity>10</Quantity>
<UOM>EACH</UOM>
</BOMLine>
The validation process checks: (1) UOM exists in master list, (2) UOM is enabled, (3) UOM is valid for the item’s class, (4) API name matches exactly. Display name matching only works in JavaClient, not via Web Services.
Web Services Cache Issue:
You’re correct about the cache problem. When you add new UOM values through the admin interface, the Web Services layer caches the old list for up to 30 minutes. To force immediate recognition:
- After adding new UOM values, clear the Web Services cache: Admin > Server Management > Web Services > Cache Management > Clear List Cache
- Alternatively, restart the Agile Application Server (faster than waiting for cache expiration)
- For automated imports, add a 5-minute delay after UOM updates before running imports
Implementation Best Practices:
-
Pre-validation Script: Create a validation script that runs before your BOM import. It should:
- Query Agile for current UOM list (with API names)
- Compare SAP UOM values against the list
- Flag unmapped values before import attempts
- Auto-create missing UOMs if appropriate
-
Error Handling: Modify your import to handle validation errors gracefully:
- Log failed lines with specific UOM mismatches
- Continue processing valid lines instead of terminating
- Generate exception report for manual review
-
Standardization: Work with your ERP team to standardize UOM codes. If possible, align SAP UOM codes with Agile API names to eliminate mapping complexity.
Immediate Fix for Your Current Issue:
Run this analysis on your failed import file:
- Extract all unique UOM values from the 156 failed lines
- Compare against your exported Agile UOM list (API names)
- Update your SAP extraction to use the correct API names
- Clear Web Services cache
- Re-run the import
For the ‘EA’ specifically, check if your Agile system has it as ‘EACH’ (most common), ‘EA’ (less common), or ‘EA_UNIT’ (rare but possible). The API name is what matters, not the display name.
After implementing these changes, your import success rate should improve to 98%+. The remaining 2% will typically be items with class-specific UOM restrictions that require manual review.