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

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

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

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


person Thanatos    schedule 21.05.2009    source источник


Ответы (2)


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

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

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

person Thanatos    schedule 22.05.2009
comment
вздох Сюжет сгущается. Хотя все вышеперечисленное работает, CRM все еще мешает. Если вы удаляете запись в CRM, она на самом деле не исчезает, она просто помечается для удаления — см. DeletionStateCode. Они удаляются каждые (вставьте произвольное число) часов. Однако в течение этого времени GUID все еще находится в базе данных, поэтому вы не можете вставить другую запись (дублировать PK). Вы можете решить проблему, отбросив всю сущность и воссоздав ее. Почему, во имя Бога, Microsoft решила, что это блестящая идея, мне непонятно. Он будет удален. Просто СНЯТЬ запись... - person Thanatos; 23.05.2009

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

person Community    schedule 20.06.2009