SAP Cloud ALM to ServiceNow CMDB Integration – CI Mapping and Relationship Modeling via API
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hello Team,
We are currently working on integrating SAP Cloud ALM (CALM) with ServiceNow CMDB using APIs and would like to understand the recommended approach for CI mapping and relationship creation.
From the CALM Landscape API, we receive Technical Systems containing information such as:
- Technical Systems (ABAP, HANA DB, Java, Web Dispatcher, Cloud Connector, etc.)
- Instances
- Databases
- Installed Software
- Related Systems (relatedSystems)
- Logical Systems
We are looking for guidance on the following:
What ServiceNow CMDB classes are typically used to map SAP CALM entities?
- ABAP Systems
- SAP S/4HANA Systems
- SAP HANA Databases
- Application/Database Instances
- Cloud Connectors
How are relationships generally mapped into ServiceNow CMDB?
- Should the related Systems attribute be used to create Depends on / Used by relationships?
- Has anyone implemented HANA Database ↔ ABAP System relationships using CALM data?
Is there a recommended mapping model for:
- Technical System → CMDB CI Class
- Instance → Server/Application Instance CI
- Database Container → Database CI
- Installed Software → Software Installation CI
Are there any best practices for using IRE (Identification and Reconciliation Engine) when importing SAP CALM landscape data through APIs?
As an example, in CALM we see relationships like:
and we are evaluating whether these should be represented in ServiceNow as:
Any implementation experiences, sample mappings, architecture recommendations, or lessons learned would be greatly appreciated.
Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 weeks ago
Hi @AnkithaC,
Don't invent SAP-specific classes for this, map CALM entities onto the base CSDM classes ServiceNow already ships. That keeps you inside standard Discovery/Service Mapping patterns instead of maintaining a custom class tree forever.
- Technical System (ABAP, S/4HANA, Java): model as cmdb_ci_appl (Application), optionally rolled up under a cmdb_ci_business_app for the business-facing view
- HANA Database: cmdb_ci_database for the database, cmdb_ci_db_instance for the running instance
- Instances: attach as the child cmdb_ci_db_instance or app server instance, related to the host server
- Cloud Connector: no dedicated class exists, model it as a cmdb_ci_appl running on its host, tagged so it's identifiable
- Installed Software: cmdb_sam_sw_install if you're licensed for Software Asset Management, otherwise cmdb_ci_spkg
For relatedSystems, yes, that's exactly where Depends on::Used by belongs, PE1 (S/4HANA) Depends On PH1 (HANA DB) is the correct direction since the app depends on the database, not the other way around.
On IRE: don't insert CIs directly. Push the CALM payload through an Import Set using CMDBTransformUtils, or Integration Hub ETL, so identification rules actually fire. Build your identifier rule on SID plus hostname or instance number, whatever CALM gives you that's stable, so re-imports update the same CI instead of creating duplicates.
Thank you,
Vikram Karety
Octigo Solutions INC