Воспользуйтесь прослеживанием расчетов Essbase для анализа обработки формулы элементов. Это поможет выполнить отладку и уточнить сценарии вычисления для блочных хранилищ. Включите CALCTRACE для прослеживания расчетов Smart View с учетом контекста или используйте команду SET TRACE, чтобы выбрать прослеживаемые пересечения данных.
Отслеживание вычислений позволяет получить доступ к зарегистрированной информации о вычислении после успешного выполнения сценария вычисления на основе данных куба.
Отслеживание вычисления ничего не изменяет в поведении вычисления. Если вычисление запускается в Smart View и администратор включил на подключенном сервере отслеживание вычислений, в Smart View отображается всплывающее диалоговое окно со сведениями о выполнении вычислений. Отслеженную информацию о вычислении из данного всплывающего диалогового окна можно вставить в текстовый редактор. Эту же информацию также можно найти в файле calc_trace.txt
, расположенном в каталоге файлов базы данных в Essbase.
Информация об отслеживании вычислений может помочь в отладке выполнения сценария вычисления, если результаты вычисления не соответствуют ожиданиям.
Отслеживание вычислений не поддерживается в приложениях с включенным управлением сценариями.
Чтобы включить отслеживание вычислений, администратор сначала должен включить параметр конфигурации приложения CALCTRACE. Когда для приложения включена трассировка вычислений, ее можно использовать двумя способами:
Будет рассчитана вся область расчетов, содержащаяся в сценарии, но во время расчета будет отслеживаться только контекст выделенной ячейки данных.
Если выделенная ячейка данных не была изменена во время расчета, отображается соответствующее сообщение.
SET TRACE mbrList
(включение трассировки вычислений для списка элементов) и SET TRACE OFF
(отключение трассировки вычислений до тех пор, пока в сценарии не будет обнаружена новая команда SET TRACE). Для использования команды SET TRACE необходимо выполнить сценарий расчета вне Smart View с помощью конструктора кубов, команды CLI calc, задания Выполнение расчета в веб-интерфейсе Essbase или MaxL (инструкция выполнить расчет).Ниже приводится сценарий вычисления, который выполняется в кубе Sample Basic. Данный сценарий содержит команду SET TRACE, запрашивающую регистрируемую подробную информацию о пересечении данных (ячейки), которое представляет бюджетные продажи в январе на рынке Калифорнии для номера товарной позиции продукта 100-10.
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, элементу плотного измерения Measures. В списке элементов в инструкции FIX содержится только один разреженный элемент, California, который относится к измерению Market.
Количество существующих блоков в области 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.
Строки 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 и блоком, представленным формуле элементов. Эти записи журнала могут указывать на причины существования дублированных вычислений, помогая в отладке сценариев вычислений.