Pattern-based Partitioning using the SPO BAdI – Part 1: Introduction
In this blog series I would like to share how to realize central definition and maintenance of partitioning patterns. The standard Semantically Partitioned Object (SPO) functionality of SAP NetWeaver BW 7.3 is enhanced by implementing Business Add-in (BAdI) RSLPO_BADI_PARTITIONING and few control tables. It facilitates an automated (re)partitioning, either individually or collectively, and enables partitions, criteria, texts and Data Transfer Processes (DTPs) to be generated automatically and consistently.
The blog series consists of the following blogs in addition to this introductory blog:
- Pattern-based Partitioning using the SPO BAdI – Part 2: BAdI Managed Maintenance;
- Pattern-based Partitioning using the SPO BAdI – Part 3: Partitioning Patterns;
- Pattern-based Partitioning using the SPO BAdI – Part 4: Use Cases.
I developed a working version of the BAdI implementation which I would like to share via two documents. Implementing Pattern-based Partitioning using the SPO BAdI – Part 1: Control Tables contains all technical details of creating the control tables and the related ABAP data dictionary objects. Implementing Pattern-based Partitioning using the SPO BAdI – Part 2: BAdI Implementation explains all technical details of implementing BAdI RSLPO_BADI_PARTITIONING and the necessary ABAP Object Oriented programming in the implementing class.
Partitioning using the SPO BAdI
SAP NetWeaver BW 7.3 facilitates logical partitioning or semantic partitioning. A new InfoProvider type is introduced called Semantically Partitioned Object. This blog series will concentrate on the automated (BAdI managed) maintenance scenario. It offers extended functionality to address central definition and maintenance of partitioning patterns in an Enterprise Data Warehousing context.
In many implementations the automated maintenance scenario offers substantial benefits. The manual maintenance scenario is less appropriate in big implementations. The number of SPOs can soon grow to several hundred with an obvious requirement for uniformity, consistency, maintainability and flexibility.
The automated scenario requires the implementation of Business Add-in (BAdI) RSLPO_BADI_PARTITIONING. BAdI technology is a best practice for enhancing the standard SAP software in a controlled way and usually upwards compatible with future SAP releases. A BAdI offers an exit point and interface predefined by SAP. Therefore, it’s 100% integrated and encapsulated in the standard SAP software by definition. In other words, a safe and future proof way to enhance the standard SAP software.
The advantages of the automated scenario using the BAdI are as follows:
- It enables a consistent application of partitioning patterns by central definitions (authorized partitioning patterns) throughout the entire Enterprise Data Warehouse;
- It provides increased transparency and control of SPOs and the way they are modeled;
- It reduces the Total Cost of Development (TCD) by reusing the partitioning patterns and automated generation of partitions, partitioning criteria, texts and DTPs;
- It reduces the Total Cost of Ownership (TCO) by central maintenance of the partitioning patterns and partitioning criteria, along with the automated generation of any changes to be applied;
- It is in line with and complements SAP’s best practices in the area of Enterprise Data Warehousing.
Partitioning in an LSA Context
Key aspects of SAP BW Layered, Scalable Architecture (LSA – SAP’s best practice in Enterprise Data Warehousing) are standardization and scalability. Logical partitioning or semantic partitioning as a modeling pattern plays an important role in LSA.
One of the landmark building blocks of LSA is domain partitioning. The domain partitioning concept is generic and should therefore be embedded in the design of all or the majority of transactional data flows. In the context of LSA, this kind of partitioning is also referred to as strategic partitioning. The best practice partitioning is based on geography. Examples are continent, region or country. However, partitioning using a geographical criterion is not mandatory.
The following screenshot is an example of strategic partitioning with a single Enterprise Resource Planning (ERP) source system.
Figure 1: Strategic Partitioning Conceptual Overview (Source: SAP AG)
There are other ways to realize further partitioning, also referred to as tactical partitioning or sub partitioning. Preferred partitioning is based on time. Frequently used partitioning criteria are Fiscal Year and Calendar Year. However, dependent on the kind of data, other sub partitioning scenarios are also possible. It is very important to make a volume estimate for new data marts, taking parameters such as the level of granularity and the data retention period into account. Sub partitioning has to be decided upon in an early stage.
Please refer to the following blogs of Jürgen Haupt for more information on LSA:
- SAP NetWeaver BW: BW Layered Scalable Architecture (LSA) / Blog Series;
- SAP NetWeaver BW: What is the BW Layered Scalable Architecture (LSA) all about?;
- SAP NetWeaver BW: BW Layered Scalable Architecture (LSA) Building Blocks.
In this first blog I introduced the pattern-based partitioning concept and its advantages. Implementation of BAdI RSLPO_BADI_PARTITIONING in conjunction with few control tables is necessary. It became clear that partitioning as a modeling pattern plays an important role in LSA Enterprise Data Warehouses.
In Pattern-based Partitioning using the SPO BAdI – Part 2: BAdI Managed Maintenance I will explain in detail how the automated maintenance scenario works. In Pattern-based Partitioning using the SPO BAdI – Part 3: Partitioning Patterns you will learn more about authorized partitioning patterns, the maximum number of partitions and how to use the control tables. Finally, I will highlight in Pattern-based Partitioning using the SPO BAdI – Part 4: Use Cases some use cases of pattern-based partitioning based on LSA data flow templates.