【问题标题】:How to build a query across parent and child object fields in Oracle CRM On Demand?如何在 Oracle CRM On Demand 中跨父对象字段和子对象字段构建查询?
【发布时间】:2013-04-16 07:04:25
【问题描述】:

作为集成要求的一部分,我需要查询在特定日期和时间之后修改的商机记录?

现在,Opportunity 有一个名为 ProductRevenue 的子对象,具有一对多关系。无论如何,我是否可以构建一个查询页面来获取其机会字段“或”其子 ProductRevenue 字段在特定日期和时间之后已被修改的记录?

我曾尝试使用 SearchSpec 参数,但它不允许我跨子对象字段进行查询。

例如:

ObjOpptyQueryPageInput.ListOfOpportunity.Opportunity.searchspec = "([ModifiedDate] > '01/01/2013 00:00:00') OR ([ProductRevenueData.ModifiedDate] >= '01/01/2013 00:00:00')";

[上面用 C# 编写的代码让我出现了一个错误提示 - 对象 Opportunity 没有名为 - ProductRevenueData.ModifiedDate 的集成组件。]

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: oracle crm ondemand


    【解决方案1】:

    我自己一直在寻找答案,虽然不是解决方案,但这是我的理解。

    在 Web 服务 2.0 中,Oracle 表示“所有匹配父条件的父记录,并且只返回匹配子条件的子记录。”

    您实际上可以在父级和子级上定义“searchspec”,它确实按照 Oracle 定义的方式工作。但是,这可能不是您正在寻找的行为。当你这样做时,你会得到所有匹配 parent.searchspec 的父母,不管它的孩子是否匹配 child.searchspec。但是,这些父母在查询结果中只会有与您的 child.searchspec 匹配的孩子。因此,如果您想要的只是“有这些孩子的父母”或“这些孩子”,那您就不走运了。因为你得到的是“许多父母和他们的一些孩子”。

    因此,即使您对两个查询进行后处理,您也必须花费一些时间。 :(

    顺便说一下,您的两个单独的查询必须看起来像这样:

    查询 1。 ObjOpptyQueryPageInput.ListOfOpportunity.Opportunity.searchspec = "([ModifiedDate] > '01/01/2013 00:00:00')";

    查询2.ObjOpptyQueryPageInput.ListOfOpportunity.Opportunity.ListOfProductRevenue.ProductRevenue.searchspec = "([ModifiedDate] >= '01/01/2013 00:00:00')";

    然后对查询 2 进行后处理,取出所有没有孩子的父母。 然后将其与查询 1 的结果结合。

    【讨论】:

      【解决方案2】:

      根据我的经验,您将无法使用他们的 V2.0 api(即 searchspec)来执行此操作。您可以使用 V1.0 api 执行此操作,但这将返回与您的条件匹配的所有父记录以及所有相关的 ProductRevenue 记录,无论它们是否符合条件。我做了类似的事情,然后根据 xpath 谓词过滤器对数据进行后处理。我认为唯一的其他选择是 2 个单独的查询。

      【讨论】:

        【解决方案3】:

        我有同样的问题,我尝试了很多方法来解决问题,但现在你应该处理返回的结果:你可以使用DOMXPathregular expressions提取你想要的信息对于返回的结果。

        在我的例子中,我使用了 XPath,因为它非常快速且更容易。这是我发布的带有正确答案的问题的链接: Xpath solution for the parent-child query result

        我希望这能解决问题。

        【讨论】:

          猜你喜欢
          • 2021-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-20
          • 2019-09-17
          • 2020-11-23
          • 2012-01-15
          • 1970-01-01
          相关资源
          最近更新 更多