Hi All ,
I am trying to understand below script, but unable to get anything. Could you please help me to understand this.
SET UPDATECALC OFF;
SET AGGMISSG ON;
FIX ("Plan",{Version},&NextYear,@ICHILDREN("403"))
@IDESCENDANTS("OpEx");
ENDFIX
FIX ("Plan",{Version},&NextYear)
FIX(@IDESCENDANTS("OpEx"),"Trips","Square Feet","9000","Average Salaries")
CALC DIM ("Entity");
ENDFIX
("Average Salaries" = @ROUND("5800" / "9000",2);
"Employee Benefits %" = @ROUND("6100" / "5800",2);)
ENDFIX
/* Driver: 1 = % of Revenue, 2 = Units, 3 = Headcount Hours, 4 = Sales Calls, 5 = Trips, 6 = Square Feet, 7 = Input or Blank */
/*Method: 1 = Last Year Actual, 2 = Current Year Plan, 3 = Current Year Forecast */
FIX ("Plan",&NextYear,"P_000")
FIX (@RELATIVE("7001",0),@CHILDREN("403" ))
"Driver Volume" (
IF (@ISMBR(@Relative("YearTotal",0)))
IF ("Driver"->"BegBalance" ==1)
"Driver Volume" = "4001"->"P_TP1"->{Version};
ELSEIF ("Driver"->"BegBalance" ==2)
"Driver Volume" = "Units"->"P_TP1"->{Version};
ELSEIF ("Driver"->"BegBalance" ==3)
"Driver Volume" = "9000"->{Version} * 2080/12;
ELSEIF ("Driver"->"BegBalance" ==4)
"Driver Volume" = "Sales Calls"->"BegBalance"->{Version}/12;
ELSEIF ("Driver"->"BegBalance" ==5)
"Driver Volume" = "Trips"->{Version};
ELSEIF ("Driver"->"BegBalance" ==6)
"Driver Volume" = "Square Feet"->{Version}/12;
ELSEIF (("Driver"->"BegBalance" ==7 OR "Driver" == #missing) AND "Method"->"BegBalance" == 1)
"Driver Volume" = "Actual"->&ActVersion->&LastYr;
ELSEIF (("Driver"->"BegBalance" ==7 OR "Driver" == #missing) AND "Method"->"BegBalance" == 2)
"Driver Volume" = "Plan"->&PlanVersion->&CurYr;
ELSEIF (("Driver"->"BegBalance" ==7 OR "Driver" == #missing) AND "Method"->"BegBalance" == 3)
"Driver Volume" = "Forecast"->&ForVersion->&CurYr;
ENDIF
ENDIF
)
ENDFIX
ENDFIX
FIX ("Actual",&LastYr,"P_000")
FIX (@RELATIVE("7001",0),@CHILDREN("403"))
"Driver Volume" (
IF (@ISMBR(@Relative("YearTotal",0)))
IF ("Driver"->"Plan"->&NextYear->"BegBalance" ==1)
"Driver Volume" = "4001"->"P_TP1"->&ActVersion;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==2)
"Driver Volume" = "Units"->"P_TP1"->&ActVersion;;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==3)
"Driver Volume" = "9000"->&ActVersion * 2080/12;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==4)
"Driver Volume" = "Sales Calls"->"BegBalance"->&ActVersion/12;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==5)
"Driver Volume" = "Trips"->&ActVersion;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==6)
"Driver Volume" = "Square Feet"->&ActVersion/12;
ENDIF
ENDIF
)
"Driver Rate" (
IF (@ISMBR("BegBalance"))
IF ("Driver Volume"->"YearTotal" != #missing)
"Driver Rate" = &ActVersion->"YearTotal" / "Driver Volume"->"YearTotal";
ENDIF
ENDIF
)
ENDFIX
ENDFIX
FIX ("Plan",&CurYr,"P_000")
FIX (@RELATIVE("7001",0),@CHILDREN("403"))
"Driver Volume" (
IF (@ISMBR(@Relative("YearTotal",0)))
IF ("Driver"->"Plan"->&NextYear->"BegBalance" ==1)
"Driver Volume" = "4001"->"P_TP1"->&PlanVersion;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==2)
"Driver Volume" = "Units"->"P_TP1"->&PlanVersion;;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==3)
"Driver Volume" = "9000"->&PlanVersion * 2080/12;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==4)
"Driver Volume" = "Sales Calls"->"BegBalance"->&PlanVersion/12;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==5)
"Driver Volume" = "Trips"->&PlanVersion;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==6)
"Driver Volume" = "Square Feet"->&PlanVersion/12;
ENDIF
ENDIF
)
"Driver Rate" (
IF (@ISMBR("BegBalance"))
IF ("Driver Volume"->"YearTotal" != #missing)
"Driver Rate" = &PlanVersion->"YearTotal" / "Driver Volume"->"YearTotal";
ENDIF
ENDIF
)
ENDFIX
ENDFIX
FIX ("Forecast",&CurYr,"P_000")
FIX (@RELATIVE("7001",0),@CHILDREN("403"))
"Driver Volume" (
IF (@ISMBR(@Relative("YearTotal",0)))
IF ("Driver"->"Plan"->&NextYear->"BegBalance" ==1)
"Driver Volume" = "4001"->"P_TP1"->&ForVersion;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==2)
"Driver Volume" = "Units"->"P_TP1"->&ForVersion;;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==3)
"Driver Volume" = "9000"->&ForVersion * 2080/12;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==4)
"Driver Volume" = "Sales Calls"->"BegBalance"->&ForVersion/12;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==5)
"Driver Volume" = "Trips"->&ForVersion;
ELSEIF ("Driver"->"Plan"->&NextYear->"BegBalance" ==6)
"Driver Volume" = "Square Feet"->&ForVersion/12;
ENDIF
ENDIF
)
"Driver Rate" (
IF (@ISMBR("BegBalance"))
IF ("Driver Volume"->"YearTotal" != #missing)
"Driver Rate" = &ForVersion->"YearTotal" / "Driver Volume"->"YearTotal";
ENDIF
ENDIF
)
ENDFIX
ENDFIX
FIX ("Plan",&NextYear,"P_000")
FIX (@RELATIVE("7001",0),@CHILDREN("403"))
"Driver Rate" (
IF (@ISMBR("BegBalance"))
IF ("Driver" == 1)
"Driver Rate" = "Rate Pct";
ELSEIF (("Driver" == 7 OR "Driver" == #missing) AND "Method" != #missing)
"Driver Rate" = 1 +"Rate Pct";
ELSEIF ("Method" == 1)
"Driver Rate" = @MDSHIFT("Driver Rate"->"Actual",-2,"Year",) * (1 + "Rate Pct"->"BegBalance");
ELSEIF ("Method" == 2)
"Driver Rate" = @MDSHIFT("Driver Rate"->"Plan",-1,"Year",) * (1 + "Rate Pct"->"BegBalance");
ELSEIF ("Method" == 3)
"Driver Rate" = @MDSHIFT("Driver Rate"->"Forecast",-1,"Year",) * (1 + "Rate Pct"->"BegBalance");
ENDIF
ENDIF
)
{Version} = "Driver Volume" * "Driver Rate"->"BegBalance";
ENDFIX
ENDFIX
FIX ("Plan","Adj Plan","Revised Plan",{Version},&NextYear,@ICHILDREN("403"))
@IDESCENDANTS("OpEx");
ENDFIX
FIX ({Version},&NextYear);
"Revised Plan" = "Plan" + "Adj Plan";
ENDFIX