Добрый день!
Поступила такая задачка: для финансовых документов, которые уже загружены в куб, необходимо проставить классификацию. На первый взгляд, задача простая, но есть одно НО - эта классификация зависимая от времени.
Для себя накидал два пути решения:
1) Виртуальный признак.
Можно запихнуть данные о классификации в DSO и сделать виртуальный признак, который, в свою очередь, будет заполняться непосредственно при формировании отчета в зависимости от даты, выбранной на селективном экране.
2) Зависимый от времени атрибут.
Можно создать в кубе признак и к этому признаку загрузить зависимые от времени основные данные с классификацией. А в самом отчете уже с помощью контрольной даты выбирать актуальное значение.
Виртуальный признак я сразу отмел, т.к. при формировании отчета обрабатывается порядком 1 млн. записей, что сильно увеличит время формирования отчета. Поэтому пошел по пути зависимого от времени атрибута.
При загрузке основных данных сразу же наткнулся на такую проблему:
С инициализацией приходит запись
Key_1---01.06.2012---31.12.9999---Class_1
После этого в исходной системе изменяются данные (ограничивается срок действия классификации) и с дельтой приходит запись
Key_1---01.06.2012---30.09.2015---Class_1
В результате в основных данных вижу следующую картину:
Key_1---01.06.2012---30.09.2015---Class_1
Key_1---01.10.2015---31.12.9999---Class_1
что, по сути, эквивалентно предыдущему состоянию.
Конечно, можно синтетически добавить запись с 01.10.2015 по 31.12.9999 с пустым значением классификации, но считаю такой путь тупиковым, т.к. эта одна ситуация из сотен возможных, и все их обработать нереально.
Попробовал так же поиграться с новой настройкой для основных данных, поле 0recordmode
Но понять, как это работает, не получилось, видать, принцип работы отличается от DSO. И самое интересное, что информации в интернете про использование этого поля для основных данных практически нету.
Учитывая вышеизложенное, прошу помочь в решении этой задачки.