【问题标题】:How to fetch members of a dynamic marketing list independingly of the query如何独立于查询获取动态营销列表的成员
【发布时间】:2013-01-14 10:24:23
【问题描述】:

我正在尝试获取动态营销列表的成员列表。当它只有一个(或几个)列表时,我可以单独获取底层查询的结果。但是,当营销列表的数量增加时,一一抓取就变得非常无效。

对于静态营销列表,我希望它应该是直截了当的。在根据 Contact 过滤与所有营销列表相对应的一组 guid 时,我应该能够获取实体 Contact 的所有实例(或用于创建它的任何基本类型) 在我的 QueryExpression 对象中。是否正确理解?

(如何)获取服务器上所有动态列表的所有底层成员?

编辑:这是自动生成的 fetch-XML。

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="account">
    <attribute name="name" />
    <attribute name="primarycontactid" />
    <attribute name="telephone1" />
    <attribute name="accountid" />
    <order attribute="name" descending="false" />
  </entity>
</fetch>

【问题讨论】:

  • 我没有处理过营销列表,那是一个单独的实体吗?你能写出你试图执行的等效 SQL 吗?
  • @Daryl Yupp。它的模式名称是list,它是一个用于营销的实体。它可以针对 ContactAccountLead(也可能是 SystemUser)。这是一个真正的PIA。我的问题主要在于动态类型,其成员由 fetch-XML 声明(是的,有一个实际的列存储愚蠢的字符串 - 它称为 query)。现在,它迫使我为 每个 营销列表分别执行该字符串,这对鸭子来说是不正确的! (如果你好奇的话,你可以在 MarketingSales 下找到它。我在我的 OP 中添加了图片。)
  • 你是从插件中获取的吗?能否请您提供一份来自您的营销列表的 fetch-XML?
  • @SergeyS 不。我从 Outlook (VSTO) 的附加组件中获取,但它使用与插件编码相同的 SDK。我为成员使用的 fetch-XML 是由 CRM 自动创建的。我已将其发布为对我的问题的更新。
  • @Konrad Viltersten - 谢谢,但我想查看在动态营销列表中使用的准确 fetch xml。如果它们都遵循相同的格式,并且只有相关实体的名称发生变化 - 那么您可以尝试编写一些例程将所有这些提取组合到一个大提取 xml 中。

标签: dynamics-crm-2011 late-binding query-expressions


【解决方案1】:

好吧,对于您的要求(结果中的非明确记录和保留成员所属的营销列表的名称)而言,组合 FetchXML 查询将太困难(如果可能的话)。请注意,根据documentation FetchXML 查询只能针对一个根实体(例如帐户或联系人)运行,其他实体只能链接。由于您在数据库中的 Accounts 和 Marketing 列表之间没有直接链接(而不是只有一个 FetchXML 字符串存储在 DB 中),因此您将无法在工作中使用链接实体。

假设您现在通过 C# 代码执行此操作 - 这实际上是一个好方法。它可以让您更好地控制数据 - 您可以轻松地重新排列/组合/转换。我认为你不应该担心性能。一个一个地执行多个 fetch xml 不会比一个巨大的组合可能花费更多的时间。此外,如果您在 C# 中明智地实现集合操作,您可以获得相当不错的性能。我真的不认为组合巨大的 FetchXML 会带来任何性能优势,而只会带来维护方面的困难。

【讨论】:

    猜你喜欢
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    相关资源
    最近更新 更多