使用Odata

时间:2017-01-11 20:50:15

标签: c# .net odata dynamics-crm-2011 crm

鉴于具体的活动,我们说它是ServiceAppointment,我们如何检索与之相关的所有资源?

我知道ActivityPartySet存储了活动和partyid之间的关系。

每个 ServiceAppointment 可能包含一个或多个资源。每个资源都有一个partyid。

是否可以使用odata (OrganizationData.svc)来检索特定ServiceAppointmnet的所有资源?

我尝试使用odata query designer来生成查询,但没有成功。

如何使用odata检索指定活动的所有资源?

1 个答案:

答案 0 :(得分:1)

您可以使用以下高级查找查询检索所有类型为user的资源:

Advanced find of users assigned as resources to a specific Service Activity

正如您所看到的,我们需要过滤两件事:服务活动(serviceappointment)的指导和活动方的参与类型(否则我们同时获得资源和所有者)。

我们不能在OData中同时具备这两个条件。我们能得到的最接近的是:

OrganizationData.svc/ActivityPartySet?
$select=PartyId&
$filter=serviceappointment_activity_parties/ActivityId eq (guid'<guid-here>')

此查询将检索与给定服务活动相关的所有活动方。不幸的是,查询包括资源以及服务活动的所有者。如果这是不可接受的,您应该考虑使用其他一个Web服务进行查询。