Module 11: BW/4HANA Integration
Learn how to integrate SLT with BW/4HANA for real-time data warehousing.
1. Integration Architecture
graph LR
A[ERP Source] -->|SLT| B[HANA Database]
B --> C[aDSO - Direct]
C --> D[aDSO - Composite]
D --> E[Query/Analytics]
B --> F[Calculation Views]
F --> E
Components
| Component | Purpose | Data Refresh |
|---|---|---|
| SLT | Real-time replication | Milliseconds |
| aDSO (Direct) | Staging layer | Real-time |
| aDSO (Composite) | Data consolidation | Near real-time |
| Calculation Views | Virtual layer | On-demand |
| Queries | Reporting | Real-time |
2. Setting Up SLT Connection in BW
Step 1: Create Source System
Transaction: RSA1 → Modeling → Source Systems
Click: Create
Source System Type: ● SAP HANA Database
Technical Name: SLT_HANA_01
Description: SLT Replicated HANA
Step 2: Configure Connection
Connection Details:
├── Host: slt-hana.company.com
├── Port: 30015
├── Schema: SLTREPL
├── User: SLT_BW_USER
└── Password: ********
Test Connection: ✓ Successful
Step 3: Activate DataSource
Transaction: RSA1 → InfoProvider → DataSource
Create DataSource:
├── Technical Name: ZSL_VBAP
├── Type: ● Table/View from HANA
├── Source: SLTREPL.VBAP
└── Extraction Type: Full + Delta
3. Advanced DataStore Object (aDSO)
aDSO Types for SLT
Type 1: Direct Access aDSO
Purpose: Virtual access to SLT tables
Benefit: Zero latency, no data copy
Transaction: RSO_ADSO_MAINTAIN
Settings:
├── Name: ADSO_VBAP_DIRECT
├── Type: ● Write-Optimized (Direct)
├── Source: HANA Table SLTREPL.VBAP
└── Activation: Not required
Query response time: <100ms
Type 2: Standard aDSO
Purpose: Staging with change tracking
Benefit: Historical data, transformations
Settings:
├── Name: ADSO_VBAP_STAGE
├── Type: ● Standard
├── Load Type: Delta (from SLT)
└── Activation: Real-time
Data latency: 1-5 seconds
Type 3: Composite aDSO
Purpose: Combine multiple sources
Benefit: Unified data model
Settings:
├── Name: ADSO_SALES_COMPOSITE
├── Type: ● Composite
├── Sources:
│ ├── ADSO_VBAK_STAGE
│ ├── ADSO_VBAP_STAGE
│ └── ADSO_KNA1_STAGE
└── Union Type: Union / Join
4. Real-Time Data Flow
Configuration for Real-Time Load
Transaction: RSODSO_SETTINGS
aDSO: ADSO_VBAP_STAGE
Real-Time Settings:
☑ Enable Real-Time Load
Commit Interval: [1000] records
Time Interval: [5] seconds
☑ Automatic Activation
Result:
├── Data arrives from SLT: Every second
├── aDSO commits: Every 5 seconds or 1000 records
└── Available for reporting: Within 6 seconds
Monitoring Real-Time Loads
-- Check aDSO load status
SELECT
ADSO_NAME,
REQUEST_TSN,
RECORD_COUNT,
TIMESTAMP,
STATUS
FROM RSPM_DTP_REQUEST
WHERE ADSO_NAME = 'ADSO_VBAP_STAGE'
AND TIMESTAMP >= ADD_SECONDS(CURRENT_TIMESTAMP, -3600)
ORDER BY TIMESTAMP DESC;
5. Transformations
Field Mapping
Transaction: RSTR
Transformation: SLT_VBAP → ADSO_VBAP_STAGE
Rules:
├── Direct Assignment:
│ ├── VBELN → SALES_ORDER
│ ├── POSNR → ITEM
│ └── MATNR → MATERIAL
├── Formula:
│ └── NETWR * WAERS_RATE → NETWR_USD
├── Routine:
│ └── CALCULATE_MARGIN(NETWR, COST)
└── Constant:
└── DATA_SOURCE = 'SLT'
ABAP Routine Example
RETURN_CODE = 0.
LOOP AT SOURCE_PACKAGE ASSIGNING <fs_source>.
APPEND INITIAL LINE TO RESULT_PACKAGE ASSIGNING <fs_result>.
" Copy all standard fields
<fs_result>-SALES_ORDER = <fs_source>-VBELN.
<fs_result>-ITEM = <fs_source>-POSNR.
<fs_result>-MATERIAL = <fs_source>-MATNR.
" Calculate derived fields
<fs_result>-MARGIN_PCT =
(<fs_source>-NETWR - <fs_source>-COST) / <fs_source>-NETWR * 100.
" Categorize
IF <fs_result>-MARGIN_PCT >= 30.
<fs_result>-PROFITABILITY = 'HIGH'.
ELSEIF <fs_result>-MARGIN_PCT >= 15.
<fs_result>-PROFITABILITY = 'MEDIUM'.
ELSE.
<fs_result>-PROFITABILITY = 'LOW'.
ENDIF.
ENDLOOP.
6. Calculation Views
Create Calculation View on SLT Data
-- SAP HANA Studio: Modeler Perspective
View Name: CV_SALES_REALTIME
Type: Calculation View (Graphical)
Data Foundation:
├── SLTREPL.VBAK (Header)
└── SLTREPL.VBAP (Items)
Join: VBAK.VBELN = VBAP.VBELN
Calculations:
├── TOTAL_VALUE = SUM(VBAP.NETWR)
├── ITEM_COUNT = COUNT(VBAP.POSNR)
└── AVG_ITEM_VALUE = SUM(NETWR) / COUNT(POSNR)
Filters:
└── WHERE VBAK.ERDAT >= CURRENT_DATE
Consume in BW Query
Transaction: RSRT
Query: ZSALES_REALTIME
InfoProvider: CV_SALES_REALTIME (External View)
Characteristics:
├── Sales Organization
├── Distribution Channel
└── Order Date
Key Figures:
├── Order Count
├── Total Value
└── Average Item Value
Result: Real-time dashboard updated every second
7. Delta Management
Delta Queue Management
Transaction: ODQMON (Operational Data Queue Monitor)
Queue: SLT_VBAP_DELTA
Status:
├── Queued Records: 1,234
├── In Process: 45
├── Processed: 98,765
└── Failed: 2
Actions:
├── Reprocess Failed: Click "Retry"
├── Clear Queue: Click "Reset"
└── Monitor Throughput: Refresh (F5)
Delta Initialization
Transaction: RSA3 (Extractor Checker)
DataSource: ZSL_VBAP
Extraction Mode: ● Delta Init
Execute:
1. Init without data transfer
2. Activate delta queue
3. Start regular delta loads
Result:
├── Full load: 10M records (one-time)
├── Delta loads: 10K-50K records/minute
└── Latency: <5 seconds
8. Performance Optimization
Partitioning aDSO
-- Partition by date for better performance
ALTER TABLE /BIC/AADSO_VBAP2
PARTITION BY RANGE (ERDAT) (
PARTITION P2024 VALUES < '20250101',
PARTITION P2025 VALUES < '20260101',
PARTITION P2026 VALUES < '20270101'
);
Benefit:
├── Faster queries: 3s → 0.5s
├── Efficient archiving
└── Better compression
Aggregation
Transaction: RSDDSTAT
aDSO: ADSO_VBAP_STAGE
Aggregation Level: AGGR_VBAP_DAILY
Dimensions:
├── SALES_ORG
├── MATERIAL
└── ORDER_DATE (Daily)
Measures:
├── SUM(NETWR)
└── COUNT(VBELN)
Refresh: ● Real-time
Query improvement: 10x faster
9. Monitoring and Troubleshooting
BW/4 Monitoring
Transaction: RSMO (Monitor Data Load)
Filter: Source = SLT_HANA_01
Recent Loads:
Timestamp Request Records Duration Status
10:15:23 REQ_001 1,234 2s ✓ Success
10:15:28 REQ_002 987 2s ✓ Success
10:15:33 REQ_003 1,456 3s ✗ Error
10:15:38 REQ_004 1,123 2s ✓ Success
Click on Error → View Log
Common Issues
Issue 1: Delta Queue Overflow
Symptom: ODQ queue growing, loads failing
Solution:
1. Check ODQ: Transaction ODQMON
2. Increase queue size:
RSPM_ODQ_SETTINGS → Max Queue Size = 10,000,000
3. Optimize DTP frequency:
Every 5 minutes → Every 1 minute
Issue 2: Activation Delay
Symptom: Data in aDSO but not in queries
Solution:
1. Check activation queue: Transaction RSODSO_SETTINGS
2. Increase parallel activation:
RSODSO_SETTINGS → Parallel Processes = 8
3. Switch to real-time activation
10. Best Practices
Design Patterns
Pattern 1: Speed Layer
├── SLT → Direct aDSO → Queries
└── Use case: Real-time dashboards
Pattern 2: Lambda Architecture
├── Speed: SLT → Direct aDSO
├── Batch: SLT → Standard aDSO → Composite
└── Use case: Combined real-time + historical
Pattern 3: Data Vault
├── SLT → Raw Vault (aDSO)
├── Raw → Business Vault (transformations)
└── Business → Information Marts (cubes)
Checklist
- Source system connection tested
- aDSO type selected appropriately
- Real-time settings configured
- Transformations optimized
- Partitioning implemented
- Delta queue monitoring set up
- Error alerting configured
- Performance benchmarked
Summary
✅ BW/4HANA integration architecture ✅ aDSO types and configuration ✅ Real-time data flow setup ✅ Transformation development ✅ Calculation views integration ✅ Delta management ✅ Performance optimization ✅ Monitoring and troubleshooting
Next: Module 12 - HANA Data Provisioning