Z-таблица:
Code:
Месяц/Год | Дилер | Комплектация | План | Метка удаления
01.2015 1 A 5
01.2015 1 A 5 X
01.2015 2 B 1
01.2015 2 B 1 X
При первичной загрузке данных:
Тип дельты ADD. На Плане стоит суммирование. В Z-экстракторе, на стороне ERP, все поля с меткой удаления умножаете на -1. Ключ в DSO: Месяц/Год | Дилер| Комплектация.
PSA:
Code:
Месяц/Год | Дилер | Комплектация | План
01.2015 1 A 5
01.2015 1 A -5
01.2015 2 B 1
01.2015 2 B -1
DSO:
Code:
Месяц/Год | Дилер | Комплектация | План
01.2015 1 A 0
01.2015 2 B 0
Такой же результат Плана будет, если Ключ в DSO: Месяц/Год | Дилер. комплектацию можно вообще выкинуть. Но показатели из экстрактора должны приходить аддитивные (т.е. если A=100 кг, потом 40 кг продали, остаток 60 кг, то в дельту должно приходить не 60 кг (как реальный остаток), а -40 кг (как разница)).
Если, по аналогии с примером выше, у вас приходит в дельту 60 кг, то:
Тип дельты ABR. На Плане стоит перезапись. В Z-экстракторе, на стороне ERP, все поля с меткой удаления устанавливаете в 0. Ключ в DSO: Месяц/Год | Дилер| Комплектация.
PSA:
Code:
Месяц/Год | Дилер | Комплектация | План
01.2015 1 A 5
01.2015 1 A 0
01.2015 2 B 1
01.2015 2 B 0
DSO:
Code:
Месяц/Год | Дилер | Комплектация | План
01.2015 1 A 0
01.2015 2 B 0
ВАЖНО, чтобы запись с меткой удаления приходила всегда ПОСЛЕ записи с начальным значением! Т.е. если записи придут в таком порядке:
PSA:
Code:
Месяц/Год | Дилер | Комплектация | План
01.2015 1 A 0
01.2015 1 A 5
01.2015 2 B 0
01.2015 2 B 1
То, DSO будет:
Code:
Месяц/Год | Дилер | Комплектация | План
01.2015 1 A 5
01.2015 2 B 1
Теперь, что будет если Ключ в DSO: Месяц/Год | Дилер:
Z-таблица:
Code:
Месяц/Год | Дилер | Комплектация | План | Метка удаления
01.2015 1 A 5
01.2015 1 A 5 X
01.2015 1 B 1
01.2015 1 B 8
Дельта ADD:
DSO:
Code:
Месяц/Год | Дилер | План
01.2015 1 5-5+1+8=9 (сумма)
Дельта ABR:
DSO:
Code:
Месяц/Год | Дилер | План
01.2015 1 8 (последнее значение)
Теперь пришла дельта:
Code:
Месяц/Год | Дилер | Комплектация | План | Метка удаления
01.2015 1 A 5
01.2015 1 A 15
01.2015 1 B 10
Если дельта ADD:
DSO:
Code:
Месяц/Год | Дилер | План
01.2015 1 9+5+15+10
Если дельта ABR:
DSO:
Code:
Месяц/Год | Дилер | План
01.2015 1 10 (последнее значение)
А на самом деле должно быть 15+10=25.
Вот если бы ключ был Месяц/Год | Дилер | Комплектация:
DSO:
Code:
Месяц/Год | Дилер | Комплектация | План
01.2015 1 A 15 (последнее значение)
01.2015 1 B 10 (последнее значение)
Вот так можно организовать дельту. Для стандартных источников важен мэпинг поля ROCANCEL. Для Z - всё зависит от полёта вашей фантазии.