↑
SAP BPC 10.1 Standard › Overview & Architecture
Getting Started

Overview & Architecture

SAP Business Planning and Consolidation (BPC) 10.1 Standard is a robust, unified application for enterprise financial planning, budgeting, forecasting, and statutory consolidation.

Standard vs. Embedded Model

BPC 10.1 introduced a major architectural split on the SAP NetWeaver platform: Standard and Embedded.

FeatureStandard ModelEmbedded Model
ArchitectureAccount-based, uses BPC-specific generated BW objects (/CPMB/ namespace).Key Figure-based, directly integrates with SAP BW-IP (Integrated Planning) objects.
Data PersistenceData is loaded into BPC from BW via Data Manager.Real-time access to BW data; no data duplication.
Target UserBusiness Users (Finance) - IT independent modeling.IT & Data Modelers - strict BW governance.
Logic EngineScript Logic and ABAP BAdIs.FOX formulas and HANA SQLScript (AMDP).
Note: This guide strictly covers the BPC 10.1 Standard model, which maintains the classic BPC modeling approach favored by Finance departments.

System Architecture (NetWeaver)

BPC Standard runs on the SAP NetWeaver ABAP stack, typically on top of a SAP HANA database (though classic DBs were supported historically).

  • Database Layer: Stores the actual physical tables (generated by BW).
  • BW Application Layer: When you create an Environment and Model in the BPC web client, the system generates BW InfoCubes, InfoObjects, and MultiProviders in the background under the /CPMB/ namespace.
  • BPC Application Layer: The logic engine (Script Logic), security framework, and Data Manager reside here.
  • Presentation Layer: The EPM Add-in for Microsoft Office (Excel, Word, PPT) and the HTML5 Web Client.
Getting Started

Environments & Models

The fundamental containers of data and metadata in BPC Standard.

Environment (AppSet)

An Environment is the highest-level container in BPC. It represents a complete business application (e.g., "Global Finance" or "Corporate Consolidation"). Security, Dimensions, and Data Manager packages are maintained at the Environment level.

Models (Applications)

Within an Environment, you create one or more Models. A Model is a multidimensional data store (an InfoCube in the backend) designed for a specific business process.

Types of Models

📈
Financial Model

Used for planning and reporting. Requires specific dimension types (Account, Category, Entity, Time).

⚖️
Consolidation Model

Requires strict dimension requirements including Group, Intercompany (INTCO), and specific properties to run statutory consolidation business rules.

⚙️
Generic Model

A flexible model without strict dimension requirements, often used for operational planning (e.g., HR headcount planning).

🗂️
Rate / Ownership Model

Supporting models used to store FX exchange rates or company ownership percentages for consolidation.

Model Optimization

In the BW backend, a standard BPC Model generates a real-time InfoCube. Over time, as planning data is written, the uncompressed Delta tables (F-Fact table) grow. BPC administrators must routinely run Light Optimize (or Full Optimize) via Data Manager to compress data into the E-Fact table and update database statistics, ensuring sustained query performance.

Data Modeling

Dimensions & Properties

Dimensions provide the analytical context for the numbers. BPC Standard requires specific dimension types for its internal logic to function.

Required Dimension Types

A Financial or Consolidation model must contain the following dimension types:

TypeCodePurposeRequired Properties
AccountAChart of accounts, measures, KPIs.ACCTYPE (INC, EXP, AST, LEQ), RATETYPE
CategoryCData versions (Actual, Budget, Forecast).CATEGORY_FOR_OPE, YEAR
EntityECost centers, company codes, regions.CURRENCY, INTCO
TimeTTime periods (Year, Quarter, Month).MONTHNUM, YEAR, PERIOD, TIMEID

Supporting Dimension Types

  • Currency (R): Reporting currency (e.g., LC, USD, EUR). Required if the model supports currency translation.
  • Intercompany (I): Represents the counter-party in an intercompany transaction. Required for consolidation eliminations.
  • Audit / Data Source (D): Tracks where data came from (e.g., Input, BW Load, Allocation Logic).
  • User Defined (U): Custom dimensions like Product, Customer, or Project.

Dimension Properties

Properties are attributes attached to dimension members. They are critical for filtering in reports and driving Script Logic. For example, the ACCTYPE property on the Account dimension tells BPC whether to treat the account as Income (credit balance) or Expense (debit balance), which automatically flips the sign for reporting in the EPM Add-in.

Hierarchies

Dimensions can have one or more Hierarchies (e.g., a Geographical hierarchy and a Management hierarchy for Entities). In BPC Standard, hierarchies are Parent-Child based. The PARENTH1 property defines the parent of a specific member.

Data Modeling

BW Backend Integration

Understanding how BPC Standard maps to SAP BW is critical for troubleshooting and data loading.

The /CPMB/ Namespace

When you create objects in the BPC web client, they are physically generated in BW within the /CPMB/ namespace.

BPC ObjectBW EquivalentExample Technical Name
EnvironmentInfoArea/CPMB/ENV_NAME
ModelInfoCube (Real-time)/CPMB/MODEL_ID
DimensionInfoObject (Characteristic)/CPMB/DIM_ID
Dimension PropertyInfoObject Attribute/CPMB/PROP_ID
Signed Data (Value)InfoObject (Key Figure)/CPMB/SDATA
Do not modify /CPMB/ objects directly in SAP GUI (RSA1). Any changes made to BPC-generated BW objects via SAP GUI will be overwritten or cause severe inconsistencies the next time the environment is processed in the BPC Web Client. Always use the BPC Web Admin interface for modeling.

Data Extraction from BW

To load actuals from standard BW InfoCubes/DSOs into BPC Standard:

  1. Create a Data Manager Package using the process chain /CPMB/LOAD_INFOPROV_UI.
  2. Create a Transformation File to map the BW InfoObjects to the BPC Dimensions.
  3. Execute the package, which extracts data from the BW provider and writes it to the BPC InfoCube.
Data Integration

Data Manager Packages

Data Manager (DM) is the ETL (Extract, Transform, Load) toolset within BPC Standard, executed via the EPM Add-in.

What is a DM Package?

A Data Manager Package is a user-friendly wrapper around a standard SAP BW Process Chain. It allows business users (planners) to execute complex background jobs without accessing the SAP GUI.

Common DM Packages

📥
Import / Export

Load flat files (CSV) from the BPC server repository into a model, or export data to a file. (e.g., Import Transaction Data).

🗃️
BW Integration

Load data from a BW InfoProvider directly into a BPC model.

➗
Logic Execution

Trigger Script Logic or Advanced Calculations (e.g., Currency Translation, Consolidation, Allocations).

⚙️
System Admin

Run database optimization (Light Optimize) to compress data and improve read performance.

Delta vs. Full Load

When loading data via Data Manager, BPC handles data updates based on the load type:

  • Update / Merge: Adds new records and overwrites existing records if the exact dimensional intersection matches. Does not clear other data.
  • Replace & Clear: Clears the entire intersection of data specified in the scope before loading the new file. Crucial for ensuring deleted records in the source are removed from BPC.
Data Integration

Transformation & Conversion Files

These files dictate how source data is mapped, cleansed, and transformed as it enters a BPC Model via Data Manager.

Transformation Files (.xls)

A Transformation File maps the columns of a source file (or InfoProvider) to the Dimensions of the target BPC model. It contains three main sections:

*OPTIONS
FORMAT = DELIMITED
HEADER = YES
DELIMITER = ,

*MAPPING
ACCOUNT = col(1)
ENTITY = col(2)
TIME = col(3)
SIGNEDDATA = col(4)

*CONVERSION
ACCOUNT = ACC_CONVERSION.xls
    

Conversion Files (.xls)

While the Transformation file handles column-to-dimension mapping, a Conversion File handles row-by-row data translation. It acts as a lookup table.

EXTERNAL (Source)INTERNAL (Target in BPC)FORMULA
1000CC_1000
20*CC_GENERIC
**
Wildcards: The * wildcard is heavily used. * mapped to * means "if no other rule applies, pass the source value through exactly as it is."
Logic & Calculation

Script Logic

Script Logic is BPC's proprietary, SQL-like scripting language used to perform bulk calculations, allocations, and data movements.

Core Concepts

Unlike Excel formulas that run in memory, Script Logic executes on the server against the database. It processes data in batches.

Scoping (XDIM_MEMBERSET)

The most important rule in Script Logic is defining the scope. Scoping restricts the dataset pulled into server memory for the calculation. Poor scoping leads to severe performance issues.

// Restrict the memory scope to specific members
*XDIM_MEMBERSET CATEGORY = Budget
*XDIM_MEMBERSET TIME = 2026.JAN, 2026.FEB
*XDIM_MEMBERSET ACCOUNT = 400000, 410000
    

The WHEN / REC / ENDWHEN Loop

This is the fundamental processing loop in Script Logic. It evaluates records in the scope and writes new records based on conditions.

*WHEN ACCOUNT
  *IS "400000" // If the account is Revenue
    // Write a new record to the Tax account, calculating 5% of Revenue
    *REC(FACTOR = 0.05, ACCOUNT = "210000")
  *IS "410000"
    // Move the value to a different Entity
    *REC(EXPRESSION = %VALUE%, ENTITY = "US01")
*ENDWHEN
    

Default.LGF

Every model has a special script file named Default.lgf. This logic runs automatically every time a user saves data via an input schedule or journal. It should be kept extremely lightweight (e.g., simple sign-flipping or basic driver calculations) to prevent long wait times during data saves.

Logic & Calculation

BAdIs & ABAP Integration

When Script Logic is not powerful or fast enough, developers use ABAP BAdIs (Business Add-Ins) to execute complex, high-performance server-side logic.

Why use a BAdI?

Script Logic is great for simple math, but it struggles with complex loops, string manipulation, reading from external BW tables, or highly complex allocations. BAdIs allow you to write pure ABAP code to manipulate BPC data.

The UJ_CUSTOM_LOGIC BAdI

To integrate ABAP into a BPC process, developers implement the standard enhancement spot BADI_UJ_CUSTOM_LOGIC. The ABAP developer creates a filter value (e.g., MY_ALLOCATION).

The business user can then trigger this ABAP code from a standard Data Manager Package or within Script Logic using the *START_BADI command:

*START_BADI MY_ALLOCATION
  QUERY = ON
  WRITE = ON
*END_BADI
    

Performance Implications

BAdIs are generally much faster than Script Logic for large datasets because they use internal ABAP tables and optimized SQL reads/writes directly against the HANA database. However, they require IT dependency, removing the "Finance-owned" aspect of BPC.

Reporting & UI

EPM Add-in for Excel

The Enterprise Performance Management (EPM) Add-in is the primary interface for Finance users to build reports, input schedules, and execute packages.

Report Editor

The Report Editor is a drag-and-drop interface used to define the Rows, Columns, and Page Axis of an Excel report. It automatically generates the EPM formulas needed to retrieve data.

Key EPM Functions

Advanced users build reports using direct cell-based EPM formulas rather than the Report Editor for ultimate formatting control.

FunctionPurpose
=EPMRetrieveData()Fetches a single data intersection from the database based on dimension coordinates.
=EPMSaveData()Allows a specific cell value to be saved back to the database.
=EPMSelectMember()Creates a double-clickable cell that opens the dimension member selector UI.
=EPMContextMember()Displays the current dimension member selected in the context pane.

Local Members

A Local Member is a calculated row or column that exists only in the Excel report, not in the BPC database (e.g., a "Gross Margin %" variance column). Local Members automatically expand and move dynamically with the report layout.

Dynamic Formatting

Because BPC reports are dynamic (rows expand and collapse), standard Excel formatting is destroyed upon refresh. EPM uses a Dynamic Formatting Sheet. You define formatting rules based on dimension properties (e.g., "If Account property CALC=Y, make the row bold and blue"), and the EPM Add-in reapplies these formats perfectly after every refresh.

Reporting & UI

HTML5 Web Client

The BPC Web Client is the central hub for system administration, workspace management, and process flow tracking.

Administration Workspace

Used by Modelers and Admins to manage the backend structure:

  • Create and modify Dimensions and Properties.
  • Manage Models and Environment settings.
  • Configure Security Users, Teams, and Task Profiles.
  • Manage Business Rules for Consolidation (Currency Translation, Eliminations).

Business User Workspace

Provides a web-based entry point for end-users:

  • Launch the EPM Add-in contextualized to specific reports.
  • View and interact with Workspaces (web-based dashboards).
  • Execute and track Business Process Flows (BPF).
  • Manage Document repositories.
Process Management

Business Process Flows (BPF)

BPFs guide users through a predefined, sequential planning or consolidation process, ensuring steps are completed in the correct order.

BPF Architecture

1
Process Template

The master blueprint designed by an admin. Defines the steps (e.g., 1. Enter Sales, 2. Enter OPEX, 3. Review).

2
Driving Dimension

The dimension that splits the process among users. Typically the Entity dimension. (e.g., US creates a budget, UK creates a budget).

3
Process Instance

A live, generated version of the template for a specific time period (e.g., "Q3 2026 Forecast").

Workspaces within BPFs

When a user clicks a step in their BPF inbox (e.g., "Enter OPEX"), the BPF automatically opens the correct EPM Input Schedule, pre-filtered to their specific Entity and Time context. This prevents users from entering data in the wrong place.

Process Management

Work Status

Work Status is BPC's data locking and approval mechanism. It prevents unauthorized data changes based on the business lifecycle.

Work States

Admins define sequential states. A common sequence is:

  1. Unlocked: Data entry allowed by all planners.
  2. Submitted: Planners can no longer edit; Managers can review.
  3. Approved: Data is locked for everyone except system administrators.

Controlling Dimensions

Work Status is applied to a slice of data defined by specific dimensions (e.g., Entity, Category, Time). Example: You can lock "Actuals" for "Q1" for "Entity US", while leaving "Entity UK" open.

Owner vs. Manager

The Entity dimension typically contains an OWNER property and a REVIEWER (Manager) property. Only the Owner can transition the state from Unlocked to Submitted. Only the Reviewer can transition the state from Submitted to Approved, or reject it back to Unlocked.

Administration

Security & Profiles

BPC has its own security layer that runs on top of the NetWeaver ABAP security model, managed entirely via the BPC Web Client.

Security Components

ComponentPurpose
UsersMapped directly to SAP NetWeaver ABAP user IDs (SU01).
TeamsGroups of users. Best practice is to assign profiles to Teams, not individual Users.
Task ProfilesControls what a user can do (e.g., Create Reports, Save Data, Run Packages, Admin System).
Data Access Profiles (DAP)Controls where a user can read/write data based on dimension members (e.g., Read/Write access to Entity 'US', Read-Only to Entity 'UK', Denied to Entity 'GER').
Resolution of Conflicts: If a user belongs to multiple teams with different Data Access Profiles, BPC applies the least restrictive access (union of all privileges).
Quick Reference

Interview Quick Reference

Key concepts and common interview questions for SAP BPC 10.1 Standard.

Key Concepts to Know Cold

  • /CPMB/ Namespace: Know that BPC Standard generates objects here and they shouldn't be edited via RSA1.
  • Default.lgf: The script logic file that executes automatically on every data send.
  • XDIM_MEMBERSET: The crucial script logic command used to restrict the data scope and ensure performance.
  • Light Optimize: The Data Manager package used to compress the underlying BW InfoCube and update DB statistics.
  • Data Access Profile vs Task Profile: DAP controls *what data* you see (Row-level). Task Profile controls *what actions* you can perform (App-level).

Common Interview Questions

  1. What is the difference between BPC Standard and BPC Embedded?
  2. Explain the difference between a Transformation File and a Conversion File.
  3. How would you improve the performance of a slow-running Script Logic?
  4. What is the difference between Update/Merge and Replace/Clear in Data Manager?
  5. Explain the concept of Local Members in the EPM Add-in.
  6. When would you choose to use an ABAP BAdI instead of Script Logic?
  7. How does Work Status integrate with the Entity dimension? (Owner/Reviewer properties).
  8. What BW objects are generated when you create a Model in BPC Standard?