2014-10-02 24 views
1

我正在尝试使用FetchXML从Dynamics CRM 2013中获取自定义报告的数据。FetchXML nvarchar不会返回任何内容 - 客户关系管理的自定义报告

I “转换” 下面的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”的数据n,而不是“accountidname”的数据。由于“accountidname”和“billto_line1”这两个字段的类型相同(nvarchar(4000))并且包含数据库中的信息(我使用“Microsoft SQL Server Management Studio”对其进行了检查),所以我想知道为什么我只能从这两者中的一个接收信息。

这种情况发生在NVARCHAR类型的许多不同字段中 - 有些显示正确,有些则不正确 - 我不知道为什么。

我会很高兴,如果有人可以给我一个提示:)

谢谢

回答

1

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

您应该能够通过使用accountid检索帐户的名字 - 我不记得SSRS如何的EntityReferenceName属性浮出水面,但它应该是可用的。

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

+1

感谢您的快速回复(对于我迟到的回放感到抱歉 - 我几天没有离开办公室)。你的解释是有道理的,而且自从我开始访问实际的表格(不仅是视图),一切似乎都很好。谢谢 - 你让我(和我的老板)开心:) – MischCon 2014-10-06 10:51:22

相关问题