вторник, 31 января 2012 г.
понедельник, 23 января 2012 г.
ABAP. Визуализация кода.
Рекомендации по названиям объектов в коде:
l_* - локальная переменная с единственным значением
lt_* - локальная таблица
ls_* - локальная структура
lr_* - локальная переменная типа Range
lty_* - локальный тип
p_* - параметр
so_* - selection option
<ls_*> - field symbol на структуру (все остальное по аналогии)
lcl_* - локальный класс
lo_* - объект
l_* - локальная переменная с единственным значением
lt_* - локальная таблица
ls_* - локальная структура
lr_* - локальная переменная типа Range
lty_* - локальный тип
p_* - параметр
so_* - selection option
<ls_*> - field symbol на структуру (все остальное по аналогии)
lcl_* - локальный класс
lo_* - объект
RECORDMODE. Первое знакомство.
Как оказалось, RECORDMODE будет работать довольно хитро, если вы надумали уменьшить количество ключей при преобразовании.
Пример:
В одном пакете приходит сам Заказ, а в другом - удаление Позиции из заказа. В правилах, если признак "Заказ" больше не ключ (например мы агрегируем данные по Торговой Точке за период), две эти записи сожмутся и RECORDMODE удалит Заказ целиком.
Хочу оговориться, ситуация справедлива лишь для RECORDMODE = R.
Если же первая запись приходит с частичным удалением, а вторая с добавлением позиций - то записей в RESULT_PACKAGE будет две.
Решили в конце Start routine производить замену RECORDMODE = R на RECORDMODE = X. Так как данная ситуация касается только RECORDMODE = Reverse-image.
LOOP AT source_package
ASSIGNING <source_fields>
WHERE recordmode = 'R'
.
<source_fields>-recordmode = 'X'.
ENDLOOP.
Пример:
В одном пакете приходит сам Заказ, а в другом - удаление Позиции из заказа. В правилах, если признак "Заказ" больше не ключ (например мы агрегируем данные по Торговой Точке за период), две эти записи сожмутся и RECORDMODE удалит Заказ целиком.
Хочу оговориться, ситуация справедлива лишь для RECORDMODE = R.
Если же первая запись приходит с частичным удалением, а вторая с добавлением позиций - то записей в RESULT_PACKAGE будет две.
Решили в конце Start routine производить замену RECORDMODE = R на RECORDMODE = X. Так как данная ситуация касается только RECORDMODE = Reverse-image.
LOOP AT source_package
ASSIGNING <source_fields>
WHERE recordmode = 'R'
.
<source_fields>-recordmode = 'X'.
ENDLOOP.
вторник, 10 января 2012 г.
Загрузки данных
Перед загрузкой данных в итоговый куб не стоит производить трансформации с показателями, так как есть вероятность несжатия куба.
Столкнулись с ситуацией, когда пара строк в кубе не сжалась, так как в трансформации использовались мастер-данные, которые не были загружены вовремя.
Столкнулись с ситуацией, когда пара строк в кубе не сжалась, так как в трансформации использовались мастер-данные, которые не были загружены вовремя.
Archivation in BI
Оказывается, при восстановлении архивированных данных из хранилищ, сами файлы с архивами тоже удаляются. Проходится проводить повторную архивацию.
Обидно...
Обидно...
Подписаться на:
Сообщения (Atom)