Трассировка вычислений

Воспользуйтесь прослеживанием расчетов Essbase для анализа обработки формулы элементов. Это поможет выполнить отладку и уточнить сценарии вычисления для блочных хранилищ. Включите CALCTRACE для прослеживания расчетов Smart View с учетом контекста или используйте команду SET TRACE, чтобы выбрать прослеживаемые пересечения данных.

Отслеживание вычислений позволяет получить доступ к зарегистрированной информации о вычислении после успешного выполнения сценария вычисления на основе данных куба.

Отслеживание вычисления ничего не изменяет в поведении вычисления. Если вычисление запускается в Smart View и администратор включил на подключенном сервере отслеживание вычислений, в Smart View отображается всплывающее диалоговое окно со сведениями о выполнении вычислений. Отслеженную информацию о вычислении из данного всплывающего диалогового окна можно вставить в текстовый редактор. Эту же информацию также можно найти в файле calc_trace.txt, расположенном в каталоге файлов базы данных в Essbase.

Информация об отслеживании вычислений может помочь в отладке выполнения сценария вычисления, если результаты вычисления не соответствуют ожиданиям.

Отслеживание вычислений не поддерживается в приложениях с включенным управлением сценариями.

Чтобы включить отслеживание вычислений, администратор сначала должен включить параметр конфигурации приложения CALCTRACE. Когда для приложения включена трассировка вычислений, ее можно использовать двумя способами:

  • В Smart View можно использовать контекстную трассировку для значения одной ячейки.
    1. В Smart View подключите лист запроса к приложению, для которого включена трассировка вычислений.
    2. Выделите ячейку с данными, для которой будет отслеживаться вычисляемое значение.
    3. На панели "Данные" на вкладке "Essbase" нажмите кнопку Расчет и выберите нужный сценарий расчета. Точка обзора из выделенной ячейки данных будет отображаться в запросах среды выполнения элементов трассировки.
    4. Нажмите Запустить, чтобы выполнить сценарий расчета.

      Будет рассчитана вся область расчетов, содержащаяся в сценарии, но во время расчета будет отслеживаться только контекст выделенной ячейки данных.

    5. После выполнения сценария расчета изучите данные в диалоговом окне Результат вычисления, где отображаются результаты для выделенной ячейки данных, полученные до и после расчета.

      Если выделенная ячейка данных не была изменена во время расчета, отображается соответствующее сообщение.

  • В сценариях расчета можно использовать команду SET TRACE, которая позволяет выбрать пересечения данных для отслеживания. SET TRACE позволяет отслеживать несколько ячеек данных. Кроме того, можно отслеживать секции сценариев расчета с помощью комбинации следующих команд: 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 и блоком, представленным формуле элементов. Эти записи журнала могут указывать на причины существования дублированных вычислений, помогая в отладке сценариев вычислений.