How to Build SAP PaPM Functions
The SAP Profitability and Performance Management (SAP PaPM) function is the transformation logic used to process your input data to generate output data.
Implicit fields and documentation are optional for the configuration and build of a function however they are very useful and highly recommended.
In this blog post we will be looking at the building blocks of a typical SAP PaPM function.
- Header – this contains the specification detail of the content for the output.
- Input – the source data specification is configured with source data connection, source data. type, data selection, data granularity for a specific function signature.
- Signature – this defines the number of fields in the function.
- Lookup – used in formulas for referencing master data.
- Rules – Is the defined behaviour of the function.
- Checks – a criteria applied to a function on execution and results in a message being written to the application log on passing this criteria.
- Output – the generated results or designated action is performed after the function is activated, run and completed successfully.
The Checklist for Building an SAP PaPM Function.
1. Check that Authorisations required for creating Functions are assigned to your SAP PaPM business role
/NXI/P1_MODELING_USER or /NXI/P1_MODELING_USER_ALL
The authorisation object /NXI/P1F has two attributes which relate to functions
/NXI/P1FTY relates to the function type.
/NXI/P1FID relates to the function id.
Please refer to the section on authorisations in the SAP Administration Guide for SAP Profitability and Performance Management.
2. Identify the input for your functions
The input can be another business and structural function, a model table or view.
3. Configure the signature of your function
The signature contains the metadata for your input data for your function. The fields, field descriptions, data granularity and selection.
4. Set the Function Rules
The rules vary according to the type of function but the common fields in all rule types are the following:
- Rule ID – A unique identifier
- Rule State – Active or Inactive
- Rule Level – Hierarchical Information
- Rule Description – Storing naming information
Function to perform direct and indirect allocations
Function to perform mathematical formulas
Function to encapsulate a group of functions and make them reusable
Function to perform currency and unit conversions
Function to perform if-then-else enrichments of data
Function to describe processes and topics used for the documentation of models
Function to register all required fields and the connection to the database
Function to provide automated access to files
Funds Transfer Pricing
Function to perform funds and liquidity transfer pricing calculations
Function to perform collections, joins, unions and lookups for separate data
Function to provide read and write access to a local or remote data table
Function to provide read access to a local or remote data table or view
Function to provide read and write access to a local FRDP Results Data Layer
Function to provide read and write access to a local BW InfoSource like Advanced DSOs
Function to store data in a model table, model RDL or model BW
Function to perform a transfer from accounting-based data to costing-based data (also called denormalization)
Function to project or aggregate data, including filtering options and formulas
Remote Function Adapter
Function to perform an ABAP-based remote function call (for example, a call to a remote FI-GL posting BAPI)
Function to perform comprehensive calculations with different valuation methods (for example, discounting)
Function to provide calculation for the best-estimate cash flow (BECF).
An Allocation Function is used to distribute key figures from one entity to another entity using a distribution base and it contains the following building blocks:
Header – Defines the principal behaviour of the allocation
- Allocation with Offset Records
- Allocation with Detailed Offset Records
- FI-CO Allocation
- Other Options
- Iterative Indicator
- Periodic Indicator
- Last Row
- Biggest Value Row
- Absolute Biggest Value Row
- Sender and Receiver References – The sender is the source of the allocation and the receiver is the target of the allocation.
Signature – The contains details of the selection of fields used for the allocation, the granularity of the allocation data.
- Selection Fields – Explicit and Implicit field selection used in the allocation function
- Granularity – The data hierarchical level used in the allocation function
- Action Fields – The fields used and referenced in assignments and formulas.
- Sender Rule
- Posted Amounts
- Fixed Amounts and Fixed Rates
- Sender Share
- Sender Value Rates
- Mapping Method
- Empty as a Value
- Empty as any Value
- Receiver Rule
- Variable Portions
- Variable Percentages
- Variable Factors
- Variable Even
- Fixed Percentages, Fixed Factors, Fixed Portions and Fixed Even
- Fixed Amount
- No Scaling
- Standard Scaling
- Absolute Value
- Tracing Factors…
Advanced (for Iterative Allocations)
- Cycle Maximum Value
- Iteration Counter
- Early Exit Check
- Periodic Processing parameters…
- Offset Mapping
5. Configure Lookups to Master Data (if required)
The function needs to be registered on the lookup tab and the master data referenced as either
- Master Data of a Field – shows the permitted values for a field like InfoObjects.
- Master Data of a Business Entity is a combination of key figures and characteristics from a table or set of tables that define a business requirement.
A lookup can be used in a formula that forms part of a rule set.
6. Set Checks for the Function
The checks are criteria set for a function that trigger a message in the application log if the checks fail if the business events and error management setting is activated.
The checks ensure the data inputs, configuration meta data is complete, correct and valid for a successful execution.
The functions are of the following types
- Built-in Checks – these checks are preconfigured in a function
- Custom Checks – these checks are user defined
If the checks are passed successful the activated function is executed and output results generated. If the check fails then an error or abort message is generated if business error and event management is activated.
7. Create Documentation for the Function
The documentation is the description of the building blocks of the function being built. It defines the content, purpose, logic and even the business requirement met by that component of the function. The documentation is optional but a necessary part of the function because it helps with the maintenance of the function, aligning system process with business process and with the general understanding of the functional solution.
The function output can form the input to another function. When the function passes the checks configured the output results are generated for a function created for data results, the writer functions write for BW write types, and the adapter functions make the ABAP based call is made for communication.
SAP PaPM functions are powerful, flexible, reusable and can be combined in a data flow and work flow that leverages real-time scalable calculation engine for many complex business requirements and processes.
Implicit fields are optional but can help enrich the rule set and output results of your function. Implicit fields appear without any changes if no transformation is defined in the function.
Documentation is the inline commentary for the configurations and settings used in the functions and is an extremely useful feature as it helps you keep track of changes in solution design, changes in work flow, data flow and the purpose of specific configurations, settings, logic, integrations and value flows.
For further information about SAP Profitability and Performance Management functions read the SAP help guide.