CRM 2011 - 错误提前搜索PhoneCall实体

时间:2014-07-01 13:20:40

标签: dynamics-crm-2011 crm

我在测试环境中预先搜索PhoneCall实体时遇到问题(但在生产环境中也是如此)。我没有使用英文版,所以我会描述一切,而不是截图。

尝试查找定义为非null ToRecipent的所有PhoneCall。

下载FetchXML:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="phonecall">
    <attribute name="subject" />
    <attribute name="statecode" />
    <attribute name="prioritycode" />
    <attribute name="scheduledend" />
    <attribute name="regardingobjectid" />
    <attribute name="rlpl_status" />
    <attribute name="directioncode" />
    <attribute name="phonenumber" />
    <attribute name="ownerid" />
    <attribute name="to" />
    <order attribute="subject" descending="false" />
    <link-entity name="activityparty" from="activityid" to="activityid" alias="aa">
      <filter type="and">
        <condition attribute="participationtypemask" operator="eq" value="2" />
        <condition attribute="partyid" operator="not-null" />
      </filter>
    </link-entity>
  </entity>
</fetch>

而不是结果我可以在网站上看到标准的意外错误。我已经运行了CRM 2011诊断工具来读取那里发生的事情,并在select语句后发现了这个异常:

Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
   at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values)
   at Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IServiceProvider serviceProvider)
   at Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)
Inner Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Crm.ObjectModel.CommunicationActivityServiceBase.RetrieveMultiple(EntityExpression entityExpression, ExecutionContext context)

我在数据库上执行了相同的查询,并成功返回了结果。看起来CRM在加载和转换此信息时存在问题。 我在高级搜索电话实体中找到了与另外2个自定义链接实体相同的错误,但其余的看起来很好。

更重要的是...... 我从高级搜索中删除了ToRecipent列,结果显示出来了,但无论我点击它们多少次,我都无法打开它们。

下载FetchXML:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="phonecall">
    <attribute name="subject" />
    <attribute name="statecode" />
    <attribute name="prioritycode" />
    <attribute name="scheduledend" />
    <attribute name="regardingobjectid" />
    <attribute name="rlpl_status" />
    <attribute name="directioncode" />
    <attribute name="phonenumber" />
    <attribute name="ownerid" />
    <order attribute="subject" descending="false" />
    <link-entity name="activityparty" from="activityid" to="activityid" alias="ab">
      <filter type="and">
        <condition attribute="participationtypemask" operator="eq" value="2" />
        <condition attribute="partyid" operator="not-null" />
      </filter>
    </link-entity>
  </entity>
</fetch>

我甚至删除了除一个以外的所有电话,以确保它与损坏的测试数据无关。仍有例外情况出现。怎么了?

1 个答案:

答案 0 :(得分:0)

这是微软,因此通常只有一个好的解决方案解决了问题:#34;关闭 - &gt;打开&#34;。

PhoneCall实体的高级搜索取决于高级搜索视图。

我不知道为什么但数据库中的这个视图被破坏了。

CRM中有一个简单的解决方案可以解决这样的问题。添加任何列以查看,保存,发布,删除此列,保存,发布。我们没有做任何更改,但我们强制服务器在数据库中重建视图。

现在一切都很好。

干杯。