2014-02-26 39 views
1

試想兩個表:CRM動態:OData的字符串的JavaScript

TABLE A   |TABLE B 
Entity   |Id 
Id    |name 
Points   |Ranking   

如何使用排序依據與$拓展:

$select=Entity,Id,Points,A_B/name&$orderby=Id asc&$expand=A_B 

我如何通過排名順序是從表B?我已經試過:

$select=Entity,Id,Points,A_B/name,A_B/Ranking&$orderby=A_B/Ranking asc&$expand=A_B 

不工作 它會出現以下錯誤:

:: Error : 500: Internal Server Error: The expression 'IIF((Convert(value(Microsoft.Crm.Extensibility.OrganizationDataServiceVisitingQueryProvider).GetValue(p, value(System.Data.Services.Providers.ResourceProperty))) == null), null, 

這意味着什麼?

回答

1

我相信你不能按擴展實體的字段進行排序。您應該尋找其他解決方法來實現這一目標。

1

您可以使用$ expand將表B連接到您的ODATA查詢,但不幸的是,您只能對主要實體進行排序。

您可以在擴展實體進行過濾,所以你可能會扭轉你的邏輯和B選擇加入一個,爲了在B,然後在A.

http://blogs.msdn.com/b/crm/archive/2011/03/02/using-odata-retrieve-in-microsoft-dynamics-crm-2011.aspx?Redirected=true

http://msdn.microsoft.com/en-us/library/gg309461.aspx

過濾如果您發現OData端點受到限制,則始終可以選擇使用FetchXML。我使用https://github.com/paul-way/JCL,但在codeplex上還有其他功能可以提供更多功能。我寫了JCL,所以我是部分的。