Добро пожаловать в мир Essbase; поначалу это может показаться немного пугающим, особенно если вы новичок в концепции многомерности. Вы находитесь на правильном пути в отношении анализа вашего сценария calc.
Старайтесь не думать об операторе FIX
как о командном блоке как таковом. FIX
используется для выбора части ячеек в кубе. Каждая отдельная часть данных в вашем кубе имеет определенный адрес, который состоит из одного элемента из каждого измерения, плюс само фактическое значение данных. Например, куб с измерениями «Время», «Год», «Сценарий» и «Местоположение» может иметь определенную часть данных в позиции Jan->2018->Actual->Washington
. Количество возможных перестановок данных в кубе может быстро стать очень большим. Например, если ваша организация имеет данные за 4 года, 12 месяцев в году, 100 местоположений, 10 000 учетных записей, 3 версии и 10 отделов, вы говорите о 4 * 12 * 100 * 10 000 * 3 * 10 = 1,4. миллиарды различных потенциальных адресов (ячеек) данных — и это на самом деле довольно мало для куба, поскольку они имеют тенденцию расти намного больше.
Тем не менее, операторы FIX
используются для сужения объема вашей вычислительной операции, а не для работы со ВСЕМ кубом (все 1,4 миллиарда ячеек в моем гипотетическом примере), FIX
по существу ограничивает вычисление ячейками, которые соответствуют определенным критериям, которые вы указываете. В этом случае первый оператор FIX
ограничивает вычисление конкретным месяцем, годом, версией, секторами, источниками и каналами. Обратите внимание, что амперсанд в Mth
, Yr
и Version
означает, что должна использоваться переменная подстановки. Это означает, что на вашем сервере или кубе установлено значение переменной подстановки, например переменная Mth = "Jan"
и Yr = "FY2018"
, а версия может быть "Working"
или "Final"
или чем-то подобным. Я предполагаю, что Sector1 и Sector2, возможно, являются двумя разными членами одного и того же измерения. @RELATIVE("Source Code", 0)
— это функция, которая находит элементы уровня 0 (элементы конечного/нижнего уровня в измерении, т. е. элементы, у которых нет нижестоящих элементов) указанного элемента.
Другими словами, первый оператор FIX сужает область расчета до определенного месяца в определенном году в определенной версии (в отличие от всех месяцев, всех лет, всех версий) и для этого конкретного месяца/года/версии. (для Сектора 1 или Сектора 2) он фиксируется на всех элементах уровня 0/нижних/конечных элементов в измерениях исходного кода и канала.
Следующий оператор FIX еще больше сужает текущую область ячеек для расчета в дополнение к внешнему FIX. Нередко можно увидеть операторы FIX, вложенные таким образом.
Наконец, мы подошли к той части, где что-то действительно происходит: КОПИРОВАНИЕ ДАННЫХ. В данном контексте FIX эта команда DATACOPY говорит, что для КАЖДОЙ ячейки в текущем FIX копируются значения из источника в место назначения. DATACOPY немного проще, когда это просто DATACOPY "Source" TO "Target", в отличие от использования межпространственного оператора (->)... но это, возможно, легче понять с точки зрения измерений времени/года. Например, представьте, что копия данных была написана так:
DATACOPY "FY2018"->"Dec" TO "FY2019"->"Jan";
В этой КОПИИ ДАННЫХ я бы сообщил Essbase, что для заданного контекста FIX я хотел бы скопировать значения с конца года (значения данных, где год — 2018 ФГ, а месяц — декабрь) до начала следующего года (данные значения, где год — FY2019, а месяц — январь). Ваш DATACOPY работает аналогичным образом, но использует центры затрат или что-то еще. Все зависит только от того, как настроен куб.
person
jwj
schedule
17.01.2019