【问题标题】:How to get value of PartyList field using Javascript and oData in CRM 2011如何在 CRM 2011 中使用 Javascript 和 oData 获取 PartyList 字段的值
【发布时间】:2013-08-23 07:32:31
【问题描述】:

由于 IE10 的 CRM 2011 在线问题,我们决定将所有前端 JavaScript 从 Soap 转换为 oData。一切正常,我安装了 oData 设计器,将查询集中在函数中,但是当我尝试检索 ServiceActivity 的派对列表字段 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'

有人有什么想法吗?

【问题讨论】:

    标签: javascript dynamics-crm-2011 dynamics-crm odata


    【解决方案1】:

    我相信您可以通过使用 $expand 来获得 ResourcesCustomers 以允许查询包含 serviceappointment_activity_parties em> 关系。像这样:

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

    activityparty 的 GUID 可以在 PartyId 中找到,ParticipationTypeMask 整数可以让你弄清楚它是什么类型的活动方,例如 Customer 是 11,Resource 是 10。ParticipationTypeMask 映射的完整列表可以在 here 找到。

    【讨论】:

    • 您先生节省了一天和大量时间,这些时间本来可以用来调查与活动方的关系和服务预约。非常感谢您简短而准确的回答!
    • 很高兴您发现它有用!
    • @adner1 谢谢这是非常有用的信息。我有一个后续问题。是否可以根据 PartyList 中的内容过滤您的结果?
    • 不,我不相信这是可能的。据我所知,过滤条件只能应用于ServiceAppointmentSet,不能应用于使用$expand 的相关关联。有关更多信息,请参阅here。但正如链接帖子中的 cmets 所建议的那样,OData 规范似乎支持使用与 $expand 不同的符号对相关实体使用过滤器,但我认为 CRM 2011 实施不支持这一点......
    【解决方案2】:

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

    【讨论】:

    • 是的,我知道大小写问题,但事实并非如此。正如我所提到的,服务活动中的两方列表字段资源和客户(这些是他们的模式名称)不会作为 ServiceAppointment 对象的一部分返回。我认为这些字段的查询可能与 AppointmentSet 或 ActivityParty 等另一个实体有关,我将继续挖掘。这是我正在开发的 CRM Online 环境,但感谢 LinqPad,之前没有使用过,我会检查一下。
    • 嗨,D!您是否曾经使用过上述答案中的语法,其中回复者在问号 之前 的括号中为他的 ServiceAppointment 指定了 guid?我很重视您对此的意见。
    • 是的@KonradViltersten,我就是这样使用它的。我相信它只适用于 Guid,它不是 LinqPad 吐出的东西,所以我认为我通常不会使用它。
    猜你喜欢
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2011-08-18
    • 2014-03-12
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多