You are on page 1of 7

Dynamic Design for Rolling

Forecast

Applies to:
Business Intelligence, Business Planning.
For more information, visit the Enterprise Performance Management homepage.

Summary
In the past, planning was very often a static process carried out once a year that intended to form the basis
for the next years execution and budgets. Dynamic environments and fast-changing business situations
force companies to think of strategies to react to changing conditions. Rolling forecasting is an ongoing
process that compares the plan with the actual and derives an expected further evolution of the plan figures.
If the deviation between plan and forecast extends beyond a certain range, the strategy has to be
reevaluated in order to take appropriate measures or adjust the strategy. Rolling forecasting should be
designed in a dynamical manner.
Author:

Nilanjan Chatterjee

Company: Satyam Computer Services Limited


Created on: 16 September 2008

Author Bio
Nilanjan Chatterjee is an Associate Consultant with Satyam computer Services Limited. Nilanjan has almost
15 months of experience on Business Process and Simulation (BPS).

SAP COMMUNITY NETWORK


2008 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com


1

Dynamic Design for Rolling Forecast

Table of Contents
Dynamic Design for Rolling Forecast .................................................................................................................3
System Design....................................................................................................................................................3
Designing Variables ........................................................................................................................................3
Designing VACTUALS .................................................................................................................................................4
Designing VPLANNED.................................................................................................................................................5

Designing Layout ............................................................................................................................................6


Disclaimer and Liability Notice............................................................................................................................7

SAP COMMUNITY NETWORK


2008 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com


2

Dynamic Design for Rolling Forecast

Dynamic Design for Rolling Forecast


In the past, planning was very often a static process carried out once a year that intended to form the basis
for the next years execution and budgets. Dynamic environments and fast-changing business situations
force companies to think of strategies to react to changing conditions. Rolling forecasting is an ongoing
process that compares the plan with the actual and derives an expected further evolution of the plan figures.
If the deviation between plan and forecast extends beyond a certain range, the strategy has to be
reevaluated in order to take appropriate measures or adjust the strategy. Rolling forecasting should be
designed in a dynamical manner.

System Design
The simulation of Rolling Forecast can be achieved with the help of a manual layout in which the data for the
actual posting periods should be locked for any further changes and the data for the forecast months should
be enabled for any kind of manipulation.
The display should be as follows.

This kind of display can be achieved in two ways:

By explicitly mentioning the actual and the forecast posting periods in the layout builder. This design
remains static and every month the design needs to be changed.

By creating two variables, one for actuals and another for planned, and populating the value of these
variables dynamically. This design holds well in every month.

In the above example, the posting periods 001 through 008 are locked for any changes as these posting
periods represent the actual values if I am in the month of September.
Designing the above scenario involves two steps.

Designing variables

Designing layout

Designing Variables
The design requires two variables for the purpose. One of the variables can be used to get the actual posting
periods and the other variable to get the forecast posting periods.
Following two variables can be used for the purpose.

VACTUALS

VPLANNED

SAP COMMUNITY NETWORK


2008 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com


3

Dynamic Design for Rolling Forecast

Designing VACTUALS
The variable, VACTUALS, will be used for storing the actual posting periods based on the current month. If
the current month is September, then the variable should have the values from 001 to 008. The variable
would be of type user exit.

The function designed would set the variable VACTUALS (0FISCPER3) dynamically. It will first call a
function module to determine what the current fiscal period is. Next it will build the values for the closed
period in the characteristics table eto_charsel. These values will be passed back to SEM and will control the
comparison column display of the BPS layouts.
The code will look something like this:
data: l_buper
l_gjahr
l_actctr
l_plndctr
data: l_post_period

like t009b-poper,
like t009b-bdatj,
like ls_varsel-seqno,
like ls_varsel-seqno.
type /bi0/oifiscper3.

perform get_posting_period changing l_buper l_gjahr.


*-- Actuals data variable is VACTUALS
clear l_post_period.
clear eto_charsel.
* No Rolling Forecast for January so we will lock always
if l_buper = 1.
l_actctr = 1.
else.
l_actctr = l_buper - 1.
endif.
do l_actctr times.
add 1 to l_post_period.
ls_varsel-chanm = i_chanm.
ls_varsel-seqno = sy-index.
ls_varsel-sign = 'I'.
ls_varsel-opt
= 'EQ'.
ls_varsel-low
= l_post_period.
insert ls_varsel into table eto_charsel.
enddo.
endfunction.

SAP COMMUNITY NETWORK


2008 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com


4

Dynamic Design for Rolling Forecast

Designing VPLANNED
The variable, VPLANNED, will be used for storing the forecast posting periods based on the current month. If
the current month is September, then the variable will have the values from 009 to 012. The variable would
be of type user exit.

The function designed would set the variable VPLANNED (0FISCPER3) dynamically. It will first call a
function module to determine what the current fiscal period is. Next it will build the values for the open
periods in the characteristics table eto_charsel. These values will be passed back to SEM and will control the
comparison column display of the BPS layouts.
The code will look something like this:
data: l_buper
l_gjahr
l_actctr
l_plndctr
data: l_post_period

like t009b-poper,
like t009b-bdatj,
like ls_varsel-seqno,
like ls_varsel-seqno.
type /bi0/oifiscper3.

perform get_posting_period changing l_buper l_gjahr.


*-- Planned data variable = VPLANNED
clear l_post_period.
clear eto_charsel.
* No Rolling
if l_buper
l_actctr
else.
l_actctr
endif.

Forecast for January so we will lock always


= 1.
= 1.
= l_buper - 1.

l_plndctr = 12 - l_actctr.
l_post_period = l_actctr.
do l_plndctr times.
add 1 to l_post_period.
ls_varsel-chanm = i_chanm.
"0FISCPER3 (VPLANNED)
ls_varsel-seqno = sy-index.
ls_varsel-sign = 'I'.
ls_varsel-opt
= 'EQ'.
ls_varsel-low
= l_post_period.
insert ls_varsel into table eto_charsel.
enddo.
endfunction.

SAP COMMUNITY NETWORK


2008 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com


5

Dynamic Design for Rolling Forecast

Designing Layout
In the second screen of the Layout Builder, we need to define two rows, one with the actual posting periods
and another with forecast posting periods. It will look like this:

In the first row, with the variable VACTUALS, the comparison column should be checked. The second row
should be without comparison column checked.
This design will enable the actual posting periods to be locked from any further changes and the forecast
posting periods will be open for any kind of manipulations.

SAP COMMUNITY NETWORK


2008 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com


6

Dynamic Design for Rolling Forecast

Disclaimer and Liability Notice


This document may discuss sample coding or other information that does not include SAP official interfaces and therefore is not
supported by SAP. Changes made based on this information are not supported and can be overwritten during an upgrade.
SAP will not be held liable for any damages caused by using or misusing the information, code or methods suggested in this document,
and anyone using these methods does so at his/her own risk.
SAP offers no guarantees and assumes no responsibility or liability of any type with respect to the content of this technical article or
code sample, including any liability resulting from incompatibility between the content within this document and the materials and
services offered by SAP. You agree that you will not hold, or seek to hold, SAP responsible or liable with respect to the content of this
document.

SAP COMMUNITY NETWORK


2008 SAP AG

SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com


7

You might also like