How to get data based on calmonth on the input of Fiscal year period(Real time Scenario)
Real time Scenario:
In one of our Major KPI project where we were integrating the KPI’s from different modules like SD,MM,FI,QM,PP and of course inventory as well into WebI.
In our final WebI report the input was based on Fiscal year period and at very later stage we realized that our inventory cube does not have data based on fiscal year period rather it is based on calmonth.As it was inventory cube and we did not want to mess up with it because of huge data and for the fact it was inventory cube.Options like Remodeling was ruled out for the same reason. So we thought of some workaround without disturbing the inventory cube.I would not be doing justice to this document if i do not give credit to my colleague ASHUTOSH SINGH .
We initially thought to create a Multiprovider combining inventory cube and 0FISCPER Infoobject but as 0FISCPER is not an infoprovider so multiprovder did not allow us to add that.Eventually we came up with an idea to create a dummy DSO and in it add the 0FISCPER Infoobject and some keyfigure to complete its definition.We did the characteristic assignment for necessary objects required to develop the report and also for 0FISCPER from dummy DSO.
Data Flow Display:
At BEx Level:
- Take any Keyfigure and drag and drop 0FISCPER–restrict with user input variable–Single value.This will act as dummy keyfigure which will facilitate the user with the input based on fiscal year period.Refer the screenshot
- Now make the copy of same KF and drag and drop 0CALMONTH–Restrict with customer exit variable.This Keyfigure will finally be used in report.
Refer the Screenshot.
******************Code for webi to get calmonth based on Fiscper input*******************
DATA: zcalyear type /BI0/OICALYEAR,
MM(2) type n,
ZMONTH type /BI0/OICALMONTH.
when ‘ZVAR_MONTH_CMOD’. —–Customer Exit variable
READ TABLE i_t_var_range INTO l_t_var_range WITH KEY vnam = ‘ZFPER_STEP2’. —–User input variable based on Fiscal year period
IF sy–subrc = 0.
zcalyear = l_t_var_range–low+0(4).
MM = l_t_var_range–low+5(2).
CONCATENATE zcalyear mm into ZMONTH.
L_S_RANGE–LOW = ZMONTH.
L_S_RANGE–SIGN = ‘I’.
L_S_RANGE–OPT = ‘EQ’.
APPEND L_S_RANGE TO E_T_RANGE.
After following the above approach we got that data based on calmonth on the input of Fiscal year period that too without disturbing the existing inventory cube.