Skip to Content
Technical Articles
Author's profile photo Alecsandra Dimofte

Collaborative Planning (IBP + SAC) – Technical focus Part 1 (IBP to SAC)

Dear community members,

The blog I published on Collaborative Planning enabled by Integrated Business Planning and SAP Analytics Cloud generated quite some traffic and the request to share also how the integration works from a technical point of view.

SAP Application Help for IBP is doing a great job explaining step by step the configuration required on the IBP side to enable the integration. I could also find a blog which gives a visual overview of all these steps: CDC for SAP IBP: Setup the Communication Arrangement.

As it does not bring any value to reiterate things that are already properly documented, I am using this blog to focus more on SAC, how SAC looks like through IBP lens.

The below steps show how to create a simple data exchange query to integrate data from IBP into SAC.

Step 1: Enable the connection between IBP and SAC

In SAC, you can create a data connection with IBP only after you completed the prerequisites in IBP. The IBP communication arrangement generates the Data Service URL you provide as input in the connection definition in SAC.

Step 2: Create a model in SAC (or use an existing model)

To work with data in SAC, you require a model. Models in SAC consist mainly of:

  • Dimensions: similar to dimensions in IBP, they are qualitative. In the below model, besides the date dimension, I added four generic dimensions, which correspond to master data entities from IBP: Customer, Product, Resources and Location. You can also observe the Version Dimension, which you use to define data versions for your measures.

  • Measures: similar to key figures in IBP, they are numeric values, can support calculations and are used to hold transactional data. But there is one big difference to IBP, which the umbrella name (“Account”) of these measures also suggests: SAC uses an account-based model, which means that measures can be assigned to a GL account, based on which they are included in the Profit and Loss or Balance Sheet calculations.

What I like at measures definition in SAC is the simplicity of defining aggregation exceptions, to relate to one or more dimensions.


Step 3: Create the dataflow/interface

Within the model, you find the data management tab where you can define new import or export jobs or re-run existing ones.

You can observe in below image that I am selecting from IBP the Constrained Revenue at Product Id, Customer Id and Month level. I also used the filter section to restrict the amount of data I read.

Committing the selection will bring the data in SAC, allowing you to manipulate it before loading it to your model.

Loading transactional data to a SAC model is different than from loading it to an IBP planning area, where one must load data at the root attributes defined in the planning level. In SAC there is no such concept. In this example, for loading Constrained Revenue in the model, which includes Locations and Resources as dimensions, required me to map also the Resources and Locations, besides the Product and Customer. This meant that I had to map all dimensions that are part of the model. As my input from IBP did not include this information, I assigned both dimensions with a default value “#”.

At this stage of mapping the data, you can also choose where to load the data: in an already existing version or a new ad-hoc created version. Once you mapped the dimensions and measures, you may validate data to see if there are any inconsistencies. When not, Finish Mapping will load the data to your model and you will be able to use it in stories.

Step 4: Use the loaded data in a story

A story is a presentation-style document that uses charts, visualisations, text, images, and pictograms to describe data. To some extent, it is similar to the IBP dashboard.

I added the below chart to my story to compare the constrained revenue received from IBP with the revenue target defined in the budget exercise directly in SAC. I used the same measure, but I read it from two different versions: Constrained Growth Strategy and Target.


If you are interested to learn more about SAC, you can check the solution page on



Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Philipp Nell
      Philipp Nell

      Hello Alecsandra, Good one. Thanks for the effort. Kind regards, Philipp

      Author's profile photo Prabodh Misra
      Prabodh Misra

      Fantastic. Thanks for this great post.

      Author's profile photo Michael Mack
      Michael Mack

      Cool stuff, thanks Alecs!

      Author's profile photo Yiyun You
      Yiyun You

      Hi Alecsandra thanks for sharing. Could you also please share the export job? 

      Author's profile photo Mikko Kuokkanen
      Mikko Kuokkanen

      Thank you Alecsandra, this is very helpful. Could you please share the same step-by-step guide for exporting data to IBP? In my test I managed to have a success on the SAC side ('1/1 lines exported successfully'), but the data doesn't show up in IBP. I can't seem to figure out what is going wrong.. Would be great if you could help out!

      Author's profile photo Piyush Parekh
      Piyush Parekh

      Hi Alecsandra, while exporting data from SAC to IBP, I was able to export a single data record, however if there are multiple records, the job fails with the runtime error - ITAB_DUPLICATE_KEY_IDX_OP. Can you please suggest how to resolve this issue?


      Author's profile photo Alecsandra Dimofte
      Alecsandra Dimofte
      Blog Post Author

      Hi Piyush,

      I haven't seen this error before and I can only have a guess based on the "DUPLICATE" hint.

      In IBP, key figures are defined at a base planning level. Whenever we integrate key figures data into IBP, we must do it at the granularity of the base planning level - we must map all the root attributes and ensure the combination of the root attributes is unique. The time dimension accepts an aggregated level, e.g. if week is the root, data can be loaded at the month.

      e.g: if the base planning level is WKPRODLOCCUST you cannot send the following two entries:

      Line 1: WK1-PROD1-LOC1-CUST1 100pcs

      Line 2: WK1-PROD1-LOC1-CUST1 200pcs

      You need to aggregate to one line before sending it to IBP.

      Can you please check the data you try to send and compare with the root attributes in IBP?



      Author's profile photo Sangamesh Reshmi
      Sangamesh Reshmi

      Vey Nice Blog,


      When you would like to import multiple scenarios with the combination of Version. How you do it..? Any Idea