Collaborative Planning (IBP + SAC) – Technical focus Part 2 (SAC to IBP)
Hello community members!
It’s been quite some time since the last blog post! During this time, I received quite a few questions from you, and most of them were about the capability to write back from SAC into IBP:
- Can SAC write data into IBP?
- What is required to write data from SAC into IBP?
Here is the summary of how the integration works and some recommended Dos and Don’ts.
Integrate data from SAC into IBP
For simplicity, I will refer to the bi-directional integration with READ and WRITE as following:
- IBP integration into SAC: READ
- SAC integration into IBP: WRITE
Step 1: Enable the connection between IBP and SAC
The setup required to enable the oData WRITE service is exactly the same as for the READ. This means that if you have already enabled the connection for the READ scenario, you can use it also for the WRITE. If not, here is a summary of what you will have to cover:
- List the required planning area for integration in Global Configuration
- Create a Communication System type SAP_COM_0143
- Create a Communication User
- Create a Communication Arrangement
For more details, check here.
- Create a connection to IBP using the OData Service URL generated by the IBP communication arrangement and using the credentials of the defined communication user
For more details, check part 1 of this blog.
- Even if it might be confusing because of the name, the same EXTRACT endpoint service from the IBP communication arrangement is also used for the WRITE.
- In the communication system definition, you don’t have to fill the User for Outbound Communication. The User for Inbound Communication is used for both READ and WRITE.
Step 2: Select the parameters for the WRITE call
From the SAC Model, Data Management tab, you can also run an export job “Export Data to SAP Integrated Business Planning”.
Select the IBP connection you would like to use and proceed to the next step.
Select the key figure and all the attribute dimensions that correspond to the planning level root attributes where the key figure is defined.
- If the key figure is enabled for conversion, e.g. UoM or Currency conversion, make sure to select the Target UoM or the Target Currency attribute.
- Don’t select the time dimensions as a TIMESTAMP, e.g. Month(As Timestamp). As of now, writing the date as a TIMESTAMP is not supported and selecting it will generate a SAC generic error An error occurred when exporting data: The type’ class java.lang. String’ of the value object is not supported.
- Don’t map attributes that are used in Attribute Transformation Type Key figures. The WRITE request is not supporting Attribute Transformation Type Key figures. The error I got for this: Internal Error: cannot read corresponding IBP data from planning area.
- Don’t select more than one key figure. As of now, only one key figure at a time can be written.
Step 3:Map the parameters between SAC and IBP
Map the IBP fields to SAC and filter the source data.
- If the IBP attribute names aren’t the same as the column names in your SAP Analytics Cloud model, you can create an extra property column, with names that match the names in IBP. Then when you export the data, you can map the new property column to the IBP attributes. In my example, I created an additional column named PRDID as the IBP attribute and filled it with the product IDs.
- For any target IBP field, if you have no source dimension to map data to and choose the option Not Mapped, you need to specify a default value for the target field. In this example, I mapped Target Currency with USD as default value.
- IBP currently doesn’t support version mapping during the data acquisition. If you maintain multiple versions in SAC, make sure you set a filter for a specific version. Otherwise, transaction data from different versions will be aggregated.
- Don’t click Finish unless you are sure you provided all the inputs. Unfortunately, you will not be able to re-edit this query.
Once you are done, click Finish and, if all is ok, you will get a confirmation.
Further limitations that exist at the moment:
- WRITE is possible only for Key Figures, master data write is not supported – roadmap item, currently planned for 2105
- WRITE is not available at version/scenario level – roadmap item, currently planned for 2102
- WRITE new planning combination from SAC into IBP is not supported
I hope it helps you to move forward with IBP+SAC implementations.
p.s: please note that with future releases, the limitations described in this blog might become obsolete.
Great description Alecs, thanks!
Thanks for the detailed info on SAC to IBP Alex. This helped us a lot in resolving all the issues that we are facing. As the error message were not that informative had to rely on SAP Support to decipher the error, but this blogs nails it.
Though we are still facing 1 issue when exporting more than 1 entry we are facing duplicate itab error message.
We checked our Data and there are no duplicates, so not sure what is causing the error. Note: When we re filtering out data to send exactly only 1 record data is transferred successfully.
Thank you Alecsandra Dimofte - this looks spot-on to help my customer. Great blog, many thanks. cheers, H
Hi Alecsandra, thanks for your detailed Blog. We already connected SAC to IBP and successfully send and received Data.
Is it somehow possible that SAC is creating Plannning Objects when transfering the Data to IBP? Because with our current setup, all combinations that dont already exist in IBP get rejected.
Thanks in advance.
Unfortunately, as you noticed, this is not possible today. It is also not planned for the next 3 releases. In 2105 it is planned to allow writing master data entries. Hopefully, writing new planning objects will follow.
Thank you Alecsandra Dimofte for this complete tutorial !
I managed to connect SAC with IBP (write configuration) but I get the folowing error while importing my data from SAC to IBP :
I cannot figure out how to add the Period ID in the export. Indeed, this is not a Key Figure in IBP. DO you have any idea ?
Yes, your are right. I remember that sending the PERIODID from SAC into IBP was required (and unexpected).
The IBP calendar is defined by creating a Time Profile which structures the time hierarchy using these PERIODIDs grouped in levels e.g. level 3 represents weeks, level 4 months, level 5 quarters etc. This way customers have flexibility to define their own calendar and also to decide the granularity. Each period id will have a PERIODSTART and PERIODEND, timestamp format.
What I did was to create another dimension where I loaded the IBP TIME PROFILE and used this dimension in data mappings.
you mentioned that you "created another dimension".
My question: where did you created another dimension, in SAC or IBP?
I guess SAC.
But how do you combine the SAC-Date dimension with your new created SAC-Month dimension?
I am asking because my SAC-Model is one year old and has a lot of entries/records without the new dimension "Month".
Yes, I created an additional dimension in SAC where I loaded the IBP time profile. If you already have data into the model, you will have to carefully evaluate the extension of the model with a new dimension and its implications. You could assign old values with a default value #.
I am also testing this now and looking if there are other approaches.
Some good news: SAC has customizable time dimension on the roadmap for Q1 2022. This should allow the extension of the calendar with additional attributes e.g. you could define the IBP period ID as a property of the SAC period.
Is the enhancement for the customizable time dimension available as of Q1 2022? We are trying to integrate with an existing IBP solution with PERIODID as 123456 and Period Description as YYYY PMM, while SAC can only read / write to YYYYMM?
Can you please advise?
Update: Sending the PERIODID is not required. The period description is being used.
Thanks for this great blog. Is there any application or any way to check the log of SACP to IBP Inbound data in IBP?
In my project, I have seen that SACP can provide details of rejected records but there is no log of successful records.
Unfortunately, there is no such log available. Perhaps you could post this request on https://influence.sap.com/sap/ino/#/campaign/21 ?
The only way I know that enables users to track changes is by using Change History. You can limit the Source of Change to Extract_OData_API.
I'm wondering if somebody has tried to transfer sales planning data from the new SAC Financial Planning tool to IBP. This would be an obvious planning process step.
Is it possible to get an updated version of this Blog post in the context of the latest version of SAC and IBP.
Thanks for these great blogs - they really helped us setting up the SAC-IBP connectivity 🙂
However we are still struggeling with sending data from SAC to IBP - apparently SAC is sending a wrong keyfiguredate format. The following log entry is from the internal IBP data integration logs.
How did you manage to send the right keyfiguredate format from SAC to IBP?
Thank you for any hints.
/IBP/CL_SAP_SFND_SOPINTEG_NORM=>TRGT_TO_CORE_KEYFIG_NORM: line 1170 col 37 (at pos 67630
 attribute value is not a number;exception 70006930: attribute value is not a number;[here]fixed(format("KEYFIGUREDATE", 'YYYYMMDDHH24MISS'), 15, 0), KEYFIGUREDATE = [longdate]
To upload key figures, please change the date format to YYYY-MM-DD and try again. If the date format is OK, please delete any blank line in the uploaded source file.