2009-05-21 5 views
2

Dynamics CRM 사용 엔티티의 인스턴스를 만들려고합니다. 수동으로 GUID를 설정하고 싶습니다만, DynamicEntity에 대한 기본 키인 속성이 있으면 다음과 같은 오류가 발생합니다.특정 GUID를 사용하여 새 레코드를 만드는 방법

서비스 내가 DynamicEntity를 구축하고, 실패하는 요청이 [엔티티 이름] id 속성을 원인 설정 요청

를 처리 할 수 ​​있습니다. 두 CRM 인스턴스간에 데이터를 이동하기 때문에 CRM간에 레코드를 복사하는 더 좋은 방법을 아는 사람이라면 그렇게 할 수 있습니다. 그렇지 않으면 GUID의 요점 인 인스턴스간에 일치시킬 GUID를 원합니다.

답변

3

다행히도이 두 CRM 인스턴스에서이 작업을 수행 할 수 있습니다. ! 동료가 해결책을 알고 있었기 때문에 신용은 정말로 그에게 속한 것입니다.

실수로 UniqueIdentifierProperty 유형의 속성을 만드는 중입니다. 엔티티의 기본 키 속성은 KeyProperty으로 채워야합니다. 이 두 속성은 거의 동일합니다. 속성 유형은 Key를 보유한다는 점을 제외하고는 다른 속성은 UniqueIdentifier입니다. Key/UniqueIdentifier에는 모두 GUID가 있습니다. (Microsoft의 또 다른 날!)

정확하게 내가하고있는 일은 DynamicEntity를 만들고 엔티티 이름을 채우고 대부분의 특성을 채우는 것입니다. PK 속성 (메타 데이터에서 결정할 수 있음)은 KeyProperty로 채울 수 있습니다. 나는 그것을 UniqueIdentifierProperty로 채우고있었습니다. UniqueIdentifierProperty는 CRM이 거부하고 알기 쉽고 도움이되지 않는 오류 메시지로 응답합니다.

+1

* sigh * 플롯이 두꺼워집니다. 위의 작동하지만 CRM은 여전히 ​​방해가됩니다. CRM에서 레코드를 삭제하면 실제로 사라지지 않고 단순히 삭제 대상으로 표시됩니다 (DeletionStateCode 참조). 이들은 (여기에 임의의 숫자를 입력하십시오) 시간마다 삭제됩니다. 그러나 그 시간 동안 GUID는 여전히 데이터베이스에 있으므로 다른 레코드 (중복 PK)를 삽입 할 수 없습니다. 전체 엔터티를 삭제하고 다시 생성하여 문제를 해결할 수 있습니다. 왜 신의 이름으로 마이크로 소프트는 이것이 나보다 더 밝은 생각이라고 판단했다. 그것은 삭제 될 것입니다. 그냥 레코드를 버리십시오 ... – Thanatos

0

솔루션을 과도하게 단순화하는 경우 사과하지만 다른 인스턴스 GUID의 미러가 될 두 인스턴스 모두에 사용자 정의 필드를 추가하지 않는 이유는 무엇입니까?

관련 문제