2014-10-02 25 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

相關問題