멤버 계산 순서
Essbase가 아웃라인 멤버를 계산하는 기본 순서는 일반적으로 계정, 시간, 밀집 및 희소이며 아웃라인의 차원 순서 및 공식 적용 여부를 고려합니다.
데이터베이스에서 기본 계산(CALC ALL)을 수행하는 경우 Essbase는 다음 순서로 차원을 계산합니다.
-
계정으로 태그 지정된 차원과 시간으로 태그 지정된 차원이 둘 다 있고 공식이 계정 차원의 멤버에 적용되는 경우 Essbase는 다음 순서로 계산됩니다.
-
계정으로 태그 지정된 차원
-
차원 태그 시간
-
기타 밀집 차원(데이터베이스 아웃라인에 표시되는 순서대로)
-
기타 희소 차원(데이터베이스 아웃라인에 표시되는 순서대로)
-
-
그렇지 않으면 Essbase가 다음 순서로 계산됩니다.
-
밀집 차원(데이터베이스 아웃라인에 표시되는 순서대로)
-
희소 차원(아웃라인에 표시되는 순서대로)
-
주:
데이터베이스 통합에 포함되지 않은 속성 차원은 계산 순서에 영향을 주지 않습니다. Essbase 속성 작업을 참조하십시오.
Sample Basic 데이터베이스에서 차원은 측정항목, 연도, 시나리오, 제품 및 시장 순서로 계산됩니다.
계산 스크립트를 사용하여 기본 순서를 대체할 수 있습니다. 블록 스토리지 큐브에 대한 계산 스크립트 개발을 참조하십시오.
멤버 관계의 계산 효과
각 Essbase 차원 내의 계산 순서는 아웃라인의 멤버 간 관계에 따라 달라집니다. 아웃라인 롤업(연결)의 멤버는 주행 거리계와 비슷합니다.
차원의 각 분기(계층) 내에서 레벨 0 값이 먼저 계산되고 그 다음에 해당 레벨 1, 상위 값이 계산됩니다. 그런 다음 다음 다음 분기의 레벨 0 값이 계산되고 그 다음에 해당 레벨 1, 상위 값이 계산됩니다. 모든 레벨이 계산될 때까지 이러한 방식으로 계산이 계속됩니다.
다음 이미지는 Sample Basic 데이터베이스의 Year 차원을 보여줍니다. 멤버의 계산 순서는 각 멤버의 왼쪽에 표시됩니다. 이 예에서는 상위 멤버에 동적 계산 태그가 지정되지 않았다고 가정합니다.
그림 19-3 샘플 기본 연도 치수에 대한 계산 순서

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 차원(시간으로 태그 지정)이 있습니다.
![[시간] 유형의 연도 차원 및 [계정] 유형의 부분적으로 확장된 [측정 단위] 차원(멤버 마진]이 강조 표시되어 있음) [시간] 유형의 연도 차원 및 [계정] 유형의 부분적으로 확장된 [측정 단위] 차원(멤버 마진]이 강조 표시되어 있음)](img/year-meas-margin.png)
측정값은 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 선도 계산 참조가 있는 제품 치수

아웃라인 편집기에서 아웃라인을 확인할 때 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 전방 계산 참조 없이 제품 치수 변경

이제 Essbase는 다음을 계산합니다.
-
공유 멤버 P100-20을 계산하기 전의 프로토타입 멤버 P100-20입니다. 따라서 P100-20에는 더 이상 전방 계산 참조가 없습니다.
-
공유 멤버 P300-20 이전 프로토타입 멤버 P300-20 따라서 P300-20에는 더 이상 사전 계산 참조가 없습니다.
-
멤버 P500-20 앞에 공식 P300-20이 있는 멤버입니다. 따라서 P500-20에는 더 이상 사전 계산 참조가 없습니다.