04.02.2008 10:47
creosote
 
Цитата:
Andrew_Konev чтобы заработала синхронизация, их надо сделать локальными: базу отправки выставить в null, базу создания поправить на локальную, штрихкода пересадить в другую таблицу.
Вот тут поподробнее, пожалуйста. Это всё надо делать средствами sql? С помощью супермага сделать не получится? Если не сложно, покажите пример команд sql для карточки в магазине.

Решение через почтовый модуль считаю в моём случае неприменимым, т.к. к 30% магазинов удалённо подключиться нет возможности.
04.02.2008 10:52
Dim
 
Цитата:
creosote Решение через почтовый модуль считаю в моём случае неприменимым, т.к. к 30% магазинов удалённо подключиться нет возможности.
Достаточно подключиться к одному магазину.
04.02.2008 11:03
creosote
 
Цитата:
Andrew_Konev эк вас угораздило-то...

сколько карточек пересеклось по номерам? и как много документов, их содержащих (в офисе и магазинах по отдельности).
порядок инересует. типа, 10-20 или 300-400?
если мало - возможно проще окажется перебить карточки в офисе по данным маговских баз.
Приблизительно 200.

Цитата:
Andrew_Konev где заводятся документы? то есть имеются ли документы, созданные в офисе после отката базы, в которые попали проблемные карточки.
если все документы рождаются в магазинах и надо только привести в порядок карточки в офисе - можно попробовать поменять роли баз в почтовиках и прослать карточки снизу вверх.
или не связываться с почтовиком, а организовать экспорт/импорт карточек.
или, опять же, перебить руками.
Да, в офисе уже появилась куча документов (Акты переоценки, Контракты), содержащих эти карточки.

Цитата:
Andrew_Konev еще вариант, если магазинов не слишком много: для пересекшихся номеров в подчиненных базах прибить глобальные артикулы и базу-отправителя; базу создателя поправить на локальную.
Дальше по стандартной процедуре синхронизации.
Но если магазинов много - замучаетесь синхронизировать.
Магазинов около 50-ти, но пока, мне кажется, способ с синхронизацией наиболее приемлимый.
04.02.2008 11:43
akonev
 
Цитата:
creosote Вот тут поподробнее, пожалуйста. Это всё надо делать средствами sql? С помощью супермага сделать не получится? Если не сложно, покажите пример команд sql для карточки в магазине.

Решение через почтовый модуль считаю в моём случае неприменимым, т.к. к 30% магазинов удалённо подключиться нет возможности.
супермагом не получится.
запросы примерно такие (все для одной карточки с артикулом "0"):
Код:
update smcard t set t.arrivedfrom=null, t.bornin=(select paramvalue from sssyinfo where paramname='DBID') where t.article='0'
insert into smforeignunits (select * from smstoreunits where article='0')
delete from smstoreunits where article='0'
запросы не проверял, но общая идея такая.
надо еще версию СМ уточнить: недавно менялось место хранения штрихкодов для локальных артикулов

только беда в том, что прогонять их надо на каждой подчиненной базе.
и потом пятьдесят раз синхронизировать каждый артикул в офисной базе.
он же из каждого магазина в отдельности приползет.

реально, проще заниматься правкой одной офисной базы.
04.02.2008 12:05
creosote
 
Цитата:
Andrew_Konev реально, проще заниматься правкой одной офисной базы.
Что необходимо сделать в центральной базе, расскажите пожалуйста подробннее? Что будет с документам, созданными в центральном офисе(акты переоценки, контракты), содержищими ошибочные артикулы?

Сейчас при попытке отправить в магазин карточку с артикулом 1199353(созданная в центре карточка с номером существующей в магазине карточки) выходит ошибка:
ORA-20102: Попытка изменения фиксированных атрибутов карточки товара
ORA-06512: на "SUPERMAG.CORE", line 262
ORA-06512: на "SUPERMAG.SMCARDFIXATTR", line 21
ORA-04088: ошибка во время выполнения триггера 'SUPERMAG.SMCARDFIXATTR'

Смогут ли изменённые в центре карточки перезаписать карточки в маг. базах?
04.02.2008 12:57
Mtirt
 
Давай еще раз.

Меняем подчиненность баз. ЦО делаем подчиненным.

В ЦО:
1. Копируем эту карточку (да, еще раз).
2. Скриптом перекидываем движения документов, созданных в базе ЦО на новую карточку (update smspec set article='Новый артикул' where article='Старый артикул'). Надо поменять и остальные таблицы, которые содержат артикула.
3. Удаляем карточку в ЦО. (Совсем, с концами, со штрих-кодами и историей).

4. Рассылаем из магазина артикула и документы. Проверяем, что всё дошло.

5. Запускаем синхронизацию локальных артикулов, чтобы новые карточки (созданные в 1.) посадить на нормальные артикула, по которым есть движения в магазине.

6. Возвращаем назад настройки почтовика. ЦО делаем старшим, Магазин - подчиненным.

По идее, должно работать. Проверять работоспособность данного способа лично мне не хочется...
Ну и естественно, желательно всё это проделывать, когда в ЦО никого нет.
04.02.2008 13:13
akonev
 
фиксированные атрибуты - это такие данные, как тип артикула, единица измерения...
если этот артикул не принимается - скорее всего "старый" штучный, а "новый" - весовой. или наоборот.
если они будут одинаковые - все нормально примется.

хуже другое: там, где таких расхождений не было - многие карточки, скорее всего, принялись и попортили документы.
тогда сейчас вы имеете большой зоопарк.

но объем разрушений надо сначала если не понять, то хоть оценить.
начинайте уже сверять маговскую первичку с документами в базе.

или проверяйте каждый из проблеммных артикулов на предмет: смог он прослаться в магазины или его отпнули по ошибке. выпнуть из магазина его могли по двум причинам: те самые фиксированные аттрибуты или совпадение наименования с уже существующим артикулом.
06.02.2008 10:11
creosote
 
Спасибо всем за внимание, очень помогли!
Часовой пояс GMT +3, время: 13:01.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.