차원 내에 값 할당

Essbase 계산 스크립트 예에서는 @ALLOCATE 함수를 사용하여 두 제품에 대한 비용 범주에 예산 총 비용을 할당합니다. 예산 책정된 총 비용은 이전 연도의 실제 값을 기반으로 할당됩니다.

아래 그림과 같이 Sample Basic을 다음과 같이 변경했다고 가정합니다.

  • 측정 차원의 총 비용 아래에 하위, 임대를 추가했습니다.

  • 시나리오 차원에 하위 PY Actual을 추가했습니다.

그림 24-3 수정된 측정 및 시나리오 치수


수정된 측정 단위 및 시나리오 차원이 포함된 샘플 기본 개요 섹션

1000 및 2000의 데이터 값이 각각 Budget -> Total Expenses for Colas 및 Root Beer로 로드되었다고 가정합니다. 이 값은 각 비용 범주에 할당되어야 하며, PY 실제에서 발생한 총 비용의 누락되지 않은 하위 항목을 기반으로 값을 균등하게 분산해야 합니다. 할당된 값은 가장 가까운 달러로 반올림해야 합니다.

예제 스크립트:

/* Allocate budgeted total expenses based on prior year */

FIX("Total Expenses")
   Budget = @ALLOCATE(Budget->"Total Expenses",
   @CHILDREN("Total Expenses"),"PY Actual",,
   spread,SKIPMISSING,roundAmt,0,errorsToHigh)
ENDFIX

계산 스크립트의 결과는 다음과 같습니다.

                             Budget   PY Actual
Colas       Marketing        334 *    150
            Payroll          #MI      #MI
            Lease            333      200
            Misc             333      100
            Total Expenses   1000     450
Root Beer   Marketing        500      300
            Payroll          500      200
            Lease            500      200
            Misc             500      400
            Total Expenses   2000     1100

* 반올림 오류가 이 값에 추가됩니다.

Essbase는 다음 계산을 수행하여 데이터베이스를 순환합니다.

  1. 총 비용의 하위 항목에 대한 수정입니다.

    @ALLOCATE에서 FIX 문을 사용하면 계산 성능이 향상될 수 있습니다.

  2. 예산 -> 콜라 -> 마케팅의 경우 1을 PY 실제 -> 매월 콜라에서 각 비용 범주에 대한 누락되지 않은 값 수로 나눕니다.

    이 경우 예산 -> 콜라에 대한 3개의 비누락 비용 값이 있으므로 1을 3으로 나눕니다.

  3. 2단계(.333)의 값에 Budget -> Colas -> Total Expenses(1000)의 값을 곱하고 가장 가까운 달러(333)로 반올림합니다. 결과는 Budget -> Colas -> Marketing에 있습니다.

  4. 예산 -> 콜라에 대한 각 비용 범주와 예산 -> 루트 맥주에 대해 단계 2와 3을 반복합니다.

  5. 계산 스크립트에 지정된 대로 할당된 값을 가장 가까운 전체 달러로 반올림합니다.

    Essbase는 반올림된 값의 합계를 할당 값과 동일하게 만들기 위해 블록을 두 번째로 통과합니다(예: 예산 -> 열 -> 총 비용의 경우 1000). 이 예에서는 비용 범주가 할당 값인 1000이 아닌 999까지 추가되므로 예산 -> 콜라 -> 총 비용에 대해 반올림 오류가 1입니다. 할당된 모든 값이 동일하기 때문에(333) 1의 반올림 오류가 할당 범위의 첫 번째 값인 Budget -> Colas -> Marketing(값 334)에 추가됩니다.