2

由于 IE10 的 CRM 2011 在线问题,我们决定将所有前端 JavaScript 从 Soap 转换为 oData。一切都很顺利,我安装了 oData 设计器,将查询集中在函数中,但是当我尝试为ServiceActivity检索partylist 字段Resources时遇到了问题。

我使用 oData 查询设计器获得的 oData 查询如下(guid 是一个示例)

ServiceAppointmentSet?$select=Resources&$filter=ActivityId eq guid'83CA6B11-6C0A-E311-8BB5-B499BAFE71A5'

但在响应中,我收到一个错误,即找不到资源字段。

我尝试不使用 select,并调试返回的 oData 对象,但注意到它没有显示ServiceActivity 中的ResourcesCustomers派对列表字段。

ServiceAppointmentSet?$filter=ActivityId eq guid'83CA6B11-6C0A-E311-8BB5-B499BAFE71A5'

有没有人有任何想法?

4

2 回答 2

5

我相信您可以通过使用$expand以允许查询包含serviceappointment_activity_parties关系来获取资源客户。像这样:

ServiceAppointmentSet(guid'83CA6B11-6C0A-E311-8BB5-B499BAFE71A5')?
  $select=
    serviceappointment_activity_parties/ParticipationTypeMask,
    serviceappointment_activity_parties/PartyId
  &$expand=serviceappointment_activity_parties

活动方的 GUID位于PartyId中,ParticipationTypeMask整数允许您确定它是哪种活动方,例如Customer是 11,Resource是 10。可以在此处找到ParticipationTypeMask映射的完整列表。

于 2013-08-26T20:55:23.777 回答
1

大小写问题往往会导致大量 OData 错误。另外,您是否尝试过在 LinqPad 中创建查询(假设它不是 CRM-Online)?我发现生成 OData URL 的速度更快。

于 2013-08-23T12:19:03.947 回答