MS CRM 2011 Создать запись и получить ее Guid - PullRequest
1 голос
/ 09 декабря 2011

Я пишу плагин для создания записей и сталкиваюсь со следующей проблемой:

У меня есть 2 лица. Entity1 и Entity2. Entity2 имеет отношение n-1 к Entity1 и также получил поле поиска для Entity1 в своей форме. В своем коде плагина я создаю запись Entity1, и после этого я хочу создать запись Entity2 с полем поиска (для Entity1), заполненным только что созданной записью Entity1. Но я получил ошибку. Мой код выглядит так:

Entity entity1 = new Entity("new_entity1");
//Here I'm filling my entity1's fields
Guid entity1Id = service.Create(entity1);

Entity entity2 = new Entity("new_entity2");
//Here I'm filling my entity2's fields
entity2 ["new_entity1id"] = new EntityReference("new_entity1",entity1Id);

service.Create(entity2);

Я новичок в разработке CRM, поэтому не могу распознать проблему. Я предполагаю, что, возможно, все создается, когда код плагина заканчивается, поэтому запись Entity1 не создается ко времени, когда я создаю запись Entity2, но это только мое предположение.

Любая помощь будет великолепна.

Сообщение об ошибке:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx]]: An error occured in the AccountCreateHandler plug-inDetail:  <OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">   <ErrorCode>-2147220891</ErrorCode>   <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
    <KeyValuePairOfstringanyType>
      <d2p1:key>OperationStatus</d2p1:key>
      <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">0</d2p1:value>
    </KeyValuePairOfstringanyType>   </ErrorDetails>   <Message>An error occured in the AccountCreateHandler plug-in</Message>   <Timestamp>2011-12-09T14:17:22.2773373Z</Timestamp>   <InnerFault i:nil="true" />   <TraceText>

[Execute_Buchen: Execute_Buchen.Class1] [dc2f71e8-b216-e111-b59f-00155d0a3339: Execute_Buchen.Class1: Update of new_entity0 START:IPlugin.Execute

</TraceText> </OrganizationServiceFault>

1 Ответ

2 голосов
/ 09 декабря 2011

Вместо этого попробуйте сделать это таким образом.

entity2.Attributes.Add("new_entity1id",new EntityReference("new_entity1",entity1Id));

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

Либо new_entity1id является неправильным именем поля для entity2

или

Это поле поиска ищет другой объект и пытается сохранить EntityReferenceвы создаете бросает исключение.

...