Contactエンティティにカスタム属性( "custom_contacttype")を追加しました。この属性は、7つの値で構成される選択リストタイプです。CRM4.0に対してMicrosoftDynamicsCRMのAdvancedDeveloperExtensionsを使用して開発しています。この属性の値を設定してSaveChanges()を呼び出すと、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。エラー。私はしばらくこれと戦ってきました。私は何が間違っているのですか?以下は私のコードです:
var crm = new CrmDataContext(context.Connection);
var saveContact = crm.GetEntities("contact").Where(p => p.GetPropertyValue<Guid> ("contactid") == contact.Id.Value).Single();
saveContact.SetPropertyValue("custom_contacttype", 2, typeof(Picklist));
crm.UpdateObject(saveContact);
crm.SaveChanges();
CRMサーバーからのトレースログ:[2011-07-01 16:39:33.7]プロセス:w3wp |組織:f827deb3-c6cc-df11-bc07-005056887b79 |スレッド:8 |カテゴリ:Platform.Sdk |ユーザー:822138f1-c574- e011-9dca-005056887b79 |レベル:エラー| PluginStep.Execute at PluginStep.Execute(PipelineExecutionContext context)at Pipeline.Execute(PipelineExecutionContext context)at MessageProcessor.Execute(PipelineExecutionContext context)at InternalMessageDispatcher.Execute(PipelineExecutionContext context)at ExternalMessageDispatcher.Execute(String messageName、Int32 primaryObjectTypeCode、Int32フィールド、CorrelationTokencorrelationToken、CallerOriginToken originToken、UserAuth userAuth、Guid callerId)at CrmServiceInternal.Update(String namespaceName、BusinessEntityBase entity、CorrelationTokencorrelationToken、
SdkMessageProcessingStepIdでWebサービスプラグインが失敗しました:{27DF4121-19BC-DF11-A90E-005056887B79}; EntityName:連絡先; ステージ:10; メッセージ名:更新; AssemblyName:AccessCRM.ChangeLogContactData、AccessCRM、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = a030c130976783ab; クラス名:AccessCRM.ChangeLogContactData; 例外:未処理例外:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。AccessCRM.PluginUtilities.GetStringValueFromProperty(Property p)at AccessCRM.ChangeLogContactData.Execute(IPluginExecutionContext context)at Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context)。[2011-07-01 16:39:33.7]プロセス:w3wp |組織:f827deb3-c6cc-df11-bc07-005056887b79 |スレッド:8 |カテゴリ:Platform.Sdk |ユーザー:822138f1-c574-e011-9dca-005056887b79 |レベル:エラー| PluginExecutionExceptionHandler.Handle at PluginExecutionExceptionHandler.Handle(Stream from、Stream to、Exception exception)at CompositeSoapExtensionExceptionHandler.Handle(Stream to、Stream from、Exception exception)at CrmAuthenticationSoapExtensionBase.ProcessMessage(SoapMessage message)at SoapMessage.RunExtensions(SoapExtension [] extends、Boolean throwOnException)at SoapServerProtocol.WriteException(Exception e、Stream outputStream)at WebServiceHandler.WriteException(Exception e)at WebServiceHandler.Invoke()at WebServiceHandler.CoreProcessRequest()at SyncSessionlessHandler.ProcessRequest(HttpContext context)atCallHandlerExecutionStep.System.Web.HttpApplication。 HttpApplicationでのIExecutionStep.Execute()。ExecuteStep(IExecutionStep step、Boolean&completedSynchronously)at ApplicationStepManager.ResumeSteps(Exception error)at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context、AsyncCallback cb、Object extraData)at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)at HttpRuntime.ProcessRequestNoDemand wr)at ISAPIRuntime.ProcessRequest(IntPtr ecb、Int32 iWRType)CrmSoapExtensionがInvalidPluginExecutionExceptionを検出しました:System.Web.Services.Protocols.SoapException:サーバーは要求を処理できませんでした。---> Microsoft.Crm.Sdk.InvalidPluginExecutionException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。---> System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。AccessCRM.PluginUtilitiesで。