Как создать новую запись с определенным GUID

Asked
Viewd1957

2

Используя Dynamics CRM, я пытаюсь создать экземпляр объекта. Я хотел бы вручную установить GUID, но если бы у меня был атрибут, который является первичным ключом для DynamicEntity, я получаю следующую ошибку.

Сервис не может обработать запрос

Я создаю DynamicEntity, и установка атрибута id [entityname] приводит к сбою запроса. Он перемещает данные между двумя экземплярами CRM, поэтому, если кто-то знает, как лучше копировать записи между CRM, это тоже сработает. В противном случае я бы хотел, чтобы GUID совпадал между экземплярами ... поскольку это точка GUID.

2 ответов

3

К счастью, IS можно сделать это в двух экземплярах CRM! Сотрудник знал решение, так что заслуга действительно принадлежит ему.

Моя ошибка заключалась в создании свойства с типом UniqueIdentifierProperty. Атрибут первичного ключа объекта должен быть заполнен с помощью KeyProperty . Эти два свойства почти идентичны - это типы свойств, за исключением того, что одно содержит ключ, а другое - уникальный идентификатор. Key / UniqueIdentifier содержат идентификаторы GUID. (Еще один день в памяти Microsoft!)

Точнее, я создаю DynamicEntity, заполняю имя объекта и заполняю большинство атрибутов. Атрибут PK (который вы можете определить по метаданным) можно заполнить с помощью KeyProperty. Я заполнял его значением UniqueIdentifierProperty, которое CRM отклоняет и отвечает невзрачным и бесполезным сообщением об ошибке.

  • вздох Сюжет сгущается. Хотя все вышесказанное работает, CRM все еще мешает. Если вы удаляете запись в CRM, она не исчезает, а просто «помечается» для удаления - см. DeletionStateCode. Они удаляются каждые (введите произвольное число) часы. Однако в течение этого времени GUID все еще находится в базе данных, поэтому вы не можете вставить другую запись (дубликат PK). Вы можете решить проблему, отбросив всю сущность и воссоздав ее. Почему, черт возьми, Microsoft решила, что это блестящая идея, мне непонятно. Он будет удален. Просто УДАЛИТЬ запись…

    Thanatos22 мая 2009, 21:06
0

Прошу прощения, если я чрезмерно упрощаю решение, но почему бы не добавить настраиваемое поле в обоих экземплярах, которое было бы зеркалом других экземпляров guid?