Initial commit
This commit is contained in:
328
references/features-complete.md
Normal file
328
references/features-complete.md
Normal file
@@ -0,0 +1,328 @@
|
||||
# Complete Features Reference
|
||||
|
||||
Comprehensive feature documentation for SAP Master Data Integration.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Core Features](#core-features)
|
||||
- [Distribution Models](#3-distribution-models)
|
||||
- [Filtering](#4-filtering)
|
||||
- [Delta Tokens](#delta-tokens)
|
||||
- [Extensibility](#extensibility)
|
||||
- [Key Mapping](#key-mapping)
|
||||
- [Events API](#events-api)
|
||||
- [Requests API](#requests-api)
|
||||
- [Business Data Orchestration](#business-data-orchestration)
|
||||
- [Data Privacy](#sap-data-privacy-integration)
|
||||
- [Monitoring](#monitoring)
|
||||
|
||||
**Source**: [https://github.com/SAP-docs/sap-btp-master-data-integration/tree/main/docs/features](https://github.com/SAP-docs/sap-btp-master-data-integration/tree/main/docs/features)
|
||||
|
||||
---
|
||||
|
||||
## Core Features
|
||||
|
||||
### 1. Synchronization of Master Data
|
||||
|
||||
MDI operates as a central master data hub where applications synchronize local databases with the central system.
|
||||
|
||||
**Synchronization Phases**:
|
||||
1. **Initial Load**: Applications perform initial data transfer to populate local systems
|
||||
2. **Delta Loads**: Ongoing synchronization through REST Events API with change notifications
|
||||
|
||||
**Key Characteristics**:
|
||||
- One tenant typically serves all applications in a landscape
|
||||
- REST APIs standard; SOAP APIs additionally available for business partners
|
||||
- Delta loading eventually delivers same information for every application with identical filter settings
|
||||
|
||||
### 2. Support for Initial Loads
|
||||
|
||||
**Initial Upload (Producing Clients)**
|
||||
Applications that create/modify master data load their local records into MDI as part of initial upload.
|
||||
|
||||
**Initial Download (Consuming Clients)**
|
||||
Applications receive initial master data copy from centralized service without affecting existing integration scenarios.
|
||||
|
||||
**Key Benefit**: Eliminates need to integrate with multiple different applications in a landscape.
|
||||
|
||||
### 3. Distribution Models
|
||||
|
||||
Centralized repositories for distribution settings within Business Data Orchestration.
|
||||
|
||||
**Components**:
|
||||
- Model name and language-dependent description
|
||||
- Object type and version specification
|
||||
- Reference to SAP One Domain Model
|
||||
|
||||
**Connectivity Options**:
|
||||
- One provider with multiple consumers
|
||||
- Multiple providers with one consumer
|
||||
- **Recommended**: Always connect only one provider with one consumer
|
||||
|
||||
**Current Limitation**: Only ABAP-based systems (S/4HANA, SAP Cloud Master Data Governance) can act as provider.
|
||||
|
||||
### 4. Filtering
|
||||
|
||||
Two filter types control data replication:
|
||||
|
||||
| Filter Type | Purpose |
|
||||
|------------|---------|
|
||||
| Object Selection Filters | Determine which records are replicated |
|
||||
| Data Scope Filters | Control which parts of records are replicated |
|
||||
|
||||
**Benefits**:
|
||||
- Reduces unnecessary data traffic
|
||||
- Prevents irrelevant data replication
|
||||
- Enables regional data boundaries
|
||||
|
||||
---
|
||||
|
||||
## Local ID Sharing
|
||||
|
||||
MDI maintains ID maps between global and local IDs with bidirectional lookup capability.
|
||||
|
||||
### Three Core APIs
|
||||
|
||||
| API | Purpose |
|
||||
|-----|---------|
|
||||
| RequestsAPI | Write local IDs and associated context to MDI |
|
||||
| EventsAPI | Receive distributed local IDs and associated context |
|
||||
| KeyMappingAPI | Bidirectional lookup between local and global IDs |
|
||||
|
||||
**Benefit**: Destination applications can understand and respond to received information within their operational frameworks.
|
||||
|
||||
---
|
||||
|
||||
## Multiwriter Scenarios
|
||||
|
||||
When multiple clients have write access to the same master data type:
|
||||
|
||||
### Conflict Prevention Mechanisms
|
||||
|
||||
**Patches**
|
||||
Send patches instead of full updates to preserve unrelated data modifications.
|
||||
|
||||
**Optimistic Locking**
|
||||
- System tracks version identifiers
|
||||
- Client includes previously known version ID in update
|
||||
- MDI rejects update if version ID doesn't match current version
|
||||
- Client retrieves updated info and resubmits
|
||||
|
||||
**SOAP Limitation**: SOAP APIs for Business Partner do NOT support version IDs or optimistic locking.
|
||||
|
||||
---
|
||||
|
||||
## Multiversion Support
|
||||
|
||||
Applications can use different compatible versions of SAP One Domain Model without disrupting integrations.
|
||||
|
||||
**Example**:
|
||||
- Application A transmits in version 3.0.0
|
||||
- Application B receives in version 2.1.1
|
||||
|
||||
**Requirements**:
|
||||
- Works only between compatible versions
|
||||
- No breaking changes (e.g., no field removals)
|
||||
|
||||
**Limitation**: BusinessPartner v3.3.0 and v2.1.1 have restricted multiversion support for address data.
|
||||
|
||||
---
|
||||
|
||||
## Extensibility
|
||||
|
||||
Add custom fields and nodes to integration models.
|
||||
|
||||
### Extension Types
|
||||
|
||||
| Type | Description |
|
||||
|------|-------------|
|
||||
| Field-Level | Primitive types: String, Boolean, Date, DateTime, Double, Time, Integer, Decimal, UUID |
|
||||
| Node-Level | Composition with relationship definitions (one/many) |
|
||||
|
||||
### Key Rules
|
||||
- Extensions valid across compatible ODM versions
|
||||
- **Cannot be updated or deleted once created**
|
||||
- SOAP extensions limited to BusinessPartner and BusinessPartnerRelationship
|
||||
- SOAP namespace prefix must begin with `extns`
|
||||
|
||||
### Activation Statuses
|
||||
- activationInProgress
|
||||
- activated
|
||||
- failed
|
||||
|
||||
---
|
||||
|
||||
## Schema Validation
|
||||
|
||||
### What MDI Validates
|
||||
- Data adherence to SAP One Domain Model integration models
|
||||
|
||||
### What MDI Does NOT Validate
|
||||
- Referential integrity
|
||||
- References pointing to existing records
|
||||
- Code list entry validity
|
||||
|
||||
---
|
||||
|
||||
## Monitoring
|
||||
|
||||
Business Data Orchestration provides end-to-end monitoring via SAP Cloud ALM integration.
|
||||
|
||||
### Three Monitoring Views
|
||||
|
||||
| View | Purpose |
|
||||
|------|---------|
|
||||
| Landscape (Monitor Master Data Distribution) | All clients and connections graphically |
|
||||
| Connection (Display Distribution Status) | Status between specific client pairs |
|
||||
| Object (Locate Object) | Single object distribution status |
|
||||
|
||||
**Currently Available**: Connection view only
|
||||
|
||||
### Technical Architecture
|
||||
1. Clients report SAP Passport Events to SAP Cloud ALM
|
||||
2. BDO imports logging every 5 minutes
|
||||
3. Data aggregated into distribution status reports
|
||||
|
||||
---
|
||||
|
||||
## REST Events (Complete List)
|
||||
|
||||
Events sent to SAP Cloud ALM during REST API operations:
|
||||
|
||||
| Event Code | Description | Details |
|
||||
|------------|-------------|---------|
|
||||
| ExistingInstanceId | Entity with given instance ID already exists | `[{id: instanceId}]` |
|
||||
| EntityInstanceDoesNotExist | Entity with given instance ID does not exist | `[{id: instanceId}]` |
|
||||
| ValidationError | Validation error during processing | `[{ValidationError: error message}]` |
|
||||
| PatchFailed | Patch operation failed | `[{PatchFailed: error message}]` |
|
||||
| InvalidPreviousVersionId | Invalid previous version ID | `[{id: instanceId}]` |
|
||||
| UpdateOrDeleteOnDeletedInstance | Instance deleted, no longer supports operations | - |
|
||||
| UpdateOrDeleteOnReplacedInstance | Instance replaced, no longer supports operations | - |
|
||||
| MergeOnDeletedInstance | Instance not replaced, cannot be merged | `[{id: instanceId}]` |
|
||||
| EntityInstanceReplacedByOtherInstance | Instance replaced by different instance | `[{id: instanceId},{replacedBy: instanceId}]` |
|
||||
| DecodeError | Instance could not be decoded properly | - |
|
||||
| UnexpectedStateError | Unexpected state condition | - |
|
||||
| UnknownEntity | Unrecognized entity type | - |
|
||||
| ReplacedError | Could not replace an event | `[{ReplacedFailure: error message}]` |
|
||||
| ReplacementCycle | Cyclic references in replacedBy | - |
|
||||
| InvalidLogicalKeys | Incorrect logical key structure | - |
|
||||
| LocalIdError | LocalId operations malfunction | `{context, localId, status}` |
|
||||
| NormalizationFailed | Could not normalize event | `[{NormalizationFailure: error message}]` |
|
||||
| PrimaryMasterDataEventTooLarge | Internal record size exceeds limits | - |
|
||||
| UnknownTenant | Unknown system for request | - |
|
||||
|
||||
---
|
||||
|
||||
## SOAP Events (Complete List)
|
||||
|
||||
### Inbound Event (1)
|
||||
| Code | Description |
|
||||
|------|-------------|
|
||||
| BuPaDuplicateAddressId | Business Partner with given Address ID already exists |
|
||||
|
||||
### Outbound Success Events (6)
|
||||
| Code | Description |
|
||||
|------|-------------|
|
||||
| BuPaSent | BusinessPartner successfully sent to destination |
|
||||
| BuPaRelSent | BusinessPartnerRelationship successfully sent |
|
||||
| KmSent | KeyMapping successfully sent |
|
||||
| BuPaConfirmationSent | BusinessPartner confirmation sent |
|
||||
| BuPaRelConfirmationSent | BusinessPartnerRelationship confirmation sent |
|
||||
| KmConfirmationSent | KeyMapping confirmation sent |
|
||||
|
||||
### Confirmation Received Events (3)
|
||||
| Code | Description |
|
||||
|------|-------------|
|
||||
| BupaConfirmationReceivedSuccessful | BusinessPartner confirmation processed successfully |
|
||||
| BuPaRelConfirmationReceivedSuccessful | BusinessPartnerRelationship confirmation processed |
|
||||
| KmConfirmationReceivedSuccessful | KeyMapping confirmation processed |
|
||||
|
||||
### Send Failure Events (9)
|
||||
| Code | Description |
|
||||
|------|-------------|
|
||||
| BuPaSendFailed | Failed BusinessPartner transmission |
|
||||
| BuPaRelSendFailed | Failed BusinessPartnerRelationship transmission |
|
||||
| KmSendFailed | Failed KeyMapping transmission |
|
||||
| BuPaSendFailedDestinationNotFound | Destination not configured |
|
||||
| BuPaRelSendFailedDestinationNotFound | Destination not configured |
|
||||
| KmSendFailedDestinationNotFound | Destination not configured |
|
||||
| BuPaSendFailedHttpsSchemeExpected | HTTPS required (Internet ProxyType) |
|
||||
| BuPaRelSendFailedHttpsSchemeExpected | HTTPS required (Internet ProxyType) |
|
||||
| KmSendFailedHttpsSchemeExpected | HTTPS required (Internet ProxyType) |
|
||||
|
||||
### Wrong Scheme Configuration Events (6)
|
||||
| Code | Description |
|
||||
|------|-------------|
|
||||
| BuPaSendFailedWrongSchemeConfigured | HTTP/HTTPS required (OnPremise ProxyType) |
|
||||
| BuPaRelSendFailedWrongSchemeConfigured | HTTP/HTTPS required (OnPremise ProxyType) |
|
||||
| KmSendFailedWrongSchemeConfigured | HTTP/HTTPS required (OnPremise ProxyType) |
|
||||
| BuPaConfirmationFailedWrongSchemeConfigured | Wrong scheme for confirmation |
|
||||
| BuPaRelConfirmationFailedWrongSchemeConfigured | Wrong scheme for confirmation |
|
||||
| KmConfirmationFailedWrongSchemeConfigured | Wrong scheme for confirmation |
|
||||
|
||||
### Confirmation Send Failure Events (6)
|
||||
| Code | Description |
|
||||
|------|-------------|
|
||||
| BuPaConfirmationSendFailed | Failed to send confirmation |
|
||||
| BuPaRelConfirmationSendFailed | Failed to send confirmation |
|
||||
| KmConfirmationSendFailed | Failed to send confirmation |
|
||||
| BuPaConfirmationSendFailedHttpsSchemeExpected | HTTPS required for confirmation |
|
||||
| BuPaRelConfirmationFailedHttpsSchemeExpected | HTTPS required for confirmation |
|
||||
| KmConfirmationFailedHttpsSchemeExpected | HTTPS required for confirmation |
|
||||
|
||||
---
|
||||
|
||||
## SAP Data Privacy Integration
|
||||
|
||||
### Supported Capabilities
|
||||
|
||||
| Capability | Supported Objects | Description |
|
||||
|------------|-------------------|-------------|
|
||||
| Blocking | Business Partner (SOAP) | Maintain rules and trigger deletion when end of purpose reached. Uses SAP Data Retention Manager. |
|
||||
| Business Context Management | Workforce Person only | Define business context, tag data with purpose, recalculate purpose during transfers |
|
||||
| Information (reports/export) | **NOT SUPPORTED** | Generate reports, export data, trigger corrections |
|
||||
|
||||
---
|
||||
|
||||
## Read Access Logging
|
||||
|
||||
Tracks access to sensitive personal data via SAP Audit Log service.
|
||||
|
||||
### Key Annotations
|
||||
|
||||
| Annotation | Purpose |
|
||||
|------------|---------|
|
||||
| @AuditLog.Operation | Controls logging (Read, Insert, Update, Delete) |
|
||||
| @PersonalData.FieldSemantics | When 'DataSubjectID', identifies data subject in logs |
|
||||
| @PersonalData.IsPotentiallySensitive | Marks sensitive attributes for logging |
|
||||
|
||||
**Activation**: Only when sensitive personal data attributes are exposed to downstream systems.
|
||||
|
||||
---
|
||||
|
||||
## SOAP API for Business Partners
|
||||
|
||||
Compatible applications:
|
||||
- SAP S/4HANA Cloud (public edition)
|
||||
- SAP S/4HANA (on-premise)
|
||||
- SAP Cloud for Customer
|
||||
- SAP Marketing Cloud
|
||||
- SAP Field Service Management
|
||||
- SAP Configure Price Quote
|
||||
- SAP Subscription Billing
|
||||
|
||||
*List is not exhaustive*
|
||||
|
||||
---
|
||||
|
||||
## Availability in Kingdom of Saudi Arabia
|
||||
|
||||
SAP Master Data Integration service (including SAP Master Data Orchestration) is available in the Kingdom of Saudi Arabia region.
|
||||
|
||||
---
|
||||
|
||||
## Documentation Links
|
||||
|
||||
- **Features**: [https://help.sap.com/docs/master-data-integration/sap-master-data-integration/features](https://help.sap.com/docs/master-data-integration/sap-master-data-integration/features)
|
||||
- **Distribution Models**: [https://help.sap.com/docs/master-data-integration/sap-master-data-integration/distribution-models](https://help.sap.com/docs/master-data-integration/sap-master-data-integration/distribution-models)
|
||||
- **Monitoring**: [https://help.sap.com/docs/master-data-integration/sap-master-data-integration/monitoring](https://help.sap.com/docs/master-data-integration/sap-master-data-integration/monitoring)
|
||||
Reference in New Issue
Block a user