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 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 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).



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 a 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 Ghita 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 Ghita 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 Ghita 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


  6. Venugopal Nair

    Hi Alecsandra – This is excellent information!

    We were trying to upload Key figure to IBP using HCI-DS and came across your blog. The upload is going through with csv file method but we are unable to proceed using HCI. The data is getting loaded to staging table but post processing returns ‘zero records processed error’

    I have raised a question in the below link, would appreciate if you could have a look and suggest any possible resolutions.

    IBP – HCI DS – IBP key figure upload, post processing script error

    1. Alecsandra Dimofte Post author

      Hi Nair,

      Errors during post-processing usually happen because of the data consistency (for example you are loading transactional data but the master data is missing for those combinations, your IBP granularity is monthly but you send the data in weekly values resulting into a key duplication etc). To analyze the error that appeared during post-processing you need to download the rejection report from IBP data integration fiori app.




  7. Md Rizwan

    Hi  Alecsandra,

    Am new to this topic, was trying to integrate IBP and APO.

    Need to send Sales Forecast from IBP to APO system using HCI-DS, was looking for step by step documents if any for the same.





Leave a Reply