Вопрос

Conflict FOREIGN KEY

Здравствуйте!

Пытаюсь синхронизировать Организационные роли с AD, при запуске синхронизации пользователи перемещаются, но в журнале появляется ошибка "Terrasoft.Common.DbOperationException: The UPDATE statement conflicted with the FOREIGN KEY constraint "FKMpbRxbvqMdsx1Iial2kKB1MywA". The conflict occurred in database "TerrasoftDB", table "dbo.Account", column 'Id'."

FK связывает столбец AccountId в таблице Contact и Id в Account.

Id в таблице проверил, пустых и битых нет.

Не подскажете, куда копать?

Нравится

8 комментариев
Лучший ответ

В синхронизации с АД в лоб был зашит контрагент с именем Наша компания и id="E308B781-3C5B-4ECB-89EF-5C1ED4DA488E"

Проверьте что в базе (таблица Account) есть такой Id. Если нет создайте запись. Контрагента наша компания не рекомендуется удалять лучше  его переименовать в название вашей компании!

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

Посмотрите sql-профайлером, на каком именно запросе происходит свал и проанализируйте его значения.

В синхронизации с АД в лоб был зашит контрагент с именем Наша компания и id="E308B781-3C5B-4ECB-89EF-5C1ED4DA488E"

Проверьте что в базе (таблица Account) есть такой Id. Если нет создайте запись. Контрагента наша компания не рекомендуется удалять лучше  его переименовать в название вашей компании!

Спасибо, Алла, нашел ошибку с помощью Профайлера.

Спасибо, Григорий, вы правы, контрагента с таким Id в таблице нет, но и в свойствах контакта указан другой контрагент с именем Восток Запад и типом "Наша компания", который существует. Не пойму откуда взялся Id E308B781-3C5B-4ECB-89EF-5C1ED4DA488E? Создать конечно могу, но разобраться бы как это работает.

Виталий Егоров,

Если наткнулись на E308B781-3C5B-4ECB-89EF-5C1ED4DA488E, то как я и писал в лоб зашито в интеграции с АД :) Лучше востановите контрагента

Спасибо, Григорий.

А не помните случайно, в какой схеме это можно увидеть?

Виталий Егоров,

Увы нет, но она в нескольких местах вылазила недавно вот всплыла в формировании счета на оплату.

Например, если поискать через базу по коду, в схеме AccountConsts и в БП объекта Invoice упомянут этот GUID.

select *
from SysSchemaSource
where source like '%E308B781-3C5B-4ECB-89EF-5C1ED4DA488E%'

 

Всем огромное спасибо, ошибка устранена.

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