查詢階層式資料
發佈日期: 2016年11月
適用對象: Dynamics CRM 2015
Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 引進定義自我參考一對多實體關聯為階層式的功能。 您可以寫入查詢,傳回這些階層的相關資料。
您可善用新的查詢條件運算子,查詢具有明確階層式關聯的實體。 這些運算子只適用於明確定義為階層式關聯的實體關聯。 使用 QueryExpression 或 FetchExpression 查詢時,您可以使用新的條件運算子擷取此階層式資料。
備註
OData 端點未變更為支援查詢階層式資料。
階層式資料的條件運算子
查詢階層式資料時,請使用下列運算子設定條件。
FetchXML |
ConditionOperator |
描述 |
---|---|---|
above |
Above |
傳回參照之記錄的階層式上階行的所有記錄。 |
eq-or-above |
AboveOrEqual |
傳回參照之記錄與階層中其上的所有記錄。 |
under |
Under |
傳回階層中參照之記錄下的所有下層記錄 |
eq-or-under |
UnderOrEqual |
傳回參照之記錄與階層中其下的所有下層記錄 |
not-under |
NotUnder |
傳回不在階層中參照之記錄下的所有記錄 |
eq-owneduseroruserhierarchy |
OwnedByMeOrMyReports |
在使用階層式安全性模型時,等於目前使用者或他的下屬階層 |
eq-useroruserhierarchyandteams |
OwnedByMeOrMyReportsAndTeams |
在使用階層式安全性模型時,等於目前使用者和他的團隊或他的下屬階層及其團隊 |
查詢階層式資料時的遞迴限制
因為查詢階層式資料需要大量資源,所以使用 Above、AboveOrEqual、Under、UnderOrEqual 和 NotUnder 條件運算子時,階層式查詢的條件有 100 個遞迴預設限制。
使用 Windows PowerShell 命令透過部署 Web 服務,這些限制可以調整。其他資訊:TechNet:使用 Windows PowerShell 管理部署工作。
OwnedByMeOrMyReports 和 OwnedByMeOrMyReportsAndTeams 是取決於 [階層深度] 設定 (可以在 [設定] > [安全性] > [階層安全性] 中找到) 的階層安全性條件運算子。 此設定的值儲存在 Organization.MaxDepthForHierarchicalSecurityModel 屬性中。
擷取階層式相關的下層記錄數目
使用 FetchXML 查詢中的 rowaggregate 屬性,以擷取階層式相關的下層記錄數目。 當此值設定為 CountChildren 時,EntityCollection 中包含值,指出記錄之下層記錄總數。 例如,下列查詢包含 AccountChildren 彙總值,代表階層式關聯中的下層客戶記錄數目,其中 {0} 參數代表上層記錄的 AccountId。
<fetch distinct='false' no-lock='false' mapping='logical'>
<entity name='account'>
<attribute name='name' />
<attribute name='accountid' />
<attribute name='accountid' rowaggregate='CountChildren' alias='AccountChildren'/>
<filter type='and'>
<condition attribute='accountid' operator='under' value='{0}' />
</filter>
</entity>
</fetch>
備註
傳回的彙總值代表所有下層記錄,包括使用者可能無權讀取的資料。
另請參閱
ConditionOperator
自訂實體關聯中繼資料
使用 FetchXML 建立查詢
使用 QueryExpression 建立查詢
FetchXML schema
影片:Microsoft Dynamics CRM 2015 的階層視覺效果
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權