Bill Martin
Giga Sage

The Question

 

A community member asked:

 

"When we use the Create Connection step towards Oracle DB in the Extension Section, it is creating a relationship type of Applicative To::Applicative From. Is it possible to have the relationship type as DEPENDS ON::USED BY when creating a connection from a Tomcat WAR to Oracle instances?"

 

This is a great architectural question that comes up frequently when teams want their CMDB service topology to reflect functional dependency semantics ("Depends on") rather than the default application flow semantics ("Applicative Flow To").

 

Investigation — Replicated Using the Perplexity AI Assistant

 

To answer this definitively, I replicated the steps directly inside a ServiceNow instance using the Perplexity AI browser assistant, which navigated the Pattern Designer and inspected the actual pattern language and UI options. Here is what we found.

 

Step 1 – How the Existing Tomcat WAR → Oracle Connection Works

 

Inside the Tomcat war Discovery Pattern (CI Type: cmdb_ci_app_server_tomcat_war), there are two places where Oracle DB connections are created:

Connection Section → "Connection to Oracle DB":

text
 
step { name = "Create Connection to Oracle DB" create_connection { connection_type = APPLICATION_FLOW entry_point_type = "cmdb_ci_endpoint_oracle_db" attributes { ... } } }

Connection Section → "Connectivity to Relational Database Systems":

text
 
step { name = "Create connection db_conn Oracle" create_connection { connection_type = APPLICATION_FLOW entry_point_type = "cmdb_ci_endpoint_oracle_db" attributes { ... } } }

Both use connection_type = APPLICATION_FLOW, which is exactly why the resulting CMDB relationship is Applicative Flow To :: Applicative Flow From.

 

Step 2 – What Connection Types Are Available?

When adding a Create Connection step inside the Extension Section of any Application pattern in the Pattern Designer, the "1. Select Connection Type" dropdown exposes only four options:

Connection Type CMDB Relationship Created
Application Flow Applicative Flow To :: Applicative Flow From
Cluster Cluster of :: Cluster
Inclusion (containment-style)
Storage Flow (storage-related)

 

Step 3 – Does "Depends On::Used By" Exist in the CMDB?

 

Yes. The CI Relationship Types table (cmdb_rel_type) confirms that Depends on :: Used by is a valid, out-of-box relationship type. However, it is not exposed as a selectable connection type in the Create Connection step — neither in the Extension Section nor in the Connection Section of the Pattern Designer.

 

The Answer: No — Not Natively Through the Pattern Designer

 

The create_connection step in the Discovery/Service Mapping pattern language only supports the four connection types coded into the engine. "Depends On" is not one of them. There is no way to configure the Create Connection step to produce a DEPENDS ON :: USED BY relationship through the standard Pattern Designer UI.

 

Workarounds

 

If your use case specifically requires DEPENDS ON :: USED BY between Tomcat WAR CIs and Oracle Instance CIs, here are three approaches:

 

Option 1 – Post-Discovery Business Rule or Script Include


After Discovery runs and the CIs are created/updated, a Business Rule on cmdb_rel_ci (or a Scheduled Script) can traverse the "Applicative Flow To" relationships created by the pattern and insert a corresponding "Depends on :: Used by" entry in the cmdb_rel_ci table.

 

Option 2 – Service Mapping Manual Override
In Service Mapping, after the service map is generated, you can manually adjust or enrich CI relationship types at the map level to reflect dependency semantics.

 

Option 3 – Direct cmdb_rel_ci Manipulation via MID Server Script
A custom pattern step using an eval block with a Groovy/JavaScript snippet can insert directly into cmdb_rel_ci via the ServiceNow API, bypassing the create_connection abstraction entirely. This is an advanced approach and should be thoroughly tested before use in production.

 

Summary

Question Answer
Does the Create Connection step support DEPENDS ON? No
Can you see DEPENDS ON in the Connection Type dropdown? No — only Application Flow, Cluster, Inclusion, Storage Flow
Does DEPENDS ON::USED BY exist as a CMDB relationship type? Yes, in cmdb_rel_type
Can you achieve it via a workaround? Yes, via post-processing script or direct cmdb_rel_ci insert

Hope this helps the community! If you have found another approach, drop it in the comments below.

 

— Investigated and validated using the Perplexity AI browser assistant against a live ServiceNow Zurich instance.

Version history
Last update:
2 hours ago
Updated by:
Contributors