2009-05-21 21 views
2

Mit dem Dynamics CRM versuche ich eine Instanz einer Entität zu erstellen. Ich möchte die GUID manuell festlegen, aber wenn ich das Attribut hatte, das der Primärschlüssel für die DynamicEntity ist, erhalte ich folgenden Fehler.So erstellen Sie einen neuen Datensatz mit einer bestimmten GUID

-Dienst konnte nicht Anfrage bearbeiten

Ich baue eine DynamicEntity und Einstellen des [entityname] id-Attribut bewirkt, dass die Anforderung zum Scheitern verurteilt. Es bewegt Daten zwischen zwei CRM-Instanzen. Wenn also jemand eine bessere Möglichkeit zum Kopieren von Datensätzen zwischen CRMs kennt, würde das auch funktionieren. Ansonsten möchte ich, dass die GUID über Instanzen hinweg übereinstimmt ... da dies der Punkt einer GUID ist.

Antwort

3

Glücklicherweise ist es IS möglich, dies über zwei CRM-Instanzen zu tun! Ein Mitarbeiter kannte die Lösung, also gehört ihm der Kredit wirklich.

Mein Fehler war das Erstellen einer Eigenschaft mit dem Typ UniqueIdentifierProperty. Das Primärschlüsselattribut für eine Entität muss mit einer KeyProperty ausgefüllt werden. Diese beiden Eigenschaften sind nahezu identisch - die Eigenschaftstypen sind, mit der Ausnahme, dass einer einen Schlüssel und der andere einen UniqueIdentifier enthält. Der Key/UniqueIdentifier enthält GUIDs. (Ein anderer Tag in den Köpfen von Microsoft!)

Genau was ich mache, ist das Erstellen einer DynamicEntity, das Ausfüllen des Entitätsnamens und das Ausfüllen der Mehrheit der Attribute. Das PK-Attribut (das Sie aus den Metadaten ermitteln können) kann mit einer KeyProperty ausgefüllt werden. Ich füllte es mit einer UniqueIdentifierProperty aus, die CRM ablehnt und mit einer unscheinbaren und nicht hilfreichen Fehlermeldung antwortet.

+1

* seufz * Die Handlung verdichtet sich. Während das obige funktioniert, steht CRM immer noch im Weg. Wenn Sie einen Datensatz im CRM löschen, ist er nicht wirklich weg, er wird lediglich zum Löschen "markiert" - siehe DeletionStateCode. Diese werden alle Stunden (beliebige Zahl hier einfügen) gelöscht. Während dieser Zeit befindet sich die GUID immer noch in der Datenbank, Sie können also keinen weiteren Datensatz einfügen (doppelte PK). Sie können das Problem umgehen, indem Sie die gesamte Entität löschen und neu erstellen. Warum in Gottes Namen entschied Microsoft, dass dies eine gute Idee war, ist jenseits meiner. Es wird gelöscht. TROPFEN Sie den Rekord einfach ... – Thanatos

0

Ich entschuldige mich, wenn ich die Lösung zu viel vereinfache, aber warum nicht ein benutzerdefiniertes Feld in beiden Fällen hinzufügen, die ein Spiegel der anderen Instanzen Guid wäre?

Verwandte Themen