Skip to Content

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 about 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:

  • Simple
  • 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 target.

In a 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 object 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 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 below example.

Actuals Qty is a stored key figure on 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, 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).


Global Variables

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 specific date.

Full list and more details can be found it chapter 3 of Data Integration Guide:


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



To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Satish Waghmare

    Many Thanks Alecsandra for sharing this valuable information. Looking forward to your future posts in HCI area. Thanks again.

    – Satish Waghmare

      1. Kiran Babu

        Alecsandra, Simple and easy to understand this blog. Thanks!

        Is there a possibility to make the scheduled task or HCI Process to wait from execution until it finds it source file in the Shared Drive? I was trying to call functions like file_exists / wait_for_file from a script in the HCI process but no luck, running into syntax errors.

        Do we have a list of functions that can be called from the pre-loaded scripts?



        1. Alecsandra Dimofte Post author

          Hi Kiran,

          After upgrade to 1.0.11 also the application help has been enhanced. You will find wait_for_file listed there.



  2. Srikant Kuanar

    Thank you Alecsandra for the post. Specifically on loading data in higher time bucket is there any SAP note which talks in detail about this new feature or is it covered in the configuration guide?.



    1. Irmhild Kuntze

      You will find in the new model config guide of IBP 6.1 global parameter INTEGRATION with KF_UPLOAD_EXT_AT_BASE_LEVEL_ONLY and KF_UPLOAD_INT_AT_BASE_LEVEL_ONLY. Read the documentation of that. Plus chapter 17.1 “Aggregation and Disaggregation of Data Across Different Time Levels” gives some further insights

    2. Alecsandra Dimofte Post author

      Hi Srikant,

      Assuming that IBP modelling is already done as per configuration guide ( see chapter 17.1), loading data from HCI on aggregate level is possible with the usage of $G_TIME_PROFILE_LEVEL global variable. This global variable is integer type and represents the TP level as displayed in the level column in web ui time profile config.



  3. Kosuke Tanaka

    Hi, Alecsandra

    Thank you for good information.
    Actually, we are using HCI to load the local data into a key figure of IBP now and researching how to configure HCI then I found this blog.

    We need some information regarding loading CSV file into key figure.
    If you can, could you share the information about below issue?

    <our situation>
    – goal is to load CSV file into key figure of IBP
    – use template task “SOP_File_Task”
    – use staging table for key figures which is found under Timeseries Folder like SAPSOPG.SOPDD_STAGING_KFTAB_*.

    Now we are facing below error.

    Column <ID> is a key column for target <SOPDD_STAGING_KFTAB_SAPIBP1SAPIBP1>, but does not match any column from the input
    schema and the target’s <use input key> option is not ON.

    I guess the reason is because “ID” column in the staging table for key figure is a key.
    But I couldn’t understand why staging table has column “ID” as key by default and
    wanna know how I deal with this error.

    Best Regards,

  4. Pablo Casanova

    hi Alecsandra,
    I’m having the following error :
    |Session TASK
    Syntax error at line <1>: <>: found <[end of text]> expecting <‘(‘, &ERROR, __AL_LOOKUPEX_TRAN, __AL_SEARCH_REPLACE_TRAN,
    +, AL_UNSPECIFIED_PARAM, CONVERT, a float, identifier, an integer, a null, a quoted identifier, ;, a string, a decimal,
    1 error(s), 0 warning(s).
    Check and fix the syntax and retry the operation.

    Error parsing global variable values from the command line: <$G_LOAD_DATE= Sysdate();$G_PLAN_AREA= ‘SAPMODEL1’;$G_TIME_PROFILE=
    -1;$G_BATCH_COMMAND= ‘INSERT_UPDATE’;$G_SCENARIO= “;>. Check the syntax and try again.

    Could you help me please

    1. Alecsandra Dimofte Post author

      Hi Pablo,

      I think the issue is caused by the default value you used for the $G_SCENARIO variable. Ensure they are straight quotes, to me they seem curly 🙂



  5. Pablo Vecchietti

    Great Article!  In fact I am in the middle of an Integration Proposal with IBP and a Non SAP ERP developed in .net . We will integrate data via SQL .  If you can give me feedback about this plan will be great!


    thanks a lot

    Pablo Vecchietti



Leave a Reply