如何在CRM 2011中使用Javascript和oData获取PartyList字段的值

How to get value of PartyList field using Javascript and oData in CRM 2011

本文关键字:获取 oData PartyList 字段 Javascript CRM 2011      更新时间:2023-09-26

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

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

服务预约集$select=资源&filter=ActivityId eq guid'83CA6B1-6C0A-E311-8B5-B499BAFE71A5'

但在响应中,我得到一个错误,即找不到Resources字段。

我尝试不使用select,并调试了返回的oData对象,但注意到它没有同时显示ServiceActivity中的ResourcesCustomerspartylist字段。

服务预约集$filter=ActivityId eq guid'83CA6B1-6C0A-E311-8B5-B499BAFE71A5'

有人有什么想法吗?

我相信您可以通过使用$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整数允许您确定它是什么类型的活动方,例如客户是11,Resource为10。ParticipationTypeMask映射的完整列表可以在这里找到。

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