Skip to Main Content

Analytics Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Essbase calculation script issue

User_QY8G8Jun 20 2020

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

Comments

Post Details

Added on Jun 20 2020
0 comments
218 views