まず、クエリは次のとおりです。
<fetch mapping='logical'>
<entity name='listmember'>
<link-entity name='list' from='listid' to='listid'>
<attribute name='listname'/>
</link-entity>
<link-entity name='contact' from='contactid' to='entityid'>
<attribute name='fullname'/>
<attribute name='emailaddress1'/>
</link-entity>
</entity>
</fetch>
結果の例:
<resultset morerecords='0' paging-cookie='<cookie page="1"><listmemberid last="{E1B03485-0000-0000-0000-00155D107003}" first="{A74C877A-0000-0000-0000-00155D107003}" /></cookie>'>
<result>
<listmemberid>{A74C877A-0000-0000-0000-00155D107003}</listmemberid>
<listid.listname>List 1</listid.listname>
<entityid.fullname>Amy Pickle</entityid.fullname>
<entityid.emailaddress1>apickle@domain.com</entityid.emailaddress1>
</result>
<result>
<listmemberid>{A94C877A-0000-0000-0000-00155D107003}</listmemberid>
<listid.listname>List 2</listid.listname>
<entityid.fullname>Andrew Colley</entityid.fullname>
<entityid.emailaddress1>colley@domain.com</entityid.emailaddress1>
</result>
</resultset>
これを一般的な用語でどれだけうまく説明できるかわかりませんが、
- リストのメンバーを探しているので
listmember
、返すルート エンティティである必要があります
- 表示する属性を含むエンティティとの関係ごとに、 を定義する必要があります
link-entity
(この場合、1 つlist
はリスト名を取得するためのもので、もう 1 つcontact
は連絡先の詳細を取得するためのものです)。
- 特定の のみを表示したい
attribute
ので、それぞれをlink-entity
- フィルタリングを指定しなかったため、連絡先であるすべてのリストのすべてのメンバーシップが返されます
これらを手作業で行うことはありません。以前は James Downey の FetchXML Builder を使用していましたが、これはもう利用できないと思います。Stunnwareは同様のツールを提供しています。