멤버 계산 순서

Essbase가 아웃라인 멤버를 계산하는 기본 순서는 일반적으로 계정, 시간, 밀집 및 희소이며 아웃라인의 차원 순서 및 공식 적용 여부를 고려합니다.

데이터베이스에서 기본 계산(CALC ALL)을 수행하는 경우 Essbase는 다음 순서로 차원을 계산합니다.

  • 계정으로 태그 지정된 차원과 시간으로 태그 지정된 차원이 둘 다 있고 공식이 계정 차원의 멤버에 적용되는 경우 Essbase는 다음 순서로 계산됩니다.

    1. 계정으로 태그 지정된 차원

    2. 차원 태그 시간

    3. 기타 밀집 차원(데이터베이스 아웃라인에 표시되는 순서대로)

    4. 기타 희소 차원(데이터베이스 아웃라인에 표시되는 순서대로)

  • 그렇지 않으면 Essbase가 다음 순서로 계산됩니다.

    1. 밀집 차원(데이터베이스 아웃라인에 표시되는 순서대로)

    2. 희소 차원(아웃라인에 표시되는 순서대로)

주:

데이터베이스 통합에 포함되지 않은 속성 차원은 계산 순서에 영향을 주지 않습니다. Essbase 속성 작업을 참조하십시오.

Sample Basic 데이터베이스에서 차원은 측정항목, 연도, 시나리오, 제품 및 시장 순서로 계산됩니다.

계산 스크립트를 사용하여 기본 순서를 대체할 수 있습니다. 블록 스토리지 큐브에 대한 계산 스크립트 개발을 참조하십시오.

멤버 관계의 계산 효과

Essbase 차원 내의 계산 순서는 아웃라인의 멤버 간 관계에 따라 달라집니다. 아웃라인 롤업(연결)의 멤버는 주행 거리계와 비슷합니다.

차원의 각 분기(계층) 내에서 레벨 0 값이 먼저 계산되고 그 다음에 해당 레벨 1, 상위 값이 계산됩니다. 그런 다음 다음 다음 분기의 레벨 0 값이 계산되고 그 다음에 해당 레벨 1, 상위 값이 계산됩니다. 모든 레벨이 계산될 때까지 이러한 방식으로 계산이 계속됩니다.

다음 이미지는 Sample Basic 데이터베이스의 Year 차원을 보여줍니다. 멤버의 계산 순서는 각 멤버의 왼쪽에 표시됩니다. 이 예에서는 상위 멤버에 동적 계산 태그가 지정되지 않았다고 가정합니다.

그림 19-3 샘플 기본 연도 치수에 대한 계산 순서


멤버의 계산 순서를 나타내는 숫자가 포함된 확장 연도 차원 개요입니다. 1부터 17까지 주문은 1월, 2월, 3월, 4월, 5월, 6월, 2분기, 7월, 8월, 9월, 3분기, 10월, 11월, 12월, 4분기, 연도입니다.

Jan은 첫번째 분기의 첫번째 멤버입니다. 얀은 공식이 없으므로 평가되지 않습니다. 이는 2월과 3월, 지사의 다른 두 멤버에도 적용됩니다.

Essbase는 1월, 2월 및 3월을 통합하여 Qtr1을 계산합니다. 이 예에서는 + 통합 연산자에 표시된 대로 이러한 월이 추가되어 Qtr1에 대한 값을 제공합니다.

그런 다음 Essbase는 Qtr2 - Qtr4 분기를 동일한 방식으로 계산합니다.

마지막으로 Essbase는 Qtr1에서 Qtr4까지의 값을 통합하여 연도 멤버를 계산합니다. + 통합 연산자에 표시된 대로 이러한 분기가 추가되어 Year에 대한 값을 제공합니다.

멤버 통합 방법

계산 연산자(+, -, /, *, %, ~, ^)를 데이터베이스 아웃라인의 멤버에 적용하여 Essbase가 블록 저장영역 큐브의 멤버를 통합하는 방법을 선택할 수 있습니다.

계정 멤버에 시간 잔액 태그(첫번째, 마지막 또는 평균)가 있는 경우 Essbase는 이에 따라 통합합니다. 첫번째, 마지막 및 평균 값 계산을 참조하십시오.

상위 멤버에 레이블 전용 연산자가 있는 경우 Essbase는 1차 하위 구성요소에서 상위 멤버를 계산하지 않습니다.

멤버에 ~ 연산자가 있는 경우 Essbase는 멤버를 상위 멤버까지 통합하지 않습니다.

멤버에 ^ 연산자가 있는 경우 Essbase는 차원의 멤버를 통합하지 않습니다.

주:

동적 계산을 사용하는 경우 Essbase에서 다른 계산 순서를 사용할 수 있습니다. 동적 계산용 계산 순서를 참조하십시오.

데이터베이스 아웃라인의 차원 순서

필요한 계산 결과를 확인하려면 계산 연산자를 사용하여 멤버를 나누거나(/), 곱하거나(*), 백분율(%)을 계산하거나, 일부 멤버에 공식이 있는 경우 Essbase 아웃라인에서 차원의 계산 순서를 고려합니다.

계산 연산자만 사용하여 데이터베이스 아웃라인에서 멤버를 더하고 (-) 멤버를 빼고 아웃라인에서 공식을 사용하지 않는 경우 계산 순서를 고려할 필요가 없습니다.

데이터베이스 아웃라인의 멤버 공식

Essbase 아웃라인의 멤버에 공식을 배치하는 경우 차원의 계산 순서를 고려합니다. 한 차원의 멤버에 첨부된 공식은 다른 차원의 후속 계산으로 덮어쓸 수 있습니다.

예를 들어, Sample Basic 데이터베이스에는 Measures 차원(계정으로 태그 지정)과 Year 차원(시간으로 태그 지정)이 있습니다.


[시간] 유형의 연도 차원 및 [계정] 유형의 부분적으로 확장된 [측정 단위] 차원(멤버 마진]이 강조 표시되어 있음)

측정값은 1차 및 1차 연도로 계산됩니다. 측정항목 차원의 마진에 공식을 첨부하면 Essbase는 측정항목 차원을 계산할 때 공식을 계산합니다. Essbase는 연도 차원을 통합할 때 공식을 덮어씁니다. 셀 계산 순서를 참조하십시오.

계산 연산자 *, / 및 % 사용

계산 연산자를 사용하여 곱하기(*), 나누기(/) 및 Essbase 아웃라인의 멤버에 대한 백분율(%)을 계산하는 경우 차원의 계산 순서를 고려합니다. 필요한 계산된 값은 다른 차원의 후속 계산으로 덮어쓸 수 있습니다.

예를 들어, Sample Basic 데이터베이스에는 Measures 차원(계정으로 태그 지정)과 Year 차원(시간으로 태그 지정)이 있습니다. 측정값은 1차 및 1차 연도로 계산됩니다. 측정항목 차원의 멤버를 곱하면 Essbase가 연도 차원의 값을 통합할 때 계산된 결과를 덮어쓸 수 있습니다. 셀 계산 순서를 참조하십시오.

곱하기(*), 나누기(/) 또는 백분율(%) 연산자를 사용하여 멤버를 통합하는 경우 분기의 멤버를 신중하게 정렬하여 필요한 결과를 얻습니다.

그림 19-4에서는 아웃라인에 나타나는 계산 연산자를 보여줍니다. 사용자가 자녀 2와 자녀 3의 합계를 자녀 1로 나누려고 한다고 가정합니다. 그러나 하위 1이 첫 번째 멤버인 경우 Essbase는 하위 1부터 시작하여 값 #MISSING부터 시작하여 하위 1로 나눕니다. 결과는 #MISSING입니다. 그런 다음 Essbase가 하위 2 및 하위 3을 추가합니다. 분명히 이 결과는 필수 결과가 아닙니다.

그림 19-4 데이터베이스 개요의 계산 연산자


아웃라인의 계산 연산자입니다.

올바른 결과를 계산하려면 하위 1을 분기의 마지막 멤버로 만듭니다.

데이터베이스 아웃라인의 멤버에 공식을 적용하여 동일한 결과를 얻을 수 있습니다. 그러나 그림 19-4에 표시된 것처럼 멤버에서 이러한 계산 연산자를 사용하는 것이 훨씬 더 효율적입니다.

계산 참조 전달 방지

예상한 계산 결과를 얻으려면 아웃라인에 정방향 계산 참조가 포함되어 있지 않은지 확인합니다. 앞으로 계산 참조는 계산 멤버의 값이 Essbase가 아직 계산하지 않은 멤버에 종속된 경우 발생합니다. 이 경우 Essbase에서 필요한 계산 결과를 생성하지 못할 수 있습니다.

예를 들어, 2개의 공유 멤버(P100–20 및 P300–20)와 1개의 비공유 멤버(P500–20)의 세 가지 순방향 계산 참조가 있는 아래 표시된 Product 차원을 고려해 보십시오.

그림 19-5 선도 계산 참조가 있는 제품 치수


이 이미지는 세 개의 정방향 계산 참조가 있는 Product 차원 아웃라인을 보여줍니다.

아웃라인 편집기에서 아웃라인을 확인할 때 Essbase는 순방향 계산 참조가 있는 공유 멤버를 식별합니다. 아웃라인을 확인해도 순방향 계산 참조가 있는 비공유 멤버는 식별되지 않습니다. 정방향 계산 참조가 포함된 아웃라인을 저장하고 사용할 수 있습니다.

식단 아래 다섯 명을 생각해 보라. 멤버 P100-20, P300-20 및 P500-20에는 순방향 계산 참조가 있습니다.

  • P100-20(+) (공유 멤버): Essbase는 프로토타입 멤버 P100-20을 계산하기 전에 공유 멤버 P100-20을 계산합니다. 프로토타입 멤버 P100-20에는 1차 하위 구성요소가 있으므로 Essbase는 공유 멤버 P100-20을 정확하게 계산하기 전에 1차 하위 구성요소를 추가하여 프로토타입 멤버를 계산해야 합니다.

  • P300-20(+) (공유 멤버): Essbase는 프로토타입 멤버 P300-20을 계산하기 전에 공유 멤버 P300-20을 계산합니다. 프로토타입 멤버 P300-20에는 공식이 있으므로 Essbase는 공유 멤버 P300-20을 정확하게 계산하기 전에 프로토타입 멤버를 계산해야 합니다.

  • P500-20(+)("P200-20" + "P300-20"): P500-20에 적용된 공식은 Essbase가 아직 계산하지 않은 멤버를 나타냅니다. 이러한 프로토타입 멤버 P300-20 중 하나는 자체 공식을 가지며 Essbase는 P300-20을 계산해야 P500-20을 정확하게 계산할 수 있습니다. 멤버 P200-20 및 P400-20은 순방향 계산 참조가 없으므로 올바르게 계산됩니다.

  • P200-20(+) (공유 멤버): P200-20은 정방향 계산 참조가 아니지만, Essbase는 프로토타입 멤버 P200-20을 계산하기 전에 공유 멤버 P200-20을 계산합니다. 프로토타입 멤버 P200-20에는 계산 종속성이 없습니다(1차 하위 구성요소 및 공식 없음). 따라서 Essbase는 공유 멤버 앞에 프로토타입 멤버를 계산할 필요가 없습니다. Essbase는 단순히 프로토타입 멤버의 값을 사용합니다.

  • P400-20(+)("P200-10" * 2): P400-20에 적용된 공식이 Essbase가 아직 계산하지 않은 멤버를 참조하지만 P400-20은 정방향 계산 참조가 아닙니다. 공식의 멤버 프로토타입 자체에는 계산 종속성이 없습니다. P200-10은 공식에서 유일한 멤버이며, P200-10 자체에는 하위 또는 공식이 없습니다. Essbase는 P400-20을 정확하게 계산합니다.

P100-20, P300-20 및 P500-20에 대한 정확한 계산 결과를 얻으려면 아웃라인에서 멤버 순서를 변경합니다. 아래와 같이 다이어트 공유 멤버를 일반 멤버 뒤에 배치하면 Essbase에서 필요한 순서로 멤버를 계산합니다.

그림 19-6 전방 계산 참조 없이 제품 치수 변경


이 이미지는 정방향 계산 참조가 없는 Product 차원 아웃라인을 보여줍니다.

이제 Essbase는 다음을 계산합니다.

  • 공유 멤버 P100-20을 계산하기 전의 프로토타입 멤버 P100-20입니다. 따라서 P100-20에는 더 이상 전방 계산 참조가 없습니다.

  • 공유 멤버 P300-20 이전 프로토타입 멤버 P300-20 따라서 P300-20에는 더 이상 사전 계산 참조가 없습니다.

  • 멤버 P500-20 앞에 공식 P300-20이 있는 멤버입니다. 따라서 P500-20에는 더 이상 사전 계산 참조가 없습니다.