Вопрос

Ошибка при репликации

Добрый день.

Настроил репликацию между двумя офисами. Все вроде заработало... Но потом репликация остановилась.
На одной из точек появилось сообщение: "Предыдущая репликация завершилась с ошибкой". Посмотрел ошибку:

Cannnot INSERT the value NULL INTO COLUMN "TypeID", TABLE 'tscrm.dbo.tbl_Task'; COLUMN does NOT allow nulls. INSERT fails.

В базах на обоих точках в таблице tbl_Task нет записей со значением поля TypeId равным NULL.

Нашел в каталоге BadArchive файл, где должна быть ошибка, но его не понятно даже чем можно прочитать...

Посоветуйте пожалуйста, что можно сделать в такой ситуации.

Нравится

4 комментария

Кирилл, все верно что нет записей - для этого ограничение и существует:) По ошибке. Репликация при приеме пакета, сначала вставляет записи без внешних ключей, а потом апдейтами проходится и обновляет ссылки. Так поле TypeID - ссылка, то при вставке записи оно не участвует в запросе, но на нем еще и ограничение NOT NULL - что и не позволяет сделать вставку. При подготовке репликации утилита проходится по всем внешним ссылкам и если они содержат ограничение NOT NULL, изменяет на NULL, но к сожалению не делает это на уровне сервиса, только на уровне базы данных. Вопрос:
1. Какая версия приложения у Вас.
2. Какая версия репликации(за какое число)
3. Пересохраняли ли Вы сервис tbl_Task после настройки репликации? Или добавляли ли Вы доп. реквизиты к задаче после настройки репликации?

Добрый день, Александр.
Версия у меня 3.2.0.33
дата создания файла RepOffline 15 мая 2009
Сервис Tbl_Task пересохраняли и поля добавляли. Причем на второй базе это пришлось сделать руками.

Кирилл, читали ли Вы руководство "TSCRM MSSQL Руководство по репликации.doc" в частности пункт "5.3.3.2. Добавление пользовательского поля" ?

А, вот в чем дело...
Я подумал, что поскольку я не пользовательское поле добавлял. Мне этого и не нужно делать...

Мы в окошко задач добавили поле "Фактическая дата начала" (как в 3.3) Соответственно там изменилось много сервисов, включая tbl_Task. Сервисы перенеслись.
Сейчас посмотрел, значение нового поля не переносится...

Спасибо. Буду разбираться.

Показать все комментарии