Modeling with ADSOs, CompositeProviders, and Open ODS Views in BW/4HANA (Part 3)
A practical look at how to design a BW/4HANA data model using ADSOs for staging and storage, CompositeProviders for reporting-time combination, and Open ODS Views for virtual access, including transformation and DTP considerations.
Explanation
Once a consultant understands that BW/4HANA replaces classic InfoProviders with a reduced object set, the next skill is actually designing a data flow with these objects. The Advanced DataStore Object (ADSO) is the workhorse: a single object type configured with different property combinations to behave like a staging layer, a corporate-memory/harmonization layer, or a reporting layer. Key ADSO properties include whether it has an inbound table, a table of new/active data, and a change log, and whether it supports overwrite or additive (summation) semantics for key figures. Choosing the right combination is a modeling decision with real performance and semantic consequences: a reporting-layer ADSO typically needs only the active table with reporting flagged on for fast query access, while a corporate-memory ADSO retaining full history may need the change log enabled to support delta extraction to further layers.
Data flows into an ADSO through transformations and Data Transfer Processes (DTPs), much as in classic BW. Transformation rules map source fields (from a DataSource, another ADSO, or an Open ODS View) to target InfoObjects, and can include routines, formulas, and lookups similar to classic BW, though the underlying execution is HANA-optimized where possible (for example, certain rule types can push down processing to the database rather than the application server). DTPs control extraction mode (full vs delta), filters, and semantic grouping/error handling, and remain essential for both real-time and scheduled loads.
CompositeProviders combine multiple ADSOs, InfoObjects, or Open ODS Views at query time using union or join operations, replacing both classic MultiProviders (which only supported union) and InfoSets (which supported joins). This unification simplifies reporting design because a single object type can express both cross-provider stacking (union, e.g., combining current year and historical ADSOs) and relational joins (e.g., combining a transactional ADSO with a master-data-heavy dimension object) without choosing between two legacy object types. CompositeProviders are typically the primary object exposed to BEx queries or other reporting tools, keeping the underlying ADSOs as pure storage layers.
Open ODS Views provide virtual access to source data—often directly to database tables, external sources via smart data access, or other exposed HANA views—without physically staging the data into BW. They are useful for prototyping, ad hoc data exploration, or scenarios where full staging is unnecessary, but because they do not persist data, they are not a substitute for a properly staged corporate-memory layer where auditability, historization, or complex transformation logic is required.
From a troubleshooting perspective, common load issues in BW/4HANA data flows mirror classic BW: DTP delta queue inconsistencies, transformation routine errors, and duplicate-record handling in ADSOs governed by the object's key and semantic key settings. Monitoring load performance requires checking whether transformations are running in HANA-pushdown mode versus ABAP-based processing, since pushdown-eligible logic performs far better at scale. Process chains orchestrate the same load-then-activate-then-further-propagate pattern as classic BW, but the target objects in each chain step are now ADSOs and CompositeProviders rather than InfoCubes and classic DSOs.
Design decisions here directly affect production support: an over-modeled landscape with excessive ADSO layers reintroduces the redundancy problem BW/4HANA was meant to solve, while an under-modeled landscape (skipping a proper corporate-memory layer in favor of only reporting-layer ADSOs or Open ODS Views) can create historization and reprocessing gaps that are painful to fix later. Consultants should apply a layered-but-lean approach: acquisition ADSO, optional harmonization/corporate-memory ADSO, and reporting ADSO or CompositeProvider, adding layers only when there is a clear business or technical justification such as auditability, reuse across multiple downstream targets, or complex conforming/harmonization logic.
Code example
* Example ABAP-style transformation routine snippet used inside a BW/4HANA transformation rule* (conceptual illustration only; actual syntax depends on transformation rule type and release) METHOD compute_target_field. " Simple example: derive a fiscal period flag from a posting date field IF source_fields-posting_date IS NOT INITIAL. IF source_fields-posting_date(4) = sy-datum(4). result = 'CURRENT_YEAR'. ELSE. result = 'PRIOR_YEAR'. ENDIF. ELSE. result = 'UNKNOWN'. ENDIF.ENDMETHOD. * Note: many simple mappings (direct assignment, constant, formula)* should be modeled as formula/rule-type transformations rather than* ABAP routines when possible, since these are more likely to be* pushed down for HANA-optimized execution and are easier to maintain.Real project scenario
A manufacturing client needs a BW/4HANA model to report on production orders sourced from an S/4HANA system. The team designs an acquisition ADSO to stage raw order data with a change log for auditability, a harmonization ADSO to apply plant-specific business rules and conform material master attributes, and a reporting-layer ADSO exposed through a CompositeProvider that joins it with a separate cost-center master-data ADSO. During UAT, users report slow dashboard response; the consultant traces the issue to a transformation routine on the harmonization layer written as ABAP logic that could have been expressed as a formula, preventing HANA pushdown, and reworks it to restore expected performance.
Common mistakes
- Creating excessive ADSO layers 'just in case', recreating the redundancy problem BW/4HANA modeling is meant to avoid.
- Using ABAP routines for simple field mappings that could be formulas, losing HANA pushdown performance benefits.
- Relying on Open ODS Views for scenarios that actually require historized, auditable staged data.
- Misconfiguring ADSO table settings (e.g., omitting the change log) and then discovering delta extraction to downstream layers is not possible.
- Building CompositeProviders with unnecessary joins across large ADSOs without checking the performance impact on query runtime.
Best practices
- Configure ADSO settings deliberately based on the object's role (staging vs corporate memory vs reporting), not by default.
- Prefer formula and rule-type transformation logic over ABAP routines when performance-sensitive HANA pushdown is desired.
- Use CompositeProviders as the primary reporting-facing object, keeping ADSOs as clean storage layers underneath.
- Reserve Open ODS Views for exploration or lightweight virtual access, not as a substitute for governed, historized staging.
- Periodically review the data flow for unnecessary layers as the model evolves, since scope creep can reintroduce classic BW-style complexity.
Interview angle
Interviewers often probe whether a candidate can explain when to use a union-based CompositeProvider versus a join-based one, and how ADSO type settings (active table only vs including change log) affect delta capability and reporting performance. Being able to describe a concrete layered design (acquisition, harmonization, reporting) rather than a generic answer signals real project experience.
Practice this lesson
Quick check
1. Interviewers often probe whether a candidate can explain when to use a union-based CompositeProvider versus a join-based one, and how ADSO type settings (active table only vs including change log) affect delta capability and reporting perfo. For BW/4HANA and the area "Modeling with ADSOs, CompositeProviders, and Open ODS Views in BW/4HANA", which option demonstrates the strongest production-level judgment?
2. Which BW/4HANA object is used to logically combine data from multiple InfoProviders (such as ADSOs and Open ODS Views) using union or join operations for reporting purposes, without physically merging the underlying data?
3. Which development environment is required for creating and maintaining native BW/4HANA modeling objects such as ADSOs, CompositeProviders, and Open ODS Views?
Interview questions
1. A project encounters this situation while working on Modeling with ADSOs, CompositeProviders, and Open ODS Views in BW/4HANA: A manufacturing client needs a BW/4HANA model to report on production orders sourced from an S/4HANA system. Walk through how you would analyze the requirement or issue, what you would validate, and how you would test the solution before release.
Answer it in your own words first, then compare.
2. A senior architect is reviewing BW/4HANA. The project situation is: A retail company running classic BW-on-HANA for ten years has accumulated dozens of InfoCubes and classic DSOs feeding overlapping MultiProviders for sales reporting. What design changes, validation evidence and production controls would you require before approving the solution?
Answer it in your own words first, then compare.
Reference-verified: the steps are checked against official SAP documentation and tutorials, and object and field names in the sample code are checked for consistency. The code has not been compiled or run on an SAP system by ERPClimb. Syntax marked release-dependent varies by SAP release, so check it in your own system.
More lessons in this topic
- Advanced BW/4HANA: Architecture, Integration and Production Design (Part 7)
- BW/4HANA Transfer Toolset: Conversion Paths and Object Readiness (Part 6)
- Modeling with ADSOs, Open ODS Views and CompositeProviders in BW/4HANA (Part 5)
- Planning a BW/4HANA Conversion: In-Place vs Remote Conversion and Object Simplification (Part 4)
- SAP BW/4HANA Tutorial (Part 1)
- What BW/4HANA Is and Why Organizations Migrate to It (Part 2)