2014-11-03 1 views
0

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

Say мой куб схема состоит из полей из 3 магазинов, A, B и C. Затем он будет выглядеть примерно так:

<datastoreSelection baseStore="storeA"> 
    <fields> 
     <field name="fieldAmount1" expression="fieldAmount1" /> 
     <field name="fieldAmount2" expression="fieldAmount2" /> 
     <field name="fieldRefValue" expression="fieldRefValue" /> 
     <field name="fieldForDimension1" expression="storeB/fieldForDimension1" /> 
     <field name="fieldForDimension2" expression="storeC/fieldForDimension2" /> 
    </fields> 
</datastoreSelection> 

Мой куб имеет 2 аспекта:

  • dimension1 на базе "fieldForDimension1"
  • dimension2 на основе "fieldForDimension2"

У меня есть постпроцессор, который сравнивает fieldRefValues ​​с некоторым внешним значением 'externalValue' (предположим, что это внешнее значение является значением контекста, которое пользователи могут изменять).

if (fieldRefValues <= externalValue) { 
    return fieldAmount1; 
} else { 
    return fieldAmount2; 
} 

Поскольку внешний вал может варьироваться «на лету», я не могу предварительно обработать этот раздел. Я также не могу работать на агрегированном уровне (точнее, есть интервал, где мне приходится работать с деталями).

Работая с ActivePivot v5, кажется, что нет такого элемента, как индекс. Более того, мои скромные знания в хранилище данных заставляют меня думать, что это может не заполнить мою потребность в моей схеме состоит из полей из нескольких магазинов. Другими словами, я не нашел способ запросить хранилище данных с местоположением.

Например, если запрос на моем ПП поставляется с места

[[myPP][value1][value2]] 

Я изо всех сил, чтобы получить детали линий с помощью хранилища данных запросов, для меня было бы:

  1. запроса storeB к get id от "value1"
  2. query storeC для получения идентификатора "value2"
  3. магазин запросовA с результатами из предыдущих предыдущих запросов
  4. Выполнение моего заявления «на» на этих линиях

Довольно сложный, не так ли?

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

Однако я никогда не слышал о таком случае использования. Отсюда мои вопросы: Есть ли у кого-то подобный вариант использования и как вы его решили? Есть ли какие-либо оговорки?

С первых же попыток кажется, что выполнение расширенного запроса во время выполнения постпроцессора может повысить проблему по сравнению с контекстом.

ответ

0

в вашем постпроцессора вы можете получить доступ к фактам танков датастора запросу сказать, что вы вычислите amout, и вы хотите, чтобы выразить эту сумму преобразованной в данной валюте, то, что вы должны делать в PP: - как-то получить координата местоположения, участвующего в преобразовании (e, g, валюта), затем используйте эту координату для запроса в хранилище и получите скорость, которая позволяет вам конвертировать вашу сумму.

Короче говоря: - если вам приходится иметь дело с агрегированными значениями, так что используйте постпроцессор - если вы должны запросить основные факты, использовать хранилище данных запрос (по аналогии с индексатор запросами в AP4) - вы можете используйте запрос хранилища данных в почтовом процессоре

так что все связано с вашим прецедентом.

надеюсь, что это помогает, не стесняйтесь подробно ваш случай использования, если это не полезно С уважением,

+0

спасибо, TuxMobil. Я подробно расскажу о своем случае, чтобы сделать мой вопрос более ясным – Ashock

 Смежные вопросы

  • Нет связанных вопросов^_^