我想列出联系人设置为必需参与方的约会。我在我的组织中运行以下查询。
服务终点设置如下。
https://bazinga/XRMServices/2011/OrganizationData.svc/AppointmentSet?
然后我将以下内容连接起来。
$select=
ScheduledStart,
ModifiedOn,
appointment_activity_parties/PartyId
&$top=1000
&$filter=
ModifiedOn gt DateTime'2014-08-21'
&$expand=appointment_activity_parties
这给了我一些约会的清单,当我调查内容时,我可以清楚地看到一个名为 PartId 的标签 Id , Name 等等。信息有。然后我手工检查我很好奇的联系人的指南,并在指定它的过滤器中添加另一个条件。
$select=
ScheduledStart,
ModifiedOn,
appointment_activity_parties/PartyId
&$top=1000
&$filter=
(ModifiedOn gt DateTime'2014-08-21')
and (appointment_activity_parties/PartyId eq guid'...')
&$expand=appointment_activity_parties
然而,愚蠢的组织服务表示没有属性 PartyId 存在。当我尝试添加 / Id 时,它会在查询时说明不支持复杂数据类型。我敢肯定这只是一个很小的语法,但几个小时后又生病了,累了。我错过了什么?!
答案 0 :(得分:1)
您在[{1}}条款背后的方案是,您希望找到(appointment_activity_parties/PartyId eq guid'...')
Appointmentset
中PartyId
等于某个GUID的约会。但是,如果其appointment_activity_parties
的任何的PartyId
等于该GUID,或者您希望仅在 appointment_activity_parties
PartyId
的所有等于该GUID。
任何和所有差异在section 5.1.1.2 of OData V4 Protocol part 2: URL Conventions.
中指定因此,您可以按如下方式重写查询:
appointment_activity_parties
您可以根据实际需要选择修改$select=
ScheduledStart,
ModifiedOn,
appointment_activity_parties/PartyId
&$top=1000
&$filter=
(ModifiedOn gt DateTime'2014-08-21')
and (appointment_activity_parties/any(a:a/PartyId eq guid'...'))
&$expand=appointment_activity_parties
至any
。