SAP Integrated Business Planning is usually integrated with various systems in order to support data exchange, for example SAP APO, SAP ERP or non-SAP systems.
With this entry, I hope to facilitate the onboarding process of the new consultants in the area of IBP by explaining the principles of data integration.
There are several ways to send data to IBP: HCI-DS (Hana Cloud Integration), open API (available since IBP 6.1) or web UI Data Integration app. The last one, even if it is the easiest to use, it is not automated and not suitable for large uploads.
I will keep the focus on ETL- like integration using HCI-DS (Hana Cloud Integration) tool. In the first part, I will discuss master data load while in the second one I will cover the transactional data.
Data load into IBP core tables goes through the staging tables, the so-called “landing zone”. From here, after integrity checks, data will be either moved to the core tables or rejected.
Loading Master Data
In IBP we distinguish between several types of Master Data. Depending on the type, there are some dependencies when loading data:
- Compound: loading data in compound tables requires first existing records in the simple tables
- Reference: they are referencing to already existing master data, not in scope of data load
- Virtual: their content is generated based on a JOIN condition between existing master data tables, not in scope of data load
- External: used for near real-time integration, not in scope of HCI
At HCI datastore level – metadata import, we can recognize the staging tables by the prefix STAG (e.g: SAPSOPG.SOPMD_STAG_PRODUCT). Only these tables can be used as a target.
In an HCI dataflow, it is mandatory to map the master data attributes that are marked with Key and/or Required at master data definition level.
Loading Key Figures
Key Figures are objects that hold transactional data and are determined by a particular combination of attributes and time period values. They can be loaded into IBP, calculated on the fly or hold values computed by operators (like Unconstrained Heuristics output key figures).
Only stored Key Figures (or both Stored and Calculated) can be used as a target for data load. The staging table for key figures is found under Timeseries Folder and there is one for each version available in the planning area (e.g: SAPSOPG.SOPDD_STAGING_KFTAB_SM1BASESAP1)
Loading values into a key figure has to be done at the granularity of the base planning level. The root attributes of the base planning level act as a compound primary key for the key figure. This means that every single combination must be unique.
However, since IBP 6.1 data load is possible also on an aggregated level but only from a time dimension perspective.
Let’s consider the example below.
Actuals Qty is a stored key figure in the base planning level PERPRODCUST. This planning level is defined by PRDID – CUSTID attributes and Monthly as the lowest time dimension where the Key Figure is stored. It is mandatory to provide valid mapping for these 3 dimensions within the target query.
For this key figure data, the load is supported on an aggregate time level like Quarter or Year (prerequisite is to define the time profile after guideline provided in 6.1 configuration guide).
There are several global variables needed by IBP application to process data once it has been loaded into the staging tables, While some of them are mandatory (like the ones listed below), some are optional and/or can be user-defined.
- $G_PLAN_AREA – mandatory only for transactional data load as master data can be cross planning areas
- $G_BATCH_COMMAND – in IBP we have the following data load options: INSERT_UPDATE, DELETE and REPLACE. Purge is also supported by IBP but is usually executed from web UI, giving that it is deleting all transactional data before a specific date.
Full list and more details can be found it chapter 3 of Data Integration Guide: http://help.sap.com/download/ibp/ibp61_hci_integration.pdf
Other learning resources on SCN:
HCI section under IBP FAQ: SAP Integrated Business Planning FAQs
Getting started on HCI which summarizes existing official documentation and it is constantly updated with latest release features: Getting Started on HCI