Можно ли повторно использовать первичные ключи после удаления?

StackOverflow https://stackoverflow.com/questions/1072729

Вопрос

0x80040237 Невозможно вставить дубликат ключа.

Я пытаюсь написать процедуру импорта для MSCRM4.0 через CrmService.До сих пор это было успешным.Первоначально я просто позволял CRM генерировать первичные ключи записей.Но мой клиент хотел иметь возможность устанавливать для ключа нашей пользовательской сущности предопределенные значения.Потенциально это позволяет нам узнать, какие данные были созданы нашим установщиком и какие данные были созданы после установки.

Я проверил, можно ли установить Guids при вызове метода CrmService.Update(), и результаты показали, что записи были созданы с желаемыми значениями.Я запустил импорт, и все казалось успешным.Изменяя код проверки файлов импорта, я удалил данные (через интерфейс браузера CRM) и попытался повторно импортировать.К сожалению, теперь он выдает ошибку дублирования ключа.

Почему выдается эта ошибка?Удаляет ли интерфейс Crm запись или она все еще существует, но скрыта от глаз пользователя?Есть ли способ гарантировать, что удаленная запись будет удалена навсегда, а Guid станет бесплатным?В реальной среде эти руководства никогда бы не существовали, но во время разработки мне нужно, чтобы этот импорт был успешным.

Кстати, учитывая, что у меня возникла эта проблема, означает ли это, что статическая установка Guids не рекомендуется?

Это было полезно?

Решение

Насколько я могу судить, объекты удаляются обратимо, поэтому повторно использовать этот Guid будет невозможно, если вы (или служба удаления) не удалите объект из базы данных.

Например, в таблице LeadBase вы найдете поле DeletionStateCode, значение 0 означает, что запись не была удалена.

Значение 2 отмечает запись для удаления.Существует служба удаления, которая запускается каждые 2(?) часа и физически удаляет эти записи из таблицы.

Другие советы

Думаю, Захир прав, попробуйте запустить службу удаления и повторите попытку.Здесь есть некоторая информация: http://blogs.msdn.com/crm/archive/2006/10/24/purging-old-instances-of-workflow-in-microsoft-crm.aspx

Захир прав.

После импорта и удаления записей вы можете запустить службу удаления в любое время по вашему выбору с помощью этот инструмент.Это облегчит тестирование импорта и реимпорта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top