Files
gh-secondsky-sap-skills-ski…/references/features-complete.md
2025-11-30 08:55:12 +08:00

329 lines
12 KiB
Markdown

# 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)