12 KiB
Graph & OData Provisioning - Comprehensive Reference
Source: SAP BTP Integration Suite Documentation Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/tree/main/docs/ISuite Last Updated: 2025-11-22
Table of Contents
- Graph Overview
- Business Data Graph
- Entity Types
- Querying Graph
- Extensibility
- OData Provisioning Overview
- OData Service Registration
- Limits and Quotas
Graph Overview
Graph is a capability that provides a unified API to access business data across SAP systems as a semantically connected data graph.
Key Benefits
- Single API for multiple SAP systems
- Unified data model across S/4HANA, Sales Cloud, SuccessFactors
- Query languages OData V4 and GraphQL
- No data caching - queries route to source systems
- Scalable multitenant architecture
How It Works
┌─────────────────┐
│ Applications │
│ (OData/GraphQL)│
└────────┬────────┘
│
┌────────▼────────┐
│ Graph │
│ Business Data │
│ Graph │
└────────┬────────┘
│
┌────────┴────────────────────────────┐
│ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────────┐
│ S/4HANA │ │ Sales │ │SuccessFactors│
│ Cloud │ │ Cloud │ │ │
└──────────┘ └──────────┘ └──────────────┘
Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/what-is-graph-ad1c48d.md
Business Data Graph
The Business Data Graph consolidates data entities from SAP systems into one curated, semantically connected data model.
SAP-Managed Graph
SAP provides a baseline data graph with:
- Pre-defined entity relationships
- Standard data models
- Cross-system navigation
Supported Data Sources
| System | Entity Examples |
|---|---|
| S/4HANA Cloud | BusinessPartner, SalesOrder, Product |
| Sales Cloud | Account, Opportunity, Lead |
| SuccessFactors | Employee, Position, Department |
Graph Navigator
Visual tool for exploring the data graph:
- Browse entities and relationships
- View entity properties
- Test queries
- Explore navigation paths
Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/graph-e03300f.md
Entity Types
Unified Entities
Entities that aggregate data from multiple systems into a single view.
Example: Customer entity combining:
- S/4HANA BusinessPartner
- Sales Cloud Account
- SuccessFactors Employee (as contact)
Mirrored Entities
Direct representation of source system entities without transformation.
Custom Entities
User-defined entities that extend the standard graph:
- Custom data sources
- Custom properties
- Custom relationships
Entity Properties
| Property Type | Description |
|---|---|
| Primitive | String, Number, Boolean, Date |
| Navigation | Links to other entities |
| Complex | Structured nested types |
Documentation:
- Unified: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/unified-entities-9bcd2ec.md
- Mirrored: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/mirrored-entities-07fdc7a.md
- Custom: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/custom-entities-af8dcd6.md
Querying Graph
OData V4 Queries
Standard OData query syntax:
GET /graph/api/v1/sap.graph/Customer
GET /graph/api/v1/sap.graph/Customer('1001')
GET /graph/api/v1/sap.graph/Customer?$filter=country eq 'US'
GET /graph/api/v1/sap.graph/Customer?$select=name,email
GET /graph/api/v1/sap.graph/Customer?$expand=orders
Query Options
| Option | Description |
|---|---|
$filter |
Filter results |
$select |
Select properties |
$expand |
Include related entities |
$orderby |
Sort results |
$top |
Limit results |
$skip |
Pagination offset |
GraphQL Queries
query {
Customer(id: "1001") {
name
email
orders {
orderNumber
totalAmount
}
}
}
Navigation
Traverse entity relationships:
# OData - Get customer's orders
GET /graph/api/v1/sap.graph/Customer('1001')/orders
# OData - Get order's line items
GET /graph/api/v1/sap.graph/SalesOrder('ORDER001')/items
Extensibility
Custom Data Sources
Add non-SAP data to the graph:
- Register data source connection
- Define entity mappings
- Configure authentication
- Test connectivity
Projections
Customize existing entities:
- Add/remove properties
- Rename entities
- Filter data
- Define transformations
Compositions
Create new entities from existing ones:
- Combine entities
- Define relationships
- Create computed properties
Projection Definition (JSON)
{
"projections": [
{
"name": "MyCustomer",
"source": "sap.graph.Customer",
"properties": {
"include": ["id", "name", "email"],
"exclude": ["internalNotes"]
},
"filter": "status eq 'ACTIVE'"
}
]
}
OData Provisioning Overview
OData Provisioning exposes SAP Business Suite data as OData services on BTP without requiring an on-premise SAP Gateway hub.
Key Features
- Expose business data as OData services
- No Gateway hub installation required
- Reduced TCO with cloud-managed service
- Multi-device access through standard protocol
Architecture
┌─────────────────┐
│ Application │
│ (OData V2/V4) │
└────────┬────────┘
│
┌────────▼────────┐
│ OData │
│ Provisioning │
│ (BTP) │
└────────┬────────┘
│ Cloud Connector
┌────────▼────────┐
│ SAP Business │
│ Suite (ECC) │
│ (On-Premise) │
└─────────────────┘
Prerequisites
| Requirement | Description |
|---|---|
| Cloud Connector | Connect to on-premise |
| Backend components | IW_BEP 200 or SAP_GWFND |
| Service plan | Appropriate IS service plan |
Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/odata-provisioning-d257fc3.md
OData Service Registration
Register Service
- Navigate to OData Provisioning in Integration Suite
- Add system connection via Cloud Connector
- Select services to expose
- Configure service settings
- Activate service
Service Settings
| Setting | Description |
|---|---|
| Service Name | External service identifier |
| Backend System | Source system connection |
| Authentication | User propagation, technical user |
| Cache Settings | Response caching options |
Runtime Access
Configure user access:
- Create role collection for OData access
- Assign users or user groups
- Map roles to service operations
Service URL Pattern
[https://<tenant>.integrationsuite.cfapps.<region>.hana.ondemand.com](https://<tenant>.integrationsuite.cfapps.<region>.hana.ondemand.com)
/odata/v4/<service-name>/<entity-set>
Limits and Quotas
Graph Limits
| Limit | Value | Scope |
|---|---|---|
| Business data graphs | 500 | Per global account |
| Business data graphs | 50 | Per subaccount |
| Services per graph | 5,000 | Per graph |
| Service metadata size | 50 MB | Per service |
| Extensions | 100 | Per subaccount |
| Projection definitions | 100 | Per extension |
| Projection file size | 1 MB | Per file |
OData Provisioning Limits
| Limit | Value |
|---|---|
| Services | Based on service plan |
| Connections | Based on service plan |
| Request size | 50 MB |
| Response size | 50 MB |
Error Handling
When limits are exceeded:
- Graph returns error response
- Check quota usage in cockpit
- Request quota increase if needed
Documentation: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/limits-a61f1ce.md
Best Practices
Graph Usage
- Use projections to limit data exposure
- Select specific properties to reduce payload
- Implement pagination for large result sets
- Cache where appropriate in applications
OData Provisioning
- Secure services with proper authentication
- Monitor usage through BTP cockpit
- Optimize queries to reduce backend load
- Use filters to limit data transfer
Performance
- Avoid deep navigation (>3 levels)
- Batch requests when possible
- Use $select to limit properties
- Implement client-side caching
Related Documentation
- Graph Overview: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/what-is-graph-ad1c48d.md
- Business Data Graph: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/business-data-graph-894e28c.md
- OData Provisioning: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/odata-provisioning-d257fc3.md
- Graph Troubleshooting: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/troubleshooting-for-graph-2cfb06c.md
- Limits: https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/limits-a61f1ce.md