CRM 4.0在发布过程中引发异常



我正在尝试发布从另一个租户导入的帐户实体,并且在跟踪日志中收到以下消息:

错误:对象引用未设置为对象的实例。错误消息:对象引用未设置为对象的实例。源文件:不可用行号:不可用请求URL:http://crm1.blablabl.com/tenant/AppWebServices/SystemCustomization.asmx堆栈跟踪信息:[NullReferenceException:对象引用未设置为对象的实例。]位于Microsoft.Crm.ObjectModel.OrganizationUIService.LabelLoaderAllLanguages.LoadMetadataLabel(Int32实体类型,字符串属性名称,ExecutionContext上下文)位于Microsoft.Crm.ObjectModel.OrganizationUIService.LabelLoader.LoadCellLabel(Guid cellObjectId,String cellObjectColumnName,Int32 objectType,String attributeName,ExecutionContext上下文)位于Microsoft.Crm.ObjectModel.OrganizationUIService.InsertFormLabels(IBusinessEntity实体、ILabelLoader labelLoader、ExecutionContext上下文)位于Microsoft.Crm.ObjectModel.OrganizationUIService.RemorieveMultipleWithAllLanguages(EntityExpression EntityExpression,ExecutionContext上下文)位于Microsoft.Crm.Metadata.OrganizationUIHelper.RetrieveInProductionHelper(Int32对象类型代码,ExecutionContext上下文)位于Microsoft.Crm.Metadata.UsageHelper.CheckForms(Guid attributeId、DynamicMetadataCache mdCache、ExecutionContext上下文)位于Microsoft.Crm.Metadata.UsageHelper.GetAttributeUsageInfo(Guid attributeId、Guid relationshipId、DynamicMetadataCache mdCache、ExecutionContext上下文)位于Microsoft.Crm.Metadata.UsageHelper.GetEntityUsageInfo(Guid entityId,DynamicMetadataCache mdCache,ExecutionContext上下文)位于Microsoft.Crm.Metadata.EntityService.GetUsageInfo(Guid entityId,ExecutionContext上下文)位于Microsoft.Crm.Metadata.EntityService.GetUsageInfo(Guid entityId)位于Microsoft.Crm.Application.WebServices.SystemCustomization.EntityDelete.Execute(IUser用户,Guid entityId)位于Microsoft.Crm.Application.WebServices.SystemCustomization.SystemCustomization.DeleteEntity(Guid entityId)

想出了我自己的解决方案:

账户代码的实体类型为1,因此如果您在CRM数据库上运行以下查询:

SELECT  * FROM [MYTENANT_MSCRM].[dbo].[OrganizationUIBase] where [ObjectTypeCode] = 1

您应该看到两行,它们表示已发布和未发布的表单定义。

其中一个表单存在问题(是的,发布的表单可能存在问题,这将阻止您发布有效的新表单)。您需要做的是查看每行中的FormXml字段中的以下内容:

  • 包含不存在字段的单元格
  • 具有已不存在关系的单元格

您也可以尝试一个消除过程。一次删除一个单元格,用相同的FormXML更新BOTH记录,然后尝试再次发布。

这可能需要一些时间,但这会解决你的问题。

最新更新