CSDM CI Lifecycle Management: LifeCycleUtil and Internal State Restoration
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 hours ago
ServiceNow’s Common Service Data Model (CSDM) introduces a standardized way to manage the lifecycle of Configuration Items (CIs) and Assets. Instead of relying on legacy fields like Install Status and Operational Status, CSDM defines a two-tier lifecycle framework:
Life Cycle Stage (high-level phase)
Life Cycle Status (detailed state)
To enforce this model consistently across CMDB, Asset Management, and ITOM, ServiceNow provides the out-of-box utility LifeCycleUtil.
CSDM Lifecycle Model Overview
Life Cycle Stage (Broad Phase)
Life Cycle Stage represents the high-level phase of a CI or Asset:
Draft / Development – Planning or design phase
Pre-Operational – Testing, staging, or pilot
Operational – Actively in use (production)
End of Operation – Retired, decommissioned, or pending disposal
Life Cycle Status (Granular State)
Life Cycle Status adds detail within a stage, such as:
Planned
Installed
Operational
Pending Disposal
CIs
are automatically synchronized with:Related Assets
Retired
Core Responsibilities of LifeCycleUtil
1. Legacy ↔ CSDM Lifecycle Mapping
LifeCycleUtil maps legacy fields:
install_status
operational_status
to CSDM fields:
life_cycle_stage
life_cycle_stage_status
2. Lifecycle Validation
Before insert or update, LifeCycleUtil ensures:
Both Stage and Status are provided
The combination is valid per life_cycle_control
Invalid combinations are blocked
3. Synchronization Between CI and AssetWhen enabled via system property:
csdm.lifecycle.sync.between.ci.and.asset.activated = trueLifecycle changes on:
4. Bulk Lifecycle Population
During migration or cleanup, LifeCycleUtil can populate lifecycle values in bulk using existing mappings.
Key method:
LifeCycleUtil.bulkPopulate();5. Fallback to “To Be Determined”
If no valid mapping exists:
Stage → To Be Determined
Status → To Be Determined
This guarantees no CI is left blank, which is critical for CMDB health.
Key Lifecycle Tables Used
Table Purposelife_cycle_stage Defines lifecycle stages life_cycle_stage_status Defines statuses life_cycle_control Valid stage/status combinations life_cycle_mapping Legacy → CSDM mapping
Important System PropertiesProperty Name Descriptioncsdm.lifecycle.migration.activated Enables lifecycle migration csdm.lifecycle.bulk_population.active Prevents parallel bulk runs csdm.lifecycle.sync.between.ci.and.asset.activated CI–Asset sync csdm.lifecycle.excluded.class.list Excludes CI classe Scheduled Script Execution
CI Lifecycle Management – Restore Internal State Management Tables
Type: Scheduled Script Execution
Application: GlobalPurpose:
Restore lifecycle stages and statuses
Reapply lifecycle mappings
Ensure CSDM compliance
(function executeLifecycleRestore() {
var lifeCycleUtil = new global.LifeCycleUtil();
if (!lifeCycleUtil.isLifeCycleMigrationActivated()) {
gs.warn('Lifecycle migration not activated. Job aborted.');
return;
}if (lifeCycleUtil.isBulkPopulationActive()) {
gs.warn('Bulk lifecycle population already running. Job aborted.');
return;
}gs.info('Starting CI lifecycle internal state restoration');
lifeCycleUtil.bulkPopulate();
gs.info('CI lifecycle internal state restoration completed');
})();
LifeCycleUtil is the foundation of CSDM lifecycle management in ServiceNow. It enforces valid lifecycle data, synchronizes legacy and modern fields, and supports safe bulk restoration through scheduled jobs.
Using the CI Lifecycle Management – Restore Internal State Management Tables scheduled script is the recommended approach for maintaining a clean, CSDM-compliant CMDB.
If you found this article useful, please mark it as Helpful. It helps others find the content more easily 👍🙂
