9

問題

リンクされたエンティティの集計カウントが期待どおりに動作しない Fetch XML クエリがあります。基本的にはコースの一覧を返し、現在そのコースに登録されている連絡先の数を取得していますが、コースに誰も登録していない場合でも、登録されている連絡先は 1 件です。連絡先を 1 件登録するとカウントが 1 になります。連絡先を 5 件登録するとカウントが 5 になるため、関連するレコードがない場合にカウントが 0 にならないという問題は解決しているようです。 .

フェッチ XML は次のとおりです。

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false" aggregate="true">
  <entity name="new_coursesection">
    <attribute name="new_termscheduleid" groupby="true" alias="new_termscheduleid" />
    <attribute name="new_termid" groupby="true" alias="new_termid" />
    <attribute name="new_sectionname" groupby="true" alias="new_sectionname" />
    <attribute name="new_name" groupby="true" alias="new_name" />
    <filter type="and">
      <condition attribute="new_courseid" operator="eq" value="{some guid}" />
      <condition attribute="statecode" operator="eq" value="0" />
    </filter>
    <link-entity name="new_contactcoursesection" from="new_coursesectionid" to="new_coursesectionid" alias="new_contactcoursesection1" link-type="outer">
      <attribute name="new_contactcoursesectionid" aggregate="count" alias="coursecount" />
      <filter>
        <condition attribute="statecode" operator="eq" value="0"/>
      </filter>
      <order alias="coursecount" descending="true" />
    </link-entity>
  </entity>
</fetch>

誰かがこの問題に遭遇し、回避策を知っていますか?

4

1 に答える 1

12

トレース ログを有効にして生成された SQL を確認した後、問題を把握しました。count を countcolumn に変更する必要がありました:

壊れた

<attribute name="new_contactcoursesectionid" aggregate="count" alias="coursecount" />

修理

<attribute name="new_contactcoursesectionid" aggregate="countcolumn" alias="coursecount" />

FetchXML でリンクされたエンティティの集計値を処理する場合、CRM 2011 にバグがあると思いますが。エイリアスでマークされていても、AttributeCollection のキーはエイリアス名を正しく使用しますが、Attribute コレクションの AliasedValue はエイリアス名ではなく実際の CRM 名を使用します。変...

于 2012-08-28T18:14:06.513 に答える