Essbase 계산 추적을 사용하여 멤버 공식 처리에 대한 통찰력을 얻어서 블록 스토리지 계산 스크립트를 디버그하고 개선할 수 있습니다. 문맥에 따른 Smart View 계산 추적에 대해 CALCTRACE를 사용으로 설정하거나, SET TRACE 명령을 사용하여 추적할 데이터 교차를 선택합니다.
계산 추적을 사용하면 계산 스크립트가 큐브에 대해 성공적으로 실행된 후 계산에 대한 로깅된 정보에 액세스할 수 있습니다.
계산 추적은 계산 동작에 대한 어떤 사항도 변경하지 않습니다. 계산이 Smart View에서 실행되고 접속된 서버에 관리자가 사용으로 설정한 계산 추적이 있는 경우 Smart View는 계산이 실행된 후 세부정보가 포함된 팝업 대화상자를 표시합니다. 계산 추적 정보는 팝업 대화상자에서 텍스트 편집기로 붙여넣을 수 있습니다. 또는 Essbase의 데이터베이스 파일 디렉토리에 있는 calc_trace.txt
에서 동일한 정보를 찾을 수 있습니다.
계산 추적 정보는 계산 결과가 예상한 것이 아닌 경우 계산 스크립트 실행을 디버깅하는 데 도움이 될 수 있습니다.
계산 추적은 시나리오 관리가 사용으로 설정된 애플리케이션에서 지원되지 않습니다.
계산 추적을 사용으로 설정하려면 관리자는 먼저 CALCTRACE 애플리케이션 구성 매개변수를 설정해야 합니다. 애플리케이션에 대해 계산 추적이 사용으로 설정된 후에는 두 가지 방법으로 계산 추적을 활용할 수 있습니다.
스크립트에 포함된 대로 계산의 전체 범위가 계산되지만 하이라이트된 데이터 셀 컨텍스트만 계산 중 추적됩니다.
하이라이트된 데이터 셀이 계산 중 수정되지 않은 경우 셀이 수정되지 않았음을 나타내는 메시지가 표시됩니다.
SET TRACE mbrList
(멤버 목록에 대한 계산 추적 설정)와 SET TRACE OFF
(새 SET TRACE가 스크립트에서 발견될 때까지 계산 추적 사용 안함)의 조합을 사용하여 계산 스크립트의 섹션을 추적할 수 있습니다. SET TRACE 명령을 사용하려면 Cube Designer, CLI calc 명령, Essbase 웹 인터페이스의 계산 실행 작업 또는 MaxL(계산 실행 명령문)을 사용하여 Smart View 외부의 계산 스크립트를 실행해야 합니다.다음 계산 스크립트는 Sample Basic에서 실행됩니다. 스크립트에는 SET TRACE 명령이 포함되어 있어 제품 SKU 번호 100-10에 대한 California 시장의 예산 January 판매를 나타내는 데이터 교차(셀)에 대해 로깅되는 자세한 정보를 요청합니다.
SET TRACEID "id042" SET TRACE ("100-10", "California", "Jan", "Sales", "Budget"); FIX("California", "Budget") "Sales" ( "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10; ); ENDFIX;
주:
계산 추적 파일이 겹쳐쓰이지 않도록 하려면 SET TRACEID 명령도 권장됩니다.Sample Basic에는 두 가지 희소 차원인 Product와 Market이 있습니다. 멤버 공식은 밀집 차원인 측정항목의 멤버인 Sales에 대한 것입니다. FIX 문의 멤버 목록에는 Market 차원에 속하는 희소 멤버 California 하나만 포함되어 있습니다.
FIX 범위의 기존 블록 수는 추적된 셀이 계산되는 횟수를 결정합니다. 이 예에서는 모든 기존 희소 멤버 조합인 California를 통해 계산이 순환됩니다. 각 조합은 블록을 나타냅니다.
계산이 완료되면 다음과 같은 추적 정보가 로깅되고 calc_trace_id042.txt
에 표시됩니다.
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 1) Previous value: 840.00 Dependent values: [100-20][California][Jan][Sales][Budget] = 140.00 New value: [100-10][California][Jan][Sales][Budget] = 14.00 Computed in lines: [91 - 93] using: "Sales"( "100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10; ) Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 2) Block from FIX scope: [100-30][California] Actual block used in calculation: [100-10][California] Previous value: 14.00 Dependent values: [100-20][California][Jan][Sales][Budget] = 140.00 New value: [100-10][California][Jan][Sales][Budget] = 14.00 Computed in lines: [91 - 93] using: "Sales"( "100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10; ) Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 3) Block from FIX scope: [200-10][California] Actual block used in calculation: [100-10][California] Previous value: 14.00 Dependent values: [200-20][California][Jan][Sales][Budget] = 520.00 New value: [100-10][California][Jan][Sales][Budget] = 52.00 Computed in lines: [91 - 93] using: "Sales"( "100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10; ) [...calc iterations 4-7 are omitted from example...] Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 8) Block from FIX scope: [400-30][California] Actual block used in calculation: [100-10][California] Previous value: 9.00 Dependent values: [400-20][California][Jan][Sales][Budget] = 90.00 New value: [100-10][California][Jan][Sales][Budget] = 9.00 Computed in lines: [91 - 93] using: "Sales"( "100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10; )
계산 추적 로그에는 추적된 셀에서 계산이 수행된 방식에 대한 다음과 같은 인사이트가 제공됩니다.
추적된 셀이 여러 번 계산되었으며 매번 새 값이 셀 값을 겹쳐썼습니다(보고된 셀 업데이트 수가 8에서 멈춤).
계산 전 셀 값은 840.00이었습니다.
각 계산 수행에 대해 종속 값 및 새 값이 표시됩니다. 종속 값은 FIX 문의 멤버 공식에서 가져옵니다.
모든 계산이 완료된 후 추적된 셀의 최종 값은 9이지만 제품 "400-20"->California
을 10으로 나눈 값을 나타냅니다.
Sales에 대한 멤버 공식이 포함되어 있는 계산 스크립트의 라인 91-93은 업데이트된 값을 담당합니다.
순환된 각 블록에서 Sales는 다음 공식을 사용하여 계산됩니다.
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10
공식에는 왼쪽에 있는 희소 멤버가 포함되며 이 공식으로 초기 FIX 블록과 다른 실제 계산 블록이 발생할 수 있습니다. 예를 들어 계산이 "California"->"100-20"을 순환하는 경우 실제로 계산은 "California"->"100-10"에서 수행됩니다.
Block from FIX scope
및 Actual block used in calculation
이라는 제목이 있는 추적 로그 항목은 FIX 문의 블록과 멤버 공식에 나타난 블록 간에 불일치가 있는 경우에만 인쇄됩니다. 이 로그 항목은 중복 계산이 존재하는 이유에 대한 설명을 제공하여 사용자가 계산 스크립트를 디버깅하는 데 도움이 됩니다.