Let me provide you with a complete solution that addresses all aspects of your hierarchy and maintenance schedule issues:
1. Asset Hierarchy Entity Structure:
The core problem is that the UI bulk edit doesn’t respect the MaintenanceAssetEntity’s hierarchy validation rules. When you update assets through the UI, it bypasses the entity framework’s referential integrity checks. You must use data entities for any operation that could affect hierarchy relationships.
Use this entity configuration:
Entity: MaintenanceAssetEntity
Key fields: AssetId, ParentAssetId, FunctionalLocationId
Update mode: Update existing
Validation: Full entity validation
2. Parent-Child Relationship Mapping:
The critical step is maintaining the parent references during functional location changes. Export your current asset hierarchy to Excel using the MaintenanceAssetEntity. Your export must include these fields: AssetId, ParentAssetId, FunctionalLocationId, HierarchyLevel, AssetType.
In Excel, update the FunctionalLocationId values for your reorganization, but DO NOT modify ParentAssetId values. The entity framework will handle relocating the hierarchy as long as parent references remain intact. Sort your data by HierarchyLevel ascending before import - this ensures parents are updated before children.
Create a validation formula in Excel to verify parent-child integrity:
=IF(ParentAssetId<>"", COUNTIF(AssetIdRange, ParentAssetId)>0, TRUE)
This confirms every parent reference points to a valid asset in your update set.
3. Maintenance Schedule Dependency on Hierarchy:
Maintenance schedules in Asset Management have dependencies on both the asset hierarchy and functional location hierarchy. When you move assets, the schedule associations don’t automatically update. You need a two-phase approach:
Phase 1: Update asset master data with new functional locations (preserving hierarchy as described above)
Phase 2: Update maintenance plan lines to reference the new functional location paths
Export MaintenancePlanLineEntity after your asset updates complete. Update the FunctionalLocationId fields to match your new structure, then reimport. The system will reassociate schedules with the correct hierarchy paths.
4. Bulk Update Validation Rules:
Implement these validation rules before executing your updates:
- Pre-update validation: Query your asset hierarchy to identify any existing orphaned assets (ParentAssetId references non-existent assets). Fix these first.
- Hierarchy completeness check: Ensure all assets in an update batch include their complete hierarchy chain (parent, grandparent, etc.). Don’t update partial hierarchies.
- Functional location validation: Verify new functional locations exist before updating assets. Invalid location references will cause the import to fail and potentially corrupt hierarchy.
- Maintenance schedule audit: Document which schedules are associated with which assets/locations before updates. Use this as a checklist for Phase 2.
Step-by-Step Execution Plan:
- Export current asset data using MaintenanceAssetEntity (include all hierarchy fields)
- In Excel, update FunctionalLocationId values only - preserve all ParentAssetId relationships
- Sort by HierarchyLevel ascending (parents first)
- Validate parent-child references using the formula provided
- Import updated asset data through Data Management Framework with full validation enabled
- Verify hierarchy integrity: Query for NULL parent references and incorrect hierarchy levels
- Export MaintenancePlanLineEntity
- Update FunctionalLocationId references in maintenance plans to match new asset locations
- Import updated maintenance plan lines
- Test maintenance schedule execution at each hierarchy level
Critical Configuration Settings:
In your Data Management project for the asset updates:
- Enable “Validate on import”
- Set “Skip staging” to No (you want to review staging data)
- Configure error handling to stop on first error during testing
- Use sequential execution, not parallel
Testing Approach:
Before executing on your full 3,500 asset inventory:
- Select one complete asset hierarchy (facility > system > components) - maybe 20-30 assets
- Execute the update process on this test set
- Verify hierarchy integrity, functional location assignments, and maintenance schedule execution
- Document any issues and refine your process
- Then proceed with full-scale updates in batches (by facility or system group)
Post-Update Validation:
Run these queries after your updates to verify success:
- Count of assets with NULL ParentAssetId where hierarchy level > 0
- Assets where functional location doesn’t match their parent’s functional location path
- Maintenance schedules with no associated assets
- Maintenance schedules with incorrect functional location references
This approach will preserve your asset hierarchy integrity while successfully relocating assets to new functional locations and maintaining your maintenance schedule associations. The key is using data entities instead of UI bulk edit, maintaining parent references throughout the process, and updating maintenance schedules as a separate coordinated step.