FetchXML nvarchar不返回任何内容 - CRM的自定义报告

时间:2014-10-02 12:08:45

标签: sql dynamics-crm nvarchar fetchxml

我正在尝试使用FetchXML从Dynamics CRM 2013获取自定义报告的数据。

我使用此页面将以下SQL查询“转换”为FetchXML:http://www.sql2fetchxml.com/

SQL:

SELECT
accountidname,
billto_line1,
billto_postalcode,
billto_city,
invoicenumber,
name,
description
FROM FilteredInvoice 
WHERE invoiceid = @invoiceid

FetchXML:

<fetch mapping="logical">
  <entity name="invoice">
    <attribute name="accountidname" />
    <attribute name="billto_line1" />
    <attribute name="billto_postalcode" />
    <attribute name="billto_city" />
    <attribute name="invoicenumber" />
    <attribute name="name" />
    <attribute name="description" />
    <filter>
      <condition attribute="invoiceid" operator="eq" value="@invoiceid" />
    </filter>
  </entity>
</fetch>

两者,“accountidname”和(例如)“billto_line1”都是NVARCHAR(4000)并且都包含数据,但是如果我尝试执行查询(例如在Visual Studio中的“查询设计器”中),则只有“显示“billto_line1”,而不是“accountidname”的数据。

由于两个字段“accountidname”和“billto_line1”属于同一类型(nvarchar(4000))并且包含数据库中的信息(我使用“Microsoft SQL Server Management Studio”检查),我想知道为什么我可以只收到其中一个的信息。

这种情况发生在NVARCHAR类型的许多不同领域 - 有些是正确显示的,有些则没有 - 而且我不知道为什么。

如果有人能给我一个提示,我会很高兴的。)

谢谢

1 个答案:

答案 0 :(得分:1)

SQL中的

accountidname位于Views上,而不是实际的表中。它不是invoice实体上的字段,因此不会在FetchXml请求中返回任何信息。

您应该能够使用accountid检索帐户的名称 - 我在SSRS中不记得Name的{​​{1}}属性是如何出现的,但它应该可用。

FetchXml转换器擅长将SQL SELECT转换为FetchXml格式并转换连接。它不会验证FetchXml中的SQL字段是否可用 - 这只能通过访问CRM组织的元数据来完成。