ShashankInamdar
ServiceNow Employee
ServiceNow Employee

This article gives an overview of the different Catalog relationships supported by ServiceNow Catalog Management under the TSM Application.

 

 

 

Feature: Catalog Relationships 

Application: Telecom Service Management 

Release: All applicable 

 

DYK (Did You Know) is a series of articles that introduces simple and basic concepts of the working of ServiceNow TMT Applications. 

 

 

ServiceNow Catalog is aligned with the TMF SID (Shared Information Data Model) and provides the following entities to express the Catalog definition –

 

Product Offering

Product Specifications

Service Specifications

            Type = customer facing

            Type = resource facing

Resource Specifications

 

These entities can be categorized in the following domains –

 

ShashankInamdar_0-1703071697347.png

 

 

Product Domain contains Product Specifications

CFSS Service Domain contains Customer Facing Service Specifications

RFSS Service Domain contains Resource Facing Service Specifications

Resource Domain contains Resource Specifications

 

Intra Domain relationships.

 

A hierarchical relationship between two specifications of the same type i.e., ONLY within a given domain can be expressed either via a ‘Bundles’ or ‘ComposedOf’ relationship.

 

 

When should a 'Bundles' relationship be used?

 

A Bundles relationship is similar to a ‘Aggregation Relationship’.

A Bundles relationship should be used when:

  • The target specification in the relationship may remain unaffected by a change on the source specification.
  • The target specification may change or cease independent of the source specification.
  • The instantiated target specification can have its independent orchestration flow.

 

In a Bundles relationship, a Domain order is created for both the source and target specification and hence may have an orchestration Subflow attached to both the domain orders.

 

When should a 'ComposedOf' relationship be used?

 

A ComposedOf relationship is similar to a ‘Composite Relationship’.

A ComposedOf relationship should be used when:

  • The target specification in the relationship is always affected by a change or cease of the source specification.
  • The target specification does not change or cease independent of the source specification i.e., it’s lifecycle is tightly coupled with the source specification.
  • The instantiated target specification does not have its independent orchestration flow.

 

In a ComposedOf relationship, a Domain order is created only for both the source specification and hence can only have an orchestration Subflow attached to the domain order for the source specification.

 

Inter Domain Relationships

 

A hierarchical relationship between two specifications of different type i.e., ACROSS domains can be expressed either via a ‘Realized As’ or ‘Requires’ relationship.

 

When is a ‘Realized As’ allowed?

 

In a hierarchical relationship, when the target specification is of type CFSS, the relationship type to used is ‘Realized As’.

 

When is a ‘Requires’ allowed?

 

In a hierarchical relationship, when the target specification is of type RFSS or a Resource, the relationship type to used is ‘Requires’.

 

The table below summarizes the specification relationship types –

 

Source Specification

Target Specification

Supported Relationship Types

Intra/Inter Domain Classification

Product

Product

Bundles, ComposedOf

Intra

Product

CFSS

Realized As

Inter

Product

RFSS

Requires

Inter

Product

Resource

Requires

Inter

CFSS

CFSS

Bundles, ComposedOf

Intra

CFSS

RFSS

Requires

Inter

CFSS

Resource

Requires

Inter

RFSS

RFSS

Bundles, ComposedOf

Intra

RFSS

Resource

Requires

Inter

Resource

Resource

Bundles, ComposedOf

Intra

 

 

Horizontal Relationships

 

While hierarchical relationship is top-down/vertical/parent-child in nature, ServiceNow Catalog also supports horizontal relationships that cuts across domains or hierarchy and is agnostic to whether the source and target specification have a common parent.

 

Horizontal Relationship is like a dependency relationship, where one entity relies on another entity.

Within horizontal relationship there are two types supported – ‘Requires’ and ‘Excludes’.

 

Horizontal relationship is also known as sibling relationship.

 

Note: The ‘Requires’ in a hierarchical relationship is different from the ‘Requires’ in a horizontal relationship.

 

When to use horizontal relationship?

 

Here are a few scenarios where horizontal relationships are useful –

 

  • When creating a relies on/requires relationship between two specifications, irrespective of whether they have a common parent or part of common offering.
    1. Example: A VoIP service depends on a Broadband Product.

 

ShashankInamdar_1-1703071697348.png

 

 

  • When grouping specifications by a common source specification.
    1. Example: In scenarios where there are multiple Broadband, VoIP and OTT services, and there is a need to identify which VoIP and OTT depends on which Broadband service under a given Account.

 

ShashankInamdar_2-1703071697350.png

 

 

  • When defining mutually exclusivity between two specifications.
    1. Example: VoIP service cannot be offered over Mobile Broadband and hence excludes (is mutually exclusive) with it.

 

ShashankInamdar_3-1703071697351.png

 

 

 

More information on how to configure horizontal relationships is available in ServiceNow Product documentation here –

https://docs.servicenow.com/bundle/vancouver-order-management/page/product/tmt-order-mgt/concept/hor...

 

 

Let us use these concepts and apply it to a real Catalog model below.

 

ShashankInamdar_4-1703071697361.png

 

Takeaways from this Catalog model –

 

  • Home Office Internet and a Router are sold as two independent offers.
  • Home Office Internet Product has a hierarchical relationship with –
    • 24/7 Support Product of ‘ComposedOf’ type, since the Support product’s lifecycle is tightly coupled with the source specification and does not need a separate orchestration Subflow of its own.
    • Email Account Product of ‘Bundles’ type, since the Email Product has a set of characteristics such as mailbox size that can change independent of the source specification and it also has an independent orchestration Subflow to provision the mailbox.
  • Connectivity Service (CFSS) is delivered either over Fibre or DSL Access (RFSS).
    • Fibre Access ‘Requires’ (horizontal) a Fibre ONT resource, but ‘Excludes’ a DSL Modem.
    • DSL Access ‘Requires’ (horizontal) a DSL Modem resource, but ‘Excludes’ a Fibre ONT.
  • Notice that the source & target specifications in the horizontal relationship between the Access and Router/ONT are under two independent Catalog structures.
  • Also notice, the different relationship types in the context of intra and inter domain.

 

 

If you found this article useful, please mark is as Helpful 👍. Also, I look forward to your comments/questions. 

 

 

Comments
Mahesh_Krishnan
Giga Guru

Thanks for this write-up Shanshank! It was unclear to me how the relationship types affected order decomposition; now I know.

Mahesh_Krishnan
Giga Guru

Sorry, Shashank! Mispelled your name!

rishimehta01
Tera Expert

rishimehta01_0-1708505044632.png

I am getting above error when publishing CFSS in relationship with RFSS.

Pls advise what could be reason on this errors and how to rectify.

molayd
Mega Guru

@rishimehta01 ,

 

I believe you these Internet specs are all CFSS Spec. To confirm, could you please share screenshots of Internet and Internet Over Fiber?

 

--

Molay

rishimehta01
Tera Expert

rishimehta01_0-1708505771013.png

This is what you are looking for or any other details.

ShashankInamdar
ServiceNow Employee
ServiceNow Employee

@rishimehta01 There is a known bug which is fixed in the latest v7.0 of the plugin.

A workaround in the mean is to establish the spec relationship between the CFSS and RFSS when they are in a published state. 

Please let me know if this works for you.

rishimehta01
Tera Expert

@ShashankInamdar  - If I understood correctly I need to publish all the specs and then make the relationship. 

Pls confirm.

rishimehta01
Tera Expert

I have published both CFSS and RFSS > then made the specs relationship  it worked. Thanks.

Joshua Chen FX
Mega Sage

@ShashankInamdar  if you have a switch resource which has a license attached to its lifecycle (e.g. this switch has a license key for 4 years), that license ID is a CHAR of the Switch (RS), or a CHAR of the RFS which depends on the Switch (RS)... or a logical resource?

ShashankInamdar
ServiceNow Employee
ServiceNow Employee

@Joshua Chen FX I would rather model the Switch and License as two independent resources, given the Switch also may have it'w own lifecycle. 

You can use horizontal relationship between the two to maintain a relationship. The License Id can then reside on the License RS.

 

Ofcourse, this is just one of many ways of doing it.

But, with two different Resources - allows you to have independent lifecycle of it's own, they remain loosely coupled, more flexiblity, independent orchestration.

 

Thoughts? 

P.S: My suggestion would be for such questions to be a separate thread on it's own.

Rekha Dukkipati
Tera Contributor

Hi @ShashankInamdar ,

I am also facing the same issue. Earlier, the relationship type between CFS and RFS is requires. But now, when I am publishing, it says this error.

RekhaDukkipati_0-1716288771986.png

 

 

 

 

 

ShashankInamdar
ServiceNow Employee
ServiceNow Employee

@Rekha Dukkipati  What OMT plugin version are you on? 

Build a relationship between the published versions of the CFS and RFS, rather than publishing after the Spec relationship has been built.

Rekha Dukkipati
Tera Contributor

Hi @ShashankInamdar ,

 

We are currently using 6.0.3. As a workaround, I have published the CFS first and then I have added the Specification relationship with RFS.

In the earlier version, it accepted the relationship as requires between CFS and RFS.

 

May I know what was fixed in the higher version? Will the CFS start accepting the relationship type as requires? Between CFS and RFS?

ShashankInamdar
ServiceNow Employee
ServiceNow Employee

@Rekha Dukkipati This has been fixed in the Washington release, specifically in the latest Product Catalog Advanced plugin. There was a bug that disallowed creating this relationship. On the latest version, you should be able to create a 'Requires' relationship between the CFSS and RFSS.

Rekha Dukkipati
Tera Contributor

Hi, @ShashankInamdar

 

We are currently on the Washington release and current version of Product Catalog Advanced is 5.0.0 May be that is the reason it is throwing an error.

 

Thanks for sharing the details. I appreciate you making an effort to respond.

 

Regards,

Rekha D

 

Version history
Last update:
‎01-04-2024 01:00 AM
Updated by:
Contributors