Как оказалось, 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.
Комментариев нет:
Отправить комментарий