- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
2 hours ago
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":
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":
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.
