What is new?
A new OData based API to extract pegging information from OBP. The API is published in API hub and can be utilized in the same fashion as Stock and Purchasing APIs.
Motivation
The analytical outbound, also called 'Data Integration: Extraction of Order-Based Planning Results' in Application jobs, enables customers to analyze planning results, along with pegging information, outside of SAP Integrated Business Planning. This feature is based on SDI technology and serves the purpose of downloading the data into files.
This comes with the following drawbacks:
- Extracts multiple files with data from the entire planning version.
- Bound to SDI
- No filter capability
- The data is not very user friendly in terms of readability. There is a need to switch between files to get full picture of the pegging. Missing Order type or external element ID information.
- It did not extract unpegged supply
Requirements
Keeping in mind the drawbacks of Analytical outbound and also growing Interest from customer, it is decided to have an extraction service API to fetch Detailed pegging information from OBP.
The purpose of this extractor is to provide Odata based Detailed pegging extraction service with improvements in terms of:
- Filter capabilties
- Snapshot creation on filters : Primary demant type, Required time Interval, Split Unpegged Supply, Pegging level,
- Filtering on Reading is possible on any output column
- Visibility of Unpegged supply
- Order type information differentiating Purchasing, subcontracting, production, demand elements etc
- Support with RTI

- Pegging is stored in 3 tables
- Direct pegging (supply outputs to demand inputs)
- Fine pegging
- Supply outputs to primary demands
- Demand order inputs to primary demands
- The algorithm combines this information: which share of a supply contributes via which direct demand to finally which primary demand
Enhancements with other object types
Unpegged Supply
Supply orders whose output is (at least partially) not fine-pegged to any primary demand
For every supply order where the output quantity doesn't match the total of fine pegged quantities, we create an entry in our pegging list with
- The quantity difference
- pegging level 0
- Initial primary demand order
We can even split such lines to distinguish between supply elements that are not pegged at all and supply elements that are pegged to demands which are not fine-pegged to any primary demand (see next slide)
This is controlled via a flag '_IBPDetPggngUnpSplIsSplFltr' which means Split Unpegged supply. If this is set to true,

Enhancements for readability / usability
Document IDs and Types
To increase the readability we will add the internal and external document ID and the document item type (as already used in purchasing and production APIs) to the output.
Master data
To enable efficient filtering, there is the ProductID and LocationID added to the output (i.e. the readable ones, not the internal IDs)
Units of measure
The previous solution returned/stored pegged supply quantity and affected primary demand quantity without UoMs. The implicit contract was to refer to the respective base units of measure.
In an OData service every quantity needs an explicit reference to a unit of measure in the same entity. Hence, there is include
- SupplyQuantityUnitOfMeasure
- PrimaryDemandQuantityUnitOfMeasure
In order to have a 'self-contained' list you would need not only the external OrderIDs, but also at least order planned date and order total quantity, preferably also the location product, CBP attributes, …

Asynchronous read (snapshot)
Live data access of mass data has performance and consistency issues.
Snapshot : Read mass data from a snapshot persistency rather than calculating on-the-fly.
A customer can e.g. trigger the snapshot creation directly after a planning run, when the pegging is most up to date.
We extract pegging network into the snapshot, with filtering on planning area and planning version. Creating snapshots on scenario is not (yet) supported.
Pros:
- Better performance
- In long term, consistent and harmonized access to data from OBP
Cons:
- In short term, chance of outdated data in snapshot
- Two-level extraction required when filtering for MRP controller, Subnetwork, …
Filters to create snapshot
- _IBPDetPggngPrimDmndDTpFilter -
- Operator : 'EQ'
- Possible Values : "SD_ITM" , "DEL_ITM", "FCST"
- _IBPDetPggngUnpSplIsSplFltr -
- Operator : 'EQ'
- Possible Values : 'True', 'False'
- _IBPDetPggngPeggingLvlFltr
- Operator : 'BT'
- Example values : "PeggingLevelValueFrom": 1, "PeggingLevelValueTo": 2
- _IBPDetPggngPrimDmndRTFltr
- "Operator": "BT",
- Example values : "PrimaryDemandReqdTimeValueFrom": "2021-01-01T00:01:01Z", "PrimaryDemandReqdTimeValueTo": "2025-01-01T00:01:01Z"
Further Info
What's new
OData API: Detailed Pegging Extraction:
SAP Help documentation
OData API: Detailed Pegging Extraction | SAP Help Portal:
Extracting Detailed Pegging Data for External Systems | SAP Help Portal: