Показать сообщение отдельно
Старый 25.10.2006, 23:46   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL Посмотреть сообщение
Плохо. Скорее всего, в разных компаниям одним и тем же InventDimId соответствуют разные комбинации аналитик. Придется писать автоматизированный job, которые сможет обновить все поля xxx.InventDimId.
Согласен - плохо.
Согласен - job.
Не согласен про экспорт/импорт. Мне кажется, что в данном случае он запутает дело.

Алгоритм job'а.
1. Создать дубль CopyOfInventDim

2. Цикл по всем компаниям
2.1. Скопировать все строчки InventDim в CopyOfInventDim
2.2. Конец цикла

3. Перекинуть InventDim в виртуальную компанию.

4. Цикл по всем компаниям
4.1. Цикл по всем таблицам и полям, которые содержат поле типа InventDimID
4.1.1. CopyOfInventDim::find(table.InventDimID)
4.1.2. buf2buf(CopyOfInventDim, InventDim) // Скопировать все несистемные поля из CopyOfInventDim в InventDim:
4.1.3. inventDim = InventDim::findOrCreate(inventDim)
4.1.4. table.inventDimId = inventDim.inventDimId
4.1.5. table.doUpdate()
4.1.6. Конец цикла по полям и таблицам
4.2. Конец цикла по компаниям

Другими словами - пересоздайте InventDim.
Так вы получите гарантировано правильные RecID и гарантировано уникальные комбинации
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: kashperuk (2).