我寫一個插件,用於創建記錄和我現在面臨如下問題:MS CRM 2011創建記錄並獲得它的GUID
我有2個實體。實體1和實體2。 Entity2與Entity1有一個n-1的關係,並且在它的表單上也有一個Entity1的lookupfield。在我的插件代碼中,我創建了一個Entity1記錄,之後我想創建一個Entity2記錄,其中包含剛剛創建的Entity1記錄的lookupfield(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,然後使用guid創建實體2 – Chris
您是否使用了正確的實體名稱和字段?在執行過程中,它說'Update new_entity0'與您發佈的代碼相比較? – Chris
是的,我將它重命名爲「new_entity0」。這也不是我的問題(實體1或實體2)的實體之一。事實是,如果我刪除行: entity2 [「new_entity1id」] =新的EntityReference(「new_entity1」,entity1Id); 發佈在我的問題上的記錄創建,當然在entity2記錄上有空查找域 – user1016077