# 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](https://github.com/SAP-docs/sap-btp-integration-suite/tree/main/docs/ISuite) **Last Updated**: 2025-11-22 --- ## Table of Contents 1. [Graph Overview](#graph-overview) 2. [Business Data Graph](#business-data-graph) 3. [Entity Types](#entity-types) 4. [Querying Graph](#querying-graph) 5. [Extensibility](#extensibility) 6. [OData Provisioning Overview](#odata-provisioning-overview) 7. [OData Service Registration](#odata-service-registration) 8. [Limits and Quotas](#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](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](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](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](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](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 ```graphql 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: 1. **Register data source** connection 2. **Define entity mappings** 3. **Configure authentication** 4. **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) ```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](https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/odata-provisioning-d257fc3.md) --- ## OData Service Registration ### Register Service 1. **Navigate** to OData Provisioning in Integration Suite 2. **Add system** connection via Cloud Connector 3. **Select services** to expose 4. **Configure** service settings 5. **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: 1. **Create role collection** for OData access 2. **Assign users** or user groups 3. **Map roles** to service operations ### Service URL Pattern ``` [https://.integrationsuite.cfapps..hana.ondemand.com](https://.integrationsuite.cfapps..hana.ondemand.com) /odata/v4// ``` **Documentation**: [https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/runtime-access-and-role-assignment-for-odata-provisioning-b46816c.md](https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/runtime-access-and-role-assignment-for-odata-provisioning-b46816c.md) --- ## 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](https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/limits-a61f1ce.md) --- ## Best Practices ### Graph Usage 1. **Use projections** to limit data exposure 2. **Select specific properties** to reduce payload 3. **Implement pagination** for large result sets 4. **Cache** where appropriate in applications ### OData Provisioning 1. **Secure services** with proper authentication 2. **Monitor usage** through BTP cockpit 3. **Optimize queries** to reduce backend load 4. **Use filters** to limit data transfer ### Performance 1. **Avoid deep navigation** (>3 levels) 2. **Batch requests** when possible 3. **Use $select** to limit properties 4. **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](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](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](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](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](https://github.com/SAP-docs/sap-btp-integration-suite/blob/main/docs/ISuite/limits-a61f1ce.md)