Manage Custom State Values Present in Asset Lifecycle Stages <!-- .SOKMKBArticle div.margin { padding: 10px 40px 40px 30px; color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; } .SOKMKBArticle div.fed{ background-color: #f5f8fa; border: 1px solid; border-color: #bfbfbf; padding: 10px; } .SOKMKBArticle .FedRestricted{ background-color: #c00000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .CustRestricted{ background-color: #ff0000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNRestricted{ background-color: #ea700d; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNConfidential{ background-color: #ffc000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .Public{ background-color: #00b050; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle table.tocTable { border: 1px solid; border-color: #f2f2f2; background-color: #f2f2f2; padding-top: .6em; padding-bottom: .6em; padding-left: .9em; padding-right: .6em; } .SOKMKBArticle table.noteTable { align: left; border: none; border-color: #81b5a1; background-color: #f2f2f2; width: 100%; border-spacing: 2; font-size: 11px; } .SOKMKBArticle table.internalTable { border-top: 1px solid; border-left: 1px solid; border-color: #81b5a1; width: 100%; border-spacing: 1px; } .SOKMKBArticle .sp td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle .sphr td { border-right: 1px solid; border-bottom: 1px solid; border-color: #81b5a1; background-color: rgb(245, 245, 245); padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; height: 20px; } .SOKMKBArticle .sh td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #81b5a1; color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle th { padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; border-bottom: 1px solid; border-right: 1px solid; border-color: #646464; background: #646464; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: white !important; height: 20px; } .SOKMKBArticle td { border-color: #646464; margin: 5px 5px 5px 5px; padding: 5px 5px 5px 5px; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #283d40; } .SOKMKBArticle p { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle li { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; line-height: 1.5; } .SOKMKBArticle pre { font-family: Courier New; } .SOKMKBArticle div { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle hr { border-top-width: 1px; border-top-style: solid; border-top-color: #81b5a1; } .SOKMKBArticle a { color: #81b5a1; } .SOKMKBArticle a.two:link { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:visited { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:hover { color: #ffffff; background-color: #259b8a; } .SOKMKBArticle .button { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle .title { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #81b5a1; font-size: 30pt; } .SOKMKBArticle .hd1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle h1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; font-weight: normal; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle .hd2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; text-decoration: none; } .SOKMKBArticle h2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; font-weight: normal; text-decoration: none; } .SOKMKBArticle .hd3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle h3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle .hd4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle h4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle .hd5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle h5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle .hd6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle h6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle details { font-size: 10pt; } .SOKMKBArticle details[open] summary ~ * { animation: sweep .5s; margin-top: 0; padding-top: 10px; } @keyframes sweep { 0% {opacity: 0; margin-top: -10px} 100% {opacity: 1; margin-top: 0px} } .SOKMKBArticle summary { cursor: pointer; outline: none; margin-bottom: 3px; } .SOKMKBArticle .summary { background-color: #81b5a1; font-size: 10px; color: white; cursor: pointer; padding: 5px; width: 100%; border: none; text-align: left; outline: none; vertical-align: top; } --> Product Success Playbook Manage Custom State Values Present in Asset Lifecycle Stages A step-by-step guide to analyze and remediate custom state values used in asset lifecycle stages Table of Contents Summary Goal of this Playbook Audience Problem Overview Executive Summary How this playbook can help you achieve business goals How this playbook is structured Problem Analysis Upstream Causes Downstream Consequences Impact on Your Business Engagement Questions Remediation Plays Summary Play 1: Review your data Play 2: Analyze your Asset and CI records Play 3: Fix Play Data Governance References Summary Goal of this Playbook The goal of this playbook is to identify and manage custom hardware asset state (alm_asset.install_status) and configuration item status (cmdb_ci.install_status)values created for managing asset lifecycle stages. Details about this playbook Author Bibu Elias PunnachalilReviewer Daniel W. SlocumDate 11/15/2021Addresses HSD # HSD0010489Applicable ServiceNow Releases All ReleasesTime Required Approximately 1 to 8 hours (depending on your environment) Audience Asset Manager and Asset Management TeamConfiguration Manager or Configuration Management teamServiceNow Administrator or Discovery Administrator Problem Overview Correctly identifying the lifecycle stage of an asset is a critical component of maintaining and managing the financial impact of an asset and its related Configuration Item have on a business. Asset lifecycle stages are captured in the Asset record’s State and Substate attributes when a user or an automated process selects a state and substate from one of the available choice list values defined in the ServiceNow instance. As ServiceNow is a highly configurable platform, customizations to the State and Substate choice lists are simple to perform but the consequences of making those customizations are not always readily apparent. Modifications to the out of box values or the creation of new State and Substate values may impact Asset Management Database (AMDB) and Configuration Management Database (CMDB) workflows and other dependent processes and can preclude visibility of new values added to the product as ServiceNow releases new functionality. This playbook helps you identify if custom State and Substate values exist on asset lifecycle stages and helps in correcting them when appropriate. Executive Summary How this playbook can help you achieve business goals Keeping baseline asset lifecycle stages help to: Improve asset lifecycle tracking Improve operational visibility of assetsReduce operational costs by increasing asset data accuracyReduce conflicts when deploying family and patch release ServiceNow upgrades How this playbook is structured This playbook guides you through three plays. The first play (a review play) helps you identify the custom status values and associated assetsThe second play (an analysis play) helps you to analyze and understand the cause and impact of the identified custom statusThe third play (a fix play) explains the steps to remove any custom status valuesThe fourth play (a governance play) explains the way you can monitor and keep the baseline asset lifecycle stage choice list Problem Analysis Upstream Causes Transforms are loading custom status choices that do not exist as base choices provided by ServiceNowA ServiceNow Admin may have manually added new choices in the attribute’s choice list based on a business requirement which ServiceNow baseline choices did not supportAn update to the out of box Label of an existing status choice may have been made modifying the original intent of a ServiceNow provided choiceAn Admin may have manually changed the SQL Value of an existing status choice resulting in unavailability of the out of box choice to workflow automationSome custom choices within State and Substate choice lists are not life cycle values and should live outside of the status choice listIntegrations to 3rd party solutions may create custom State and Substate choices that do not exist as baseline choices provided by ServiceNowYou may not be aware that customizations in status attributes may have an adverse affect on capabilities within the platformProcesses may not exist to identify and review customizations to State and Substate attributes within the CMDB Note: New custom choices are sometimes necessary, but any custom choices that are not utilized should be decommissioned. New custom choices should have SQL values that are well out of conflict with out of box values. For example, in the Rome release, out of box Asset State (install_status) choice values are numeric ranging from one to eleven. Custom values, if numeric, should start at a very high number to avoid conflict with ServiceNow’s development of new values or they should be textual. Downstream Consequences Data Consequence Data conflict with out of box values may result in inaccurate data in the AMDB and the CMDBData alignment between status attributes may result in inaccurate data in the AMDB or the CMDBSynchronization rules that maintain lifecycle stage data between Asset and CI records may not be created or updated to reflect custom values resulting in related Asset and CI records reflecting different lifecycle stages Operation Consequence Policies that update status choices may be unaware of custom values resulting in broken workflowsReporting will lack correct data, unable to associate the correct status of a configuration itemInaccurate data used to make business decisions can result in incorrect business decisions App Consequence Configuration items may not reflect appropriate operational status for inclusion / exclusion within various workflowsProcurement process may not receive accurate input from Asset management Impact on Your Business Having custom values in asset lifecycle stage may result in, • Reduced Operational Visibility ○ Process Alignment ○ Lifecycle Management ○ Inaccurate inputs into strategic decision management processes • Audit/Compliance Issues ○ System Integrity ○ Data Governance ○ Process Gaps • Increased Operational Cost ○ Asset Retirement gaps ○ Procurement accuracy • Process Automation Difficulty ○ Baseline automation failure Engagement Questions: Consider the answers to these questions: Is the instance using the Asset plugin, the Hardware Asset Management application, SAM Foundation, or the Software Asset Management application? Each of these plugins and applications share the alm_asset table and thus share the State and Substate attributes. Modifications or additions to the choice lists supporting the attributes can have impacts to the functionality of plugins and applications where the value is not relevant. Is the customer planning to or in the process of adopting CSDM ? Adoption of the CSDM will migrate customers from the long-used State and Substate attributes to new attributes reflecting the standardized lifecycle aligning to the CSDM. Modifications to the out of box State and Subtate values will complicate migration efforts. Are customizations reviewed during development process? Remediation Plays SummaryThe table below lists and summarizes each of the remediation plays in the playbook. Play Name Review your data What this play is about Query and Analyze existing custom asset State values in your instance Required tasks Download and execute the script Analyze Play What this play is about Analyze and document list of custom asset lifecycle states Required tasks Analyze and document list of custom asset lifecycle states Fix Plays What this play is about Revert customizations Required tasks Correct custom state choices where appropriate Data Governance What this play is about Helps you establish standard operating procedures, as well as periodic data validation Required tasks Provides advice, best practices and configuration audit instructions Play 1 - Review your data What this Play is about This play helps you see if there are any custom state values deviating from baseline This play includes running a fix script with three output sections. The first section provides a count of custom state values in asset records. The second section provides the list of all custom States. The third section provides the number of asset records using each of the custom states. Required tasks Download and import the Query - Custom Asset Lifecycle Status fix scriptRun the Fix scriptUpon successful completion, review the output from the queryNote contents of the actual output will be different, but sample output is shown below: Play 2 - Analyze your CI records What this Play is about This play provides the steps to analyze the information returned by the script in the previous step, Required tasks Identify asset data stakeholders.A team or individual should ultimately be responsible for maintaining asset lifecycle data. This team or individual will often be among stakeholders who consume asset data. Present custom values to stakeholders to identify if custom values are required to run the business.If stakeholders cannot be identified, or more importantly, if individuals or teams cannot be identified who are actively using the data, or if there are no assets with a custom State or Substate, the custom attribute is a strong candidate for removal (not remediation).Is the data used for a business critical process?While the information captured in the custom status may have an identified owner, often the status additions were to support a legacy business process. Identifying the business value that a particular custom status delivers is an important factor in determining if the status should be retained. If the status population is done simply because “we've always done it this way” or because it is to maintain historical trend data that otherwise has no current value, then that status is also a candidate for removal.Is there overlap between a custom value and new out of box base values?A custom State or Substate may have been created for good reason: it filled a gap between business need and out of box functionality. However, with the rapid evolution of the ServiceNow platform, new functionalities are introduced with every family release. New lifecycle stages that overlap with custom values may have been released. Out of box values are preferred as they are used across foundation tables within the entirety of the ServiceNow Platform. Play 3 - Fix Play What this Play is about This play tells you how to correct custom State and Substate choice values where appropriate. Required tasks Navigate to Choice Lists as part of System DefinitionFilter the Choice Lists to use the following query to correct the Asset State attribute:Search Choice List for entries that match the custom choices identified in the previous step to be deletedMake the appropriate corrections based on your analysis.Repeat steps 3 and 4 using the following query definitions for Asset Substate and CI Status: Data Governance What this Play is about This play lists the best practices and processes for managing custom choices within configuration item status Required tasks Establish policy and system oversight that discourages customizations to State, Substate, and Status attributes while enabling Data Stewards to ensure data integrity for core data.Leverage quarterly ITAM roadmap review sessions to understand what new features are in development. Communicate with your sales team for scheduling and access.Periodically run the script given in play 1and check if any new state value is getting added References Managing custom Status values for Configuration Items Do you have custom status values(Operational Status/Install Status) in CMDB? Below playbook can help to manage this, Percentage of Custom Status Values for CI Lifecycle Stages Congratulations You have completed this Product Success Playbook.