我正在尝试使用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类型的许多不同领域 - 有些是正确显示的,有些则没有 - 而且我不知道为什么。
如果有人能给我一个提示,我会很高兴的。)
谢谢
答案 0 :(得分:1)
accountidname
位于Views上,而不是实际的表中。它不是invoice
实体上的字段,因此不会在FetchXml请求中返回任何信息。
您应该能够使用accountid
检索帐户的名称 - 我在SSRS中不记得Name
的{{1}}属性是如何出现的,但它应该可用。
FetchXml转换器擅长将SQL SELECT转换为FetchXml格式并转换连接。它不会验证FetchXml中的SQL字段是否可用 - 这只能通过访问CRM组织的元数据来完成。