Skip to main content

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

ComponentPurposeData Refresh
SLTReal-time replicationMilliseconds
aDSO (Direct)Staging layerReal-time
aDSO (Composite)Data consolidationNear real-time
Calculation ViewsVirtual layerOn-demand
QueriesReportingReal-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