Share via


クエリ階層型データ

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 (オンラインおよび設置型) は、特定のエンティティの自己参照型1対多関連付けを階層として定義する機能を導入しています。 これらの階層に関連データを返すクエリを作成できます。

明示的な階層型の関連付けを持つエンティティを照会するために、新しいクエリ条件演算子を利用できます。 これらの演算子は、特に階層型の関連付けとして定義されるエンティティ関係に対してのみ適用されます。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

階層セキュリティ モデルが使用されている場合、現在のユーザーとそのチームまたはユーザーのレポート階層とそのチームを等しくします。

再帰は階層データを照会する時を制限する

階層データを照会するとリソースを大量に消費するので、AboveAboveOrEqualUnderUnderOrEqual、および NotUnder条件演算子を使用して階層を照会できる再帰を、既定で 100 に限定しています。

この制限は、展開 Web サービスの Windows PowerShell コマンドを使用して調整できます。詳細: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 での階層ビジュアル化

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権