понедельник, 23 января 2012 г.

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.

Комментариев нет:

Отправить комментарий