Multiple tables for the same components

JordiDG
Tera Contributor

I have a question on what tables to use.

 

Currently I see multiple tables for the same components.

Examples: 

1a. cmdb_ci_service_business

1b. cmdb_ci_service (service classification = business)

 

2a. spm_service_portfolio

2b. service_portfolio

 

At least they mentioned the following in the ServiceNow Docs for the Technical Services to make it clear:

"Previously, technical services were mapped to the [cmdb_ci_service] table and were classified as “technical services." Starting with the Paris release, technical Services are now mapped to the [cmdb_ci_service_technical] table."

 

Therefore I can assume it is the same for the 1a and 1b mentioned Business Services (1a being the new way and 1b being the old way). But this is not mentioned clearly in the Docs as they did with the Technical Services and they are even mixing it together, making it more confusing. See picture.

 

With regards to the service portfolio. "service_portfolio" is mentioned everywhere in the Docs. However, when looking up that table, it does not exist. And if you click on Business Service Portfolio in the application navigator, it will send you to the spm_service_portfolio table. 

 

So what are the correct / best practice tables to use?

 

Kind regards,

 

Jordi

1 ACCEPTED SOLUTION

EricDohr
ServiceNow Employee
ServiceNow Employee

[Service] cmdb_ci_service is a table that extends to other tables, including Business Service [cmdb_ci_service_business], Technical Service [cmdb_ci_service_technical], and more.  If a record is created in a child table, the records will be visible in the parent table.  ServiceNow originally had the cmdb_ci_service table, and as Service Portfolio Management has grown, the need to differentiate records and have specific tables has increased, resulting in the new tables.

 

While the child table has similar fields to the parent, you can have unique fields. 

 

If you are focused on Business Services, Technical Services, and Service Offerings, I highly recommend checking out Service Builder, as that will help you create the proper records at the right table.  Mark and Caitlin just posted a YouTube video on this topic that may help answer key questions; definitely check it out.

 

For Service Portfolio Management, a few key tables include

  • Service Portfolios [spm_service_portfolio] – Where you define portfolios
  • Taxonomy Layer Definitions [spm_taxonomy_layer_definition] – the layers of a portfolio
  • Taxonomy nodes [spm_taxonomy_node] – Nodes that align to a layer and a portfolio
    • You associate Services to Nodes as part of the Service Portfolio Management

 

Here is a really handy document regarding “ServicePortfolio Management – Process Workshop

 

Tables that are extended from Service [cmdb_ci_service]

EricDohr_0-1668092857552.png

 

Note, there are tables that are extended from here such as tables of Application Services

View solution in original post

13 REPLIES 13

It's a good call-out.  There are several components that should be modified in the platform for consistency with CSDM, and these are not necessarily present in all instances.  For example:

  • cmdb_ci_service should be relabeled as Service, not Business Service
  • cmdb_ci_service_query should always be referenced as Dynamic Group not Technical Service which may still be lingering if you have Event Management installed
  • Business Applications should not be available to select as CIs in your Incidents and Changes.
  • Several "Application Service" and "Business Application" navigation modules may exist which operate differently and can have very important differences in how they behave.

The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.

The attached slide shows the evolution of the Service Classes. If your instance was created before Rome, you may still be seeing the old labels on the classes and references to the Service class. Unfortunately, the instance upgrade process does not update these labels. I have an update set (available upon request) that makes all the updates to bring an older instance into conformance with the new names.

Mark Bodman
ServiceNow Employee
ServiceNow Employee

I would refer to this video on Service Builder which provides an explanation to the separate tables I would recommend using Service Builder in defining all your Business and Technical service to remove the guess-work on what to do.

 

There are many tables used for Application Service, depending on how it's "populated" and managed.  This video with Navin helps explain why that is, and how they each work.  I recommend using the Application Services wizard  to create them so that they are complete and properly connected with other areas of the model following CSDM.

Thanks for the reply, I will definitely check out the video!

 

About the application service having multiple child classes/tables underneath cmdb_ci_service_auto depending on population method, I was already aware of that indeed. 

 

My question was mainly on the non-consistent and therefore confusing information on 1. Service Portfolio; official ServiceNow docs always mention service_portfolio everywhere in their CSDM pages but the application navigator links to the spm_service_portfolio and people mention that table to be correct as well.

 

And 2. The business service. Because in the official ServiceNow Docs they explicitly mention that for Technical Services, the cmdb_ci_service with service classification = technical service is the old way of working and the new way of working since Paris is the cmdb_ci_service_technical table, but they don't mention that same sentence for Business Service even though I assume it works the same way with cmdb_ci_service with service classification = business service being the old way & cmdb_ci_service_business being the new way. But it would be nice if they also explicitly mention that for Business Services as they do with Technical Services in the Docs.