分享方式:


查詢階層式資料

 

發佈日期: 2016年11月

適用對象: Dynamics CRM 2015

Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 引進定義自我參考一對多實體關聯為階層式的功能。 您可以寫入查詢,傳回這些階層的相關資料。

您可善用新的查詢條件運算子,查詢具有明確階層式關聯的實體。 這些運算子只適用於明確定義為階層式關聯的實體關聯。 使用 QueryExpressionFetchExpression 查詢時,您可以使用新的條件運算子擷取此階層式資料。

備註

OData 端點未變更為支援查詢階層式資料。

階層式資料的條件運算子

查詢階層式資料時,請使用下列運算子設定條件。

FetchXML

ConditionOperator

描述

above

Above

傳回參照之記錄的階層式上階行的所有記錄。

eq-or-above

AboveOrEqual

傳回參照之記錄與階層中其上的所有記錄。

under

Under

傳回階層中參照之記錄下的所有下層記錄

eq-or-under

UnderOrEqual

傳回參照之記錄與階層中其下的所有下層記錄

not-under

NotUnder

傳回不在階層中參照之記錄下的所有記錄

eq-owneduseroruserhierarchy

OwnedByMeOrMyReports

在使用階層式安全性模型時,等於目前使用者或他的下屬階層

eq-useroruserhierarchyandteams

OwnedByMeOrMyReportsAndTeams

在使用階層式安全性模型時,等於目前使用者和他的團隊或他的下屬階層及其團隊

查詢階層式資料時的遞迴限制

因為查詢階層式資料需要大量資源,所以使用 AboveAboveOrEqualUnderUnderOrEqualNotUnder 條件運算子時,階層式查詢的條件有 100 個遞迴預設限制。

使用 Windows PowerShell 命令透過部署 Web 服務,這些限制可以調整。其他資訊:TechNet:使用 Windows PowerShell 管理部署工作

OwnedByMeOrMyReportsOwnedByMeOrMyReportsAndTeams 是取決於 [階層深度] 設定 (可以在 [設定] > [安全性] > [階層安全性] 中找到) 的階層安全性條件運算子。 此設定的值儲存在 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. 著作權所有,並保留一切權利。 著作權