Files
gh-secondsky-sap-skills-ski…/references/abap-integration.md
2025-11-30 08:55:25 +08:00

484 lines
12 KiB
Markdown

# ABAP Integration Guide
Complete guide for integrating ABAP-based SAP systems with SAP Data Intelligence.
## Table of Contents
1. [Overview](#overview)
2. [Prerequisites](#prerequisites)
3. [Cloud Connector Setup](#cloud-connector-setup)
4. [Connection Configuration](#connection-configuration)
5. [Data Sources](#data-sources)
6. [ABAP Operators](#abap-operators)
7. [Custom ABAP Operators](#custom-abap-operators)
8. [Data Type Mapping](#data-type-mapping)
9. [Security](#security)
10. [Troubleshooting](#troubleshooting)
---
## Overview
SAP Data Intelligence Cloud integrates with ABAP-based SAP systems including:
- SAP S/4HANA (Cloud and On-Premise)
- SAP Business Warehouse (BW/4HANA, BW)
- SAP ECC
- Other NetWeaver-based systems
**Key Characteristics:**
- ABAP operators run on the ABAP Pipeline Engine in the source system
- Metadata and data flow through SAP Data Intelligence Cloud
- Supports real-time and batch data extraction
**Central Reference**: SAP Note 2890171 contains essential setup information.
---
## Prerequisites
### SAP System Requirements
**Minimum Versions:**
- SAP NetWeaver 7.50 SP00 or higher
- SAP S/4HANA 1909 or higher (recommended)
- SAP BW/4HANA 2.0 or higher
**Required Components:**
- ABAP Pipeline Engine (installed via SAP Notes)
- Cloud Connector (for on-premise systems)
### SAP Data Intelligence Requirements
- SAP Data Intelligence Cloud tenant
- Connection Management access
- Appropriate authorizations
---
## Cloud Connector Setup
For on-premise ABAP systems, configure SAP Cloud Connector.
### Installation Steps
1. **Download Cloud Connector** from SAP Support Portal
2. **Install** on a server with network access to ABAP system
3. **Configure** connection to SAP BTP subaccount
4. **Map** internal ABAP system to virtual host
### Configuration Example
```
Location ID: <your-location-id>
Internal Host: <abap-server>:44300
Virtual Host: virtualabap:44300
Protocol: HTTPS
Principal Propagation: Enabled (optional)
```
### Trust Configuration
1. Import SAP Data Intelligence CA certificate
2. Configure system certificate for backend
3. Enable principal propagation if needed
### Resource Configuration
Configure required resources in Cloud Connector Resources pane:
**For CDS View Extraction:**
```
Prefix: DHAMB_ (required)
Prefix: DHAPE_ (required)
Function: RFC_FUNCTION_SEARCH
```
**For SLT Replication Server:**
```
Prefix: LTAMB_ (required)
Prefix: LTAPE_ (required)
Function: RFC_FUNCTION_SEARCH
```
### SNC Configuration
If using Secure Network Communication (SNC):
- Configure SNC in Cloud Connector (not in DI Connection Management)
- Upload SNC certificates to Cloud Connector
- Map SNC names appropriately
---
## Connection Configuration
### Creating ABAP Connection
1. **Open Connection Management** in SAP Data Intelligence
2. **Create new connection** with type "ABAP"
3. **Configure parameters**:
**Basic Settings:**
```
Connection Type: ABAP
Host: <virtual-host-from-cloud-connector>
Port: 44300
Client: 100
System ID: <SID>
```
**Authentication:**
- Basic Authentication: Username/Password
- Principal Propagation: SSO via Cloud Connector
- X.509 Certificate: Certificate-based
**Cloud Connector:**
```
Location ID: <your-location-id>
```
### Testing Connection
Use "Test Connection" to verify:
- Network connectivity
- Authentication
- Authorization
---
## Data Sources
### CDS Views
ABAP Core Data Services views are the recommended data source.
**SAP S/4HANA Cloud Options:**
- Standard CDS views with C1 release contract annotations
- Custom CDS views developed for Data Intelligence integration
**SAP S/4HANA On-Premise Options:**
- Standard CDS views with C1 release contract
- Custom ABAP CDS views created using ABAP Development Tool (ADT)
**Discovery Methods:**
- Use `I_DataExtractionEnabledView` (available in S/4HANA 2020+) to find extraction-enabled views
- Check Metadata Explorer properties: "Extraction Enabled", "Delta enabled", "CDS Type"
**Required Annotations for Custom Views:**
```abap
@Analytics.dataExtraction.enabled: true
@Analytics.dataExtraction.delta.changeDataCapture.automatic: true
```
**Configuration:**
```
CDS View: I_Product
Selection Fields: Product, ProductType
Package Size: 10000
```
**Best Practices:**
- Use extraction-enabled views for delta capability
- Apply filters to reduce data volume
- Consider view performance characteristics
- Verify C1 contract compliance for standard views
### ODP (Operational Data Provisioning)
Framework for extracting data from various ABAP sources.
**Prerequisites:**
- Gen1 operators: Require DMIS add-on + ODP Application API v2
- Gen2 operators/Replication flows with S/4HANA: Only ODP Application API required
- Legacy systems: Both DMIS add-on + ODP Application API required
**Key SAP Notes:**
- SAP Note 2890171: ODP integration requirements
- SAP Note 2775549: Integration prerequisites
- SAP Note 3100673: Technical user privileges
**Connection Types:**
| Type | Description | Use Case |
|------|-------------|----------|
| ABAP | Recommended connection | Latest features, resilience, replication flows |
| ABAP_LEGACY | Fallback option | When DMIS installation not feasible |
**ODP Contexts:**
- SAPI: DataSources (classic BW extractors)
- ABAP CDS: CDS views with extraction annotations
- BW: BW InfoProviders
- SLT: SLT-replicated tables
**Delta Support:**
- Full extraction (initial load)
- Delta extraction (CDC - Change Data Capture)
- Delta initialization (reset delta pointer)
### Tables
Direct table access for simple scenarios.
**Configuration:**
```
Table: MARA
Fields: MATNR, MTART, MATKL
Where Clause: MTART = 'FERT'
```
**Limitations:**
- No built-in delta capability
- May require additional authorization
- Consider performance for large tables
### SLT (SAP Landscape Transformation)
Real-time data replication via SLT Server.
**Components:**
- SLT Server (on-premise)
- Mass Transfer ID configuration
- Target connection in Data Intelligence
**Capabilities:**
- Real-time CDC
- Initial load + continuous delta
- Table-level replication
---
## ABAP Operators
### ABAP CDS Reader
Reads from CDS views with extraction.
**Key Parameters:**
- CDS View Name
- Selection Conditions
- Package Size (rows per batch)
- Max Rows (limit)
### ABAP Table Reader
Reads from ABAP tables directly.
**Key Parameters:**
- Table Name
- Field List
- Where Clause
- Order By
### SLT Connector
Connects to SLT for real-time replication.
**Key Parameters:**
- Mass Transfer ID
- Table Name
- Initial Load (yes/no)
- Subscription Type
### Generation 1 vs Generation 2
**Gen1 ABAP Operators:**
- Traditional process model
- Manual recovery
**Gen2 ABAP Operators:**
- Enhanced recovery
- State management
- Better error handling
---
## Custom ABAP Operators
### Architecture
Custom operators run in the ABAP Pipeline Engine:
```
SAP Data Intelligence <-> ABAP Pipeline Engine <-> Custom Operator Code
```
### Creating Custom Operators
1. **Create ABAP class** implementing interface
2. **Register** in ABAP Pipeline Engine repository
3. **Deploy** to SAP Data Intelligence
4. **Use** in graphs
### Implementation Pattern
```abap
CLASS zcl_custom_operator DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES if_sdi_operator.
PRIVATE SECTION.
DATA: mv_parameter TYPE string.
ENDCLASS.
CLASS zcl_custom_operator IMPLEMENTATION.
METHOD if_sdi_operator~init.
" Initialize operator
mv_parameter = io_context->get_parameter( 'PARAM1' ).
ENDMETHOD.
METHOD if_sdi_operator~start.
" Start processing
DATA: lt_data TYPE TABLE OF string.
" ... process data ...
io_context->send_output( 'OUTPUT' , lt_data ).
ENDMETHOD.
ENDCLASS.
```
---
## Data Type Mapping
### ABAP to Data Intelligence Type Mapping
| ABAP Type | Data Intelligence Type |
|-----------|----------------------|
| CHAR | String |
| NUMC | String |
| DATS | Date |
| TIMS | Time |
| DEC | Decimal |
| INT1/INT2/INT4 | Integer |
| FLTP | Double |
| RAW | Binary |
| STRING | String |
| RAWSTRING | Binary |
### Wire Format Conversion Options (Gen1)
| Conversion Type | Description |
|-----------------|-------------|
| Enhanced format conversion | Validates data, converts invalid to "NaN" or "undefined" per ISO standards |
| Required conversions | Minimal technical changes, preserves invalid values |
| Required conversions + currency | Adds currency shift conversion |
| Required conversions + time format + currency | ISO date/time format + currency handling |
**Gen2 and Replication Flows:**
Default: "Required Conversions Plus Time Format and Currency" (cannot be changed)
**Detailed Mappings:** See SAP Note 3035658 for complete type conversion tables.
### Conversion Considerations
**Date/Time:**
- ABAP dates: YYYYMMDD format
- Initial dates (00000000) may need handling
- ISO format conversion available for Gen2
**Numbers:**
- NUMC fields are strings (preserve leading zeros)
- Packed decimals maintain precision
- Currency fields may be shifted based on currency table
**Binary:**
- RAW fields convert to binary
- Consider encoding for text storage
---
## Security
### Authorization Requirements
**SAP Data Intelligence:**
- Connection Management access
- Graph execution rights
**ABAP System:**
- RFC authorization
- Data access authorization (S_TABU_DIS, etc.)
- CDS view authorization (@AccessControl)
### Network Security
- Cloud Connector encryption (TLS)
- Principal propagation for SSO
- IP restrictions
### Data Protection
- Apply CDS access controls
- Mask sensitive fields in extraction
- Audit logging in both systems
---
## Troubleshooting
### Common Issues
| Issue | Cause | Solution | SAP Note |
|-------|-------|----------|----------|
| Session limit exceeded | ABAP Pipeline Engine constraints | Adjust session limits | 2999448 |
| Connection validation fails | Connection configuration | Check connection setup | 2849542 |
| CDS view extraction error (Gen1) | View not extraction-enabled | Enable extraction annotations | - |
| SLT subscription conflict (Gen1) | Subscription already in use | Release subscription | 3057246 |
| Invalid character in string | Encoding issues | Check data encoding | 3016338 |
| Object does not exist (Gen2) | Object not found | Verify object name | 3143151 |
| Connection timeout | Network/firewall | Check Cloud Connector mapping | - |
| Authentication failed | Wrong credentials | Verify user/password | - |
| Authorization error | Missing permissions | Check ABAP authorizations | - |
### CDS View Specific Issues
**"CDS view does not support data extraction":**
1. Verify extraction annotations exist
2. Check C1 contract compliance for standard views
3. Use `I_DataExtractionEnabledView` to verify
### Diagnostic Steps
1. **Test connection** in Connection Management
2. **Check Cloud Connector** logs
3. **Review ABAP** system logs (ST22, SM21)
4. **Monitor** Pipeline Engine (transaction /IWREP/MONITOR)
5. **Check** SAP Data Intelligence execution logs
### SAP Notes Reference
| Note | Description |
|------|-------------|
| 2890171 | Central ABAP integration note |
| 2775549 | Integration prerequisites |
| 2849542 | Connection troubleshooting |
| 2973594 | Known issues and corrections |
| 2999448 | Session limit issues |
| 3016338 | Invalid character errors |
| 3035658 | Data type conversion tables |
| 3057246 | SLT subscription conflicts |
| 3100673 | Technical user privileges |
| 3143151 | Object not found errors |
### Resources
- **SAP Community**: [https://community.sap.com/topics/data-intelligence](https://community.sap.com/topics/data-intelligence)
- **SAP Support Portal**: [https://support.sap.com](https://support.sap.com)
---
## Documentation Links
- **ABAP Integration Guide**: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/abapintegration](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/abapintegration)
- **User Guide**: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/abapintegration/user-guide-for-abap-integration](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/abapintegration/user-guide-for-abap-integration)
---
**Last Updated**: 2025-11-22